diff --git a/build/lib/stats.js b/build/lib/stats.js index 2a4870a8ffa..316993717aa 100644 --- a/build/lib/stats.js +++ b/build/lib/stats.js @@ -90,42 +90,49 @@ function submitAllStats(productJson, commit) { // send data as telementry event when the // product is configured to send telemetry if (!productJson || !productJson.aiConfig || typeof productJson.aiConfig.asimovKey !== 'string') { - return Promise.resolve(); + return Promise.resolve(false); } return new Promise(function (resolve) { - var sizes = {}; - var counts = {}; - for (var _i = 0, sorted_2 = sorted; _i < sorted_2.length; _i++) { - var entry = sorted_2[_i]; - sizes[entry.name] = entry.totalSize; - counts[entry.name] = entry.totalCount; + try { + var sizes = {}; + var counts = {}; + for (var _i = 0, sorted_2 = sorted; _i < sorted_2.length; _i++) { + var entry = sorted_2[_i]; + sizes[entry.name] = entry.totalSize; + counts[entry.name] = entry.totalCount; + } + appInsights.setup(productJson.aiConfig.asimovKey) + .setAutoCollectConsole(false) + .setAutoCollectExceptions(false) + .setAutoCollectPerformance(false) + .setAutoCollectRequests(false) + .setAutoCollectDependencies(false) + .setAutoDependencyCorrelation(false) + .start(); + appInsights.defaultClient.config.endpointUrl = 'https://vortex.data.microsoft.com/collect/v1'; + /* __GDPR__ + "monacoworkbench/packagemetrics" : { + "commit" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "size" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "count" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } + } + */ + appInsights.defaultClient.trackEvent({ + name: 'monacoworkbench/packagemetrics', + properties: { commit: commit, size: JSON.stringify(sizes), count: JSON.stringify(counts) } + }); + appInsights.defaultClient.flush({ + callback: function () { + appInsights.dispose(); + resolve(true); + } + }); + } + catch (err) { + console.error('ERROR sending build stats as telemetry event!'); + console.error(err); + resolve(false); } - appInsights.setup(productJson.aiConfig.asimovKey) - .setAutoCollectConsole(false) - .setAutoCollectExceptions(false) - .setAutoCollectPerformance(false) - .setAutoCollectRequests(false) - .setAutoCollectDependencies(false) - .setAutoDependencyCorrelation(false) - .start(); - appInsights.defaultClient.config.endpointUrl = 'https://vortex.data.microsoft.com/collect/v1'; - /* __GDPR__ - "monacoworkbench/packagemetrics" : { - "commit" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, - "size" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, - "count" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } - } - */ - appInsights.defaultClient.trackEvent({ - name: 'monacoworkbench/packagemetrics', - properties: { commit: commit, size: JSON.stringify(sizes), count: JSON.stringify(counts) } - }); - appInsights.defaultClient.flush({ - callback: function () { - appInsights.dispose(); - resolve(); - } - }); }); } exports.submitAllStats = submitAllStats; diff --git a/build/lib/stats.ts b/build/lib/stats.ts index d96657b8768..30efd352d2b 100644 --- a/build/lib/stats.ts +++ b/build/lib/stats.ts @@ -73,7 +73,7 @@ export function createStatsStream(group: string, log?: boolean): es.ThroughStrea }); } -export function submitAllStats(productJson: any, commit: string): Promise { +export function submitAllStats(productJson: any, commit: string): Promise { let sorted: Entry[] = []; // move entries for single files to the front @@ -93,48 +93,55 @@ export function submitAllStats(productJson: any, commit: string): Promise // send data as telementry event when the // product is configured to send telemetry if (!productJson || !productJson.aiConfig || typeof productJson.aiConfig.asimovKey !== 'string') { - return Promise.resolve(); + return Promise.resolve(false); } return new Promise(resolve => { + try { - const sizes = {}; - const counts = {}; - for (const entry of sorted) { - sizes[entry.name] = entry.totalSize; - counts[entry.name] = entry.totalCount; + const sizes = {}; + const counts = {}; + for (const entry of sorted) { + sizes[entry.name] = entry.totalSize; + counts[entry.name] = entry.totalCount; + } + + appInsights.setup(productJson.aiConfig.asimovKey) + .setAutoCollectConsole(false) + .setAutoCollectExceptions(false) + .setAutoCollectPerformance(false) + .setAutoCollectRequests(false) + .setAutoCollectDependencies(false) + .setAutoDependencyCorrelation(false) + .start(); + + appInsights.defaultClient.config.endpointUrl = 'https://vortex.data.microsoft.com/collect/v1'; + + /* __GDPR__ + "monacoworkbench/packagemetrics" : { + "commit" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "size" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "count" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } + } + */ + appInsights.defaultClient.trackEvent({ + name: 'monacoworkbench/packagemetrics', + properties: { commit, size: JSON.stringify(sizes), count: JSON.stringify(counts) } + }); + + + appInsights.defaultClient.flush({ + callback: () => { + appInsights.dispose(); + resolve(true); + } + }); + + } catch (err) { + console.error('ERROR sending build stats as telemetry event!'); + console.error(err); + resolve(false); } - - appInsights.setup(productJson.aiConfig.asimovKey) - .setAutoCollectConsole(false) - .setAutoCollectExceptions(false) - .setAutoCollectPerformance(false) - .setAutoCollectRequests(false) - .setAutoCollectDependencies(false) - .setAutoDependencyCorrelation(false) - .start(); - - appInsights.defaultClient.config.endpointUrl = 'https://vortex.data.microsoft.com/collect/v1'; - - /* __GDPR__ - "monacoworkbench/packagemetrics" : { - "commit" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, - "size" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, - "count" : {"classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } - } - */ - appInsights.defaultClient.trackEvent({ - name: 'monacoworkbench/packagemetrics', - properties: { commit, size: JSON.stringify(sizes), count: JSON.stringify(counts) } - }); - - - appInsights.defaultClient.flush({ - callback: () => { - appInsights.dispose(); - resolve(); - } - }); }); }