Skip to content

Commit 0d60d42

Browse files
authored
pass missing required API param for chat code insertion (#4572)
1 parent f9b2063 commit 0d60d42

File tree

5 files changed

+32
-14
lines changed

5 files changed

+32
-14
lines changed

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/credentials/CodeWhispererClientAdaptor.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ interface CodeWhispererClientAdaptor : Disposable {
167167
fun sendChatUserModificationTelemetry(
168168
sessionId: String,
169169
requestId: String,
170-
language: String?,
170+
language: CodeWhispererProgrammingLanguage,
171171
modificationPercentage: Double
172172
): SendTelemetryEventResponse
173173

@@ -504,14 +504,16 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
504504
override fun sendChatUserModificationTelemetry(
505505
sessionId: String,
506506
requestId: String,
507-
language: String?,
507+
language: CodeWhispererProgrammingLanguage,
508508
modificationPercentage: Double
509509
): SendTelemetryEventResponse = bearerClient().sendTelemetryEvent { requestBuilder ->
510510
requestBuilder.telemetryEvent { telemetryEventBuilder ->
511511
telemetryEventBuilder.chatUserModificationEvent {
512512
it.conversationId(sessionId)
513513
it.messageId(requestId)
514-
it.programmingLanguage { langBuilder -> langBuilder.languageName(language) }
514+
it.programmingLanguage { langBuilder ->
515+
langBuilder.languageName(language.toCodeWhispererRuntimeLanguage().languageId)
516+
}
515517
it.modificationPercentage(modificationPercentage)
516518
}
517519
}

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererUnknownLanguage.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class CodeWhispererUnknownLanguage private constructor() : CodeWhispererProgramm
1111

1212
override fun toTelemetryType(): CodewhispererLanguage = CodewhispererLanguage.Unknown
1313

14+
override fun toCodeWhispererRuntimeLanguage(): CodeWhispererProgrammingLanguage = CodeWhispererPlainText.INSTANCE
15+
1416
companion object {
1517
const val ID = "unknown"
1618

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/telemetry/CodeWhispererTelemetryService.kt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import com.intellij.openapi.vfs.VirtualFile
1313
import kotlinx.coroutines.launch
1414
import org.apache.commons.collections4.queue.CircularFifoQueue
1515
import org.jetbrains.annotations.TestOnly
16-
import software.amazon.awssdk.services.codewhispererruntime.model.CodeAnalysisScope
1716
import software.amazon.awssdk.services.codewhispererruntime.model.CodeWhispererRuntimeException
1817
import software.aws.toolkits.core.utils.debug
1918
import software.aws.toolkits.core.utils.getLogger
@@ -370,12 +369,21 @@ class CodeWhispererTelemetryService {
370369
selectedIndex: Int,
371370
completionType: CodewhispererCompletionType
372371
) {
373-
val codewhispererLanguage = requestContext.fileContextInfo.programmingLanguage.toTelemetryType()
372+
val codewhispererLanguage = requestContext.fileContextInfo.programmingLanguage
374373
CodeWhispererUserModificationTracker.getInstance(requestContext.project).enqueue(
375374
AcceptedSuggestionEntry(
376-
time, vFile, range, suggestion, responseContext.sessionId, requestId, selectedIndex,
377-
requestContext.triggerTypeInfo.triggerType, completionType,
378-
codewhispererLanguage, null, null,
375+
time,
376+
vFile,
377+
range,
378+
suggestion,
379+
responseContext.sessionId,
380+
requestId,
381+
selectedIndex,
382+
requestContext.triggerTypeInfo.triggerType,
383+
completionType,
384+
codewhispererLanguage,
385+
null,
386+
null,
379387
requestContext.connection
380388
)
381389
)

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/telemetry/CodeWhispererUserModificationTracker.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@ import software.aws.toolkits.core.utils.debug
1919
import software.aws.toolkits.core.utils.getLogger
2020
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
2121
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
22+
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
23+
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererUnknownLanguage
24+
import software.aws.toolkits.jetbrains.services.codewhisperer.language.programmingLanguage
2225
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererUserGroupSettings
2326
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getConnectionStartUrl
2427
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.InsertedCodeModificationEntry
2528
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.getStartUrl
2629
import software.aws.toolkits.jetbrains.settings.AwsSettings
2730
import software.aws.toolkits.telemetry.AmazonqTelemetry
2831
import software.aws.toolkits.telemetry.CodewhispererCompletionType
29-
import software.aws.toolkits.telemetry.CodewhispererLanguage
3032
import software.aws.toolkits.telemetry.CodewhispererRuntime
3133
import software.aws.toolkits.telemetry.CodewhispererTelemetry
3234
import software.aws.toolkits.telemetry.CodewhispererTriggerType
@@ -50,7 +52,7 @@ data class AcceptedSuggestionEntry(
5052
val index: Int,
5153
val triggerType: CodewhispererTriggerType,
5254
val completionType: CodewhispererCompletionType,
53-
val codewhispererLanguage: CodewhispererLanguage,
55+
val codewhispererLanguage: CodeWhispererProgrammingLanguage,
5456
val codewhispererRuntime: CodewhispererRuntime?,
5557
val codewhispererRuntimeSource: String?,
5658
val connection: ToolkitConnection?
@@ -183,7 +185,7 @@ class CodeWhispererUserModificationTracker(private val project: Project) : Dispo
183185
CodewhispererTelemetry.userModification(
184186
project = project,
185187
codewhispererCompletionType = suggestion.completionType,
186-
codewhispererLanguage = suggestion.codewhispererLanguage,
188+
codewhispererLanguage = suggestion.codewhispererLanguage.toTelemetryType(),
187189
codewhispererModificationPercentage = percentage,
188190
codewhispererRequestId = suggestion.requestId,
189191
codewhispererRuntime = suggestion.codewhispererRuntime,
@@ -203,7 +205,11 @@ class CodeWhispererUserModificationTracker(private val project: Project) : Dispo
203205
cwsprChatModificationPercentage = percentage,
204206
credentialStartUrl = getStartUrl(project)
205207
)
206-
CodeWhispererClientAdaptor.getInstance(project).sendChatUserModificationTelemetry(insertedCode.conversationId, insertedCode.messageId, null, percentage)
208+
val lang = insertedCode.vFile?.programmingLanguage() ?: CodeWhispererUnknownLanguage.INSTANCE
209+
210+
CodeWhispererClientAdaptor.getInstance(
211+
project
212+
).sendChatUserModificationTelemetry(insertedCode.conversationId, insertedCode.messageId, lang, percentage)
207213
}
208214

209215
// temp disable user modfication event for further discussion on metric calculation

plugins/toolkit/jetbrains-core/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererTelemetryTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.actions.P
5757
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.actions.Resume
5858
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.nodes.PauseCodeWhispererNode
5959
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.nodes.ResumeCodeWhispererNode
60+
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererJava
6061
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererPython
6162
import software.aws.toolkits.jetbrains.services.codewhisperer.model.InvocationContext
6263
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererService
@@ -70,7 +71,6 @@ import software.aws.toolkits.jetbrains.services.telemetry.NoOpPublisher
7071
import software.aws.toolkits.jetbrains.services.telemetry.TelemetryService
7172
import software.aws.toolkits.jetbrains.settings.AwsSettings
7273
import software.aws.toolkits.telemetry.CodewhispererCompletionType
73-
import software.aws.toolkits.telemetry.CodewhispererLanguage
7474
import software.aws.toolkits.telemetry.CodewhispererRuntime
7575
import software.aws.toolkits.telemetry.CodewhispererSuggestionState
7676
import software.aws.toolkits.telemetry.CodewhispererTriggerType
@@ -144,7 +144,7 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
144144
0,
145145
CodewhispererTriggerType.OnDemand,
146146
CodewhispererCompletionType.Line,
147-
CodewhispererLanguage.Java,
147+
CodeWhispererJava.INSTANCE,
148148
CodewhispererRuntime.Java11,
149149
"",
150150
null

0 commit comments

Comments
 (0)