From 05a5492f0d3bcdbcb8e188b987831b38137e1794 Mon Sep 17 00:00:00 2001 From: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:59:15 -0800 Subject: [PATCH 1/2] Adding requestId for amazonq_utgGenerateTests event --- packages/core/src/amazonqTest/chat/controller/controller.ts | 3 +++ .../src/amazonqTest/chat/controller/messenger/messenger.ts | 5 ++++- packages/core/src/amazonqTest/chat/session/session.ts | 1 + packages/core/src/codewhisperer/service/testGenHandler.ts | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/src/amazonqTest/chat/controller/controller.ts b/packages/core/src/amazonqTest/chat/controller/controller.ts index a7938575a9b..912798ba5fc 100644 --- a/packages/core/src/amazonqTest/chat/controller/controller.ts +++ b/packages/core/src/amazonqTest/chat/controller/controller.ts @@ -246,6 +246,7 @@ export class TestController { cwsprChatProgrammingLanguage: session.fileLanguage ?? 'plaintext', jobId: session.listOfTestGenerationJobId[0], // For RIV, UTG does only one StartTestGeneration API call jobGroup: session.testGenerationJobGroupName, + requestId: session.requestId, hasUserPromptSupplied: session.hasUserPromptSupplied, isCodeBlockSelected: session.isCodeBlockSelected, buildPayloadBytes: session.srcPayloadSize, @@ -725,6 +726,7 @@ export class TestController { cwsprChatProgrammingLanguage: session.fileLanguage ?? 'plaintext', jobId: session.listOfTestGenerationJobId[0], // For RIV, UTG does only one StartTestGeneration API call so jobId = session.listOfTestGenerationJobId[0] jobGroup: session.testGenerationJobGroupName, + requestId: session.requestId, buildPayloadBytes: session.srcPayloadSize, buildZipFileBytes: session.srcZipFileSize, artifactsUploadDuration: session.artifactsUploadDuration, @@ -848,6 +850,7 @@ export class TestController { cwsprChatProgrammingLanguage: session.fileLanguage ?? 'plaintext', jobId: session.listOfTestGenerationJobId[0], // For RIV, UTG does only one StartTestGeneration API call so jobId = session.listOfTestGenerationJobId[0] jobGroup: session.testGenerationJobGroupName, + requestId: session.requestId, buildPayloadBytes: session.srcPayloadSize, buildZipFileBytes: session.srcZipFileSize, artifactsUploadDuration: session.artifactsUploadDuration, diff --git a/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts b/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts index 6051a9b51ad..ee19b26cf42 100644 --- a/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts +++ b/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts @@ -187,7 +187,7 @@ export class Messenger { fileName: string ) { let message = '' - const messageId = response.$metadata.requestId ?? '' + let messageId = response.$metadata.requestId ?? '' let codeReference: CodeReference[] = [] if (response.generateAssistantResponseResponse === undefined) { @@ -267,6 +267,7 @@ export class Messenger { } if (requestID !== undefined) { + messageId = requestID message += `\n\nRequest ID: ${requestID}` } this.sendMessage(message.trim(), tabID, 'answer') @@ -282,6 +283,7 @@ export class Messenger { reasonDesc: getTelemetryReasonDesc(CodeWhispererConstants.unitTestGenerationCancelMessage), isSupportedLanguage: false, credentialStartUrl: AuthUtil.instance.startUrl, + requestId: messageId, }) this.dispatcher.sendUpdatePromptProgress( @@ -296,6 +298,7 @@ export class Messenger { result: 'Succeeded', isSupportedLanguage: false, credentialStartUrl: AuthUtil.instance.startUrl, + requestId: messageId, }) this.dispatcher.sendUpdatePromptProgress( new UpdatePromptProgressMessage(tabID, testGenCompletedField) diff --git a/packages/core/src/amazonqTest/chat/session/session.ts b/packages/core/src/amazonqTest/chat/session/session.ts index cd188c10c0f..68bf3cedd81 100644 --- a/packages/core/src/amazonqTest/chat/session/session.ts +++ b/packages/core/src/amazonqTest/chat/session/session.ts @@ -31,6 +31,7 @@ export class Session { //This is unique per each test generation cycle public testGenerationJobGroupName: string | undefined = undefined public listOfTestGenerationJobId: string[] = [] + public requestId: string | undefined = undefined public testGenerationJob: TestGenerationJob | undefined // Start Test generation diff --git a/packages/core/src/codewhisperer/service/testGenHandler.ts b/packages/core/src/codewhisperer/service/testGenHandler.ts index 218864ce256..dad7d5b4f83 100644 --- a/packages/core/src/codewhisperer/service/testGenHandler.ts +++ b/packages/core/src/codewhisperer/service/testGenHandler.ts @@ -94,11 +94,13 @@ export async function createTestJob( logger.debug('target line range end: %O', firstTargetLineRangeList?.end) const resp = await codewhispererClient.codeWhispererClient.startTestGeneration(req).catch((err) => { + ChatSessionManager.Instance.getSession().requestId = err.requestId logger.error(`Failed creating test job. Request id: ${err.requestId}`) throw err }) logger.info('Unit test generation request id: %s', resp.$response.requestId) logger.debug('Unit test generation data: %O', resp.$response.data) + ChatSessionManager.Instance.getSession().requestId = resp.$response.requestId if (resp.$response.error) { logger.error('Unit test generation error: %O', resp.$response.error) } From 814ad4daf979dcefccdae314e5059fec63d8dd48 Mon Sep 17 00:00:00 2001 From: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com> Date: Fri, 6 Dec 2024 18:37:13 -0800 Subject: [PATCH 2/2] Telemetry: UTG send plaintext instead of python in amazonq_utgGenerateTests event --- packages/core/src/amazonqTest/chat/controller/controller.ts | 6 +++--- packages/core/src/amazonqTest/chat/session/session.ts | 2 +- packages/core/src/codewhisperer/service/testGenHandler.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/src/amazonqTest/chat/controller/controller.ts b/packages/core/src/amazonqTest/chat/controller/controller.ts index 912798ba5fc..64f3e320d21 100644 --- a/packages/core/src/amazonqTest/chat/controller/controller.ts +++ b/packages/core/src/amazonqTest/chat/controller/controller.ts @@ -246,7 +246,7 @@ export class TestController { cwsprChatProgrammingLanguage: session.fileLanguage ?? 'plaintext', jobId: session.listOfTestGenerationJobId[0], // For RIV, UTG does only one StartTestGeneration API call jobGroup: session.testGenerationJobGroupName, - requestId: session.requestId, + requestId: session.startTestGenerationRequestId, hasUserPromptSupplied: session.hasUserPromptSupplied, isCodeBlockSelected: session.isCodeBlockSelected, buildPayloadBytes: session.srcPayloadSize, @@ -726,7 +726,7 @@ export class TestController { cwsprChatProgrammingLanguage: session.fileLanguage ?? 'plaintext', jobId: session.listOfTestGenerationJobId[0], // For RIV, UTG does only one StartTestGeneration API call so jobId = session.listOfTestGenerationJobId[0] jobGroup: session.testGenerationJobGroupName, - requestId: session.requestId, + requestId: session.startTestGenerationRequestId, buildPayloadBytes: session.srcPayloadSize, buildZipFileBytes: session.srcZipFileSize, artifactsUploadDuration: session.artifactsUploadDuration, @@ -850,7 +850,7 @@ export class TestController { cwsprChatProgrammingLanguage: session.fileLanguage ?? 'plaintext', jobId: session.listOfTestGenerationJobId[0], // For RIV, UTG does only one StartTestGeneration API call so jobId = session.listOfTestGenerationJobId[0] jobGroup: session.testGenerationJobGroupName, - requestId: session.requestId, + requestId: session.startTestGenerationRequestId, buildPayloadBytes: session.srcPayloadSize, buildZipFileBytes: session.srcZipFileSize, artifactsUploadDuration: session.artifactsUploadDuration, diff --git a/packages/core/src/amazonqTest/chat/session/session.ts b/packages/core/src/amazonqTest/chat/session/session.ts index 68bf3cedd81..cc20e0f6286 100644 --- a/packages/core/src/amazonqTest/chat/session/session.ts +++ b/packages/core/src/amazonqTest/chat/session/session.ts @@ -31,7 +31,7 @@ export class Session { //This is unique per each test generation cycle public testGenerationJobGroupName: string | undefined = undefined public listOfTestGenerationJobId: string[] = [] - public requestId: string | undefined = undefined + public startTestGenerationRequestId: string | undefined = undefined public testGenerationJob: TestGenerationJob | undefined // Start Test generation diff --git a/packages/core/src/codewhisperer/service/testGenHandler.ts b/packages/core/src/codewhisperer/service/testGenHandler.ts index dad7d5b4f83..7508af5e5cb 100644 --- a/packages/core/src/codewhisperer/service/testGenHandler.ts +++ b/packages/core/src/codewhisperer/service/testGenHandler.ts @@ -94,13 +94,13 @@ export async function createTestJob( logger.debug('target line range end: %O', firstTargetLineRangeList?.end) const resp = await codewhispererClient.codeWhispererClient.startTestGeneration(req).catch((err) => { - ChatSessionManager.Instance.getSession().requestId = err.requestId + ChatSessionManager.Instance.getSession().startTestGenerationRequestId = err.requestId logger.error(`Failed creating test job. Request id: ${err.requestId}`) throw err }) logger.info('Unit test generation request id: %s', resp.$response.requestId) logger.debug('Unit test generation data: %O', resp.$response.data) - ChatSessionManager.Instance.getSession().requestId = resp.$response.requestId + ChatSessionManager.Instance.getSession().startTestGenerationRequestId = resp.$response.requestId if (resp.$response.error) { logger.error('Unit test generation error: %O', resp.$response.error) }