@azure/monitor-opentelemetry-exporter 1.0.0-beta.10 → 1.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/index.js +241 -87
- package/dist-esm/src/export/base.js +22 -16
- package/dist-esm/src/export/base.js.map +1 -1
- package/dist-esm/src/export/statsbeat/longIntervalStatsbeatMetrics.js +118 -0
- package/dist-esm/src/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -0
- package/dist-esm/src/export/statsbeat/networkStatsbeatMetrics.js +249 -0
- package/dist-esm/src/export/statsbeat/networkStatsbeatMetrics.js.map +1 -0
- package/dist-esm/src/export/{statsbeat.js → statsbeat/statsbeatExporter.js} +4 -5
- package/dist-esm/src/export/statsbeat/statsbeatExporter.js.map +1 -0
- package/dist-esm/src/export/statsbeat/statsbeatMetrics.js +26 -240
- package/dist-esm/src/export/statsbeat/statsbeatMetrics.js.map +1 -1
- package/dist-esm/src/export/statsbeat/types.js +9 -0
- package/dist-esm/src/export/statsbeat/types.js.map +1 -1
- package/dist-esm/src/generated/applicationInsightsClient.js +1 -1
- package/dist-esm/src/generated/applicationInsightsClient.js.map +1 -1
- package/dist-esm/src/index.js +1 -1
- package/dist-esm/src/index.js.map +1 -1
- package/dist-esm/src/utils/constants/applicationinsights.js +1 -1
- package/dist-esm/src/utils/constants/applicationinsights.js.map +1 -1
- package/dist-esm/src/utils/metricUtils.js.map +1 -1
- package/package.json +13 -14
- package/types/monitor-opentelemetry-exporter.d.ts +28 -2
- package/dist-esm/src/export/statsbeat.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networkStatsbeatMetrics.js","sourceRoot":"","sources":["../../../../src/export/statsbeat/networkStatsbeatMetrics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n diag,\n BatchObservableResult,\n Meter,\n ObservableGauge,\n ObservableResult,\n} from \"@opentelemetry/api\";\nimport {\n MeterProvider,\n PeriodicExportingMetricReader,\n PeriodicExportingMetricReaderOptions,\n} from \"@opentelemetry/sdk-metrics\";\nimport { AzureMonitorExporterOptions, AzureMonitorStatsbeatExporter } from \"../../index\";\nimport * as ai from \"../../utils/constants/applicationinsights\";\nimport { StatsbeatMetrics } from \"./statsbeatMetrics\";\nimport {\n StatsbeatCounter,\n STATSBEAT_LANGUAGE,\n NetworkStatsbeat,\n CommonStatsbeatProperties,\n NetworkStatsbeatProperties,\n StatsbeatOptions,\n} from \"./types\";\n\nexport class NetworkStatsbeatMetrics extends StatsbeatMetrics {\n private _commonProperties: CommonStatsbeatProperties;\n private _networkProperties: NetworkStatsbeatProperties;\n private _isInitialized: boolean = false;\n private _statsCollectionShortInterval: number = 900000; // 15 minutes\n\n private _networkStatsbeatCollection: Array<NetworkStatsbeat> = [];\n private _networkStatsbeatMeter: Meter;\n private _networkStatsbeatMeterProvider: MeterProvider;\n private _networkAzureExporter: AzureMonitorStatsbeatExporter;\n private _networkMetricReader: PeriodicExportingMetricReader;\n\n // Custom dimensions\n private _cikey: string;\n private _runtimeVersion: string;\n private _language: string;\n private _version: string;\n private _attach: string = \"sdk\";\n\n // Observable Gauges\n private _successCountGauge: ObservableGauge;\n private _failureCountGauge: ObservableGauge;\n private _retryCountGauge: ObservableGauge;\n private _throttleCountGauge: ObservableGauge;\n private _exceptionCountGauge: ObservableGauge;\n private _averageDurationGauge: ObservableGauge;\n\n // Network attributes\n private _connectionString: string;\n private _endpointUrl: string;\n private _host: string;\n\n constructor(options: StatsbeatOptions) {\n super();\n this._connectionString = super._getConnectionString(options.endpointUrl);\n this._networkStatsbeatMeterProvider = new MeterProvider();\n\n const exporterConfig: AzureMonitorExporterOptions = {\n connectionString: this._connectionString,\n };\n\n this._networkAzureExporter = new AzureMonitorStatsbeatExporter(exporterConfig);\n\n // Exports Network Statsbeat every 15 minutes\n const networkMetricReaderOptions: PeriodicExportingMetricReaderOptions = {\n exporter: this._networkAzureExporter,\n exportIntervalMillis: options.networkCollectionInterval || this._statsCollectionShortInterval, // 15 minutes\n };\n\n this._networkMetricReader = new PeriodicExportingMetricReader(networkMetricReaderOptions);\n this._networkStatsbeatMeterProvider.addMetricReader(this._networkMetricReader);\n this._networkStatsbeatMeter = this._networkStatsbeatMeterProvider.getMeter(\n \"Azure Monitor Network Statsbeat\"\n );\n\n this._endpointUrl = options.endpointUrl;\n this._runtimeVersion = process.version;\n this._language = STATSBEAT_LANGUAGE;\n this._version = ai.packageVersion;\n this._host = this._getShortHost(options.endpointUrl);\n this._cikey = options.instrumentationKey;\n\n this._successCountGauge = this._networkStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.SUCCESS_COUNT\n );\n this._failureCountGauge = this._networkStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.FAILURE_COUNT\n );\n this._retryCountGauge = this._networkStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.RETRY_COUNT\n );\n this._throttleCountGauge = this._networkStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.THROTTLE_COUNT\n );\n this._exceptionCountGauge = this._networkStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.EXCEPTION_COUNT\n );\n this._averageDurationGauge = this._networkStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.AVERAGE_DURATION\n );\n\n this._commonProperties = {\n os: super._os,\n rp: super._resourceProvider,\n cikey: this._cikey,\n runtimeVersion: this._runtimeVersion,\n language: this._language,\n version: this._version,\n attach: this._attach,\n };\n\n this._networkProperties = {\n endpoint: this._endpointUrl,\n host: this._host,\n };\n\n this._isInitialized = true;\n this._initialize();\n }\n\n public isInitialized() {\n return this._isInitialized;\n }\n\n public shutdown() {\n this._networkStatsbeatMeterProvider.shutdown();\n }\n\n private async _initialize() {\n try {\n await super._getResourceProvider();\n\n // Add network observable callbacks\n this._successCountGauge.addCallback(this._successCallback.bind(this));\n this._networkStatsbeatMeter.addBatchObservableCallback(this._failureCallback.bind(this), [\n this._failureCountGauge,\n ]);\n this._networkStatsbeatMeter.addBatchObservableCallback(this._retryCallback.bind(this), [\n this._retryCountGauge,\n ]);\n this._networkStatsbeatMeter.addBatchObservableCallback(this._throttleCallback.bind(this), [\n this._throttleCountGauge,\n ]);\n this._networkStatsbeatMeter.addBatchObservableCallback(this._exceptionCallback.bind(this), [\n this._exceptionCountGauge,\n ]);\n this._averageDurationGauge.addCallback(this._durationCallback.bind(this));\n } catch (error) {\n diag.debug(\"Call to get the resource provider failed.\");\n }\n }\n\n // Observable gauge callbacks\n private _successCallback(observableResult: ObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._commonProperties, ...this._networkProperties };\n observableResult.observe(counter.totalSuccesfulRequestCount, attributes);\n counter.totalSuccesfulRequestCount = 0;\n }\n\n private _failureCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n\n /*\n Takes the failureCountGauge, value (of the counter), and attributes\n create a unqiue counter based on statusCode as well\n append statusCode to attributes so the newly created attributes are unique.\n */\n let attributes = { ...this._networkProperties, ...this._commonProperties, statusCode: 0 };\n\n // For each { statusCode -> count } mapping, call observe, passing the count and attributes that include the statusCode\n for (let i = 0; i < counter.totalFailedRequestCount.length; i++) {\n attributes.statusCode = counter.totalFailedRequestCount[i].statusCode;\n observableResult.observe(this._failureCountGauge, counter.totalFailedRequestCount[i].count, {\n ...attributes,\n });\n counter.totalFailedRequestCount[i].count = 0;\n }\n }\n\n private _retryCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties, statusCode: 0 };\n\n for (let i = 0; i < counter.retryCount.length; i++) {\n attributes.statusCode = counter.retryCount[i].statusCode;\n observableResult.observe(this._retryCountGauge, counter.retryCount[i].count, {\n ...attributes,\n });\n counter.retryCount[i].count = 0;\n }\n }\n\n private _throttleCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties, statusCode: 0 };\n\n for (let i = 0; i < counter.throttleCount.length; i++) {\n attributes.statusCode = counter.throttleCount[i].statusCode;\n observableResult.observe(this._throttleCountGauge, counter.throttleCount[i].count, {\n ...attributes,\n });\n counter.throttleCount[i].count = 0;\n }\n }\n\n private _exceptionCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties, exceptionType: \"\" };\n\n for (let i = 0; i < counter.exceptionCount.length; i++) {\n attributes.exceptionType = counter.exceptionCount[i].exceptionType;\n observableResult.observe(this._exceptionCountGauge, counter.exceptionCount[i].count, {\n ...attributes,\n });\n counter.exceptionCount[i].count = 0;\n }\n }\n\n private _durationCallback(observableResult: ObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties };\n for (let i = 0; i < this._networkStatsbeatCollection.length; i++) {\n let currentCounter = this._networkStatsbeatCollection[i];\n currentCounter.time = Number(new Date());\n let intervalRequests =\n currentCounter.totalRequestCount - currentCounter.lastRequestCount || 0;\n currentCounter.averageRequestExecutionTime =\n (currentCounter.intervalRequestExecutionTime -\n currentCounter.lastIntervalRequestExecutionTime) /\n intervalRequests || 0;\n currentCounter.lastIntervalRequestExecutionTime = currentCounter.intervalRequestExecutionTime; // reset\n\n currentCounter.lastRequestCount = currentCounter.totalRequestCount;\n currentCounter.lastTime = currentCounter.time;\n }\n observableResult.observe(counter.averageRequestExecutionTime, attributes);\n\n counter.averageRequestExecutionTime = 0;\n }\n\n // Public methods to increase counters\n public countSuccess(duration: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n counter.totalRequestCount++;\n counter.totalSuccesfulRequestCount++;\n counter.intervalRequestExecutionTime += duration;\n }\n\n public countFailure(duration: number, statusCode: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentStatusCounter = counter.totalFailedRequestCount.find(\n (statusCounter) => statusCode === statusCounter.statusCode\n );\n\n if (currentStatusCounter) {\n currentStatusCounter.count++;\n } else {\n counter.totalFailedRequestCount.push({ statusCode: statusCode, count: 1 });\n }\n\n counter.totalRequestCount++;\n counter.intervalRequestExecutionTime += duration;\n }\n\n public countRetry(statusCode: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentStatusCounter = counter.retryCount.find(\n (statusCounter) => statusCode === statusCounter.statusCode\n );\n\n if (currentStatusCounter) {\n currentStatusCounter.count++;\n } else {\n counter.retryCount.push({ statusCode: statusCode, count: 1 });\n }\n }\n\n public countThrottle(statusCode: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentStatusCounter = counter.throttleCount.find(\n (statusCounter) => statusCode === statusCounter.statusCode\n );\n\n if (currentStatusCounter) {\n currentStatusCounter.count++;\n } else {\n counter.throttleCount.push({ statusCode: statusCode, count: 1 });\n }\n }\n\n public countException(exceptionType: Error) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentErrorCounter = counter.exceptionCount.find(\n (exceptionCounter) => exceptionType.name === exceptionCounter.exceptionType\n );\n if (currentErrorCounter) {\n currentErrorCounter.count++;\n } else {\n counter.exceptionCount.push({ exceptionType: exceptionType.name, count: 1 });\n }\n }\n\n // Gets a networkStatsbeat counter if one exists for the given endpoint\n private _getNetworkStatsbeatCounter(endpoint: string, host: string): NetworkStatsbeat {\n // Check if the counter is available\n for (let i = 0; i < this._networkStatsbeatCollection.length; i++) {\n // Same object\n if (\n endpoint === this._networkStatsbeatCollection[i].endpoint &&\n host === this._networkStatsbeatCollection[i].host\n ) {\n return this._networkStatsbeatCollection[i];\n }\n }\n // Create a new counter if not found\n let newCounter = new NetworkStatsbeat(endpoint, host);\n this._networkStatsbeatCollection.push(newCounter);\n return newCounter;\n }\n\n private _getShortHost(originalHost: string) {\n let shortHost = originalHost;\n try {\n let hostRegex = new RegExp(/^https?:\\/\\/(?:www\\.)?([^\\/.-]+)/);\n let res = hostRegex.exec(originalHost);\n if (res != null && res.length > 1) {\n shortHost = res[1];\n }\n shortHost = shortHost.replace(\".in.applicationinsights.azure.com\", \"\");\n } catch (error) {\n diag.debug(\"Failed to get the short host name.\");\n }\n return shortHost;\n }\n}\n"]}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
import { context } from "@opentelemetry/api";
|
|
4
4
|
import { ExportResultCode, suppressTracing } from "@opentelemetry/core";
|
|
5
|
-
import { resourceMetricsToEnvelope } from "
|
|
6
|
-
import { AzureMonitorBaseExporter } from "
|
|
5
|
+
import { resourceMetricsToEnvelope } from "../../utils/metricUtils";
|
|
6
|
+
import { AzureMonitorBaseExporter } from "../base";
|
|
7
7
|
/**
|
|
8
|
-
* @internal
|
|
9
8
|
* Azure Monitor Statsbeat Exporter
|
|
10
9
|
*/
|
|
11
|
-
export class
|
|
10
|
+
export class AzureMonitorStatsbeatExporter extends AzureMonitorBaseExporter {
|
|
12
11
|
/**
|
|
13
12
|
* Initializes a new instance of the AzureMonitorStatsbeatExporter class.
|
|
14
13
|
* @param options - Exporter configuration
|
|
@@ -49,4 +48,4 @@ export class _AzureMonitorStatsbeatExporter extends AzureMonitorBaseExporter {
|
|
|
49
48
|
return Promise.resolve();
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
|
-
//# sourceMappingURL=
|
|
51
|
+
//# sourceMappingURL=statsbeatExporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statsbeatExporter.js","sourceRoot":"","sources":["../../../../src/export/statsbeat/statsbeatExporter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAgB,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEnD;;GAEG;AACH,MAAM,OAAO,6BACX,SAAQ,wBAAwB;IAQhC;;;OAGG;IACH,YAAY,OAAoC;QAC9C,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAVvB;;WAEG;QACK,gBAAW,GAAG,KAAK,CAAC;IAQ5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAAwB,EACxB,cAA8C;QAE9C,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO;SACR;QAED,IAAI,SAAS,GAAe,yBAAyB,CACnD,OAAO,EACP,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,0DAA0D;SAChE,CAAC;QACF,6DAA6D;QAC7D,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;YACzD,cAAc,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { context } from \"@opentelemetry/api\";\nimport { PushMetricExporter, ResourceMetrics } from \"@opentelemetry/sdk-metrics\";\nimport { ExportResult, ExportResultCode, suppressTracing } from \"@opentelemetry/core\";\nimport { AzureMonitorExporterOptions } from \"../../config\";\nimport { TelemetryItem as Envelope } from \"../../generated\";\nimport { resourceMetricsToEnvelope } from \"../../utils/metricUtils\";\nimport { AzureMonitorBaseExporter } from \"../base\";\n\n/**\n * Azure Monitor Statsbeat Exporter\n */\nexport class AzureMonitorStatsbeatExporter\n extends AzureMonitorBaseExporter\n implements PushMetricExporter\n{\n /**\n * Flag to determine if the Exporter is shutdown.\n */\n private _isShutdown = false;\n\n /**\n * Initializes a new instance of the AzureMonitorStatsbeatExporter class.\n * @param options - Exporter configuration\n */\n constructor(options: AzureMonitorExporterOptions) {\n super(options, true);\n }\n\n /**\n * Export Statsbeat metrics.\n */\n async export(\n metrics: ResourceMetrics,\n resultCallback: (result: ExportResult) => void\n ): Promise<void> {\n if (this._isShutdown) {\n setTimeout(() => resultCallback({ code: ExportResultCode.FAILED }), 0);\n return;\n }\n\n let envelopes: Envelope[] = resourceMetricsToEnvelope(\n metrics,\n this._instrumentationKey,\n true // isStatsbeat flag passed to create a Statsbeat envelope.\n );\n // Supress tracing until OpenTelemetry Metrics SDK support it\n context.with(suppressTracing(context.active()), async () => {\n resultCallback(await this._exportEnvelopes(envelopes));\n });\n }\n\n /**\n * Shutdown AzureMonitorStatsbeatExporter.\n */\n public async shutdown(): Promise<void> {\n this._isShutdown = true;\n return this._shutdown();\n }\n\n /**\n * Force flush.\n */\n public async forceFlush(): Promise<void> {\n return Promise.resolve();\n }\n}\n"]}
|
|
@@ -2,61 +2,14 @@
|
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
import { createDefaultHttpClient, createPipelineRequest, } from "@azure/core-rest-pipeline";
|
|
4
4
|
import { diag } from "@opentelemetry/api";
|
|
5
|
-
import {
|
|
6
|
-
import { _AzureMonitorStatsbeatExporter } from "../../index";
|
|
7
|
-
import * as ai from "../../utils/constants/applicationinsights";
|
|
8
|
-
import { StatsbeatCounter, StatsbeatResourceProvider, STATSBEAT_LANGUAGE, NetworkStatsbeat, AIMS_URI, AIMS_API_VERSION, AIMS_FORMAT, EU_CONNECTION_STRING, EU_ENDPOINTS, NON_EU_CONNECTION_STRING, } from "./types";
|
|
5
|
+
import { AIMS_API_VERSION, AIMS_FORMAT, AIMS_URI, EU_CONNECTION_STRING, EU_ENDPOINTS, NON_EU_CONNECTION_STRING, StatsbeatResourceProvider, } from "./types";
|
|
9
6
|
const os = require("os");
|
|
10
7
|
export class StatsbeatMetrics {
|
|
11
|
-
constructor(
|
|
12
|
-
this._isInitialized = false;
|
|
13
|
-
this._networkStatsbeatCollection = [];
|
|
14
|
-
this._statsCollectionShortInterval = 900000; // 15 minutes
|
|
15
|
-
// Custom dimensions
|
|
8
|
+
constructor() {
|
|
16
9
|
this._resourceProvider = StatsbeatResourceProvider.unknown;
|
|
10
|
+
this._vmInfo = {};
|
|
17
11
|
this._os = os.type();
|
|
18
|
-
this.
|
|
19
|
-
this._connectionString = this._getConnectionString(options.endpointUrl);
|
|
20
|
-
this._meterProvider = new MeterProvider();
|
|
21
|
-
const exporterConfig = {
|
|
22
|
-
connectionString: this._connectionString,
|
|
23
|
-
};
|
|
24
|
-
this._azureExporter = new _AzureMonitorStatsbeatExporter(exporterConfig);
|
|
25
|
-
const metricReaderOptions = {
|
|
26
|
-
exporter: this._azureExporter,
|
|
27
|
-
exportIntervalMillis: options.collectionInterval || this._statsCollectionShortInterval, // 15 minutes
|
|
28
|
-
};
|
|
29
|
-
// Exports Network Statsbeat every 15 minutes
|
|
30
|
-
this._metricReader = new PeriodicExportingMetricReader(metricReaderOptions);
|
|
31
|
-
this._meterProvider.addMetricReader(this._metricReader);
|
|
32
|
-
this._meter = this._meterProvider.getMeter("Azure Monitor NetworkStatsbeat");
|
|
33
|
-
this._endpointUrl = options.endpointUrl;
|
|
34
|
-
this._runtimeVersion = process.version;
|
|
35
|
-
this._language = STATSBEAT_LANGUAGE;
|
|
36
|
-
this._version = ai.packageVersion;
|
|
37
|
-
this._host = this._getShortHost(options.endpointUrl);
|
|
38
|
-
this._cikey = options.instrumentationKey;
|
|
39
|
-
this._successCountGauge = this._meter.createObservableGauge(StatsbeatCounter.SUCCESS_COUNT);
|
|
40
|
-
this._failureCountGauge = this._meter.createObservableGauge(StatsbeatCounter.FAILURE_COUNT);
|
|
41
|
-
this._retryCountGauge = this._meter.createObservableGauge(StatsbeatCounter.RETRY_COUNT);
|
|
42
|
-
this._throttleCountGauge = this._meter.createObservableGauge(StatsbeatCounter.THROTTLE_COUNT);
|
|
43
|
-
this._exceptionCountGauge = this._meter.createObservableGauge(StatsbeatCounter.EXCEPTION_COUNT);
|
|
44
|
-
this._averageDurationGauge = this._meter.createObservableGauge(StatsbeatCounter.AVERAGE_DURATION);
|
|
45
|
-
this._commonProperties = {
|
|
46
|
-
os: this._os,
|
|
47
|
-
rp: this._resourceProvider,
|
|
48
|
-
cikey: this._cikey,
|
|
49
|
-
runtimeVersion: this._runtimeVersion,
|
|
50
|
-
language: this._language,
|
|
51
|
-
version: this._version,
|
|
52
|
-
attach: this._attach,
|
|
53
|
-
};
|
|
54
|
-
this._networkProperties = {
|
|
55
|
-
endpoint: this._endpointUrl,
|
|
56
|
-
host: this._host,
|
|
57
|
-
};
|
|
58
|
-
this._isInitialized = true;
|
|
59
|
-
this._initialize();
|
|
12
|
+
this._resourceIdentifier = "";
|
|
60
13
|
}
|
|
61
14
|
async _getResourceProvider() {
|
|
62
15
|
// Check resource provider
|
|
@@ -71,6 +24,11 @@ export class StatsbeatMetrics {
|
|
|
71
24
|
}
|
|
72
25
|
else if (await this.getAzureComputeMetadata()) {
|
|
73
26
|
this._resourceProvider = StatsbeatResourceProvider.vm;
|
|
27
|
+
this._resourceIdentifier = this._vmInfo.id + "/" + this._vmInfo.subscriptionId;
|
|
28
|
+
// Overrride OS as VM info have higher precedence
|
|
29
|
+
if (this._vmInfo.osType) {
|
|
30
|
+
this._os = this._vmInfo.osType;
|
|
31
|
+
}
|
|
74
32
|
}
|
|
75
33
|
else {
|
|
76
34
|
this._resourceProvider = StatsbeatResourceProvider.unknown;
|
|
@@ -90,6 +48,23 @@ export class StatsbeatMetrics {
|
|
|
90
48
|
.sendRequest(request)
|
|
91
49
|
.then((res) => {
|
|
92
50
|
if (res.status === 200) {
|
|
51
|
+
// Success; VM
|
|
52
|
+
this._vmInfo.isVM = true;
|
|
53
|
+
let virtualMachineData = "";
|
|
54
|
+
res.on("data", (data) => {
|
|
55
|
+
virtualMachineData += data;
|
|
56
|
+
});
|
|
57
|
+
res.on("end", () => {
|
|
58
|
+
try {
|
|
59
|
+
let data = JSON.parse(virtualMachineData);
|
|
60
|
+
this._vmInfo.id = data["vmId"] || "";
|
|
61
|
+
this._vmInfo.subscriptionId = data["subscriptionId"] || "";
|
|
62
|
+
this._vmInfo.osType = data["osType"] || "";
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
diag.debug("Failed to parse JSON: ", error);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
93
68
|
return true;
|
|
94
69
|
}
|
|
95
70
|
else {
|
|
@@ -101,195 +76,6 @@ export class StatsbeatMetrics {
|
|
|
101
76
|
});
|
|
102
77
|
return false;
|
|
103
78
|
}
|
|
104
|
-
isInitialized() {
|
|
105
|
-
return this._isInitialized;
|
|
106
|
-
}
|
|
107
|
-
shutdown() {
|
|
108
|
-
this._meterProvider.shutdown();
|
|
109
|
-
}
|
|
110
|
-
async _initialize() {
|
|
111
|
-
try {
|
|
112
|
-
await this._getResourceProvider();
|
|
113
|
-
// Add observable callbacks
|
|
114
|
-
this._successCountGauge.addCallback(this._successCallback.bind(this));
|
|
115
|
-
this._meter.addBatchObservableCallback(this._failureCallback.bind(this), [
|
|
116
|
-
this._failureCountGauge,
|
|
117
|
-
]);
|
|
118
|
-
this._meter.addBatchObservableCallback(this._retryCallback.bind(this), [
|
|
119
|
-
this._retryCountGauge,
|
|
120
|
-
]);
|
|
121
|
-
this._meter.addBatchObservableCallback(this._throttleCallback.bind(this), [
|
|
122
|
-
this._throttleCountGauge,
|
|
123
|
-
]);
|
|
124
|
-
this._meter.addBatchObservableCallback(this._exceptionCallback.bind(this), [
|
|
125
|
-
this._exceptionCountGauge,
|
|
126
|
-
]);
|
|
127
|
-
this._averageDurationGauge.addCallback(this._durationCallback.bind(this));
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
diag.debug("Call to get the resource provider failed.");
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// Observable gauge callbacks
|
|
134
|
-
_successCallback(observableResult) {
|
|
135
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
136
|
-
let attributes = Object.assign(Object.assign({}, this._commonProperties), this._networkProperties);
|
|
137
|
-
observableResult.observe(counter.totalSuccesfulRequestCount, attributes);
|
|
138
|
-
counter.totalSuccesfulRequestCount = 0;
|
|
139
|
-
}
|
|
140
|
-
_failureCallback(observableResult) {
|
|
141
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
142
|
-
/*
|
|
143
|
-
Takes the failureCountGauge, value (of the counter), and attributes
|
|
144
|
-
create a unqiue counter based on statusCode as well
|
|
145
|
-
append statusCode to attributes so the newly created attributes are unique.
|
|
146
|
-
*/
|
|
147
|
-
let attributes = Object.assign(Object.assign(Object.assign({}, this._networkProperties), this._commonProperties), { statusCode: 0 });
|
|
148
|
-
// For each { statusCode -> count } mapping, call observe, passing the count and attributes that include the statusCode
|
|
149
|
-
for (let i = 0; i < counter.totalFailedRequestCount.length; i++) {
|
|
150
|
-
attributes.statusCode = counter.totalFailedRequestCount[i].statusCode;
|
|
151
|
-
observableResult.observe(this._failureCountGauge, counter.totalFailedRequestCount[i].count, Object.assign({}, attributes));
|
|
152
|
-
counter.totalFailedRequestCount[i].count = 0;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
_retryCallback(observableResult) {
|
|
156
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
157
|
-
let attributes = Object.assign(Object.assign(Object.assign({}, this._networkProperties), this._commonProperties), { statusCode: 0 });
|
|
158
|
-
for (let i = 0; i < counter.retryCount.length; i++) {
|
|
159
|
-
attributes.statusCode = counter.retryCount[i].statusCode;
|
|
160
|
-
observableResult.observe(this._retryCountGauge, counter.retryCount[i].count, Object.assign({}, attributes));
|
|
161
|
-
counter.retryCount[i].count = 0;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
_throttleCallback(observableResult) {
|
|
165
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
166
|
-
let attributes = Object.assign(Object.assign(Object.assign({}, this._networkProperties), this._commonProperties), { statusCode: 0 });
|
|
167
|
-
for (let i = 0; i < counter.throttleCount.length; i++) {
|
|
168
|
-
attributes.statusCode = counter.throttleCount[i].statusCode;
|
|
169
|
-
observableResult.observe(this._throttleCountGauge, counter.throttleCount[i].count, Object.assign({}, attributes));
|
|
170
|
-
counter.throttleCount[i].count = 0;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
_exceptionCallback(observableResult) {
|
|
174
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
175
|
-
let attributes = Object.assign(Object.assign(Object.assign({}, this._networkProperties), this._commonProperties), { exceptionType: "" });
|
|
176
|
-
for (let i = 0; i < counter.exceptionCount.length; i++) {
|
|
177
|
-
attributes.exceptionType = counter.exceptionCount[i].exceptionType;
|
|
178
|
-
observableResult.observe(this._exceptionCountGauge, counter.exceptionCount[i].count, Object.assign({}, attributes));
|
|
179
|
-
counter.exceptionCount[i].count = 0;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
_durationCallback(observableResult) {
|
|
183
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
184
|
-
let attributes = Object.assign(Object.assign({}, this._networkProperties), this._commonProperties);
|
|
185
|
-
for (let i = 0; i < this._networkStatsbeatCollection.length; i++) {
|
|
186
|
-
let currentCounter = this._networkStatsbeatCollection[i];
|
|
187
|
-
currentCounter.time = Number(new Date());
|
|
188
|
-
let intervalRequests = currentCounter.totalRequestCount - currentCounter.lastRequestCount || 0;
|
|
189
|
-
currentCounter.averageRequestExecutionTime =
|
|
190
|
-
(currentCounter.intervalRequestExecutionTime -
|
|
191
|
-
currentCounter.lastIntervalRequestExecutionTime) /
|
|
192
|
-
intervalRequests || 0;
|
|
193
|
-
currentCounter.lastIntervalRequestExecutionTime = currentCounter.intervalRequestExecutionTime; // reset
|
|
194
|
-
currentCounter.lastRequestCount = currentCounter.totalRequestCount;
|
|
195
|
-
currentCounter.lastTime = currentCounter.time;
|
|
196
|
-
}
|
|
197
|
-
observableResult.observe(counter.averageRequestExecutionTime, attributes);
|
|
198
|
-
counter.averageRequestExecutionTime = 0;
|
|
199
|
-
}
|
|
200
|
-
// Public methods to increase counters
|
|
201
|
-
countSuccess(duration) {
|
|
202
|
-
if (!this._isInitialized) {
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
206
|
-
counter.totalRequestCount++;
|
|
207
|
-
counter.totalSuccesfulRequestCount++;
|
|
208
|
-
counter.intervalRequestExecutionTime += duration;
|
|
209
|
-
}
|
|
210
|
-
countFailure(duration, statusCode) {
|
|
211
|
-
if (!this._isInitialized) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
215
|
-
let currentStatusCounter = counter.totalFailedRequestCount.find((statusCounter) => statusCode === statusCounter.statusCode);
|
|
216
|
-
if (currentStatusCounter) {
|
|
217
|
-
currentStatusCounter.count++;
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
counter.totalFailedRequestCount.push({ statusCode: statusCode, count: 1 });
|
|
221
|
-
}
|
|
222
|
-
counter.totalRequestCount++;
|
|
223
|
-
counter.intervalRequestExecutionTime += duration;
|
|
224
|
-
}
|
|
225
|
-
countRetry(statusCode) {
|
|
226
|
-
if (!this._isInitialized) {
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
230
|
-
let currentStatusCounter = counter.retryCount.find((statusCounter) => statusCode === statusCounter.statusCode);
|
|
231
|
-
if (currentStatusCounter) {
|
|
232
|
-
currentStatusCounter.count++;
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
counter.retryCount.push({ statusCode: statusCode, count: 1 });
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
countThrottle(statusCode) {
|
|
239
|
-
if (!this._isInitialized) {
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
243
|
-
let currentStatusCounter = counter.throttleCount.find((statusCounter) => statusCode === statusCounter.statusCode);
|
|
244
|
-
if (currentStatusCounter) {
|
|
245
|
-
currentStatusCounter.count++;
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
counter.throttleCount.push({ statusCode: statusCode, count: 1 });
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
countException(exceptionType) {
|
|
252
|
-
if (!this._isInitialized) {
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
let counter = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);
|
|
256
|
-
let currentErrorCounter = counter.exceptionCount.find((exceptionCounter) => exceptionType.name === exceptionCounter.exceptionType);
|
|
257
|
-
if (currentErrorCounter) {
|
|
258
|
-
currentErrorCounter.count++;
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
counter.exceptionCount.push({ exceptionType: exceptionType.name, count: 1 });
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
// Gets a networkStatsbeat counter if one exists for the given endpoint
|
|
265
|
-
_getNetworkStatsbeatCounter(endpoint, host) {
|
|
266
|
-
// Check if the counter is available
|
|
267
|
-
for (let i = 0; i < this._networkStatsbeatCollection.length; i++) {
|
|
268
|
-
// Same object
|
|
269
|
-
if (endpoint === this._networkStatsbeatCollection[i].endpoint &&
|
|
270
|
-
host === this._networkStatsbeatCollection[i].host) {
|
|
271
|
-
return this._networkStatsbeatCollection[i];
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
// Create a new counter if not found
|
|
275
|
-
let newCounter = new NetworkStatsbeat(endpoint, host);
|
|
276
|
-
this._networkStatsbeatCollection.push(newCounter);
|
|
277
|
-
return newCounter;
|
|
278
|
-
}
|
|
279
|
-
_getShortHost(originalHost) {
|
|
280
|
-
let shortHost = originalHost;
|
|
281
|
-
try {
|
|
282
|
-
let hostRegex = new RegExp(/^https?:\/\/(?:www\.)?([^\/.-]+)/);
|
|
283
|
-
let res = hostRegex.exec(originalHost);
|
|
284
|
-
if (res != null && res.length > 1) {
|
|
285
|
-
shortHost = res[1];
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
catch (error) {
|
|
289
|
-
diag.debug("Failed to get the short host name.");
|
|
290
|
-
}
|
|
291
|
-
return shortHost;
|
|
292
|
-
}
|
|
293
79
|
_getConnectionString(endpointUrl) {
|
|
294
80
|
let currentEndpoint = endpointUrl;
|
|
295
81
|
for (let i = 0; i < EU_ENDPOINTS.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsbeatMetrics.js","sourceRoot":"","sources":["../../../../src/export/statsbeat/statsbeatMetrics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n createDefaultHttpClient,\n createPipelineRequest,\n HttpMethods,\n} from \"@azure/core-rest-pipeline\";\nimport { diag } from \"@opentelemetry/api\";\nimport {\n BatchObservableResult,\n ObservableGauge,\n ObservableResult,\n} from \"@opentelemetry/api-metrics\";\nimport { Meter } from \"@opentelemetry/api-metrics/build/src/types/Meter\";\nimport {\n MeterProvider,\n PeriodicExportingMetricReader,\n PeriodicExportingMetricReaderOptions,\n} from \"@opentelemetry/sdk-metrics\";\nimport { AzureMonitorExporterOptions, _AzureMonitorStatsbeatExporter } from \"../../index\";\nimport * as ai from \"../../utils/constants/applicationinsights\";\nimport {\n StatsbeatCounter,\n StatsbeatResourceProvider,\n STATSBEAT_LANGUAGE,\n NetworkStatsbeat,\n AIMS_URI,\n AIMS_API_VERSION,\n AIMS_FORMAT,\n EU_CONNECTION_STRING,\n EU_ENDPOINTS,\n NON_EU_CONNECTION_STRING,\n CommonStatsbeatProperties,\n NetworkStatsbeatProperties,\n} from \"./types\";\n\nconst os = require(\"os\");\n\nexport class StatsbeatMetrics {\n private _commonProperties: CommonStatsbeatProperties;\n private _networkProperties: NetworkStatsbeatProperties;\n private _meter: Meter;\n private _isInitialized: boolean = false;\n private _networkStatsbeatCollection: Array<NetworkStatsbeat> = [];\n private _meterProvider: MeterProvider;\n private _azureExporter: _AzureMonitorStatsbeatExporter;\n private _metricReader: PeriodicExportingMetricReader;\n private _statsCollectionShortInterval: number = 900000; // 15 minutes\n\n // Custom dimensions\n private _resourceProvider: string = StatsbeatResourceProvider.unknown;\n private _os: string = os.type();\n private _cikey: string;\n private _runtimeVersion: string;\n private _language: string;\n private _version: string;\n private _attach: string = \"sdk\";\n\n // Observable Gauges\n private _successCountGauge: ObservableGauge;\n private _failureCountGauge: ObservableGauge;\n private _retryCountGauge: ObservableGauge;\n private _throttleCountGauge: ObservableGauge;\n private _exceptionCountGauge: ObservableGauge;\n private _averageDurationGauge: ObservableGauge;\n\n // Network attributes\n private _connectionString: string;\n private _endpointUrl: string;\n private _host: string;\n\n constructor(options: {\n instrumentationKey: string;\n endpointUrl: string;\n collectionInterval?: number;\n }) {\n this._connectionString = this._getConnectionString(options.endpointUrl);\n this._meterProvider = new MeterProvider();\n\n const exporterConfig: AzureMonitorExporterOptions = {\n connectionString: this._connectionString,\n };\n\n this._azureExporter = new _AzureMonitorStatsbeatExporter(exporterConfig);\n\n const metricReaderOptions: PeriodicExportingMetricReaderOptions = {\n exporter: this._azureExporter,\n exportIntervalMillis: options.collectionInterval || this._statsCollectionShortInterval, // 15 minutes\n };\n\n // Exports Network Statsbeat every 15 minutes\n this._metricReader = new PeriodicExportingMetricReader(metricReaderOptions);\n this._meterProvider.addMetricReader(this._metricReader);\n this._meter = this._meterProvider.getMeter(\"Azure Monitor NetworkStatsbeat\");\n\n this._endpointUrl = options.endpointUrl;\n this._runtimeVersion = process.version;\n this._language = STATSBEAT_LANGUAGE;\n this._version = ai.packageVersion;\n this._host = this._getShortHost(options.endpointUrl);\n this._cikey = options.instrumentationKey;\n\n this._successCountGauge = this._meter.createObservableGauge(StatsbeatCounter.SUCCESS_COUNT);\n this._failureCountGauge = this._meter.createObservableGauge(StatsbeatCounter.FAILURE_COUNT);\n this._retryCountGauge = this._meter.createObservableGauge(StatsbeatCounter.RETRY_COUNT);\n this._throttleCountGauge = this._meter.createObservableGauge(StatsbeatCounter.THROTTLE_COUNT);\n this._exceptionCountGauge = this._meter.createObservableGauge(StatsbeatCounter.EXCEPTION_COUNT);\n this._averageDurationGauge = this._meter.createObservableGauge(\n StatsbeatCounter.AVERAGE_DURATION\n );\n\n this._commonProperties = {\n os: this._os,\n rp: this._resourceProvider,\n cikey: this._cikey,\n runtimeVersion: this._runtimeVersion,\n language: this._language,\n version: this._version,\n attach: this._attach,\n };\n\n this._networkProperties = {\n endpoint: this._endpointUrl,\n host: this._host,\n };\n\n this._isInitialized = true;\n this._initialize();\n }\n\n private async _getResourceProvider(): Promise<void> {\n // Check resource provider\n this._resourceProvider = StatsbeatResourceProvider.unknown;\n if (process.env.WEBSITE_SITE_NAME) {\n // Web apps\n this._resourceProvider = StatsbeatResourceProvider.appsvc;\n } else if (process.env.FUNCTIONS_WORKER_RUNTIME) {\n // Function apps\n this._resourceProvider = StatsbeatResourceProvider.functions;\n } else if (await this.getAzureComputeMetadata()) {\n this._resourceProvider = StatsbeatResourceProvider.vm;\n } else {\n this._resourceProvider = StatsbeatResourceProvider.unknown;\n }\n }\n\n public async getAzureComputeMetadata(): Promise<boolean> {\n const httpClient = createDefaultHttpClient();\n const method: HttpMethods = \"GET\";\n\n const options = {\n url: `${AIMS_URI}?${AIMS_API_VERSION}&${AIMS_FORMAT}`,\n timeout: 5000, // 5 seconds\n method: method,\n allowInsecureConnection: true,\n };\n const request = createPipelineRequest(options);\n\n await httpClient\n .sendRequest(request)\n .then((res: any) => {\n if (res.status === 200) {\n return true;\n } else {\n return false;\n }\n })\n .catch(() => {\n return false;\n });\n return false;\n }\n\n public isInitialized() {\n return this._isInitialized;\n }\n\n public shutdown() {\n this._meterProvider.shutdown();\n }\n\n private async _initialize() {\n try {\n await this._getResourceProvider();\n\n // Add observable callbacks\n this._successCountGauge.addCallback(this._successCallback.bind(this));\n this._meter.addBatchObservableCallback(this._failureCallback.bind(this), [\n this._failureCountGauge,\n ]);\n this._meter.addBatchObservableCallback(this._retryCallback.bind(this), [\n this._retryCountGauge,\n ]);\n this._meter.addBatchObservableCallback(this._throttleCallback.bind(this), [\n this._throttleCountGauge,\n ]);\n this._meter.addBatchObservableCallback(this._exceptionCallback.bind(this), [\n this._exceptionCountGauge,\n ]);\n this._averageDurationGauge.addCallback(this._durationCallback.bind(this));\n } catch (error) {\n diag.debug(\"Call to get the resource provider failed.\");\n }\n }\n\n // Observable gauge callbacks\n private _successCallback(observableResult: ObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._commonProperties, ...this._networkProperties };\n observableResult.observe(counter.totalSuccesfulRequestCount, attributes);\n counter.totalSuccesfulRequestCount = 0;\n }\n\n private _failureCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n\n /*\n Takes the failureCountGauge, value (of the counter), and attributes\n create a unqiue counter based on statusCode as well\n append statusCode to attributes so the newly created attributes are unique.\n */\n let attributes = { ...this._networkProperties, ...this._commonProperties, statusCode: 0 };\n\n // For each { statusCode -> count } mapping, call observe, passing the count and attributes that include the statusCode\n for (let i = 0; i < counter.totalFailedRequestCount.length; i++) {\n attributes.statusCode = counter.totalFailedRequestCount[i].statusCode;\n observableResult.observe(this._failureCountGauge, counter.totalFailedRequestCount[i].count, {\n ...attributes,\n });\n counter.totalFailedRequestCount[i].count = 0;\n }\n }\n\n private _retryCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties, statusCode: 0 };\n\n for (let i = 0; i < counter.retryCount.length; i++) {\n attributes.statusCode = counter.retryCount[i].statusCode;\n observableResult.observe(this._retryCountGauge, counter.retryCount[i].count, {\n ...attributes,\n });\n counter.retryCount[i].count = 0;\n }\n }\n\n private _throttleCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties, statusCode: 0 };\n\n for (let i = 0; i < counter.throttleCount.length; i++) {\n attributes.statusCode = counter.throttleCount[i].statusCode;\n observableResult.observe(this._throttleCountGauge, counter.throttleCount[i].count, {\n ...attributes,\n });\n counter.throttleCount[i].count = 0;\n }\n }\n\n private _exceptionCallback(observableResult: BatchObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties, exceptionType: \"\" };\n\n for (let i = 0; i < counter.exceptionCount.length; i++) {\n attributes.exceptionType = counter.exceptionCount[i].exceptionType;\n observableResult.observe(this._exceptionCountGauge, counter.exceptionCount[i].count, {\n ...attributes,\n });\n counter.exceptionCount[i].count = 0;\n }\n }\n\n private _durationCallback(observableResult: ObservableResult) {\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let attributes = { ...this._networkProperties, ...this._commonProperties };\n for (let i = 0; i < this._networkStatsbeatCollection.length; i++) {\n let currentCounter = this._networkStatsbeatCollection[i];\n currentCounter.time = Number(new Date());\n let intervalRequests =\n currentCounter.totalRequestCount - currentCounter.lastRequestCount || 0;\n currentCounter.averageRequestExecutionTime =\n (currentCounter.intervalRequestExecutionTime -\n currentCounter.lastIntervalRequestExecutionTime) /\n intervalRequests || 0;\n currentCounter.lastIntervalRequestExecutionTime = currentCounter.intervalRequestExecutionTime; // reset\n\n currentCounter.lastRequestCount = currentCounter.totalRequestCount;\n currentCounter.lastTime = currentCounter.time;\n }\n observableResult.observe(counter.averageRequestExecutionTime, attributes);\n\n counter.averageRequestExecutionTime = 0;\n }\n\n // Public methods to increase counters\n public countSuccess(duration: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n counter.totalRequestCount++;\n counter.totalSuccesfulRequestCount++;\n counter.intervalRequestExecutionTime += duration;\n }\n\n public countFailure(duration: number, statusCode: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentStatusCounter = counter.totalFailedRequestCount.find(\n (statusCounter) => statusCode === statusCounter.statusCode\n );\n\n if (currentStatusCounter) {\n currentStatusCounter.count++;\n } else {\n counter.totalFailedRequestCount.push({ statusCode: statusCode, count: 1 });\n }\n\n counter.totalRequestCount++;\n counter.intervalRequestExecutionTime += duration;\n }\n\n public countRetry(statusCode: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentStatusCounter = counter.retryCount.find(\n (statusCounter) => statusCode === statusCounter.statusCode\n );\n\n if (currentStatusCounter) {\n currentStatusCounter.count++;\n } else {\n counter.retryCount.push({ statusCode: statusCode, count: 1 });\n }\n }\n\n public countThrottle(statusCode: number) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentStatusCounter = counter.throttleCount.find(\n (statusCounter) => statusCode === statusCounter.statusCode\n );\n\n if (currentStatusCounter) {\n currentStatusCounter.count++;\n } else {\n counter.throttleCount.push({ statusCode: statusCode, count: 1 });\n }\n }\n\n public countException(exceptionType: Error) {\n if (!this._isInitialized) {\n return;\n }\n let counter: NetworkStatsbeat = this._getNetworkStatsbeatCounter(this._endpointUrl, this._host);\n let currentErrorCounter = counter.exceptionCount.find(\n (exceptionCounter) => exceptionType.name === exceptionCounter.exceptionType\n );\n if (currentErrorCounter) {\n currentErrorCounter.count++;\n } else {\n counter.exceptionCount.push({ exceptionType: exceptionType.name, count: 1 });\n }\n }\n\n // Gets a networkStatsbeat counter if one exists for the given endpoint\n private _getNetworkStatsbeatCounter(endpoint: string, host: string): NetworkStatsbeat {\n // Check if the counter is available\n for (let i = 0; i < this._networkStatsbeatCollection.length; i++) {\n // Same object\n if (\n endpoint === this._networkStatsbeatCollection[i].endpoint &&\n host === this._networkStatsbeatCollection[i].host\n ) {\n return this._networkStatsbeatCollection[i];\n }\n }\n // Create a new counter if not found\n let newCounter = new NetworkStatsbeat(endpoint, host);\n this._networkStatsbeatCollection.push(newCounter);\n return newCounter;\n }\n\n private _getShortHost(originalHost: string) {\n let shortHost = originalHost;\n try {\n let hostRegex = new RegExp(/^https?:\\/\\/(?:www\\.)?([^\\/.-]+)/);\n let res = hostRegex.exec(originalHost);\n if (res != null && res.length > 1) {\n shortHost = res[1];\n }\n } catch (error) {\n diag.debug(\"Failed to get the short host name.\");\n }\n return shortHost;\n }\n\n private _getConnectionString(endpointUrl: string) {\n let currentEndpoint = endpointUrl;\n for (let i = 0; i < EU_ENDPOINTS.length; i++) {\n if (currentEndpoint.includes(EU_ENDPOINTS[i])) {\n return EU_CONNECTION_STRING;\n }\n }\n return NON_EU_CONNECTION_STRING;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"statsbeatMetrics.js","sourceRoot":"","sources":["../../../../src/export/statsbeat/statsbeatMetrics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n createDefaultHttpClient,\n createPipelineRequest,\n HttpMethods,\n} from \"@azure/core-rest-pipeline\";\nimport { diag } from \"@opentelemetry/api\";\nimport {\n AIMS_API_VERSION,\n AIMS_FORMAT,\n AIMS_URI,\n EU_CONNECTION_STRING,\n EU_ENDPOINTS,\n NON_EU_CONNECTION_STRING,\n StatsbeatResourceProvider,\n VirtualMachineInfo,\n} from \"./types\";\n\nconst os = require(\"os\");\n\nexport class StatsbeatMetrics {\n protected _resourceProvider: string = StatsbeatResourceProvider.unknown;\n protected _vmInfo: VirtualMachineInfo = {};\n protected _os: string = os.type();\n protected _resourceIdentifier = \"\";\n\n protected async _getResourceProvider(): Promise<void> {\n // Check resource provider\n this._resourceProvider = StatsbeatResourceProvider.unknown;\n if (process.env.WEBSITE_SITE_NAME) {\n // Web apps\n this._resourceProvider = StatsbeatResourceProvider.appsvc;\n } else if (process.env.FUNCTIONS_WORKER_RUNTIME) {\n // Function apps\n this._resourceProvider = StatsbeatResourceProvider.functions;\n } else if (await this.getAzureComputeMetadata()) {\n this._resourceProvider = StatsbeatResourceProvider.vm;\n this._resourceIdentifier = this._vmInfo.id + \"/\" + this._vmInfo.subscriptionId;\n // Overrride OS as VM info have higher precedence\n if (this._vmInfo.osType) {\n this._os = this._vmInfo.osType;\n }\n } else {\n this._resourceProvider = StatsbeatResourceProvider.unknown;\n }\n }\n\n public async getAzureComputeMetadata(): Promise<boolean> {\n const httpClient = createDefaultHttpClient();\n const method: HttpMethods = \"GET\";\n\n const options = {\n url: `${AIMS_URI}?${AIMS_API_VERSION}&${AIMS_FORMAT}`,\n timeout: 5000, // 5 seconds\n method: method,\n allowInsecureConnection: true,\n };\n const request = createPipelineRequest(options);\n\n await httpClient\n .sendRequest(request)\n .then((res: any) => {\n if (res.status === 200) {\n // Success; VM\n this._vmInfo.isVM = true;\n let virtualMachineData = \"\";\n res.on(\"data\", (data: any) => {\n virtualMachineData += data;\n });\n res.on(\"end\", () => {\n try {\n let data = JSON.parse(virtualMachineData);\n this._vmInfo.id = data[\"vmId\"] || \"\";\n this._vmInfo.subscriptionId = data[\"subscriptionId\"] || \"\";\n this._vmInfo.osType = data[\"osType\"] || \"\";\n } catch (error) {\n diag.debug(\"Failed to parse JSON: \", error);\n }\n });\n return true;\n } else {\n return false;\n }\n })\n .catch(() => {\n return false;\n });\n return false;\n }\n\n protected _getConnectionString(endpointUrl: string) {\n let currentEndpoint = endpointUrl;\n for (let i = 0; i < EU_ENDPOINTS.length; i++) {\n if (currentEndpoint.includes(EU_ENDPOINTS[i])) {\n return EU_CONNECTION_STRING;\n }\n }\n return NON_EU_CONNECTION_STRING;\n }\n}\n"]}
|
|
@@ -31,6 +31,8 @@ export var StatsbeatCounter;
|
|
|
31
31
|
StatsbeatCounter["THROTTLE_COUNT"] = "Throttle Count";
|
|
32
32
|
StatsbeatCounter["EXCEPTION_COUNT"] = "Exception Count";
|
|
33
33
|
StatsbeatCounter["AVERAGE_DURATION"] = "Request Duration";
|
|
34
|
+
StatsbeatCounter["ATTACH"] = "Attach";
|
|
35
|
+
StatsbeatCounter["FEATURE"] = "Feature";
|
|
34
36
|
})(StatsbeatCounter || (StatsbeatCounter = {}));
|
|
35
37
|
export const AIMS_URI = "http://169.254.169.254/metadata/instance/compute";
|
|
36
38
|
export const AIMS_API_VERSION = "api-version=2017-12-01";
|
|
@@ -48,5 +50,12 @@ export const EU_ENDPOINTS = [
|
|
|
48
50
|
"swedencentral",
|
|
49
51
|
"switzerlandnorth",
|
|
50
52
|
"switzerlandwest",
|
|
53
|
+
"uksouth",
|
|
54
|
+
"ukwest",
|
|
51
55
|
];
|
|
56
|
+
export var StatsbeatFeatureType;
|
|
57
|
+
(function (StatsbeatFeatureType) {
|
|
58
|
+
StatsbeatFeatureType["FEATURE"] = "Feature";
|
|
59
|
+
StatsbeatFeatureType["INSTRUMENTATION"] = "Instrumentation";
|
|
60
|
+
})(StatsbeatFeatureType || (StatsbeatFeatureType = {}));
|
|
52
61
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/export/statsbeat/types.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IA6B3B,YAAY,QAAgB,EAAE,IAAY;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,gCAAgC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/export/statsbeat/types.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IA6B3B,YAAY,QAAgB,EAAE,IAAY;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,gCAAgC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,2DAAuC,CAAA;IACvC,+CAA2B,CAAA;IAC3B,qDAAiC,CAAA;IACjC,uDAAmC,CAAA;IACnC,yDAAqC,CAAA;IACrC,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;AACrB,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,kDAAkD,CAAC;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,wBAAwB,GACnC,6HAA6H,CAAC;AAChI,MAAM,CAAC,MAAM,oBAAoB,GAC/B,iIAAiI,CAAC;AACpI,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,YAAY;IACZ,aAAa;IACb,eAAe;IACf,aAAa;IACb,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,SAAS;IACT,QAAQ;CACT,CAAC;AAmCF,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,2CAAmB,CAAA;IACnB,2DAAmC,CAAA;AACrC,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B","sourcesContent":["export class NetworkStatsbeat {\n public time: number | undefined;\n\n public lastTime: number;\n\n public endpoint: string;\n\n public host: string;\n\n public totalRequestCount: number;\n\n public lastRequestCount: number;\n\n public totalSuccesfulRequestCount: number;\n\n public totalFailedRequestCount: { statusCode: number; count: number }[];\n\n public retryCount: { statusCode: number; count: number }[];\n\n public exceptionCount: { exceptionType: string; count: number }[];\n\n public throttleCount: { statusCode: number; count: number }[];\n\n public intervalRequestExecutionTime: number;\n\n public lastIntervalRequestExecutionTime: number;\n\n public averageRequestExecutionTime: number;\n\n constructor(endpoint: string, host: string) {\n this.endpoint = endpoint;\n this.host = host;\n this.totalRequestCount = 0;\n this.totalSuccesfulRequestCount = 0;\n this.totalFailedRequestCount = [];\n this.retryCount = [];\n this.exceptionCount = [];\n this.throttleCount = [];\n this.intervalRequestExecutionTime = 0;\n this.lastIntervalRequestExecutionTime = 0;\n this.lastTime = +new Date();\n this.lastRequestCount = 0;\n this.averageRequestExecutionTime = 0;\n }\n}\n\nexport const STATSBEAT_LANGUAGE = \"node\";\n\nexport const MAX_STATSBEAT_FAILURES = 3;\n\nexport const StatsbeatResourceProvider = {\n appsvc: \"appsvc\",\n functions: \"functions\",\n vm: \"vm\",\n unknown: \"unknown\",\n};\n\nexport enum StatsbeatCounter {\n SUCCESS_COUNT = \"Request Success Count\",\n FAILURE_COUNT = \"Request Failure Count\",\n RETRY_COUNT = \"Retry Count\",\n THROTTLE_COUNT = \"Throttle Count\",\n EXCEPTION_COUNT = \"Exception Count\",\n AVERAGE_DURATION = \"Request Duration\",\n ATTACH = \"Attach\",\n FEATURE = \"Feature\",\n}\n\nexport const AIMS_URI = \"http://169.254.169.254/metadata/instance/compute\";\nexport const AIMS_API_VERSION = \"api-version=2017-12-01\";\nexport const AIMS_FORMAT = \"format=json\";\nexport const NON_EU_CONNECTION_STRING =\n \"InstrumentationKey=c4a29126-a7cb-47e5-b348-11414998b11e;IngestionEndpoint=https://westus-0.in.applicationinsights.azure.com\";\nexport const EU_CONNECTION_STRING =\n \"InstrumentationKey=7dc56bab-3c0c-4e9f-9ebb-d1acadee8d0f;IngestionEndpoint=https://westeurope-5.in.applicationinsights.azure.com\";\nexport const EU_ENDPOINTS = [\n \"westeurope\",\n \"northeurope\",\n \"francecentral\",\n \"francesouth\",\n \"germanywestcentral\",\n \"norwayeast\",\n \"norwaywest\",\n \"swedencentral\",\n \"switzerlandnorth\",\n \"switzerlandwest\",\n \"uksouth\",\n \"ukwest\",\n];\n\nexport interface CommonStatsbeatProperties {\n os: string;\n rp: string;\n cikey: string;\n runtimeVersion: string;\n language: string;\n version: string;\n attach: string;\n}\n\nexport interface AttachStatsbeatProperties {\n rpId: string;\n}\n\nexport interface NetworkStatsbeatProperties {\n endpoint: string;\n host: string;\n}\n\nexport interface StatsbeatOptions {\n instrumentationKey: string;\n endpointUrl: string;\n networkCollectionInterval?: number;\n longCollectionInterval?: number;\n}\n\nexport interface VirtualMachineInfo {\n isVM?: boolean;\n id?: string;\n subscriptionId?: string;\n osType?: string;\n}\n\nexport enum StatsbeatFeatureType {\n FEATURE = \"Feature\",\n INSTRUMENTATION = \"Instrumentation\",\n}\n"]}
|
|
@@ -23,7 +23,7 @@ export class ApplicationInsightsClient extends coreClient.ServiceClient {
|
|
|
23
23
|
const defaults = {
|
|
24
24
|
requestContentType: "application/json; charset=utf-8"
|
|
25
25
|
};
|
|
26
|
-
const packageDetails = `azsdk-js-monitor-opentelemetry-exporter/1.0.0-beta.
|
|
26
|
+
const packageDetails = `azsdk-js-monitor-opentelemetry-exporter/1.0.0-beta.11`;
|
|
27
27
|
const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
|
|
28
28
|
? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
|
|
29
29
|
: `${packageDetails}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationInsightsClient.js","sourceRoot":"","sources":["../../../src/generated/applicationInsightsClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,gBAAgB,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAQ5C,MAAM,OAAO,yBAA0B,SAAQ,UAAU,CAAC,aAAa;IAGrE;;;OAGG;IACH,YAAY,OAAiD;;QAC3D,0CAA0C;QAC1C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,EAAE,CAAC;SACd;QACD,MAAM,QAAQ,GAA4C;YACxD,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"applicationInsightsClient.js","sourceRoot":"","sources":["../../../src/generated/applicationInsightsClient.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport * as coreRestPipeline from \"@azure/core-rest-pipeline\";\nimport * as Parameters from \"./models/parameters\";\nimport * as Mappers from \"./models/mappers\";\nimport {\n ApplicationInsightsClientOptionalParams,\n TelemetryItem,\n TrackOptionalParams,\n TrackOperationResponse\n} from \"./models\";\n\nexport class ApplicationInsightsClient extends coreClient.ServiceClient {\n host: string;\n\n /**\n * Initializes a new instance of the ApplicationInsightsClient class.\n * @param options The parameter options\n */\n constructor(options?: ApplicationInsightsClientOptionalParams) {\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: ApplicationInsightsClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-monitor-opentelemetry-exporter/1.0.0-beta.11`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint ?? options.baseUri ?? \"{Host}/v2.1\"\n };\n super(optionsWithDefaults);\n\n if (options?.pipeline && options.pipeline.getOrderedPolicies().length > 0) {\n const pipelinePolicies: coreRestPipeline.PipelinePolicy[] = options.pipeline.getOrderedPolicies();\n const bearerTokenAuthenticationPolicyFound = pipelinePolicies.some(\n (pipelinePolicy) =>\n pipelinePolicy.name ===\n coreRestPipeline.bearerTokenAuthenticationPolicyName\n );\n if (!bearerTokenAuthenticationPolicyFound) {\n this.pipeline.removePolicy({\n name: coreRestPipeline.bearerTokenAuthenticationPolicyName\n });\n this.pipeline.addPolicy(\n coreRestPipeline.bearerTokenAuthenticationPolicy({\n scopes: `${optionsWithDefaults.baseUri}/.default`,\n challengeCallbacks: {\n authorizeRequestOnChallenge:\n coreClient.authorizeRequestOnClaimChallenge\n }\n })\n );\n }\n }\n\n // Assigning values to Constant parameters\n this.host = options.host || \"https://dc.services.visualstudio.com\";\n }\n\n /**\n * This operation sends a sequence of telemetry events that will be monitored by Azure Monitor.\n * @param body The list of telemetry events to track.\n * @param options The options parameters.\n */\n track(\n body: TelemetryItem[],\n options?: TrackOptionalParams\n ): Promise<TrackOperationResponse> {\n return this.sendOperationRequest({ body, options }, trackOperationSpec);\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst trackOperationSpec: coreClient.OperationSpec = {\n path: \"/track\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.TrackResponse\n },\n 206: {\n bodyMapper: Mappers.TrackResponse\n },\n 400: {\n bodyMapper: Mappers.TrackResponse,\n isError: true\n },\n 402: {\n bodyMapper: Mappers.TrackResponse,\n isError: true\n },\n 429: {\n bodyMapper: Mappers.TrackResponse,\n isError: true\n },\n 500: {\n bodyMapper: Mappers.TrackResponse,\n isError: true\n },\n 503: {\n bodyMapper: Mappers.TrackResponse,\n isError: true\n }\n },\n requestBody: Parameters.body,\n urlParameters: [Parameters.host],\n headerParameters: [Parameters.contentType, Parameters.accept],\n mediaType: \"json\",\n serializer\n};\n"]}
|
package/dist-esm/src/index.js
CHANGED
|
@@ -4,6 +4,6 @@ export { ApplicationInsightsSampler } from "./sampling";
|
|
|
4
4
|
export { AzureMonitorBaseExporter } from "./export/base";
|
|
5
5
|
export { AzureMonitorTraceExporter } from "./export/trace";
|
|
6
6
|
export { AzureMonitorMetricExporter } from "./export/metric";
|
|
7
|
-
export {
|
|
7
|
+
export { AzureMonitorStatsbeatExporter } from "./export/statsbeat/statsbeatExporter";
|
|
8
8
|
export { ServiceApiVersion } from "./Declarations/Constants";
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { ApplicationInsightsSampler } from \"./sampling\";\nexport { AzureMonitorBaseExporter } from \"./export/base\";\nexport { AzureMonitorTraceExporter } from \"./export/trace\";\nexport { AzureMonitorMetricExporter } from \"./export/metric\";\nexport { AzureMonitorStatsbeatExporter } from \"./export/statsbeat/statsbeatExporter\";\nexport { AzureMonitorExporterOptions } from \"./config\";\nexport { ServiceApiVersion } from \"./Declarations/Constants\";\nexport {\n ApplicationInsightsClientOptionalParams,\n MonitorBase,\n MonitorDomain,\n TelemetryItem,\n} from \"./generated/models\";\n"]}
|
|
@@ -19,7 +19,7 @@ export const TIME_SINCE_ENQUEUED = "timeSinceEnqueued";
|
|
|
19
19
|
* AzureMonitorTraceExporter version.
|
|
20
20
|
* @internal
|
|
21
21
|
*/
|
|
22
|
-
export const packageVersion = "1.0.0-beta.
|
|
22
|
+
export const packageVersion = "1.0.0-beta.11";
|
|
23
23
|
export var DependencyTypes;
|
|
24
24
|
(function (DependencyTypes) {
|
|
25
25
|
DependencyTypes["InProc"] = "InProc";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationinsights.js","sourceRoot":"","sources":["../../../../src/utils/constants/applicationinsights.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC;AACpC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAE9C,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,iDAA8B,CAAA;IAC9B,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,gCAAa,CAAA;AACf,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,8EAA2D,CAAA;IAC3D,oFAAiE,CAAA;IACjE,kEAA+C,CAAA;IAC/C,0DAAuC,CAAA;AACzC,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,kEAA6C,CAAA;IAC7C,yDAAoC,CAAA;IACpC,iDAA4B,CAAA;AAC9B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAgBD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gCAAgC,GAAiD;IAC5F,iBAAiB,EAAE,oBAAoB;IACvC,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,qBAAqB;IACzC,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,kBAAkB,EAAE,qBAAqB;IACzC,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,qBAAqB;CACvC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * AI MS Links.\n * @internal\n */\nexport const MS_LINKS = \"_MS.links\";\n/**\n * AI enqueued time attribute.\n * @internal\n */\nexport const ENQUEUED_TIME = \"enqueuedTime\";\n/**\n * AI time since enqueued attribute.\n * @internal\n */\nexport const TIME_SINCE_ENQUEUED = \"timeSinceEnqueued\";\n/**\n * AzureMonitorTraceExporter version.\n * @internal\n */\nexport const packageVersion = \"1.0.0-beta.
|
|
1
|
+
{"version":3,"file":"applicationinsights.js","sourceRoot":"","sources":["../../../../src/utils/constants/applicationinsights.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC;AACpC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAE9C,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,iDAA8B,CAAA;IAC9B,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,gCAAa,CAAA;AACf,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,8EAA2D,CAAA;IAC3D,oFAAiE,CAAA;IACjE,kEAA+C,CAAA;IAC/C,0DAAuC,CAAA;AACzC,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,kEAA6C,CAAA;IAC7C,yDAAoC,CAAA;IACpC,iDAA4B,CAAA;AAC9B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAgBD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gCAAgC,GAAiD;IAC5F,iBAAiB,EAAE,oBAAoB;IACvC,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,qBAAqB;IACzC,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,kBAAkB,EAAE,qBAAqB;IACzC,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,qBAAqB;CACvC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * AI MS Links.\n * @internal\n */\nexport const MS_LINKS = \"_MS.links\";\n/**\n * AI enqueued time attribute.\n * @internal\n */\nexport const ENQUEUED_TIME = \"enqueuedTime\";\n/**\n * AI time since enqueued attribute.\n * @internal\n */\nexport const TIME_SINCE_ENQUEUED = \"timeSinceEnqueued\";\n/**\n * AzureMonitorTraceExporter version.\n * @internal\n */\nexport const packageVersion = \"1.0.0-beta.11\";\n\nexport enum DependencyTypes {\n InProc = \"InProc\",\n QueueMessage = \"Queue Message\",\n Sql = \"SQL\",\n Http = \"Http\",\n Grpc = \"GRPC\",\n}\n\nexport const AzureMonitorSampleRate = \"_MS.sampleRate\";\n\nexport enum StandardMetrics {\n HTTP_REQUEST_DURATION = \"azureMonitor.http.requestDuration\",\n HTTP_DEPENDENCY_DURATION = \"azureMonitor.http.dependencyDuration\",\n EXCEPTION_COUNT = \"azureMonitor.exceptionCount\",\n TRACE_COUNT = \"azureMonitor.traceCount\",\n}\n\nexport enum StandardMetricIds {\n REQUEST_DURATION = \"requests/duration\",\n DEPENDENCY_DURATION = \"dependencies/duration\",\n EXCEPTION_COUNT = \"exceptions/count\",\n TRACE_COUNT = \"traces/count\",\n}\n\nexport type MetricDimensionTypeKeys =\n | \"cloudRoleInstance\"\n | \"cloudRoleName\"\n | \"requestSuccess\"\n | \"requestResultCode\"\n | \"dependencyType\"\n | \"dependencyTarget\"\n | \"dependencySuccess\"\n | \"dependencyResultCode\"\n | \"traceSeverityLevel\"\n | \"operationSynthetic\"\n | \"metricId\"\n | \"IsAutocollected\";\n\n// Names expected in Breeze side for dimensions\nexport const PreAggregatedMetricPropertyNames: { [key in MetricDimensionTypeKeys]: string } = {\n cloudRoleInstance: \"cloud/roleInstance\",\n cloudRoleName: \"cloud/roleName\",\n operationSynthetic: \"operation/synthetic\",\n requestSuccess: \"Request.Success\",\n requestResultCode: \"request/resultCode\",\n dependencyType: \"Dependency.Type\",\n dependencyTarget: \"dependency/target\",\n dependencySuccess: \"Dependency.Success\",\n dependencyResultCode: \"dependency/resultCode\",\n traceSeverityLevel: \"trace/severityLevel\",\n metricId: \"_MS.MetricId\",\n IsAutocollected: \"_MS.IsAutocollected\",\n};\n"]}
|