@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metricUtils.js","sourceRoot":"","sources":["../../../src/utils/metricUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,aAAa,EAA8B,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAIL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gCAAgC,EAChC,iBAAiB,EACjB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEvE,SAAS,oCAAoC,CAAC,
|
|
1
|
+
{"version":3,"file":"metricUtils.js","sourceRoot":"","sources":["../../../src/utils/metricUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Attributes } from \"@opentelemetry/api\";\nimport { DataPointType, Histogram, ResourceMetrics } from \"@opentelemetry/sdk-metrics\";\nimport {\n TelemetryItem as Envelope,\n MetricsData,\n MetricDataPoint,\n KnownContextTagKeys,\n} from \"../generated\";\nimport { Tags } from \"../types\";\nimport {\n PreAggregatedMetricPropertyNames,\n StandardMetricIds,\n StandardMetrics,\n} from \"./constants/applicationinsights\";\nimport { createTagsFromResource, getDependencyTarget } from \"./common\";\n\nfunction createPropertiesFromMetricAttributes(attributes?: Attributes): {\n [propertyName: string]: string;\n} {\n const properties: { [propertyName: string]: string } = {};\n if (attributes) {\n for (const key of Object.keys(attributes)) {\n properties[key] = attributes[key] as string;\n }\n }\n return properties;\n}\n\n/**\n * Metric to Azure envelope parsing.\n * @internal\n */\nexport function resourceMetricsToEnvelope(\n metrics: ResourceMetrics,\n ikey: string,\n isStatsbeat?: boolean\n): Envelope[] {\n let envelopes: Envelope[] = [];\n const time = new Date();\n const instrumentationKey = ikey;\n const tags = createTagsFromResource(metrics.resource);\n let envelopeName: string;\n\n if (isStatsbeat) {\n envelopeName = \"Microsoft.ApplicationInsights.Statsbeat\";\n } else {\n envelopeName = \"Microsoft.ApplicationInsights.Metric\";\n }\n\n metrics.scopeMetrics.forEach((scopeMetric) => {\n scopeMetric.metrics.forEach((metric) => {\n const isStandardMetric = metric.descriptor?.name?.startsWith(\"azureMonitor.\");\n metric.dataPoints.forEach((dataPoint) => {\n let baseData: MetricsData = {\n metrics: [],\n version: 2,\n properties: {},\n };\n if (isStandardMetric) {\n baseData.properties = createStandardMetricsProperties(\n metric.descriptor.name,\n dataPoint.attributes,\n tags\n );\n } else {\n baseData.properties = createPropertiesFromMetricAttributes(dataPoint.attributes);\n }\n var metricDataPoint: MetricDataPoint = {\n name: metric.descriptor.name,\n value: 0,\n dataPointType: \"Aggregation\",\n };\n if (\n metric.dataPointType == DataPointType.SUM ||\n metric.dataPointType == DataPointType.GAUGE\n ) {\n metricDataPoint.value = dataPoint.value as number;\n metricDataPoint.count = 1;\n } else {\n metricDataPoint.value = (dataPoint.value as Histogram).sum || 0;\n metricDataPoint.count = (dataPoint.value as Histogram).count;\n metricDataPoint.max = (dataPoint.value as Histogram).max;\n metricDataPoint.min = (dataPoint.value as Histogram).min;\n }\n baseData.metrics.push(metricDataPoint);\n let envelope: Envelope = {\n name: envelopeName,\n time: time,\n sampleRate: 100, // Metrics are never sampled\n instrumentationKey: instrumentationKey,\n tags: tags,\n version: 1,\n data: {\n baseType: \"MetricData\",\n baseData: {\n ...baseData,\n },\n },\n };\n envelopes.push(envelope);\n });\n });\n });\n\n return envelopes;\n}\n\nfunction createStandardMetricsProperties(\n name: string,\n attributes: Attributes,\n tags: Tags\n): {\n [propertyName: string]: string;\n} {\n const properties: { [propertyName: string]: string } = {};\n properties[PreAggregatedMetricPropertyNames.IsAutocollected] = \"True\";\n properties[PreAggregatedMetricPropertyNames.cloudRoleInstance] =\n tags[KnownContextTagKeys.AiCloudRoleInstance];\n properties[PreAggregatedMetricPropertyNames.cloudRoleName] =\n tags[KnownContextTagKeys.AiCloudRole];\n\n if (name == StandardMetrics.HTTP_REQUEST_DURATION) {\n properties[PreAggregatedMetricPropertyNames.metricId] = StandardMetricIds.REQUEST_DURATION;\n let statusCode = String(attributes[\"http.status_code\"]);\n properties[PreAggregatedMetricPropertyNames.requestResultCode] = statusCode;\n properties[PreAggregatedMetricPropertyNames.requestSuccess] =\n statusCode == \"200\" ? \"True\" : \"False\";\n } else if (name == StandardMetrics.HTTP_DEPENDENCY_DURATION) {\n properties[PreAggregatedMetricPropertyNames.metricId] = StandardMetricIds.DEPENDENCY_DURATION;\n let statusCode = String(attributes[\"http.status_code\"]);\n properties[PreAggregatedMetricPropertyNames.dependencyTarget] = getDependencyTarget(attributes);\n properties[PreAggregatedMetricPropertyNames.dependencyResultCode] = statusCode;\n properties[PreAggregatedMetricPropertyNames.dependencyType] = \"http\";\n properties[PreAggregatedMetricPropertyNames.dependencySuccess] =\n statusCode == \"200\" ? \"True\" : \"False\";\n } else if (name == StandardMetrics.TRACE_COUNT) {\n properties[PreAggregatedMetricPropertyNames.metricId] = StandardMetricIds.TRACE_COUNT;\n } else if (name == StandardMetrics.EXCEPTION_COUNT) {\n properties[PreAggregatedMetricPropertyNames.metricId] = StandardMetricIds.EXCEPTION_COUNT;\n }\n\n return properties;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@azure/monitor-opentelemetry-exporter",
|
|
3
3
|
"author": "Microsoft Corporation",
|
|
4
4
|
"sdk-type": "client",
|
|
5
|
-
"version": "1.0.0-beta.
|
|
5
|
+
"version": "1.0.0-beta.11",
|
|
6
6
|
"description": "Application Insights exporter for the OpenTelemetry JavaScript (Node.js) SDK",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"module": "dist-esm/src/index.js",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"//metadata": {
|
|
61
61
|
"constantPaths": [
|
|
62
62
|
{
|
|
63
|
-
"path": "src/generated/
|
|
64
|
-
"prefix": "
|
|
63
|
+
"path": "src/generated/applicationInsightsClient.ts",
|
|
64
|
+
"prefix": "packageDetails"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"path": "src/utils/constants/applicationinsights.ts",
|
|
@@ -86,12 +86,12 @@
|
|
|
86
86
|
"@azure/dev-tool": "^1.0.0",
|
|
87
87
|
"@azure/eslint-plugin-azure-sdk": "^3.0.0",
|
|
88
88
|
"@microsoft/api-extractor": "^7.31.1",
|
|
89
|
-
"@opentelemetry/instrumentation": "^0.
|
|
90
|
-
"@opentelemetry/instrumentation-http": "^0.
|
|
91
|
-
"@opentelemetry/sdk-trace-node": "^1.
|
|
89
|
+
"@opentelemetry/instrumentation": "^0.35.0",
|
|
90
|
+
"@opentelemetry/instrumentation-http": "^0.35.0",
|
|
91
|
+
"@opentelemetry/sdk-trace-node": "^1.9.0",
|
|
92
92
|
"@types/mocha": "^7.0.2",
|
|
93
93
|
"@types/node": "^14.0.0",
|
|
94
|
-
"dotenv": "^
|
|
94
|
+
"dotenv": "^16.0.0",
|
|
95
95
|
"eslint": "^8.0.0",
|
|
96
96
|
"eslint-plugin-node": "^11.1.0",
|
|
97
97
|
"mocha": "^7.1.1",
|
|
@@ -107,13 +107,12 @@
|
|
|
107
107
|
"@azure/core-client": "^1.0.0",
|
|
108
108
|
"@azure/core-auth": "^1.3.0",
|
|
109
109
|
"@azure/core-rest-pipeline": "^1.1.0",
|
|
110
|
-
"@opentelemetry/api": "^1.
|
|
111
|
-
"@opentelemetry/
|
|
112
|
-
"@opentelemetry/
|
|
113
|
-
"@opentelemetry/
|
|
114
|
-
"@opentelemetry/sdk-
|
|
115
|
-
"@opentelemetry/
|
|
116
|
-
"@opentelemetry/semantic-conventions": "^1.7.0",
|
|
110
|
+
"@opentelemetry/api": "^1.4.0",
|
|
111
|
+
"@opentelemetry/core": "^1.9.0",
|
|
112
|
+
"@opentelemetry/resources": "^1.9.0",
|
|
113
|
+
"@opentelemetry/sdk-metrics": "^1.9.0",
|
|
114
|
+
"@opentelemetry/sdk-trace-base": "^1.9.0",
|
|
115
|
+
"@opentelemetry/semantic-conventions": "^1.9.0",
|
|
117
116
|
"tslib": "^2.2.0"
|
|
118
117
|
},
|
|
119
118
|
"sideEffects": false,
|
|
@@ -67,7 +67,8 @@ export declare abstract class AzureMonitorBaseExporter {
|
|
|
67
67
|
private readonly _sender;
|
|
68
68
|
private _numConsecutiveRedirects;
|
|
69
69
|
private _retryTimer;
|
|
70
|
-
private
|
|
70
|
+
private _networkStatsbeatMetrics;
|
|
71
|
+
private _longIntervalStatsbeatMetrics;
|
|
71
72
|
private _isStatsbeatExporter;
|
|
72
73
|
private _statsbeatFailureCount;
|
|
73
74
|
private _batchSendRetryIntervalMs;
|
|
@@ -161,7 +162,32 @@ export declare class AzureMonitorMetricExporter extends AzureMonitorBaseExporter
|
|
|
161
162
|
forceFlush(): Promise<void>;
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
|
|
165
|
+
/**
|
|
166
|
+
* Azure Monitor Statsbeat Exporter
|
|
167
|
+
*/
|
|
168
|
+
export declare class AzureMonitorStatsbeatExporter extends AzureMonitorBaseExporter implements PushMetricExporter {
|
|
169
|
+
/**
|
|
170
|
+
* Flag to determine if the Exporter is shutdown.
|
|
171
|
+
*/
|
|
172
|
+
private _isShutdown;
|
|
173
|
+
/**
|
|
174
|
+
* Initializes a new instance of the AzureMonitorStatsbeatExporter class.
|
|
175
|
+
* @param options - Exporter configuration
|
|
176
|
+
*/
|
|
177
|
+
constructor(options: AzureMonitorExporterOptions);
|
|
178
|
+
/**
|
|
179
|
+
* Export Statsbeat metrics.
|
|
180
|
+
*/
|
|
181
|
+
export(metrics: ResourceMetrics, resultCallback: (result: ExportResult) => void): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* Shutdown AzureMonitorStatsbeatExporter.
|
|
184
|
+
*/
|
|
185
|
+
shutdown(): Promise<void>;
|
|
186
|
+
/**
|
|
187
|
+
* Force flush.
|
|
188
|
+
*/
|
|
189
|
+
forceFlush(): Promise<void>;
|
|
190
|
+
}
|
|
165
191
|
|
|
166
192
|
/**
|
|
167
193
|
* Azure Monitor OpenTelemetry Trace Exporter.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"statsbeat.js","sourceRoot":"","sources":["../../../src/export/statsbeat.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,sBAAsB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAElD;;;GAGG;AACH,MAAM,OAAO,8BACX,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 * @internal\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"]}
|