Skip to content

Commit dbecc43

Browse files
authored
telemetry(amazonq): add raw accepted token count to code percentage e… (#4808)
* telemetry(amazonq): add raw accepted token count to code percentage event * use .first() instead
1 parent 8826f79 commit dbecc43

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/telemetry/CodeWhispererCodeCoverageTracker.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ abstract class CodeWhispererCodeCoverageTracker(
249249
CodewhispererTelemetry.codePercentage(
250250
project = null,
251251
codewhispererAcceptedTokens = acceptedTokensSize,
252+
codewhispererSuggestedTokens = rawAcceptedCharacterCount,
252253
codewhispererLanguage = language.toTelemetryType(),
253254
codewhispererPercentage = percentage,
254255
codewhispererTotalTokens = totalTokensSize,

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererTelemetryTest.kt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,9 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
531531

532532
CodeWhispererCodeCoverageTracker.getInstance(project, CodeWhispererPython.INSTANCE).dispose()
533533

534-
val acceptedTokensSize = pythonResponse.completions()[0].content().length - deletedTokenByUser
535-
val totalTokensSize = keystrokeInput.length + pythonResponse.completions()[0].content().length
534+
val rawAcceptedTokenSize = pythonResponse.completions().first().content().length
535+
val acceptedTokensSize = rawAcceptedTokenSize - deletedTokenByUser
536+
val totalTokensSize = keystrokeInput.length + rawAcceptedTokenSize
536537

537538
val metricCaptor = argumentCaptor<MetricEvent>()
538539
verify(batcher, atLeastOnce()).enqueue(metricCaptor.capture())
@@ -542,6 +543,7 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
542543
1,
543544
"codewhispererAcceptedTokens" to acceptedTokensSize.toString(),
544545
"codewhispererTotalTokens" to totalTokensSize.toString(),
546+
"codewhispererSuggestedTokens" to rawAcceptedTokenSize.toString(),
545547
"codewhispererPercentage" to CodeWhispererCodeCoverageTracker.calculatePercentage(acceptedTokensSize, totalTokensSize).toString(),
546548
"codewhispererUserGroup" to userGroup.name,
547549
)
@@ -578,18 +580,19 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
578580
CodeWhispererCodeCoverageTracker.getInstance(project, CodeWhispererPython.INSTANCE).dispose()
579581
}
580582

581-
val acceptedTokensSize = pythonResponse.completions()[0].content().length
582-
val totalTokensSize = keystrokeInput.length + pythonResponse.completions()[0].content().length + 1
583+
val rawAcceptedTokenSize = pythonResponse.completions().first().content().length
584+
val totalTokensSize = keystrokeInput.length + rawAcceptedTokenSize + 1
583585

584586
val metricCaptor = argumentCaptor<MetricEvent>()
585587
verify(batcher, atLeastOnce()).enqueue(metricCaptor.capture())
586588
assertEventsContainsFieldsAndCount(
587589
metricCaptor.allValues,
588590
codePercentage,
589591
1,
590-
"codewhispererAcceptedTokens" to acceptedTokensSize.toString(),
592+
"codewhispererAcceptedTokens" to rawAcceptedTokenSize.toString(),
593+
"codewhispererSuggestedTokens" to rawAcceptedTokenSize.toString(),
591594
"codewhispererTotalTokens" to totalTokensSize.toString(),
592-
"codewhispererPercentage" to CodeWhispererCodeCoverageTracker.calculatePercentage(acceptedTokensSize, totalTokensSize).toString(),
595+
"codewhispererPercentage" to CodeWhispererCodeCoverageTracker.calculatePercentage(rawAcceptedTokenSize, totalTokensSize).toString(),
593596
"codewhispererUserGroup" to userGroup.name,
594597
)
595598
}
@@ -631,12 +634,14 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
631634

632635
val metricCaptor = argumentCaptor<MetricEvent>()
633636
verify(batcher, atLeastOnce()).enqueue(metricCaptor.capture())
637+
val rawAcceptedTokenCount = pythonResponse.completions().first().content().length
634638
assertEventsContainsFieldsAndCount(
635639
metricCaptor.allValues,
636640
codePercentage,
637641
1,
638-
"codewhispererAcceptedTokens" to pythonResponse.completions()[0].content().length.toString(),
639-
"codewhispererTotalTokens" to (1 + pythonResponse.completions()[0].content().length).toString(),
642+
"codewhispererAcceptedTokens" to rawAcceptedTokenCount.toString(),
643+
"codewhispererSuggestedTokens" to rawAcceptedTokenCount.toString(),
644+
"codewhispererTotalTokens" to (1 + rawAcceptedTokenCount).toString(),
640645
"codewhispererPercentage" to "96",
641646
"codewhispererUserGroup" to userGroup.name,
642647
)
@@ -676,7 +681,8 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
676681
}
677682
CodeWhispererCodeCoverageTracker.getInstance(project, CodeWhispererPython.INSTANCE).dispose()
678683

679-
val acceptedTokensSize = "x, y):\n return x + y".length
684+
val rawAcceptedTokenSize = "x, y):\n return x + y".length
685+
val acceptedTokensSize = rawAcceptedTokenSize
680686
val totalTokensSize = "()".length + acceptedTokensSize
681687
val metricCaptor = argumentCaptor<MetricEvent>()
682688
verify(batcher, atLeastOnce()).enqueue(metricCaptor.capture())
@@ -685,6 +691,7 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
685691
codePercentage,
686692
1,
687693
"codewhispererAcceptedTokens" to acceptedTokensSize.toString(),
694+
"codewhispererSuggestedTokens" to rawAcceptedTokenSize.toString(),
688695
"codewhispererTotalTokens" to totalTokensSize.toString(),
689696
"codewhispererPercentage" to CodeWhispererCodeCoverageTracker.calculatePercentage(acceptedTokensSize, totalTokensSize).toString(),
690697
"codewhispererUserGroup" to userGroup.name,

0 commit comments

Comments
 (0)