Skip to content

Commit 7385e33

Browse files
authored
telemetry(codewhisperer): "perceived latency" metric #2882
1 parent 2e41855 commit 7385e33

File tree

3 files changed

+60
-41
lines changed

3 files changed

+60
-41
lines changed

package-lock.json

Lines changed: 39 additions & 39 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3196,7 +3196,7 @@
31963196
"report": "nyc report --reporter=html --reporter=json"
31973197
},
31983198
"devDependencies": {
3199-
"@aws-toolkits/telemetry": "^1.0.69",
3199+
"@aws-toolkits/telemetry": "^1.0.70",
32003200
"@cspotcode/source-map-support": "^0.8.1",
32013201
"@sinonjs/fake-timers": "^8.1.0",
32023202
"@types/adm-zip": "^0.4.34",

src/codewhisperer/service/inlineCompletion.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ import { RecommendationHandler } from './recommendationHandler'
1414
import { showTimedMessage } from '../../shared/utilities/messages'
1515
import { getLogger } from '../../shared/logger/logger'
1616
import globals from '../../shared/extensionGlobals'
17-
import { CodewhispererAutomatedTriggerType, CodewhispererTriggerType } from '../../shared/telemetry/telemetry'
17+
import {
18+
telemetry,
19+
CodewhispererAutomatedTriggerType,
20+
CodewhispererTriggerType,
21+
} from '../../shared/telemetry/telemetry'
1822

1923
const performance = globalThis.performance ?? require('perf_hooks').performance
2024

@@ -401,6 +405,21 @@ export class InlineCompletion {
401405
this.setRange(new vscode.Range(editor.selection.active, editor.selection.active))
402406
try {
403407
await this.showRecommendation(editor)
408+
let languageId = editor?.document?.languageId
409+
languageId =
410+
languageId === CodeWhispererConstants.typescript
411+
? CodeWhispererConstants.javascript
412+
: languageId
413+
const languageContext = runtimeLanguageContext.getLanguageContext(languageId)
414+
telemetry.codewhisperer_perceivedLatency.emit({
415+
codewhispererRequestId: RecommendationHandler.instance.requestId,
416+
codewhispererSessionId: RecommendationHandler.instance.sessionId,
417+
codewhispererTriggerType: TelemetryHelper.instance.triggerType,
418+
codewhispererCompletionType: TelemetryHelper.instance.completionType,
419+
codewhispererLanguage: languageContext.language,
420+
duration: performance.now() - RecommendationHandler.instance.lastInvocationTime,
421+
passive: true,
422+
})
404423
} catch (error) {
405424
getLogger().error(`Failed to show suggestion ${error}`)
406425
RecommendationHandler.instance.cancelPaginatedRequest()

0 commit comments

Comments
 (0)