mirror of
https://github.com/estruyf/vscode-front-matter.git
synced 2026-08-09 10:22:55 +02:00
Removed app insights + custom metrics
This commit is contained in:
Generated
-13
@@ -40,7 +40,6 @@
|
||||
"@typescript-eslint/eslint-plugin": "^5.50.0",
|
||||
"@typescript-eslint/parser": "^5.50.0",
|
||||
"@vscode/codicons": "0.0.20",
|
||||
"@vscode/extension-telemetry": "^0.4.7",
|
||||
"@vscode/webview-ui-toolkit": "^0.9.1",
|
||||
"@webpack-cli/serve": "^1.6.0",
|
||||
"ajv": "^8.8.2",
|
||||
@@ -1517,14 +1516,6 @@
|
||||
"dev": true,
|
||||
"license": "CC-BY-4.0"
|
||||
},
|
||||
"node_modules/@vscode/extension-telemetry": {
|
||||
"version": "0.4.7",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"vscode": "^1.60.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vscode/vsce": {
|
||||
"version": "2.17.0",
|
||||
"resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.17.0.tgz",
|
||||
@@ -13940,10 +13931,6 @@
|
||||
"version": "0.0.20",
|
||||
"dev": true
|
||||
},
|
||||
"@vscode/extension-telemetry": {
|
||||
"version": "0.4.7",
|
||||
"dev": true
|
||||
},
|
||||
"@vscode/vsce": {
|
||||
"version": "2.17.0",
|
||||
"resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.17.0.tgz",
|
||||
|
||||
@@ -2314,7 +2314,6 @@
|
||||
"@typescript-eslint/eslint-plugin": "^5.50.0",
|
||||
"@typescript-eslint/parser": "^5.50.0",
|
||||
"@vscode/codicons": "0.0.20",
|
||||
"@vscode/extension-telemetry": "^0.4.7",
|
||||
"@vscode/webview-ui-toolkit": "^0.9.1",
|
||||
"@webpack-cli/serve": "^1.6.0",
|
||||
"ajv": "^8.8.2",
|
||||
|
||||
+1
-3
@@ -378,9 +378,7 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||
console.log(`FRONT MATTER CMS activated!`);
|
||||
}
|
||||
|
||||
export function deactivate() {
|
||||
Telemetry.dispose();
|
||||
}
|
||||
export function deactivate() {}
|
||||
|
||||
const handleAutoDateUpdate = (e: vscode.TextDocumentWillSaveEvent) => {
|
||||
Article.autoUpdate(e);
|
||||
|
||||
+48
-22
@@ -1,21 +1,20 @@
|
||||
import TelemetryReporter, {
|
||||
TelemetryEventMeasurements,
|
||||
TelemetryEventProperties
|
||||
} from '@vscode/extension-telemetry';
|
||||
import { Extension, Settings } from '.';
|
||||
import { EXTENSION_BETA_ID, EXTENSION_ID, SETTING_TELEMETRY_DISABLE } from '../constants';
|
||||
import fetch from 'node-fetch';
|
||||
|
||||
const METRICS_URL = 'https://frontmatter.codes/api/metrics';
|
||||
|
||||
export class Telemetry {
|
||||
private static instance: Telemetry;
|
||||
private static reporter: TelemetryReporter | null = null;
|
||||
private extTitle: string;
|
||||
private extVersion: string;
|
||||
private events: any[] = [];
|
||||
private timeout: NodeJS.Timeout | undefined;
|
||||
|
||||
private constructor() {
|
||||
const extension = Extension.getInstance();
|
||||
const extTitle = extension.isBetaVersion() ? EXTENSION_BETA_ID : EXTENSION_ID;
|
||||
const extVersion = extension.version;
|
||||
const appKey = `525037e5-70ff-4620-8e52-30e1aef8deee`;
|
||||
|
||||
Telemetry.reporter = new TelemetryReporter(extTitle, extVersion, appKey);
|
||||
this.extTitle = extension.isBetaVersion() ? EXTENSION_BETA_ID : EXTENSION_ID;
|
||||
this.extVersion = extension.version;
|
||||
}
|
||||
|
||||
public static getInstance(): Telemetry {
|
||||
@@ -25,24 +24,51 @@ export class Telemetry {
|
||||
return Telemetry.instance;
|
||||
}
|
||||
|
||||
public static send(
|
||||
eventName: string,
|
||||
properties?: TelemetryEventProperties,
|
||||
measurements?: TelemetryEventMeasurements
|
||||
) {
|
||||
if (!Telemetry.reporter) {
|
||||
Telemetry.getInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Send metrics to our own database
|
||||
* @param eventName
|
||||
* @param properties
|
||||
* @returns
|
||||
*/
|
||||
public static send(eventName: string, properties?: any) {
|
||||
const isDisabled = Settings.get<boolean>(SETTING_TELEMETRY_DISABLE);
|
||||
if (isDisabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
Telemetry.reporter?.sendTelemetryEvent(eventName, properties, measurements);
|
||||
const instance = Telemetry.getInstance();
|
||||
instance.events.push({
|
||||
name: eventName,
|
||||
extName: instance.extTitle,
|
||||
version: instance.extVersion,
|
||||
properties
|
||||
});
|
||||
|
||||
instance.debounceMetrics();
|
||||
}
|
||||
|
||||
public static dispose() {
|
||||
Telemetry.reporter?.dispose();
|
||||
/**
|
||||
* Debounce the metrics by 1 second
|
||||
*/
|
||||
private async debounceMetrics() {
|
||||
const instance = Telemetry.getInstance();
|
||||
|
||||
// Check if timeout was defined
|
||||
if (instance.timeout) {
|
||||
clearTimeout(instance.timeout);
|
||||
}
|
||||
|
||||
// Set a new timeout
|
||||
instance.timeout = setTimeout(async () => {
|
||||
await fetch(METRICS_URL, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(this.events)
|
||||
});
|
||||
// Reset the events
|
||||
this.events = [];
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ export class TelemetryListener extends BaseListener {
|
||||
|
||||
switch (msg.command) {
|
||||
case DashboardMessage.sendTelemetry:
|
||||
Telemetry.send(msg.payload.event, msg.payload.properties, msg.payload.metrics);
|
||||
Telemetry.send(msg.payload.event, msg.payload.properties);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user