Skip to content

Commit 9231bf0

Browse files
authored
Add Toolkit Initialization metric (#1136)
Emit a metric indicating how long the toolkit takes to activate. This helps us find out the current performance, and long term try to drive it down below 250ms (per guidance from the VS Code team)
1 parent f143bad commit 9231bf0

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,7 @@
858858
"createRelease": "ts-node ./build-scripts/createRelease.ts"
859859
},
860860
"devDependencies": {
861-
"@aws-toolkits/telemetry": "0.0.20",
861+
"@aws-toolkits/telemetry": "0.0.30",
862862
"@types/adm-zip": "^0.4.32",
863863
"@types/async-lock": "^1.1.0",
864864
"@types/cross-spawn": "^6.0.0",

src/extension.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import {
3535
showQuickStartWebview,
3636
toastNewUser,
3737
} from './shared/extensionUtilities'
38-
import { getLogger } from './shared/logger'
38+
import { getLogger, Logger } from './shared/logger'
3939
import { activate as activateLogger } from './shared/logger/activation'
4040
import { DefaultRegionProvider } from './shared/regions/defaultRegionProvider'
4141
import { EndpointsProvider } from './shared/regions/endpointsProvider'
@@ -50,6 +50,7 @@ import {
5050
recordAwsHelpQuickstart,
5151
recordAwsReportPluginIssue,
5252
recordAwsShowExtensionSource,
53+
recordToolkitInit,
5354
} from './shared/telemetry/telemetry'
5455
import { ExtensionDisposableFiles } from './shared/utilities/disposableFiles'
5556
import { getChannelLogger } from './shared/utilities/vsCodeUtils'
@@ -58,6 +59,8 @@ import { activate as activateStepFunctions } from './stepFunctions/activation'
5859
let localize: nls.LocalizeFunc
5960

6061
export async function activate(context: vscode.ExtensionContext) {
62+
const activationStartedOn = Date.now()
63+
6164
localize = nls.loadMessageBundle()
6265

6366
ext.context = context
@@ -194,6 +197,8 @@ export async function activate(context: vscode.ExtensionContext) {
194197
toastNewUser(context)
195198

196199
await loginWithMostRecentCredentials(toolkitSettings, loginManager)
200+
201+
recordToolkitInitialization(activationStartedOn, getLogger())
197202
} catch (error) {
198203
const channelLogger = getChannelLogger(toolkitOutputChannel)
199204
channelLogger.error('AWS.channel.aws.toolkit.activation.error', 'Error Activating AWS Toolkit', error as Error)
@@ -262,6 +267,19 @@ function makeEndpointsProvider(): EndpointsProvider {
262267
return provider
263268
}
264269

270+
function recordToolkitInitialization(activationStartedOn: number, logger?: Logger) {
271+
try {
272+
const activationFinishedOn = Date.now()
273+
const duration = activationFinishedOn - activationStartedOn
274+
275+
recordToolkitInit({
276+
duration: duration,
277+
})
278+
} catch (err) {
279+
logger?.error(err)
280+
}
281+
}
282+
265283
// Unique extension entrypoint names, so that they can be obtained from the webpack bundle
266284
export const awsToolkitActivate = activate
267285
export const awsToolkitDeactivate = deactivate

0 commit comments

Comments
 (0)