Skip to content

Commit e6b57a6

Browse files
committed
add logs
1 parent 7fc4042 commit e6b57a6

File tree

3 files changed

+34
-40
lines changed

3 files changed

+34
-40
lines changed

packages/amazonq/src/app/inline/completion.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,12 +199,11 @@ export class InlineCompletionManager implements Disposable {
199199
}
200200

201201
export class AmazonQInlineCompletionItemProvider implements InlineCompletionItemProvider {
202-
private logger = getLogger('nextEditPrediction')
202+
private logger = getLogger()
203203
constructor(
204204
private readonly languageClient: LanguageClient,
205205
private readonly recommendationService: RecommendationService,
206206
private readonly sessionManager: SessionManager,
207-
// eslint-disable-next-line no-unused-vars
208207
private readonly inlineTutorialAnnotation: InlineTutorialAnnotation,
209208
private readonly documentEventListener: DocumentEventListener
210209
) {}
@@ -320,9 +319,8 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem
320319
this.sessionManager.clear()
321320
}
322321

323-
// TODO: this line will take ~200ms each trigger, need to root cause and re-enable once it's fixed
324322
// tell the tutorial that completions has been triggered
325-
// await this.inlineTutorialAnnotation.triggered(context.triggerKind)
323+
await this.inlineTutorialAnnotation.triggered(context.triggerKind)
326324

327325
TelemetryHelper.instance.setInvokeSuggestionStartTime()
328326
TelemetryHelper.instance.setTriggerType(context.triggerKind)
@@ -347,12 +345,13 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem
347345

348346
const t2 = performance.now()
349347

350-
logstr = logstr += `- number of suggestions: ${items.length}
348+
logstr += `- number of suggestions: ${items.length}
351349
- sessionId: ${this.sessionManager.getActiveSession()?.sessionId}
352350
- first suggestion content (next line):
353351
${itemLog}
354-
- duration since trigger to before sending Flare call: ${t1 - t0}ms
355-
- duration since trigger to receiving responses from Flare: ${t2 - t0}ms
352+
- duration between trigger to before sending LSP call: ${t1 - t0}ms
353+
- duration between trigger to after receiving LSP response: ${t2 - t0}ms
354+
- duration between before sending LSP call to after receving LSP response: ${t2 - t1}ms
356355
`
357356
const session = this.sessionManager.getActiveSession()
358357

@@ -411,9 +410,7 @@ ${itemLog}
411410
// Check if Next Edit Prediction feature flag is enabled
412411
if (Experiments.instance.get('amazonqLSPNEP', true)) {
413412
await showEdits(item, editor, session, this.languageClient, this)
414-
const t3 = performance.now()
415-
logstr = logstr + `- duration since trigger to NEP suggestion is displayed: ${t3 - t0}ms`
416-
this.logger.info(logstr)
413+
logstr += `- duration between trigger to edits suggestion is displayed: ${performance.now() - t0}ms`
417414
}
418415
return []
419416
}
@@ -459,12 +456,14 @@ ${itemLog}
459456
}
460457

461458
// suggestions returned here will be displayed on screen
459+
logstr += `- duration between trigger to completion suggestion is displayed: ${performance.now() - t0}ms`
462460
return itemsMatchingTypeahead as InlineCompletionItem[]
463461
} catch (e) {
464462
getLogger('amazonqLsp').error('Failed to provide completion items: %O', e)
465463
return []
466464
} finally {
467465
vsCodeState.isRecommendationsActive = false
466+
this.logger.info(logstr)
468467
}
469468
}
470469
}

packages/amazonq/src/app/inline/recommendationService.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,15 @@ export class RecommendationService {
7979
nextToken: request.partialResultToken,
8080
},
8181
})
82+
const t0 = performance.now()
8283
const result: InlineCompletionListWithReferences = await languageClient.sendRequest(
8384
inlineCompletionWithReferencesRequestType.method,
8485
request,
8586
token
8687
)
87-
getLogger().info('Received inline completion response: %O', {
88+
getLogger().info('Received inline completion response from LSP: %O', {
8889
sessionId: result.sessionId,
90+
latency: performance.now() - t0,
8991
itemCount: result.items?.length || 0,
9092
items: result.items?.map((item) => ({
9193
itemId: item.itemId,

packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,7 @@
55

66
import * as vscode from 'vscode'
77
import * as os from 'os'
8-
import {
9-
AnnotationChangeSource,
10-
AuthUtil,
11-
inlinehintKey,
12-
runtimeLanguageContext,
13-
TelemetryHelper,
14-
} from 'aws-core-vscode/codewhisperer'
8+
import { AnnotationChangeSource, AuthUtil, inlinehintKey, runtimeLanguageContext } from 'aws-core-vscode/codewhisperer'
159
import { editorUtilities, getLogger, globals, setContext, vscodeUtilities } from 'aws-core-vscode/shared'
1610
import { LinesChangeEvent, LineSelection, LineTracker } from '../stateTracker/lineTracker'
1711
import { telemetry } from 'aws-core-vscode/telemetry'
@@ -296,28 +290,27 @@ export class InlineTutorialAnnotation implements vscode.Disposable {
296290
}
297291

298292
async triggered(triggerType: vscode.InlineCompletionTriggerKind): Promise<void> {
299-
await telemetry.withTraceId(async () => {
300-
if (!this._isReady) {
301-
return
302-
}
303-
304-
if (this._currentState instanceof ManualtriggerState) {
305-
if (
306-
triggerType === vscode.InlineCompletionTriggerKind.Invoke &&
307-
this._currentState.hasManualTrigger === false
308-
) {
309-
this._currentState.hasManualTrigger = true
310-
}
311-
if (
312-
this.sessionManager.getActiveRecommendation().length > 0 &&
313-
this._currentState.hasValidResponse === false
314-
) {
315-
this._currentState.hasValidResponse = true
316-
}
317-
}
318-
319-
await this.refresh(vscode.window.activeTextEditor, 'codewhisperer')
320-
}, TelemetryHelper.instance.traceId)
293+
// TODO: this logic will take ~200ms each trigger, need to root cause and re-enable once it's fixed, or it should only be invoked when the tutorial is actually needed
294+
// await telemetry.withTraceId(async () => {
295+
// if (!this._isReady) {
296+
// return
297+
// }
298+
// if (this._currentState instanceof ManualtriggerState) {
299+
// if (
300+
// triggerType === vscode.InlineCompletionTriggerKind.Invoke &&
301+
// this._currentState.hasManualTrigger === false
302+
// ) {
303+
// this._currentState.hasManualTrigger = true
304+
// }
305+
// if (
306+
// this.sessionManager.getActiveRecommendation().length > 0 &&
307+
// this._currentState.hasValidResponse === false
308+
// ) {
309+
// this._currentState.hasValidResponse = true
310+
// }
311+
// }
312+
// await this.refresh(vscode.window.activeTextEditor, 'codewhisperer')
313+
// }, TelemetryHelper.instance.traceId)
321314
}
322315

323316
isTutorialDone(): boolean {

0 commit comments

Comments
 (0)