Skip to content

Commit 3452a26

Browse files
authored
telemetry(amazonq): requestId2, logging for createUpload aws#6857
## Problem Some users are reporting S3 upload failures but we don't have the id2 that S3 team requires to investigate further. Related Commons change: [aws#1005](aws/aws-toolkit-common#1005) ## Solution Emit amazonq_createUpload metric with id2, and add logs for these ids so customers can use too.
1 parent c3c49e6 commit 3452a26

File tree

3 files changed

+25
-11
lines changed

3 files changed

+25
-11
lines changed

package-lock.json

Lines changed: 4 additions & 4 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
@@ -41,7 +41,7 @@
4141
"skippedTestReport": "ts-node ./scripts/skippedTestReport.ts ./packages/amazonq/test/e2e/"
4242
},
4343
"devDependencies": {
44-
"@aws-toolkits/telemetry": "^1.0.311",
44+
"@aws-toolkits/telemetry": "^1.0.312",
4545
"@playwright/browser-chromium": "^1.43.1",
4646
"@stylistic/eslint-plugin": "^2.11.0",
4747
"@types/he": "^1.2.3",

packages/core/src/codewhisperer/service/securityScanHandler.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -384,20 +384,24 @@ export async function uploadArtifactToS3(
384384
headersObj['x-amz-server-side-encryption-aws-kms-key-id'] = resp.kmsKeyArn
385385
}
386386

387+
let requestId: string | undefined = undefined
388+
let id2: string | undefined = undefined
389+
let responseCode: string = ''
390+
387391
try {
388392
const response = await request.fetch('PUT', resp.uploadUrl, {
389393
body: readFileSync(fileName),
390394
headers: resp?.requestHeaders ?? headersObj,
391395
}).response
392396
logger.debug(`StatusCode: ${response.status}, Text: ${response.statusText}`)
397+
requestId = response.headers?.get('x-amz-request-id') ?? undefined
398+
id2 = response.headers?.get('x-amz-id-2') ?? undefined
399+
responseCode = response.status.toString()
393400
} catch (error) {
394401
if (span && error instanceof RequestError) {
395-
const requestId = error.response.headers.get('x-amz-request-id') ?? undefined
396-
span.record({
397-
requestId: requestId,
398-
requestServiceType: 's3',
399-
httpStatusCode: error.code.toString(),
400-
})
402+
requestId = error.response.headers.get('x-amz-request-id') ?? undefined
403+
id2 = error.response.headers.get('x-amz-id-2') ?? undefined
404+
responseCode = error.code.toString()
401405
}
402406
let errorMessage = ''
403407
const isCodeScan = featureUseCase === FeatureUseCase.CODE_SCAN
@@ -419,6 +423,16 @@ export async function uploadArtifactToS3(
419423
ChatSessionManager.Instance.getSession().startTestGenerationRequestId = error.requestId
420424
}
421425
throw isCodeScan ? new UploadArtifactToS3Error(errorMessage) : new UploadTestArtifactToS3Error(errorMessage)
426+
} finally {
427+
getLogger().debug(`Upload to S3 response details: x-amz-request-id: ${requestId}, x-amz-id-2: ${id2}`)
428+
if (span) {
429+
span.record({
430+
requestId: requestId,
431+
requestId2: id2,
432+
requestServiceType: 's3',
433+
httpStatusCode: responseCode,
434+
})
435+
}
422436
}
423437
}
424438

0 commit comments

Comments
 (0)