Skip to content

Commit d8ba11d

Browse files
authored
fix: align transform user click telemetry behavior with VSCode implem… (#4080)
* fix: align transform user click telemetry behavior with VSCode implementation * telemetry: Change UserInitiatedStop to JobCanceled * remove logs that might contain PII
1 parent 5ddf97c commit d8ba11d

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerManager.kt

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -205,35 +205,38 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
205205

206206
fun validateAndStart(srcStartComponent: CodeTransformStartSrcComponents = CodeTransformStartSrcComponents.DevToolsStartButton) =
207207
projectCoroutineScope(project).launch {
208+
sendUserClickedTelemetry(srcStartComponent)
208209
if (isModernizationInProgress.getAndSet(true)) return@launch
209210
val validationResult = validate(project)
210211
runInEdt {
211212
if (validationResult.valid) {
212213
runModernize(validationResult.validatedBuildFiles) ?: isModernizationInProgress.set(false)
213214
} else {
214215
warnUnsupportedProject(validationResult.invalidReason)
216+
sendValidationResultTelemetry(validationResult)
215217
isModernizationInProgress.set(false)
216218
}
217219
}
218-
sendValidationResultTelemetry(validationResult, srcStartComponent)
219220
}
220221

221-
private fun sendValidationResultTelemetry(validationResult: ValidationResult, srcStartComponent: CodeTransformStartSrcComponents) {
222+
private fun sendUserClickedTelemetry(srcStartComponent: CodeTransformStartSrcComponents) {
222223
CodeTransformTelemetryState.instance.setSessionId()
223224
CodeTransformTelemetryState.instance.setStartTime()
224-
if (validationResult.valid) {
225-
CodetransformTelemetry.isDoubleClickedToTriggerUserModal(
226-
codeTransformStartSrcComponents = srcStartComponent,
225+
CodetransformTelemetry.isDoubleClickedToTriggerUserModal(
226+
codeTransformStartSrcComponents = srcStartComponent,
227+
codeTransformSessionId = CodeTransformTelemetryState.instance.getSessionId(),
228+
)
229+
}
230+
231+
private fun sendValidationResultTelemetry(validationResult: ValidationResult) {
232+
if (!validationResult.valid) {
233+
CodetransformTelemetry.isDoubleClickedToTriggerInvalidProject(
234+
codeTransformPreValidationError = validationResult.invalidTelemetryReason.category ?: CodeTransformPreValidationError.Unknown,
227235
codeTransformSessionId = CodeTransformTelemetryState.instance.getSessionId(),
236+
result = Result.Failed,
237+
reason = validationResult.invalidTelemetryReason.additonalInfo
228238
)
229-
return
230239
}
231-
CodetransformTelemetry.isDoubleClickedToTriggerInvalidProject(
232-
codeTransformPreValidationError = validationResult.invalidTelemetryReason.category ?: CodeTransformPreValidationError.Unknown,
233-
codeTransformSessionId = CodeTransformTelemetryState.instance.getSessionId(),
234-
result = Result.Failed,
235-
reason = validationResult.invalidTelemetryReason.additonalInfo
236-
)
237240
}
238241

239242
fun stopModernize() {
@@ -603,7 +606,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
603606
// Code successfully stopped toast will display when post job is run after this
604607
CodetransformTelemetry.totalRunTime(
605608
codeTransformSessionId = CodeTransformTelemetryState.instance.getSessionId(),
606-
codeTransformResultStatusMessage = "User initiated stop",
609+
codeTransformResultStatusMessage = "JobCanceled",
607610
codeTransformRunTimeLatency = calculateTotalLatency(CodeTransformTelemetryState.instance.getStartTime(), Instant.now())
608611
)
609612
}
@@ -612,7 +615,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
612615
notifyTransformationFailedToStop(e.localizedMessage)
613616
CodetransformTelemetry.totalRunTime(
614617
codeTransformSessionId = CodeTransformTelemetryState.instance.getSessionId(),
615-
codeTransformResultStatusMessage = "User initiated stop",
618+
codeTransformResultStatusMessage = "JobCanceled",
616619
codeTransformRunTimeLatency = calculateTotalLatency(CodeTransformTelemetryState.instance.getStartTime(), Instant.now())
617620
)
618621
}

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerSession.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import software.amazon.awssdk.services.codewhispererruntime.model.Transformation
1414
import software.amazon.awssdk.services.codewhispererruntime.model.TransformationLanguage
1515
import software.amazon.awssdk.services.codewhispererruntime.model.TransformationPlan
1616
import software.amazon.awssdk.services.codewhispererruntime.model.TransformationStatus
17-
import software.aws.toolkits.core.utils.error
1817
import software.aws.toolkits.core.utils.getLogger
1918
import software.aws.toolkits.core.utils.warn
2019
import software.aws.toolkits.jetbrains.core.AwsClientManager
@@ -94,9 +93,9 @@ class CodeModernizerSession(
9493
codeTransformRunTimeLatency = calculateTotalLatency(startTime, Instant.now())
9594
)
9695
} catch (e: Exception) {
97-
LOG.error(e) { e.message.toString() }
96+
val errorMessage = "Failed to upload archive"
9897
CodetransformTelemetry.logGeneralError(
99-
codeTransformApiErrorMessage = e.message.toString(),
98+
codeTransformApiErrorMessage = errorMessage,
10099
codeTransformSessionId = CodeTransformTelemetryState.instance.getSessionId(),
101100
)
102101
state.currentJobStatus = TransformationStatus.FAILED
@@ -124,11 +123,11 @@ class CodeModernizerSession(
124123
LOG.warn { e.localizedMessage }
125124
return CodeModernizerStartJobResult.Disposed
126125
} catch (e: Exception) {
127-
LOG.warn { e.message.toString() }
126+
val errorMessage = "Failed to start job"
128127
state.putJobHistory(sessionContext, "FAILED TO START")
129128
state.currentJobStatus = TransformationStatus.FAILED
130129
CodetransformTelemetry.logGeneralError(
131-
codeTransformApiErrorMessage = e.message.toString(),
130+
codeTransformApiErrorMessage = errorMessage,
132131
codeTransformSessionId = CodeTransformTelemetryState.instance.getSessionId(),
133132
)
134133
CodeModernizerStartJobResult.UnableToStartJob(e.message.toString())

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CodeModernizerSessionContext.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,10 @@ data class CodeModernizerSessionContext(
138138
}.toFile()
139139
if (depDirectory != null) ZipCreationResult.Succeeded(outputFile) else ZipCreationResult.Missing1P(outputFile)
140140
} catch (e: NoSuchFileException) {
141-
throw CodeModernizerException("Source folder not found: ${root.path}")
141+
throw CodeModernizerException("Source folder not found")
142142
} catch (e: Exception) {
143143
LOG.error(e) { e.message.toString() }
144-
throw CodeModernizerException("Unknown exception occurred ${root.path}")
144+
throw CodeModernizerException("Unknown exception occurred")
145145
} finally {
146146
depDirectory?.deleteRecursively()
147147
}

0 commit comments

Comments
 (0)