Skip to content

Commit d1e5dc8

Browse files
authored
chore: remove unused telemetry method for /doc (#5248)
1 parent b45a041 commit d1e5dc8

File tree

5 files changed

+0
-191
lines changed

5 files changed

+0
-191
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/DocApp.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,7 @@ class DocApp : AmazonQApp {
8383
is IncomingDocMessage.TabRemoved -> inboundAppMessagesHandler.processTabRemovedMessage(message)
8484
is IncomingDocMessage.AuthFollowUpWasClicked -> inboundAppMessagesHandler.processAuthFollowUpClick(message)
8585
is IncomingDocMessage.FollowupClicked -> inboundAppMessagesHandler.processFollowupClickedMessage(message)
86-
is IncomingDocMessage.ChatItemVotedMessage -> inboundAppMessagesHandler.processChatItemVotedMessage(message)
87-
is IncomingDocMessage.ChatItemFeedbackMessage -> inboundAppMessagesHandler.processChatItemFeedbackMessage(message)
8886
is IncomingDocMessage.ClickedLink -> inboundAppMessagesHandler.processLinkClick(message)
89-
is IncomingDocMessage.InsertCodeAtCursorPosition -> inboundAppMessagesHandler.processInsertCodeAtCursorPosition(message)
9087
is IncomingDocMessage.OpenDiff -> inboundAppMessagesHandler.processOpenDiff(message)
9188
is IncomingDocMessage.FileClicked -> inboundAppMessagesHandler.processFileClicked(message)
9289
is IncomingDocMessage.StopDocGeneration -> inboundAppMessagesHandler.processStopDocGeneration(message)

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/InboundAppMessagesHandler.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@ interface InboundAppMessagesHandler {
1111
suspend fun processTabRemovedMessage(message: IncomingDocMessage.TabRemoved)
1212
suspend fun processAuthFollowUpClick(message: IncomingDocMessage.AuthFollowUpWasClicked)
1313
suspend fun processFollowupClickedMessage(message: IncomingDocMessage.FollowupClicked)
14-
suspend fun processChatItemVotedMessage(message: IncomingDocMessage.ChatItemVotedMessage)
15-
suspend fun processChatItemFeedbackMessage(message: IncomingDocMessage.ChatItemFeedbackMessage)
1614
suspend fun processLinkClick(message: IncomingDocMessage.ClickedLink)
17-
suspend fun processInsertCodeAtCursorPosition(message: IncomingDocMessage.InsertCodeAtCursorPosition)
1815
suspend fun processOpenDiff(message: IncomingDocMessage.OpenDiff)
1916
suspend fun processFileClicked(message: IncomingDocMessage.FileClicked)
2017
suspend fun processStopDocGeneration(message: IncomingDocMessage.StopDocGeneration)

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/controller/DocController.kt

Lines changed: 0 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,19 @@
33

44
package software.aws.toolkits.jetbrains.services.amazonqDoc.controller
55

6-
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
76
import com.intellij.diff.DiffContentFactory
87
import com.intellij.diff.DiffManager
98
import com.intellij.diff.contents.EmptyContent
109
import com.intellij.diff.requests.SimpleDiffRequest
1110
import com.intellij.diff.util.DiffUserDataKeys
1211
import com.intellij.ide.BrowserUtil
1312
import com.intellij.openapi.application.runInEdt
14-
import com.intellij.openapi.command.WriteCommandAction
15-
import com.intellij.openapi.editor.Caret
16-
import com.intellij.openapi.editor.Editor
17-
import com.intellij.openapi.fileEditor.FileEditorManager
1813
import com.intellij.openapi.vfs.VfsUtil
1914
import com.intellij.openapi.wm.ToolWindowManager
2015
import kotlinx.coroutines.withContext
2116
import software.amazon.awssdk.services.codewhispererruntime.model.DocGenerationFolderLevel
2217
import software.amazon.awssdk.services.codewhispererruntime.model.DocGenerationInteractionType
2318
import software.amazon.awssdk.services.codewhispererruntime.model.DocGenerationUserDecision
24-
import software.amazon.awssdk.services.toolkittelemetry.model.Sentiment
2519
import software.aws.toolkits.core.utils.debug
2620
import software.aws.toolkits.core.utils.error
2721
import software.aws.toolkits.core.utils.getLogger
@@ -37,7 +31,6 @@ import software.aws.toolkits.jetbrains.services.amazonqDoc.DEFAULT_RETRY_LIMIT
3731
import software.aws.toolkits.jetbrains.services.amazonqDoc.DocException
3832
import software.aws.toolkits.jetbrains.services.amazonqDoc.FEATURE_NAME
3933
import software.aws.toolkits.jetbrains.services.amazonqDoc.InboundAppMessagesHandler
40-
import software.aws.toolkits.jetbrains.services.amazonqDoc.ModifySourceFolderErrorReason
4134
import software.aws.toolkits.jetbrains.services.amazonqDoc.ZipFileError
4235
import software.aws.toolkits.jetbrains.services.amazonqDoc.cancellingProgressField
4336
import software.aws.toolkits.jetbrains.services.amazonqDoc.createUserFacingErrorMessage
@@ -74,13 +67,7 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.session.Delete
7467
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.session.NewFileZipInfo
7568
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.session.SessionStatePhase
7669
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.util.CancellationTokenSource
77-
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.FeedbackComment
78-
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.getStartUrl
79-
import software.aws.toolkits.jetbrains.services.telemetry.TelemetryService
80-
import software.aws.toolkits.jetbrains.utils.notifyError
8170
import software.aws.toolkits.resources.message
82-
import software.aws.toolkits.telemetry.AmazonqTelemetry
83-
import software.aws.toolkits.telemetry.Result
8471
import java.util.UUID
8572

8673
enum class DocGenerationStep {
@@ -343,84 +330,13 @@ class DocController(
343330
}
344331
}
345332

346-
override suspend fun processChatItemVotedMessage(message: IncomingDocMessage.ChatItemVotedMessage) {
347-
logger.debug { "$FEATURE_NAME: Processing ChatItemVotedMessage: $message" }
348-
349-
val session = chatSessionStorage.getSession(message.tabId, context.project)
350-
when (message.vote) {
351-
"upvote" -> {
352-
AmazonqTelemetry.codeGenerationThumbsUp(
353-
amazonqConversationId = session.conversationId,
354-
credentialStartUrl = getStartUrl(project = context.project)
355-
)
356-
}
357-
358-
"downvote" -> {
359-
AmazonqTelemetry.codeGenerationThumbsDown(
360-
amazonqConversationId = session.conversationId,
361-
credentialStartUrl = getStartUrl(project = context.project)
362-
)
363-
}
364-
}
365-
}
366-
367-
override suspend fun processChatItemFeedbackMessage(message: IncomingDocMessage.ChatItemFeedbackMessage) {
368-
logger.debug { "$FEATURE_NAME: Processing ChatItemFeedbackMessage: ${message.comment}" }
369-
370-
val session = getSessionInfo(message.tabId)
371-
372-
val comment = FeedbackComment(
373-
conversationId = session.conversationId,
374-
userComment = message.comment.orEmpty(),
375-
reason = message.selectedOption,
376-
messageId = message.messageId,
377-
type = "doc-chat-answer-feedback"
378-
)
379-
380-
try {
381-
TelemetryService.getInstance().sendFeedback(
382-
sentiment = Sentiment.NEGATIVE,
383-
comment = objectMapper.writeValueAsString(comment),
384-
)
385-
logger.info { "$FEATURE_NAME answer feedback sent: \"Negative\"" }
386-
} catch (e: Throwable) {
387-
e.notifyError(message("feedback.submit_failed", e))
388-
logger.warn(e) { "Failed to submit feedback" }
389-
return
390-
}
391-
}
392-
393333
override suspend fun processLinkClick(message: IncomingDocMessage.ClickedLink) {
394334
BrowserUtil.browse(message.link)
395335
}
396336

397-
override suspend fun processInsertCodeAtCursorPosition(message: IncomingDocMessage.InsertCodeAtCursorPosition) {
398-
logger.debug { "$FEATURE_NAME: Processing InsertCodeAtCursorPosition: $message" }
399-
400-
withContext(EDT) {
401-
val editor: Editor = FileEditorManager.getInstance(context.project).selectedTextEditor ?: return@withContext
402-
403-
val caret: Caret = editor.caretModel.primaryCaret
404-
val offset: Int = caret.offset
405-
406-
WriteCommandAction.runWriteCommandAction(context.project) {
407-
if (caret.hasSelection()) {
408-
editor.document.deleteString(caret.selectionStart, caret.selectionEnd)
409-
}
410-
editor.document.insertString(offset, message.code)
411-
}
412-
}
413-
}
414-
415337
override suspend fun processOpenDiff(message: IncomingDocMessage.OpenDiff) {
416338
val session = getSessionInfo(message.tabId)
417339

418-
AmazonqTelemetry.isReviewedChanges(
419-
amazonqConversationId = session.conversationId,
420-
enabled = true,
421-
credentialStartUrl = getStartUrl(project = context.project)
422-
)
423-
424340
val project = context.project
425341
val sessionState = session.sessionState
426342

@@ -528,13 +444,6 @@ class DocController(
528444
}
529445
}
530446

531-
AmazonqTelemetry.isAcceptedCodeChanges(
532-
amazonqNumberOfFilesAccepted = (filePaths.filterNot { it.rejected }.size + deletedFiles.filterNot { it.rejected }.size) * 1.0,
533-
amazonqConversationId = session.conversationId,
534-
enabled = true,
535-
credentialStartUrl = getStartUrl(project = context.project)
536-
)
537-
538447
session.insertChanges(
539448
filePaths = filePaths.filterNot { it.rejected },
540449
deletedFiles = deletedFiles.filterNot { it.rejected }
@@ -572,14 +481,7 @@ class DocController(
572481
}
573482

574483
private suspend fun newTask(tabId: String) {
575-
val session = getSessionInfo(tabId)
576-
val sessionLatency = System.currentTimeMillis() - session.sessionStartTime
577484
docGenerationTask = DocGenerationTask()
578-
AmazonqTelemetry.endChat(
579-
amazonqConversationId = session.conversationId,
580-
amazonqEndOfTheConversationLatency = sessionLatency.toDouble(),
581-
credentialStartUrl = getStartUrl(project = context.project)
582-
)
583485
chatSessionStorage.deleteSession(tabId)
584486

585487
messenger.sendAnswer(
@@ -627,25 +529,9 @@ class DocController(
627529

628530
messenger.sendChatInputEnabledMessage(tabId = tabId, enabled = false)
629531
docGenerationTask.reset()
630-
631-
val session = getSessionInfo(tabId)
632-
val sessionLatency = System.currentTimeMillis() - session.sessionStartTime
633-
AmazonqTelemetry.endChat(
634-
amazonqConversationId = session.conversationId,
635-
amazonqEndOfTheConversationLatency = sessionLatency.toDouble(),
636-
credentialStartUrl = getStartUrl(project = context.project)
637-
)
638532
}
639533

640534
private suspend fun provideFeedbackAndRegenerateCode(tabId: String) {
641-
val session = getSessionInfo(tabId)
642-
643-
AmazonqTelemetry.isProvideFeedbackForCodeGen(
644-
amazonqConversationId = session.conversationId,
645-
enabled = true,
646-
credentialStartUrl = getStartUrl(project = context.project)
647-
)
648-
649535
// Unblock the message button
650536
messenger.sendAsyncEventProgress(tabId = tabId, inProgress = false)
651537

@@ -1007,16 +893,11 @@ class DocController(
1007893
val currentSourceFolder = session.context.selectedSourceFolder
1008894
val projectRoot = session.context.projectRoot
1009895

1010-
var result: Result = Result.Failed
1011-
var reason: ModifySourceFolderErrorReason? = null
1012-
1013896
withContext(EDT) {
1014897
val selectedFolder = selectFolder(context.project, currentSourceFolder)
1015898
// No folder was selected
1016899
if (selectedFolder == null) {
1017900
logger.info { "Cancelled dialog and not selected any folder" }
1018-
1019-
reason = ModifySourceFolderErrorReason.ClosedBeforeSelection
1020901
return@withContext
1021902
}
1022903

@@ -1029,8 +910,6 @@ class DocController(
1029910
messageType = DocMessageType.Answer,
1030911
message = message("amazonqFeatureDev.follow_up.incorrect_source_folder"),
1031912
)
1032-
1033-
reason = ModifySourceFolderErrorReason.NotInWorkspaceFolder
1034913
return@withContext
1035914
}
1036915
if (selectedFolder.path == projectRoot.path) {
@@ -1042,21 +921,13 @@ class DocController(
1042921
logger.info { "Selected correct folder inside workspace: ${selectedFolder.path}" }
1043922

1044923
session.context.selectedSourceFolder = selectedFolder
1045-
result = Result.Succeeded
1046924

1047925
promptForDocTarget(tabId)
1048926

1049927
messenger.sendChatInputEnabledMessage(tabId, enabled = false)
1050928

1051929
messenger.sendUpdatePlaceholder(tabId = tabId, newPlaceholder = message("amazonqDoc.prompt.placeholder"))
1052930
}
1053-
1054-
AmazonqTelemetry.modifySourceFolder(
1055-
amazonqConversationId = session.conversationId,
1056-
credentialStartUrl = getStartUrl(project = context.project),
1057-
result = result,
1058-
reason = reason?.toString()
1059-
)
1060931
}
1061932

1062933
private fun sendDocGenerationTelemetry(tabId: String) {
@@ -1086,7 +957,5 @@ class DocController(
1086957

1087958
companion object {
1088959
private val logger = getLogger<DocController>()
1089-
1090-
private val objectMapper = jacksonObjectMapper()
1091960
}
1092961
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/session/DocGenerationState.kt

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.session.Sessio
3030
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.session.registerDeletedFiles
3131
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.session.registerNewFiles
3232
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.util.CancellationTokenSource
33-
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.getStartUrl
3433
import software.aws.toolkits.resources.message
35-
import software.aws.toolkits.telemetry.AmazonqTelemetry
36-
import software.aws.toolkits.telemetry.MetricResult
3734

3835
private val logger = getLogger<DocGenerationState>()
3936

@@ -43,20 +40,13 @@ class DocGenerationState(
4340
val config: SessionStateConfig,
4441
val uploadId: String,
4542
val currentIteration: Int,
46-
val repositorySize: Double,
4743
val messenger: MessagePublisher,
4844
var codeGenerationRemainingIterationCount: Int? = null,
4945
var codeGenerationTotalIterationCount: Int? = null,
5046
override val phase: SessionStatePhase?,
5147
override var token: CancellationTokenSource?,
5248
) : SessionState {
5349
override suspend fun interact(action: SessionStateAction): SessionStateInteraction<SessionState> {
54-
val startTime = System.currentTimeMillis()
55-
var result: MetricResult = MetricResult.Succeeded
56-
var failureReason: String? = null
57-
var codeGenerationWorkflowStatus: CodeGenerationWorkflowStatus = CodeGenerationWorkflowStatus.COMPLETE
58-
var numberOfReferencesGenerated: Int? = null
59-
var numberOfFilesGenerated: Int? = null
6050
try {
6151
val response = config.amazonQCodeGenService.startTaskAssistCodeGeneration(
6252
conversationId = config.conversationId,
@@ -66,8 +56,6 @@ class DocGenerationState(
6656
)
6757
val mode = if (action.msg == message("amazonqDoc.session.create")) Mode.CREATE else null
6858
val codeGenerationResult = generateCode(codeGenerationId = response.codeGenerationId(), mode, token)
69-
numberOfReferencesGenerated = codeGenerationResult.references.size
70-
numberOfFilesGenerated = codeGenerationResult.newFiles.size
7159
codeGenerationRemainingIterationCount = codeGenerationResult.codeGenerationRemainingIterationCount
7260
codeGenerationTotalIterationCount = codeGenerationResult.codeGenerationTotalIterationCount
7361

@@ -94,25 +82,7 @@ class DocGenerationState(
9482
)
9583
} catch (e: Exception) {
9684
logger.warn(e) { "$FEATURE_NAME: Code generation failed: ${e.message}" }
97-
result = MetricResult.Failed
98-
failureReason = e.javaClass.simpleName
99-
codeGenerationWorkflowStatus = CodeGenerationWorkflowStatus.FAILED
100-
10185
throw e
102-
} finally {
103-
AmazonqTelemetry.codeGenerationInvoke(
104-
amazonqConversationId = config.conversationId,
105-
amazonqCodeGenerationResult = codeGenerationWorkflowStatus.toString(),
106-
amazonqGenerateCodeIteration = currentIteration.toDouble(),
107-
amazonqNumberOfReferences = numberOfReferencesGenerated?.toDouble(),
108-
amazonqGenerateCodeResponseLatency = (System.currentTimeMillis() - startTime).toDouble(),
109-
amazonqNumberOfFilesGenerated = numberOfFilesGenerated?.toDouble(),
110-
amazonqRepositorySize = repositorySize,
111-
result = result,
112-
reason = failureReason,
113-
duration = (System.currentTimeMillis() - startTime).toDouble(),
114-
credentialStartUrl = getStartUrl(config.amazonQCodeGenService.project)
115-
)
11686
}
11787
}
11888
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/session/PrepareDocGenerationState.kt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.session.Sessio
1717
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.util.CancellationTokenSource
1818
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.util.deleteUploadArtifact
1919
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.util.uploadArtifactToS3
20-
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.getStartUrl
21-
import software.aws.toolkits.telemetry.AmazonqTelemetry
22-
import software.aws.toolkits.telemetry.AmazonqUploadIntent
23-
import software.aws.toolkits.telemetry.Result
2420

2521
private val logger = getLogger<PrepareDocGenerationState>()
2622

@@ -40,10 +36,6 @@ class PrepareDocGenerationState(
4036
) : SessionState {
4137
override val phase = SessionStatePhase.CODEGEN
4238
override suspend fun interact(action: SessionStateAction): SessionStateInteraction<SessionState> {
43-
val startTime = System.currentTimeMillis()
44-
var result: Result = Result.Succeeded
45-
var failureReason: String? = null
46-
var failureReasonDesc: String? = null
4739
var zipFileLength: Long? = null
4840
val nextState: SessionState
4941
try {
@@ -76,30 +68,14 @@ class PrepareDocGenerationState(
7668
config = this.config,
7769
uploadId = this.uploadId,
7870
currentIteration = this.currentIteration,
79-
repositorySize = zipFileLength.toDouble(),
8071
messenger = messenger,
8172
phase = phase,
8273
token = this.token
8374
)
8475
} catch (e: Exception) {
85-
result = Result.Failed
86-
failureReason = e.javaClass.simpleName
87-
failureReasonDesc = e.message
8876
logger.warn(e) { "$FEATURE_NAME: Code uploading failed: ${e.message}" }
8977
throw e
90-
} finally {
91-
AmazonqTelemetry.createUpload(
92-
amazonqConversationId = config.conversationId,
93-
amazonqRepositorySize = zipFileLength?.toDouble(),
94-
amazonqUploadIntent = AmazonqUploadIntent.TASKASSISTPLANNING,
95-
result = result,
96-
reason = failureReason,
97-
reasonDesc = failureReasonDesc,
98-
duration = (System.currentTimeMillis() - startTime).toDouble(),
99-
credentialStartUrl = getStartUrl(config.amazonQCodeGenService.project)
100-
)
10178
}
102-
// It is essential to interact with the next state outside of try-catch block for the telemetry to capture events for the states separately
10379
return nextState.interact(action)
10480
}
10581
}

0 commit comments

Comments
 (0)