Skip to content

Commit bbedccf

Browse files
authored
refactor(amazonq): sort telemetry event fields alphabetically (#6054)
## Problem - telemetry fields are not sorted and hard to compare ## Solution - sort alphabetically --- <!--- REMINDER: Ensure that your PR meets the guidelines in CONTRIBUTING.md --> License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 1a733fe commit bbedccf

File tree

1 file changed

+69
-69
lines changed

1 file changed

+69
-69
lines changed

packages/core/src/codewhisperer/util/telemetryHelper.ts

Lines changed: 69 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,25 @@ export class TelemetryHelper {
6868
supplementalContextMetadata?: CodeWhispererSupplementalContext | undefined
6969
) {
7070
const event = {
71-
codewhispererRequestId: requestId ? requestId : undefined,
72-
codewhispererSessionId: sessionId ? sessionId : undefined,
73-
codewhispererLastSuggestionIndex: lastSuggestionIndex,
74-
codewhispererTriggerType: session.triggerType,
7571
codewhispererAutomatedTriggerType: session.autoTriggerType,
76-
result,
77-
duration: duration || 0,
78-
codewhispererLineNumber: session.startPos.line,
7972
codewhispererCursorOffset: session.startCursorOffset,
80-
codewhispererLanguage: language,
73+
codewhispererCustomizationArn: getSelectedCustomization().arn,
8174
CodewhispererGettingStartedTask: taskType,
82-
reason: reason ? reason.substring(0, 200) : undefined,
83-
credentialStartUrl: AuthUtil.instance.startUrl,
8475
codewhispererImportRecommendationEnabled: CodeWhispererSettings.instance.isImportRecommendationEnabled(),
85-
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
76+
codewhispererLastSuggestionIndex: lastSuggestionIndex,
77+
codewhispererLanguage: language,
78+
codewhispererLineNumber: session.startPos.line,
79+
codewhispererRequestId: requestId ? requestId : undefined,
80+
codewhispererSessionId: sessionId ? sessionId : undefined,
8681
codewhispererSupplementalContextIsUtg: supplementalContextMetadata?.isUtg,
8782
codewhispererSupplementalContextLatency: supplementalContextMetadata?.latency,
8883
codewhispererSupplementalContextLength: supplementalContextMetadata?.contentsLength,
89-
codewhispererCustomizationArn: getSelectedCustomization().arn,
84+
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
85+
codewhispererTriggerType: session.triggerType,
86+
credentialStartUrl: AuthUtil.instance.startUrl,
87+
duration: duration || 0,
88+
reason: reason ? reason.substring(0, 200) : undefined,
89+
result,
9090
traceId: this.traceId,
9191
}
9292
telemetry.codewhisperer_serviceInvocation.emit(event)
@@ -100,21 +100,21 @@ export class TelemetryHelper {
100100
supplementalContextMetadata?: CodeWhispererSupplementalContext | undefined
101101
) {
102102
telemetry.codewhisperer_userDecision.emit({
103+
codewhispererCompletionType: 'Line',
104+
codewhispererGettingStartedTask: session.taskType,
105+
codewhispererLanguage: language,
106+
codewhispererPaginationProgress: paginationIndex,
103107
codewhispererRequestId: requestIdList[0],
104108
codewhispererSessionId: sessionId ? sessionId : undefined,
105-
codewhispererPaginationProgress: paginationIndex,
106-
codewhispererTriggerType: session.triggerType,
107109
codewhispererSuggestionIndex: -1,
108110
codewhispererSuggestionState: 'Empty',
109-
codewhispererSuggestionReferences: undefined,
110111
codewhispererSuggestionReferenceCount: 0,
111-
codewhispererCompletionType: 'Line',
112-
codewhispererLanguage: language,
113-
codewhispererGettingStartedTask: session.taskType,
114-
credentialStartUrl: AuthUtil.instance.startUrl,
115-
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
112+
codewhispererSuggestionReferences: undefined,
116113
codewhispererSupplementalContextIsUtg: supplementalContextMetadata?.isUtg,
117114
codewhispererSupplementalContextLength: supplementalContextMetadata?.contentsLength,
115+
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
116+
codewhispererTriggerType: session.triggerType,
117+
credentialStartUrl: AuthUtil.instance.startUrl,
118118
traceId: this.traceId,
119119
})
120120
}
@@ -152,22 +152,22 @@ export class TelemetryHelper {
152152
}
153153
const event: CodewhispererUserDecision = {
154154
// TODO: maintain a list of RecommendationContexts with both recommendation and requestId in it, instead of two separate list items.
155+
codewhispererCompletionType: this.getCompletionType(i, completionTypes),
156+
codewhispererGettingStartedTask: session.taskType,
157+
codewhispererLanguage: session.language,
158+
codewhispererPaginationProgress: paginationIndex,
155159
codewhispererRequestId: requestIdList[i],
156160
codewhispererSessionId: sessionId ? sessionId : undefined,
157-
codewhispererPaginationProgress: paginationIndex,
158-
codewhispererTriggerType: session.triggerType,
161+
codewhispererSuggestionImportCount: getImportCount(_elem),
159162
codewhispererSuggestionIndex: i,
160163
codewhispererSuggestionState: this.getSuggestionState(i, acceptIndex, recommendationSuggestionState),
161-
codewhispererSuggestionReferences: uniqueSuggestionReferences,
162164
codewhispererSuggestionReferenceCount: _elem.references ? _elem.references.length : 0,
163-
codewhispererSuggestionImportCount: getImportCount(_elem),
164-
codewhispererCompletionType: this.getCompletionType(i, completionTypes),
165-
codewhispererLanguage: session.language,
166-
codewhispererGettingStartedTask: session.taskType,
167-
credentialStartUrl: AuthUtil.instance.startUrl,
168-
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
165+
codewhispererSuggestionReferences: uniqueSuggestionReferences,
169166
codewhispererSupplementalContextIsUtg: supplementalContextMetadata?.isUtg,
170167
codewhispererSupplementalContextLength: supplementalContextMetadata?.contentsLength,
168+
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
169+
codewhispererTriggerType: session.triggerType,
170+
credentialStartUrl: AuthUtil.instance.startUrl,
171171
traceId: this.traceId,
172172
}
173173
telemetry.codewhisperer_userDecision.emit(event)
@@ -212,25 +212,25 @@ export class TelemetryHelper {
212212
return
213213
}
214214
const aggregated: CodewhispererUserTriggerDecision = {
215-
codewhispererSessionId: sessionId,
215+
codewhispererAutomatedTriggerType: session.autoTriggerType,
216+
codewhispererCompletionType: events[0].codewhispererCompletionType,
217+
codewhispererCursorOffset: session.startCursorOffset,
216218
codewhispererFirstRequestId: requestId,
217-
credentialStartUrl: events[0].credentialStartUrl,
218-
codewhispererLanguage: events[0].codewhispererLanguage,
219219
codewhispererGettingStartedTask: session.taskType,
220-
codewhispererTriggerType: events[0].codewhispererTriggerType,
221-
codewhispererCompletionType: events[0].codewhispererCompletionType,
222-
codewhispererSuggestionCount: events.length,
223-
codewhispererAutomatedTriggerType: session.autoTriggerType,
220+
codewhispererLanguage: events[0].codewhispererLanguage,
224221
codewhispererLineNumber: session.startPos.line,
225-
codewhispererCursorOffset: session.startCursorOffset,
226-
codewhispererSuggestionState: this.getAggregatedSuggestionState(events),
222+
codewhispererSessionId: sessionId,
223+
codewhispererSuggestionCount: events.length,
227224
codewhispererSuggestionImportCount: events
228225
.map((e) => e.codewhispererSuggestionImportCount || 0)
229226
.reduce((a, b) => a + b, 0),
230-
codewhispererTypeaheadLength: 0,
231-
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
227+
codewhispererSuggestionState: this.getAggregatedSuggestionState(events),
232228
codewhispererSupplementalContextIsUtg: supplementalContextMetadata?.isUtg,
233229
codewhispererSupplementalContextLength: supplementalContextMetadata?.contentsLength,
230+
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
231+
codewhispererTriggerType: events[0].codewhispererTriggerType,
232+
codewhispererTypeaheadLength: 0,
233+
credentialStartUrl: events[0].credentialStartUrl,
234234
traceId: this.traceId,
235235
}
236236
return aggregated
@@ -261,21 +261,30 @@ export class TelemetryHelper {
261261
.reduce((a, b) => a + b, 0)
262262

263263
const aggregated: CodewhispererUserTriggerDecision = {
264-
codewhispererSessionId: this.sessionDecisions[0].codewhispererSessionId,
265-
codewhispererFirstRequestId: this.sessionDecisions[0].codewhispererFirstRequestId,
266-
credentialStartUrl: this.sessionDecisions[0].credentialStartUrl,
264+
codewhispererAutomatedTriggerType: autoTriggerType,
265+
codewhispererCharactersAccepted: acceptedRecommendationContent.length,
266+
codewhispererClassifierResult: this.classifierResult,
267+
codewhispererClassifierThreshold: this.classifierThreshold,
267268
codewhispererCompletionType: aggregatedCompletionType,
268-
codewhispererLanguage: language,
269+
codewhispererCursorOffset: this.sessionDecisions[0].codewhispererCursorOffset,
270+
codewhispererCustomizationArn: selectedCustomization.arn === '' ? undefined : selectedCustomization.arn,
271+
codewhispererFeatureEvaluations: FeatureConfigProvider.instance.getFeatureConfigsTelemetry(),
272+
codewhispererFirstRequestId: this.sessionDecisions[0].codewhispererFirstRequestId,
269273
codewhispererGettingStartedTask: session.taskType,
270-
codewhispererTriggerType: this.sessionDecisions[0].codewhispererTriggerType,
271-
codewhispererSuggestionCount: suggestionCount,
272-
codewhispererAutomatedTriggerType: autoTriggerType,
274+
codewhispererLanguage: language,
273275
codewhispererLineNumber: this.sessionDecisions[0].codewhispererLineNumber,
274-
codewhispererCursorOffset: this.sessionDecisions[0].codewhispererCursorOffset,
276+
codewhispererPreviousSuggestionState: this.prevTriggerDecision,
277+
codewhispererSessionId: this.sessionDecisions[0].codewhispererSessionId,
278+
codewhispererSuggestionCount: suggestionCount,
275279
codewhispererSuggestionImportCount: this.sessionDecisions
276280
.map((e) => e.codewhispererSuggestionImportCount || 0)
277281
.reduce((a, b) => a + b, 0),
278-
codewhispererTypeaheadLength: this.typeAheadLength,
282+
codewhispererSuggestionState: aggregatedSuggestionState,
283+
codewhispererSupplementalContextIsUtg: supplementalContextMetadata?.isUtg,
284+
codewhispererSupplementalContextLength: supplementalContextMetadata?.contentsLength,
285+
// eslint-disable-next-line id-length
286+
codewhispererSupplementalContextStrategyId: supplementalContextMetadata?.strategy,
287+
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
279288
codewhispererTimeSinceLastDocumentChange: this.timeSinceLastModification
280289
? this.timeSinceLastModification
281290
: undefined,
@@ -284,18 +293,9 @@ export class TelemetryHelper {
284293
: undefined,
285294
codewhispererTimeToFirstRecommendation: session.timeToFirstRecommendation,
286295
codewhispererTriggerCharacter: autoTriggerType === 'SpecialCharacters' ? this.triggerChar : undefined,
287-
codewhispererSuggestionState: aggregatedSuggestionState,
288-
codewhispererPreviousSuggestionState: this.prevTriggerDecision,
289-
codewhispererClassifierResult: this.classifierResult,
290-
codewhispererClassifierThreshold: this.classifierThreshold,
291-
codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,
292-
codewhispererSupplementalContextIsUtg: supplementalContextMetadata?.isUtg,
293-
codewhispererSupplementalContextLength: supplementalContextMetadata?.contentsLength,
294-
codewhispererCustomizationArn: selectedCustomization.arn === '' ? undefined : selectedCustomization.arn,
295-
// eslint-disable-next-line id-length
296-
codewhispererSupplementalContextStrategyId: supplementalContextMetadata?.strategy,
297-
codewhispererCharactersAccepted: acceptedRecommendationContent.length,
298-
codewhispererFeatureEvaluations: FeatureConfigProvider.instance.getFeatureConfigsTelemetry(),
296+
codewhispererTriggerType: this.sessionDecisions[0].codewhispererTriggerType,
297+
codewhispererTypeaheadLength: this.typeAheadLength,
298+
credentialStartUrl: this.sessionDecisions[0].credentialStartUrl,
299299
traceId: this.traceId,
300300
}
301301
telemetry.codewhisperer_userTriggerDecision.emit(aggregated)
@@ -511,19 +511,19 @@ export class TelemetryHelper {
511511
return
512512
}
513513
telemetry.codewhisperer_clientComponentLatency.emit({
514-
codewhispererRequestId: this.firstResponseRequestId,
515-
codewhispererSessionId: session.sessionId,
516-
codewhispererFirstCompletionLatency: this.sdkApiCallEndTime - session.sdkApiCallStartTime,
517-
codewhispererEndToEndLatency: session.firstSuggestionShowTime - session.invokeSuggestionStartTime,
518514
codewhispererAllCompletionsLatency: this.allPaginationEndTime - session.sdkApiCallStartTime,
519-
codewhispererPostprocessingLatency: session.firstSuggestionShowTime - this.sdkApiCallEndTime,
515+
codewhispererCompletionType: 'Line',
520516
codewhispererCredentialFetchingLatency: session.sdkApiCallStartTime - session.fetchCredentialStartTime,
517+
codewhispererCustomizationArn: getSelectedCustomization().arn,
518+
codewhispererEndToEndLatency: session.firstSuggestionShowTime - session.invokeSuggestionStartTime,
519+
codewhispererFirstCompletionLatency: this.sdkApiCallEndTime - session.sdkApiCallStartTime,
520+
codewhispererLanguage: session.language,
521+
codewhispererPostprocessingLatency: session.firstSuggestionShowTime - this.sdkApiCallEndTime,
521522
codewhispererPreprocessingLatency: session.fetchCredentialStartTime - session.invokeSuggestionStartTime,
522-
codewhispererCompletionType: 'Line',
523+
codewhispererRequestId: this.firstResponseRequestId,
524+
codewhispererSessionId: session.sessionId,
523525
codewhispererTriggerType: session.triggerType,
524-
codewhispererLanguage: session.language,
525526
credentialStartUrl: AuthUtil.instance.startUrl,
526-
codewhispererCustomizationArn: getSelectedCustomization().arn,
527527
})
528528
}
529529
public sendCodeScanEvent(languageId: string, jobId: string) {

0 commit comments

Comments
 (0)