mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-13 17:22:15 -05:00
Add telemetry to custom provider endpoints (#24229)
* add telemetry to custom provider endpoints * add reload ads telemetry * change import * add telemetry error event * use vscode getpackageinfo * remove getpackageinfo, fix semicolon * use enum for telemetry message * add enum, use error object instead of message for telemetry
This commit is contained in:
@@ -526,6 +526,7 @@
|
||||
"@azure/storage-blob": "^12.13.0",
|
||||
"axios": "^0.27.2",
|
||||
"lockfile": "1.0.4",
|
||||
"@microsoft/ads-extension-telemetry": "^3.0.1",
|
||||
"node-fetch": "^2.6.7",
|
||||
"qs": "^6.9.1",
|
||||
"universalify": "^0.1.2",
|
||||
|
||||
@@ -53,6 +53,8 @@ export const CustomProviderSettings = 'customProviderSettings';
|
||||
|
||||
export const CustomProviderSettingsSection = AzureSection + '.' + CustomProviderSettings;
|
||||
|
||||
export const PackageName = 'Microsoft.azurecore';
|
||||
|
||||
/** MSAL Account version */
|
||||
export const AccountVersion = '2.0';
|
||||
|
||||
|
||||
25
extensions/azurecore/src/telemetry.ts
Normal file
25
extensions/azurecore/src/telemetry.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as vscode from 'vscode';
|
||||
import AdsTelemetryReporter from '@microsoft/ads-extension-telemetry';
|
||||
import { IPackageInfo } from './utils';
|
||||
import * as Constants from './constants';
|
||||
|
||||
|
||||
const packageInfo = vscode.extensions.getExtension(Constants.PackageName)?.packageJSON as IPackageInfo | undefined;
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
export const TelemetryReporter = new AdsTelemetryReporter<TelemetryViews, TelemetryAction>(packageInfo!.name, packageInfo!.version, packageInfo!.aiKey);
|
||||
|
||||
export enum TelemetryViews {
|
||||
AzureCore = 'AzureCore'
|
||||
}
|
||||
|
||||
export enum TelemetryAction {
|
||||
LoadCustomEndpointsError = 'LoadCustomEndpointsError',
|
||||
LoadCustomEndpointsSuccess = 'LoadCustomEndpointsSuccess',
|
||||
ReloadAdsCustomEndpoints = 'ReloadAdsCustomEndpoints'
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import { HttpsProxyAgentOptions } from 'https-proxy-agent';
|
||||
import { ProviderSettings, ProviderSettingsJson, SettingIds } from './account-provider/interfaces';
|
||||
import { AzureResource } from 'azdata';
|
||||
import { Logger } from './utils/Logger';
|
||||
import { TelemetryAction, TelemetryReporter, TelemetryViews } from './telemetry';
|
||||
|
||||
const localize = nls.loadMessageBundle();
|
||||
const configProxy = 'proxy';
|
||||
@@ -172,6 +173,7 @@ export function updateCustomCloudProviderSettings(defaultSettings: ProviderSetti
|
||||
const impactProvider = changeEvent.affectsConfiguration(constants.CustomProviderSettingsSection);
|
||||
if (impactProvider === true) {
|
||||
await displayReloadAds(constants.CustomProviderSettingsSection);
|
||||
TelemetryReporter.sendTelemetryEvent(TelemetryAction.ReloadAdsCustomEndpoints);
|
||||
}
|
||||
});
|
||||
if (providerSettingsJson && providerSettingsJson.length > 0) {
|
||||
@@ -183,10 +185,12 @@ export function updateCustomCloudProviderSettings(defaultSettings: ProviderSetti
|
||||
Logger.info(`Custom provider settings loaded for ${cloudProvider.settings.metadata.displayName}`);
|
||||
}
|
||||
void vscode.window.showInformationMessage(localize('providerSettings.success', 'Successfully loaded custom endpoints from settings'));
|
||||
TelemetryReporter.sendTelemetryEvent(TelemetryAction.LoadCustomEndpointsSuccess);
|
||||
|
||||
} catch (error) {
|
||||
void vscode.window.showErrorMessage(localize('providerSettings.error', 'Could not load endpoints from settings, please check the logs for more details.'));
|
||||
console.error(error.message);
|
||||
TelemetryReporter.sendErrorEvent2(TelemetryViews.AzureCore, TelemetryAction.LoadCustomEndpointsError, error);
|
||||
throw Error(error.message);
|
||||
}
|
||||
}
|
||||
@@ -298,6 +302,11 @@ export function getResourceTypeIcon(appContext: AppContext, type: string): strin
|
||||
return '';
|
||||
}
|
||||
|
||||
export interface IPackageInfo {
|
||||
name: string;
|
||||
version: string;
|
||||
aiKey: string;
|
||||
}
|
||||
|
||||
export function getProxyEnabledHttpClient(): HttpClient {
|
||||
const proxy = <string>getHttpConfiguration().get(configProxy);
|
||||
|
||||
@@ -334,6 +334,13 @@
|
||||
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
|
||||
integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
|
||||
|
||||
"@microsoft/ads-extension-telemetry@^3.0.1":
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@microsoft/ads-extension-telemetry/-/ads-extension-telemetry-3.0.2.tgz#edcbebbf5ab8ea183a7198ea8056a51f8ac76653"
|
||||
integrity sha512-h0ZLCMw3I/wcQWofr25MPSdYDd6CBwPG3XSJdgDwNdlVKUTSGL3QoBxspxtgF33yH5Zod7s+l/g7exbldDhY0Q==
|
||||
dependencies:
|
||||
"@vscode/extension-telemetry" "0.6.1"
|
||||
|
||||
"@microsoft/azdata-test@^3.0.3":
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@microsoft/azdata-test/-/azdata-test-3.0.3.tgz#a1b5bbead5412ac7925129e6199d724bfc8117ee"
|
||||
@@ -491,6 +498,11 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@vscode/extension-telemetry@0.6.1":
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/@vscode/extension-telemetry/-/extension-telemetry-0.6.1.tgz#f8d1f7145baf932b75077c48107edff48501fc14"
|
||||
integrity sha512-Y4Oc8yGURGVF4WhCZcu+EVy+MAIeQDLDVeDlLn59H0C1w+7xr8dL2ZtDBioy+Hog1Edrd6zOwr3Na7xe1iC/UA==
|
||||
|
||||
abort-controller@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
|
||||
|
||||
Reference in New Issue
Block a user