Skip to content

Commit 0231f0f

Browse files
telemetry: add isFirstUse to session_start, auth_signInPageOpened, auth_userState
Signed-off-by: nkomonen-amazon <[email protected]>
1 parent 6f6fedb commit 0231f0f

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

packages/amazonq/src/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export async function activateAmazonQCommon(context: vscode.ExtensionContext, is
142142
// Give time for the extension to finish initializing.
143143
globals.clock.setTimeout(async () => {
144144
CommonAuthWebview.authSource = ExtStartUpSources.firstStartUp
145-
void focusAmazonQPanel.execute(placeholder, 'firstStartUp')
145+
void focusAmazonQPanel.execute(placeholder, ExtStartUpSources.firstStartUp)
146146
}, 1000)
147147
}
148148
}

packages/core/src/login/webview/commonAuthViewProvider.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import { AuthSources } from './util'
4646
import { AuthFlowStates } from './vue/types'
4747
import { getTelemetryMetadataForConn } from '../../auth/connection'
4848
import { AuthUtil } from '../../codewhisperer/util/authUtil'
49+
import { ExtensionUse } from '../../auth/utils'
4950

5051
export class CommonAuthViewProvider implements WebviewViewProvider {
5152
public readonly viewType: string
@@ -83,14 +84,22 @@ export class CommonAuthViewProvider implements WebviewViewProvider {
8384
) {
8485
// Our callback won't fire on the first view.
8586
if (webviewView.visible) {
86-
telemetry.auth_signInPageOpened.emit({ result: 'Succeeded', passive: true })
87+
telemetry.auth_signInPageOpened.emit({
88+
result: 'Succeeded',
89+
passive: true,
90+
source: ExtensionUse.instance.sourceForTelemetry(),
91+
})
8792
}
8893

8994
// This will fire whenever the user opens or closes the login page from 'somewhere else'
9095
// i.e. NOT when switching from/to the chat window, which uses the same view area.
9196
webviewView.onDidChangeVisibility(async () => {
9297
if (webviewView.visible) {
93-
telemetry.auth_signInPageOpened.emit({ result: 'Succeeded', passive: true })
98+
telemetry.auth_signInPageOpened.emit({
99+
result: 'Succeeded',
100+
passive: true,
101+
source: ExtensionUse.instance.sourceForTelemetry(),
102+
})
94103
} else {
95104
telemetry.auth_signInPageClosed.emit({ result: 'Succeeded', passive: true })
96105

packages/core/src/shared/telemetry/telemetryService.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { telemetry, MetricBase } from './telemetry'
2222
import fs from '../fs/fs'
2323
import fsNode from 'fs/promises'
2424
import * as collectionUtil from '../utilities/collectionUtils'
25+
import { ExtensionUse } from '../../auth/utils'
2526

2627
export type TelemetryService = ClassToInterfaceType<DefaultTelemetryService>
2728

@@ -98,7 +99,9 @@ export class DefaultTelemetryService {
9899
// TODO: `readEventsFromCache` should be async
99100
this._eventQueue.push(...(await DefaultTelemetryService.readEventsFromCache(this.persistFilePath)))
100101
this._endOfCache = this._eventQueue[this._eventQueue.length - 1]
101-
telemetry.session_start.emit()
102+
telemetry.session_start.emit({
103+
source: ExtensionUse.instance.sourceForTelemetry(),
104+
})
102105
this.startFlushInterval()
103106
}
104107

packages/core/src/shared/telemetry/vscodeTelemetry.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,6 +1131,17 @@
11311131
],
11321132
"passive": true
11331133
},
1134+
{
1135+
"name": "auth_signInPageOpened",
1136+
"description": "When the Amazon Q sign in page is opened and focused.",
1137+
"metadata": [
1138+
{
1139+
"type": "source",
1140+
"required": true
1141+
}
1142+
],
1143+
"passive": true
1144+
},
11341145
{
11351146
"name": "function_call",
11361147
"description": "Represents a function call. In most cases this should wrap code with a run(), then you can add context.",
@@ -1207,6 +1218,17 @@
12071218
}
12081219
]
12091220
},
1221+
{
1222+
"name": "session_start",
1223+
"description": "Called when starting the plugin",
1224+
"metadata": [
1225+
{
1226+
"type": "source",
1227+
"required": false
1228+
}
1229+
],
1230+
"passive": true
1231+
},
12101232
{
12111233
"name": "session_end",
12121234
"description": "Called when stopping the IDE on a best effort basis",

0 commit comments

Comments
 (0)