From 4c361156ebeff9e8df0b24e3a61914cf980c1074 Mon Sep 17 00:00:00 2001 From: Josh Pinkney Date: Thu, 7 Nov 2024 10:51:04 -0500 Subject: [PATCH] telemetry(amazonq): Add more information for outlier chat round trips --- .../amazonq/messages/chatMessageDuration.ts | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/core/src/amazonq/messages/chatMessageDuration.ts b/packages/core/src/amazonq/messages/chatMessageDuration.ts index 5898392e1ff..d4b087f64df 100644 --- a/packages/core/src/amazonq/messages/chatMessageDuration.ts +++ b/packages/core/src/amazonq/messages/chatMessageDuration.ts @@ -83,16 +83,28 @@ export class AmazonQChatMessageDuration { // TODO: handle onContextCommand round trip time if (metrics.trigger !== 'onContextCommand') { + const editorReceivedMessage = durationFrom('chatMessageSent', 'editorReceivedMessage') + const featureReceivedMessage = durationFrom('editorReceivedMessage', 'featureReceivedMessage') + const messageDisplayed = durationFrom('featureReceivedMessage', 'messageDisplayed') + let reasonDesc = undefined + + /** + * Temporary include more information about outliers so that we can find out if the messages + * aren't being sent or the user is actually doing a different chat flow + */ + if ([editorReceivedMessage, featureReceivedMessage].some((val) => val > 30000 || val < -30000)) { + reasonDesc = JSON.stringify(metrics.events) + } telemetry.amazonq_chatRoundTrip.emit({ amazonqChatMessageSentTime: metrics.events.chatMessageSent ?? -1, - amazonqEditorReceivedMessageMs: durationFrom('chatMessageSent', 'editorReceivedMessage') ?? -1, - amazonqFeatureReceivedMessageMs: - durationFrom('editorReceivedMessage', 'featureReceivedMessage') ?? -1, - amazonqMessageDisplayedMs: durationFrom('featureReceivedMessage', 'messageDisplayed') ?? -1, + amazonqEditorReceivedMessageMs: editorReceivedMessage ?? -1, + amazonqFeatureReceivedMessageMs: featureReceivedMessage ?? -1, + amazonqMessageDisplayedMs: messageDisplayed ?? -1, source: metrics.trigger, duration: totalDuration, result: 'Succeeded', traceId: metrics.traceId, + ...(reasonDesc !== undefined ? { reasonDesc } : {}), }) }