Skip to content

Commit adf34b6

Browse files
authored
Merge pull request #3792 from andrewyuq/master
Enable SendTelemetryEvent for all SSO users
2 parents a93b9f1 + 039e6b1 commit adf34b6

30 files changed

+1292
-1186
lines changed

src/codewhisperer/activation.ts

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,6 @@ export async function activate(context: ExtContext): Promise<void> {
177177
return
178178
}
179179
RecommendationHandler.instance.reportUserDecisionOfRecommendation(vscode.window.activeTextEditor, -1)
180-
RecommendationHandler.instance.clearRecommendations()
181180
}),
182181

183182
vscode.languages.registerHoverProvider(
@@ -251,13 +250,13 @@ export async function activate(context: ExtContext): Promise<void> {
251250
*/
252251
context.extensionContext.subscriptions.push(
253252
vscode.window.onDidChangeActiveTextEditor(async editor => {
254-
await InlineCompletionService.instance.onEditorChange()
253+
await RecommendationHandler.instance.onEditorChange()
255254
}),
256255
vscode.window.onDidChangeWindowState(async e => {
257-
await InlineCompletionService.instance.onFocusChange()
256+
await RecommendationHandler.instance.onFocusChange()
258257
}),
259258
vscode.window.onDidChangeTextEditorSelection(async e => {
260-
await InlineCompletionService.instance.onCursorChange(e)
259+
await RecommendationHandler.instance.onCursorChange(e)
261260
}),
262261
vscode.workspace.onDidChangeTextDocument(async e => {
263262
/**
@@ -266,6 +265,9 @@ export async function activate(context: ExtContext): Promise<void> {
266265
if (e.document === vscode.window.activeTextEditor?.document) {
267266
disposeSecurityDiagnostic(e)
268267
}
268+
269+
CodeWhispererCodeCoverageTracker.getTracker(e.document.languageId)?.countTotalTokens(e)
270+
269271
/**
270272
* Handle this keystroke event only when
271273
* 1. It is in current non plaintext active editor
@@ -292,7 +294,7 @@ export async function activate(context: ExtContext): Promise<void> {
292294
* Then this event can be processed by our code.
293295
*/
294296
await sleep(CodeWhispererConstants.vsCodeCursorUpdateDelay)
295-
if (!InlineCompletionService.instance.isSuggestionVisible()) {
297+
if (!RecommendationHandler.instance.isSuggestionVisible()) {
296298
await KeyStrokeHandler.instance.processKeyStroke(
297299
e,
298300
vscode.window.activeTextEditor,
@@ -387,13 +389,7 @@ export async function activate(context: ExtContext): Promise<void> {
387389
}
388390

389391
export async function shutdown() {
390-
if (isCloud9()) {
391-
RecommendationHandler.instance.reportUserDecisionOfRecommendation(vscode.window.activeTextEditor, -1)
392-
RecommendationHandler.instance.clearRecommendations()
393-
}
394-
if (isInlineCompletionEnabled()) {
395-
await InlineCompletionService.instance.clearInlineCompletionStates(vscode.window.activeTextEditor)
396-
}
392+
RecommendationHandler.instance.reportUserDecisionOfRecommendation(vscode.window.activeTextEditor, -1)
397393
CodeWhispererTracker.getTracker().shutdown()
398394
}
399395

src/codewhisperer/client/codewhisperer.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ import { CodeWhispererSettings } from '../util/codewhispererSettings'
1515
import { PromiseResult } from 'aws-sdk/lib/request'
1616
import { Credentials } from 'aws-sdk'
1717
import { AuthUtil } from '../util/authUtil'
18-
import { TelemetryHelper } from '../util/telemetryHelper'
1918
import { isSsoConnection } from '../../auth/connection'
19+
import { session } from '../util/codeWhispererSession'
20+
import { SendTelemetryEventRequest } from './codewhispereruserclient'
21+
import { getLogger } from '../../shared/logger'
2022

2123
export type ProgrammingLanguage = Readonly<
2224
CodeWhispererClient.ProgrammingLanguage | CodeWhispererUserClient.ProgrammingLanguage
@@ -103,9 +105,9 @@ export class DefaultCodeWhispererClient {
103105

104106
async createUserSdkClient(): Promise<CodeWhispererUserClient> {
105107
const isOptedOut = CodeWhispererSettings.instance.isOptoutEnabled()
106-
TelemetryHelper.instance.setFetchCredentialStartTime()
108+
session.setFetchCredentialStart()
107109
const bearerToken = await AuthUtil.instance.getBearerToken()
108-
TelemetryHelper.instance.setSdkApiCallStartTime()
110+
session.setSdkApiCallStart()
109111
return (await globals.sdkClientBuilder.createAwsService(
110112
Service,
111113
{
@@ -189,6 +191,16 @@ export class DefaultCodeWhispererClient {
189191
.listCodeScanFindings(request as CodeWhispererClient.ListCodeScanFindingsRequest)
190192
.promise()
191193
}
194+
195+
public async sendTelemetryEvent(request: SendTelemetryEventRequest) {
196+
if (!AuthUtil.instance.isValidEnterpriseSsoInUse()) {
197+
return
198+
}
199+
const response = await (await this.createUserSdkClient()).sendTelemetryEvent(request).promise()
200+
getLogger().debug(`codewhisperer: sendTelemetryEvent requestID: ${response.$response.requestId}`)
201+
}
192202
}
193203

204+
export const codeWhispererClient = new DefaultCodeWhispererClient()
205+
194206
export class CognitoCredentialsError extends Error {}

0 commit comments

Comments
 (0)