Skip to content

Commit b85c223

Browse files
authored
telemetry: remove deprecated transform metrics #5538
1 parent a3bad6b commit b85c223

File tree

7 files changed

+9
-173
lines changed

7 files changed

+9
-173
lines changed

packages/core/src/amazonqGumby/chat/controller/controller.ts

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ import { CodeTransformTelemetryState } from '../../telemetry/codeTransformTeleme
5555
import { getAuthType } from '../../../codewhisperer/service/transformByQ/transformApiHandler'
5656
import DependencyVersions from '../../models/dependencies'
5757
import { getStringHash } from '../../../shared/utilities/textUtilities'
58-
import { getTelemetryReasonDesc } from '../../../shared/errors'
5958
import { getVersionData } from '../../../codewhisperer/service/transformByQ/transformMavenHandler'
6059

6160
// These events can be interactions within the chat,
@@ -255,8 +254,6 @@ export class GumbyController {
255254

256255
private async validateProjectsWithReplyOnError(message: any): Promise<TransformationCandidateProject[]> {
257256
let telemetryJavaVersion = JDKToTelemetryValue(JDKVersion.UNSUPPORTED) as CodeTransformJavaSourceVersionsAllowed
258-
259-
let err
260257
try {
261258
const validProjects = await telemetry.codeTransform_validateProject.run(async () => {
262259
telemetry.record({
@@ -288,17 +285,6 @@ export class GumbyController {
288285
} else {
289286
this.messenger.sendUnrecoverableErrorResponse('no-project-found', message.tabID)
290287
}
291-
err = e
292-
} finally {
293-
// TODO: remove deprecated metric once BI started using new metrics
294-
telemetry.codeTransform_projectDetails.emit({
295-
passive: true,
296-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
297-
codeTransformLocalJavaVersion: telemetryJavaVersion,
298-
result: err?.code ? MetadataResult.Fail : MetadataResult.Pass,
299-
reason: err?.code,
300-
reasonDesc: getTelemetryReasonDesc(err),
301-
})
302288
}
303289
return []
304290
}
@@ -391,20 +377,6 @@ export class GumbyController {
391377
)
392378
}
393379

394-
const projectPath = transformByQState.getProjectPath()
395-
// TODO: remove deprecated metric once BI started using new metrics
396-
telemetry.codeTransform_jobStartedCompleteFromPopupDialog.emit({
397-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
398-
codeTransformJavaSourceVersionsAllowed: JDKToTelemetryValue(
399-
transformByQState.getSourceJDKVersion()!
400-
) as CodeTransformJavaSourceVersionsAllowed,
401-
codeTransformJavaTargetVersionsAllowed: JDKToTelemetryValue(
402-
transformByQState.getTargetJDKVersion()
403-
) as CodeTransformJavaTargetVersionsAllowed,
404-
codeTransformProjectId: projectPath === undefined ? telemetryUndefined : getStringHash(projectPath),
405-
result: MetadataResult.Pass,
406-
})
407-
408380
// Pre-build project locally
409381
try {
410382
this.sessionStorage.getSession().conversationState = ConversationState.COMPILING

packages/core/src/codewhisperer/commands/startTransformByQ.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,6 @@ async function validateJavaHome(): Promise<boolean> {
120120
}
121121
}
122122
if (javaVersionUsedByMaven !== transformByQState.getSourceJDKVersion()) {
123-
// TODO: remove deprecated metric once BI started using new metrics
124-
telemetry.codeTransform_isDoubleClickedToTriggerInvalidProject.emit({
125-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
126-
codeTransformPreValidationError: 'ProjectJDKDiffersFromBuildSystemJDK',
127-
result: MetadataResult.Fail,
128-
reason: `${transformByQState.getSourceJDKVersion()} (project) - ${javaVersionUsedByMaven} (maven)`,
129-
})
130-
131123
// means either javaVersionUsedByMaven is undefined or it does not match the project JDK
132124
return false
133125
}
@@ -728,10 +720,10 @@ export async function postTransformationJob() {
728720

729721
// Note: IntelliJ implementation of ResultStatusMessage includes additional metadata such as jobId.
730722
telemetry.codeTransform_totalRunTime.emit({
723+
buildSystemVersion: mavenVersionInfoMessage,
731724
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
732725
codeTransformResultStatusMessage: resultStatusMessage,
733726
codeTransformRunTimeLatency: durationInMs,
734-
codeTransformLocalMavenVersion: mavenVersionInfoMessage,
735727
codeTransformLocalJavaVersion: javaVersionInfoMessage,
736728
result: resultStatusMessage === TransformByQStatus.Succeeded ? MetadataResult.Pass : MetadataResult.Fail,
737729
reason: resultStatusMessage,

packages/core/src/codewhisperer/service/transformByQ/transformApiHandler.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -289,12 +289,10 @@ interface ZipCodeResult {
289289

290290
export async function zipCode({ dependenciesFolder, humanInTheLoopFlag, modulePath, zipManifest }: IZipCodeParams) {
291291
let tempFilePath = undefined
292-
let zipStartTime = undefined
293292
let logFilePath = undefined
294293
let dependenciesCopied = false
295294
try {
296295
throwIfCancelled()
297-
zipStartTime = globals.clock.Date.now()
298296
const zip = new AdmZip()
299297

300298
// If no modulePath is passed in, we are not uploaded the source folder
@@ -335,11 +333,6 @@ export async function zipCode({ dependenciesFolder, humanInTheLoopFlag, modulePa
335333
dependencyFilesSize += (await fs.promises.stat(file)).size
336334
}
337335
getLogger().info(`CodeTransformation: dependency files size = ${dependencyFilesSize}`)
338-
// TODO: remove deprecated metric once BI started using new metrics
339-
telemetry.codeTransform_dependenciesCopied.emit({
340-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
341-
result: MetadataResult.Pass,
342-
})
343336
dependenciesCopied = true
344337
} else {
345338
if (zipManifest instanceof ZipManifest) {
@@ -365,11 +358,6 @@ export async function zipCode({ dependenciesFolder, humanInTheLoopFlag, modulePa
365358
fs.rmSync(dependenciesFolder.path, { recursive: true, force: true })
366359
}
367360
} catch (e: any) {
368-
telemetry.codeTransform_logGeneralError.emit({
369-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
370-
result: MetadataResult.Fail,
371-
reason: 'ZipCreationFailed',
372-
})
373361
throw Error('Failed to zip project')
374362
} finally {
375363
if (logFilePath) {
@@ -381,14 +369,6 @@ export async function zipCode({ dependenciesFolder, humanInTheLoopFlag, modulePa
381369

382370
const exceedsLimit = zipSize > CodeWhispererConstants.uploadZipSizeLimitInBytes
383371

384-
// TODO: remove deprecated metric once BI started using new metrics
385-
telemetry.codeTransform_jobCreateZipEndTime.emit({
386-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
387-
codeTransformTotalByteSize: zipSize,
388-
codeTransformRunTimeLatency: calculateTotalLatency(zipStartTime),
389-
result: exceedsLimit ? MetadataResult.Fail : MetadataResult.Pass,
390-
})
391-
392372
getLogger().info(`CodeTransformation: created ZIP of size ${zipSize} at ${tempFilePath}`)
393373

394374
if (exceedsLimit) {

packages/core/src/codewhisperer/service/transformByQ/transformMavenHandler.ts

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ import { FolderInfo, transformByQState } from '../../models/model'
77
import { getLogger } from '../../../shared/logger'
88
import * as CodeWhispererConstants from '../../models/constants'
99
import { spawnSync } from 'child_process' // Consider using ChildProcess once we finalize all spawnSync calls
10-
import {
11-
CodeTransformBuildCommand,
12-
CodeTransformMavenBuildCommand,
13-
telemetry,
14-
} from '../../../shared/telemetry/telemetry'
10+
import { CodeTransformBuildCommand, telemetry } from '../../../shared/telemetry/telemetry'
1511
import { CodeTransformTelemetryState } from '../../../amazonqGumby/telemetry/codeTransformTelemetryState'
1612
import { MetadataResult } from '../../../shared/telemetry/telemetryClient'
1713
import { ToolkitError } from '../../../shared/errors'
@@ -81,13 +77,6 @@ function installProjectDependencies(dependenciesFolder: FolderInfo, modulePath:
8177
const errorCode = (spawnResult.error as any).code ?? 'UNKNOWN'
8278
errorReason += `-${errorCode}`
8379
}
84-
// TODO: remove deprecated metric once BI started using new metrics
85-
telemetry.codeTransform_mvnBuildFailed.emit({
86-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
87-
codeTransformMavenBuildCommand: mavenBuildCommand as CodeTransformMavenBuildCommand,
88-
result: MetadataResult.Fail,
89-
reason: errorReason,
90-
})
9180

9281
// Explicitly set metric as failed since no exception was caught
9382
telemetry.record({ result: MetadataResult.Fail, reason: errorReason })
@@ -130,9 +119,6 @@ function copyProjectDependencies(dependenciesFolder: FolderInfo, modulePath: str
130119
errorLog += spawnResult.error ? JSON.stringify(spawnResult.error) : ''
131120
errorLog += `${spawnResult.stderr}\n${spawnResult.stdout}`
132121
transformByQState.appendToErrorLog(`${baseCommand} copy-dependencies failed: \n ${errorLog}`)
133-
getLogger().info(
134-
`CodeTransformation: Maven copy-dependencies command ${baseCommand} failed, but still continuing with transformation: ${errorLog}`
135-
)
136122
let errorReason = ''
137123
if (spawnResult.stdout) {
138124
errorReason = 'Maven Copy: CopyDependenciesExecutionError'
@@ -146,20 +132,17 @@ function copyProjectDependencies(dependenciesFolder: FolderInfo, modulePath: str
146132
const errorCode = (spawnResult.error as any).code ?? 'UNKNOWN'
147133
errorReason += `-${errorCode}`
148134
}
135+
getLogger().info(
136+
`CodeTransformation: Maven copy-dependencies command ${baseCommand} failed, but still continuing with transformation: ${errorReason}, log: ${errorLog}`
137+
)
138+
149139
let mavenBuildCommand = transformByQState.getMavenName()
150140
// slashes not allowed in telemetry
151141
if (mavenBuildCommand === './mvnw') {
152142
mavenBuildCommand = 'mvnw'
153143
} else if (mavenBuildCommand === '.\\mvnw.cmd') {
154144
mavenBuildCommand = 'mvnw.cmd'
155145
}
156-
// TODO: remove deprecated metric once BI started using new metrics
157-
telemetry.codeTransform_mvnBuildFailed.emit({
158-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
159-
codeTransformMavenBuildCommand: mavenBuildCommand as CodeTransformMavenBuildCommand,
160-
result: MetadataResult.Fail,
161-
reason: errorReason,
162-
})
163146
throw new Error('Maven copy-deps error')
164147
} else {
165148
transformByQState.appendToErrorLog(`${baseCommand} copy-dependencies succeeded`)

packages/core/src/codewhisperer/service/transformByQ/transformProjectValidationHandler.ts

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ import { getLogger } from '../../../shared/logger'
77
import * as CodeWhispererConstants from '../../models/constants'
88
import * as vscode from 'vscode'
99
import { spawnSync } from 'child_process' // Consider using ChildProcess once we finalize all spawnSync calls
10-
import { telemetry } from '../../../shared/telemetry/telemetry'
11-
import { CodeTransformTelemetryState } from '../../../amazonqGumby/telemetry/codeTransformTelemetryState'
12-
import { javapOutputToTelemetryValue } from '../../../amazonqGumby/telemetry/codeTransformTelemetry'
13-
import { MetadataResult } from '../../../shared/telemetry/telemetryClient'
1410
import {
1511
NoJavaProjectsFoundError,
1612
NoMavenJavaProjectsFoundError,
@@ -99,16 +95,9 @@ async function getProjectsValidToTransform(
9995
const errorCode = (spawnResult.error as any).code ?? 'UNKNOWN'
10096
errorReason += `-${errorCode}`
10197
}
102-
if (!onProjectFirstOpen) {
103-
// TODO: remove deprecated metric once BI started using new metrics
104-
telemetry.codeTransform_isDoubleClickedToTriggerInvalidProject.emit({
105-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
106-
codeTransformPreValidationError: 'NoJavaProject',
107-
codeTransformRuntimeError: errorReason,
108-
result: MetadataResult.Fail,
109-
reason: 'CannotDetermineJavaVersion',
110-
})
111-
}
98+
getLogger().error(
99+
`CodeTransformation: Error in running javap command = ${errorReason}, log = ${errorLog}`
100+
)
112101
} else {
113102
const majorVersionIndex = spawnResult.stdout.indexOf('major version: ')
114103
const javaVersion = spawnResult.stdout.slice(majorVersionIndex + 15, majorVersionIndex + 17).trim()
@@ -118,15 +107,6 @@ async function getProjectsValidToTransform(
118107
detectedJavaVersion = JDKVersion.JDK11
119108
} else {
120109
detectedJavaVersion = JDKVersion.UNSUPPORTED
121-
if (!onProjectFirstOpen) {
122-
// TODO: remove deprecated metric once BI started using new metrics
123-
telemetry.codeTransform_isDoubleClickedToTriggerInvalidProject.emit({
124-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
125-
codeTransformPreValidationError: 'UnsupportedJavaVersion',
126-
result: MetadataResult.Fail,
127-
reason: javapOutputToTelemetryValue(javaVersion),
128-
})
129-
}
130110
}
131111
}
132112
}
@@ -151,29 +131,13 @@ export async function validateOpenProjects(
151131
const javaProjects = await getJavaProjects(projects)
152132

153133
if (javaProjects.length === 0) {
154-
if (!onProjectFirstOpen) {
155-
// TODO: remove deprecated metric once BI started using new metrics
156-
telemetry.codeTransform_isDoubleClickedToTriggerInvalidProject.emit({
157-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
158-
codeTransformPreValidationError: 'NoJavaProject',
159-
result: MetadataResult.Fail,
160-
reason: 'CouldNotFindJavaProject',
161-
})
162-
}
163134
throw new NoJavaProjectsFoundError()
164135
}
165136

166137
const mavenJavaProjects = await getMavenJavaProjects(javaProjects)
167138
if (mavenJavaProjects.length === 0) {
168139
if (!onProjectFirstOpen) {
169140
void vscode.window.showErrorMessage(CodeWhispererConstants.noPomXmlFoundNotification)
170-
// TODO: remove deprecated metric once BI started using new metrics
171-
telemetry.codeTransform_isDoubleClickedToTriggerInvalidProject.emit({
172-
codeTransformSessionId: CodeTransformTelemetryState.instance.getSessionId(),
173-
codeTransformPreValidationError: 'UnsupportedBuildSystem',
174-
result: MetadataResult.Fail,
175-
reason: 'NoPomFileFound',
176-
})
177141
}
178142
throw new NoMavenJavaProjectsFoundError()
179143
}

0 commit comments

Comments
 (0)