Skip to content

Commit 5dde84b

Browse files
authored
Merge #2734 fix(codewhisperer): telemetry
2 parents 75b064f + c3f0218 commit 5dde84b

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

src/codewhisperer/commands/invokeRecommendation.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export async function invokeRecommendation(
5454
vsCodeState.isIntelliSenseActive = false
5555
RecommendationHandler.instance.isGenerateRecommendationInProgress = true
5656
try {
57+
RecommendationHandler.instance.reportUserDecisionOfCurrentRecommendation(editor, -1)
5758
RecommendationHandler.instance.clearRecommendations()
5859
await RecommendationHandler.instance.getRecommendations(
5960
client,

src/codewhisperer/service/inlineCompletion.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ export class InlineCompletion {
322322
config: ConfigurationEntry,
323323
autoTriggerType?: telemetry.CodewhispererAutomatedTriggerType
324324
) {
325+
RecommendationHandler.instance.reportUserDecisionOfCurrentRecommendation(editor, -1)
325326
RecommendationHandler.instance.clearRecommendations()
326327
this.setCodeWhispererStatusBarLoading()
327328
const isManualTrigger = triggerType === 'OnDemand'
@@ -347,6 +348,7 @@ export class InlineCompletion {
347348
)
348349
this.setCompletionItems(editor)
349350
if (RecommendationHandler.instance.checkAndResetCancellationTokens()) {
351+
RecommendationHandler.instance.reportUserDecisionOfCurrentRecommendation(editor, -1)
350352
RecommendationHandler.instance.clearRecommendations()
351353
break
352354
}

src/codewhisperer/service/keyStrokeHandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ export class KeyStrokeHandler {
178178
vsCodeState.isIntelliSenseActive = false
179179
RecommendationHandler.instance.isGenerateRecommendationInProgress = true
180180
try {
181+
RecommendationHandler.instance.reportUserDecisionOfCurrentRecommendation(editor, -1)
181182
RecommendationHandler.instance.clearRecommendations()
182183
await RecommendationHandler.instance.getRecommendations(
183184
client,

src/codewhisperer/service/recommendationHandler.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ export class RecommendationHandler {
121121
let nextToken = ''
122122
let errorCode = ''
123123
let req: codewhispererClient.ListRecommendationsRequest | codewhispererClient.GenerateRecommendationsRequest
124+
let shouldRecordServiceInvocation = false
124125

125126
if (pagination) {
126127
req = EditorContext.buildListRecommendationRequest(editor as vscode.TextEditor, this.nextToken)
@@ -141,6 +142,7 @@ export class RecommendationHandler {
141142
const codewhispererPromise = pagination
142143
? client.listRecommendations(req)
143144
: client.generateRecommendations(req)
145+
shouldRecordServiceInvocation = true
144146
const resp = await this.getServerResponse(
145147
triggerType,
146148
config.isManualTriggerEnabled,
@@ -217,24 +219,25 @@ export class RecommendationHandler {
217219
recommendation.forEach((item, index) => {
218220
getLogger().verbose(`[${index}]\n${item.content.trimRight()}`)
219221
})
220-
221-
telemetry.recordCodewhispererServiceInvocation({
222-
codewhispererRequestId: requestId ? requestId : undefined,
223-
codewhispererSessionId: sessionId ? sessionId : undefined,
224-
codewhispererLastSuggestionIndex: this.recommendations.length - 1,
225-
codewhispererTriggerType: triggerType,
226-
codewhispererAutomatedTriggerType: autoTriggerType,
227-
codewhispererCompletionType:
228-
invocationResult == 'Succeeded' ? TelemetryHelper.instance.completionType : undefined,
229-
result: invocationResult,
230-
duration: latency ? latency : 0,
231-
codewhispererLineNumber: this.startPos.line ? this.startPos.line : 0,
232-
codewhispererCursorOffset: TelemetryHelper.instance.cursorOffset
233-
? TelemetryHelper.instance.cursorOffset
234-
: 0,
235-
codewhispererLanguage: languageContext.language,
236-
reason: reason ? reason.substring(0, 200) : undefined,
237-
})
222+
if (shouldRecordServiceInvocation) {
223+
telemetry.recordCodewhispererServiceInvocation({
224+
codewhispererRequestId: requestId ? requestId : undefined,
225+
codewhispererSessionId: sessionId ? sessionId : undefined,
226+
codewhispererLastSuggestionIndex: this.recommendations.length - 1,
227+
codewhispererTriggerType: triggerType,
228+
codewhispererAutomatedTriggerType: autoTriggerType,
229+
codewhispererCompletionType:
230+
invocationResult == 'Succeeded' ? TelemetryHelper.instance.completionType : undefined,
231+
result: invocationResult,
232+
duration: latency ? latency : 0,
233+
codewhispererLineNumber: this.startPos.line ? this.startPos.line : 0,
234+
codewhispererCursorOffset: TelemetryHelper.instance.cursorOffset
235+
? TelemetryHelper.instance.cursorOffset
236+
: 0,
237+
codewhispererLanguage: languageContext.language,
238+
reason: reason ? reason.substring(0, 200) : undefined,
239+
})
240+
}
238241
recommendation = recommendation.filter(r => r.content.length > 0)
239242

240243
if (config.isIncludeSuggestionsWithCodeReferencesEnabled === false) {

0 commit comments

Comments
 (0)