@azure/monitor-opentelemetry 1.14.2-alpha.20251125.1 → 1.15.0
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 +44 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +3 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/loader.d.ts +2 -0
- package/dist/commonjs/loader.d.ts.map +1 -0
- package/dist/commonjs/loader.js +40 -0
- package/dist/commonjs/loader.js.map +1 -0
- package/dist/commonjs/metrics/handler.d.ts.map +1 -1
- package/dist/commonjs/metrics/handler.js +33 -1
- package/dist/commonjs/metrics/handler.js.map +1 -1
- package/dist/commonjs/metrics/types.d.ts +5 -0
- package/dist/commonjs/metrics/types.d.ts.map +1 -1
- package/dist/commonjs/metrics/types.js +9 -1
- package/dist/commonjs/metrics/types.js.map +1 -1
- package/dist/commonjs/shared/config.d.ts +3 -0
- package/dist/commonjs/shared/config.d.ts.map +1 -1
- package/dist/commonjs/shared/config.js +3 -0
- package/dist/commonjs/shared/config.js.map +1 -1
- package/dist/commonjs/shared/envConfig.d.ts +6 -0
- package/dist/commonjs/shared/envConfig.d.ts.map +1 -1
- package/dist/commonjs/shared/envConfig.js +91 -19
- package/dist/commonjs/shared/envConfig.js.map +1 -1
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts +1 -0
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.js +44 -10
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.js.map +1 -1
- package/dist/commonjs/shared/module-cjs.cjs.map +1 -1
- package/dist/commonjs/shared/module-cjs.d.cts.map +1 -1
- package/dist/commonjs/shared/module.d.ts +6 -0
- package/dist/commonjs/shared/module.js +18 -0
- package/dist/commonjs/traces/handler.d.ts.map +1 -1
- package/dist/commonjs/traces/handler.js +5 -2
- package/dist/commonjs/traces/handler.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/types.d.ts +4 -2
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +1 -1
- package/dist/commonjs/types.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.d.ts +2 -0
- package/dist/esm/loader.d.ts.map +1 -0
- package/dist/esm/loader.js +37 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/metrics/handler.d.ts.map +1 -1
- package/dist/esm/metrics/handler.js +35 -3
- package/dist/esm/metrics/handler.js.map +1 -1
- package/dist/esm/metrics/types.d.ts +5 -0
- package/dist/esm/metrics/types.d.ts.map +1 -1
- package/dist/esm/metrics/types.js +8 -0
- package/dist/esm/metrics/types.js.map +1 -1
- package/dist/esm/shared/config.d.ts +3 -0
- package/dist/esm/shared/config.d.ts.map +1 -1
- package/dist/esm/shared/config.js +3 -0
- package/dist/esm/shared/config.js.map +1 -1
- package/dist/esm/shared/envConfig.d.ts +6 -0
- package/dist/esm/shared/envConfig.d.ts.map +1 -1
- package/dist/esm/shared/envConfig.js +91 -19
- package/dist/esm/shared/envConfig.js.map +1 -1
- package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts +1 -0
- package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
- package/dist/esm/shared/logging/diagFileConsoleLogger.js +44 -10
- package/dist/esm/shared/logging/diagFileConsoleLogger.js.map +1 -1
- package/dist/esm/shared/module.d.ts +6 -0
- package/dist/esm/shared/module.d.ts.map +1 -1
- package/dist/esm/shared/module.js +10 -0
- package/dist/esm/shared/module.js.map +1 -1
- package/dist/esm/traces/handler.d.ts.map +1 -1
- package/dist/esm/traces/handler.js +5 -2
- package/dist/esm/traces/handler.js.map +1 -1
- package/dist/esm/types.d.ts +4 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +22 -11
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
+
import { AlwaysOffSampler, AlwaysOnSampler, ParentBasedSampler, TraceIdRatioBasedSampler, } from "@opentelemetry/sdk-trace-base";
|
|
3
4
|
import { Logger } from "./logging/index.js";
|
|
4
5
|
const TRACES_SAMPLER = "OTEL_TRACES_SAMPLER";
|
|
5
6
|
const TRACES_SAMPLER_ARG = "OTEL_TRACES_SAMPLER_ARG";
|
|
6
7
|
const RATE_LIMITED_SAMPLER = "microsoft.rate_limited";
|
|
7
8
|
const FIXED_PERCENTAGE_SAMPLER = "microsoft.fixed_percentage";
|
|
9
|
+
const ALWAYS_ON_SAMPLER = "always_on";
|
|
10
|
+
const ALWAYS_OFF_SAMPLER = "always_off";
|
|
11
|
+
const TRACE_ID_RATIO_SAMPLER = "trace_id_ratio";
|
|
12
|
+
const PARENT_BASED_ALWAYS_ON_SAMPLER = "parentbased_always_on";
|
|
13
|
+
const PARENT_BASED_ALWAYS_OFF_SAMPLER = "parentbased_always_off";
|
|
14
|
+
const PARENT_BASED_TRACE_ID_RATIO_SAMPLER = "parentbased_trace_id_ratio";
|
|
15
|
+
const SUPPORTED_OTEL_SAMPLERS = [
|
|
16
|
+
RATE_LIMITED_SAMPLER,
|
|
17
|
+
FIXED_PERCENTAGE_SAMPLER,
|
|
18
|
+
ALWAYS_ON_SAMPLER,
|
|
19
|
+
ALWAYS_OFF_SAMPLER,
|
|
20
|
+
TRACE_ID_RATIO_SAMPLER,
|
|
21
|
+
PARENT_BASED_ALWAYS_ON_SAMPLER,
|
|
22
|
+
PARENT_BASED_ALWAYS_OFF_SAMPLER,
|
|
23
|
+
PARENT_BASED_TRACE_ID_RATIO_SAMPLER,
|
|
24
|
+
];
|
|
8
25
|
/**
|
|
9
26
|
* Azure Monitor OpenTelemetry Client Configuration through Env variables
|
|
10
27
|
* @internal
|
|
@@ -14,6 +31,8 @@ export class EnvConfig {
|
|
|
14
31
|
samplingRatio;
|
|
15
32
|
/** The maximum number of spans to sample per second. (Default undefined)*/
|
|
16
33
|
tracesPerSecond;
|
|
34
|
+
/** Custom OpenTelemetry sampler derived from env configuration */
|
|
35
|
+
sampler;
|
|
17
36
|
static instance;
|
|
18
37
|
/** Get Singleton instance */
|
|
19
38
|
static getInstance() {
|
|
@@ -26,28 +45,81 @@ export class EnvConfig {
|
|
|
26
45
|
* Initializes a new instance of the EnvConfig class.
|
|
27
46
|
*/
|
|
28
47
|
constructor() {
|
|
29
|
-
const envSampler = process.env[TRACES_SAMPLER];
|
|
30
|
-
const envSamplerArg = process.env[TRACES_SAMPLER_ARG];
|
|
31
|
-
if (envSampler
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
const envSampler = process.env[TRACES_SAMPLER]?.trim().toLowerCase();
|
|
49
|
+
const envSamplerArg = process.env[TRACES_SAMPLER_ARG]?.trim();
|
|
50
|
+
if (!envSampler) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (envSampler === RATE_LIMITED_SAMPLER || envSampler === FIXED_PERCENTAGE_SAMPLER) {
|
|
54
|
+
this._applyMicrosoftSampler(envSampler, envSamplerArg);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this._applyOtelSampler(envSampler, envSamplerArg);
|
|
58
|
+
}
|
|
59
|
+
_applyMicrosoftSampler(envSampler, envSamplerArg) {
|
|
60
|
+
if (envSamplerArg === undefined) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const argValue = Number(envSamplerArg);
|
|
64
|
+
if (isNaN(argValue)) {
|
|
65
|
+
Logger.getInstance().warn("Invalid value for OTEL_TRACES_SAMPLER_ARG. It must be a number.");
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (envSampler === RATE_LIMITED_SAMPLER) {
|
|
69
|
+
this.tracesPerSecond = argValue;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.samplingRatio = argValue;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
_applyOtelSampler(envSampler, envSamplerArg) {
|
|
76
|
+
switch (envSampler) {
|
|
77
|
+
case ALWAYS_ON_SAMPLER:
|
|
78
|
+
this.sampler = new AlwaysOnSampler();
|
|
79
|
+
this.samplingRatio = 1;
|
|
80
|
+
return;
|
|
81
|
+
case ALWAYS_OFF_SAMPLER:
|
|
82
|
+
this.sampler = new AlwaysOffSampler();
|
|
83
|
+
this.samplingRatio = 0;
|
|
84
|
+
return;
|
|
85
|
+
case TRACE_ID_RATIO_SAMPLER: {
|
|
86
|
+
const ratio = this._parseProbability(envSamplerArg);
|
|
87
|
+
this.sampler = new TraceIdRatioBasedSampler(ratio);
|
|
88
|
+
this.samplingRatio = ratio;
|
|
89
|
+
return;
|
|
45
90
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
91
|
+
case PARENT_BASED_ALWAYS_ON_SAMPLER:
|
|
92
|
+
this.sampler = new ParentBasedSampler({ root: new AlwaysOnSampler() });
|
|
93
|
+
this.samplingRatio = 1;
|
|
94
|
+
return;
|
|
95
|
+
case PARENT_BASED_ALWAYS_OFF_SAMPLER:
|
|
96
|
+
this.sampler = new ParentBasedSampler({ root: new AlwaysOffSampler() });
|
|
97
|
+
this.samplingRatio = 0;
|
|
98
|
+
return;
|
|
99
|
+
case PARENT_BASED_TRACE_ID_RATIO_SAMPLER: {
|
|
100
|
+
const ratio = this._parseProbability(envSamplerArg);
|
|
101
|
+
this.sampler = new ParentBasedSampler({ root: new TraceIdRatioBasedSampler(ratio) });
|
|
102
|
+
this.samplingRatio = ratio;
|
|
103
|
+
return;
|
|
49
104
|
}
|
|
105
|
+
default:
|
|
106
|
+
Logger.getInstance().warn(`Unsupported value for OTEL_TRACES_SAMPLER: ${envSampler}. Supported values are: ${SUPPORTED_OTEL_SAMPLERS.join(", ")}.`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
_parseProbability(arg) {
|
|
110
|
+
if (arg === undefined) {
|
|
111
|
+
return 1;
|
|
112
|
+
}
|
|
113
|
+
if (arg === "") {
|
|
114
|
+
Logger.getInstance().warn("Invalid value for OTEL_TRACES_SAMPLER_ARG. It should be a number in the range [0,1].");
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
const parsed = Number(arg);
|
|
118
|
+
if (isNaN(parsed) || parsed < 0 || parsed > 1) {
|
|
119
|
+
Logger.getInstance().warn("Invalid value for OTEL_TRACES_SAMPLER_ARG. It should be a number in the range [0,1].");
|
|
120
|
+
return 1;
|
|
50
121
|
}
|
|
122
|
+
return parsed;
|
|
51
123
|
}
|
|
52
124
|
}
|
|
53
125
|
//# sourceMappingURL=envConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envConfig.js","sourceRoot":"","sources":["../../../src/shared/envConfig.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AACrD,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AACtD,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"envConfig.js","sourceRoot":"","sources":["../../../src/shared/envConfig.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AzureMonitorOpenTelemetryOptions } from \"../types.js\";\nimport {\n AlwaysOffSampler,\n AlwaysOnSampler,\n ParentBasedSampler,\n Sampler,\n TraceIdRatioBasedSampler,\n} from \"@opentelemetry/sdk-trace-base\";\nimport { Logger } from \"./logging/index.js\";\nconst TRACES_SAMPLER = \"OTEL_TRACES_SAMPLER\";\nconst TRACES_SAMPLER_ARG = \"OTEL_TRACES_SAMPLER_ARG\";\nconst RATE_LIMITED_SAMPLER = \"microsoft.rate_limited\";\nconst FIXED_PERCENTAGE_SAMPLER = \"microsoft.fixed_percentage\";\nconst ALWAYS_ON_SAMPLER = \"always_on\";\nconst ALWAYS_OFF_SAMPLER = \"always_off\";\nconst TRACE_ID_RATIO_SAMPLER = \"trace_id_ratio\";\nconst PARENT_BASED_ALWAYS_ON_SAMPLER = \"parentbased_always_on\";\nconst PARENT_BASED_ALWAYS_OFF_SAMPLER = \"parentbased_always_off\";\nconst PARENT_BASED_TRACE_ID_RATIO_SAMPLER = \"parentbased_trace_id_ratio\";\nconst SUPPORTED_OTEL_SAMPLERS = [\n RATE_LIMITED_SAMPLER,\n FIXED_PERCENTAGE_SAMPLER,\n ALWAYS_ON_SAMPLER,\n ALWAYS_OFF_SAMPLER,\n TRACE_ID_RATIO_SAMPLER,\n PARENT_BASED_ALWAYS_ON_SAMPLER,\n PARENT_BASED_ALWAYS_OFF_SAMPLER,\n PARENT_BASED_TRACE_ID_RATIO_SAMPLER,\n];\n\n/**\n * Azure Monitor OpenTelemetry Client Configuration through Env variables\n * @internal\n */\nexport class EnvConfig implements AzureMonitorOpenTelemetryOptions {\n /** The rate of telemetry items tracked that should be transmitted (Default 1.0) */\n public samplingRatio?: number;\n /** The maximum number of spans to sample per second. (Default undefined)*/\n public tracesPerSecond?: number;\n /** Custom OpenTelemetry sampler derived from env configuration */\n public sampler?: Sampler;\n\n private static instance: EnvConfig;\n\n /** Get Singleton instance */\n public static getInstance(): EnvConfig {\n if (!EnvConfig.instance) {\n EnvConfig.instance = new EnvConfig();\n }\n return EnvConfig.instance;\n }\n\n /**\n * Initializes a new instance of the EnvConfig class.\n */\n constructor() {\n const envSampler = process.env[TRACES_SAMPLER]?.trim().toLowerCase();\n const envSamplerArg = process.env[TRACES_SAMPLER_ARG]?.trim();\n\n if (!envSampler) {\n return;\n }\n\n if (envSampler === RATE_LIMITED_SAMPLER || envSampler === FIXED_PERCENTAGE_SAMPLER) {\n this._applyMicrosoftSampler(envSampler, envSamplerArg);\n return;\n }\n\n this._applyOtelSampler(envSampler, envSamplerArg);\n }\n\n private _applyMicrosoftSampler(envSampler: string, envSamplerArg?: string): void {\n if (envSamplerArg === undefined) {\n return;\n }\n\n const argValue = Number(envSamplerArg);\n if (isNaN(argValue)) {\n Logger.getInstance().warn(\"Invalid value for OTEL_TRACES_SAMPLER_ARG. It must be a number.\");\n return;\n }\n\n if (envSampler === RATE_LIMITED_SAMPLER) {\n this.tracesPerSecond = argValue;\n } else {\n this.samplingRatio = argValue;\n }\n }\n\n private _applyOtelSampler(envSampler: string, envSamplerArg?: string): void {\n switch (envSampler) {\n case ALWAYS_ON_SAMPLER:\n this.sampler = new AlwaysOnSampler();\n this.samplingRatio = 1;\n return;\n case ALWAYS_OFF_SAMPLER:\n this.sampler = new AlwaysOffSampler();\n this.samplingRatio = 0;\n return;\n case TRACE_ID_RATIO_SAMPLER: {\n const ratio = this._parseProbability(envSamplerArg);\n this.sampler = new TraceIdRatioBasedSampler(ratio);\n this.samplingRatio = ratio;\n return;\n }\n case PARENT_BASED_ALWAYS_ON_SAMPLER:\n this.sampler = new ParentBasedSampler({ root: new AlwaysOnSampler() });\n this.samplingRatio = 1;\n return;\n case PARENT_BASED_ALWAYS_OFF_SAMPLER:\n this.sampler = new ParentBasedSampler({ root: new AlwaysOffSampler() });\n this.samplingRatio = 0;\n return;\n case PARENT_BASED_TRACE_ID_RATIO_SAMPLER: {\n const ratio = this._parseProbability(envSamplerArg);\n this.sampler = new ParentBasedSampler({ root: new TraceIdRatioBasedSampler(ratio) });\n this.samplingRatio = ratio;\n return;\n }\n default:\n Logger.getInstance().warn(\n `Unsupported value for OTEL_TRACES_SAMPLER: ${envSampler}. Supported values are: ${SUPPORTED_OTEL_SAMPLERS.join(\", \")}.`,\n );\n }\n }\n\n private _parseProbability(arg?: string): number {\n if (arg === undefined) {\n return 1;\n }\n\n if (arg === \"\") {\n Logger.getInstance().warn(\n \"Invalid value for OTEL_TRACES_SAMPLER_ARG. It should be a number in the range [0,1].\",\n );\n return 1;\n }\n\n const parsed = Number(arg);\n if (isNaN(parsed) || parsed < 0 || parsed > 1) {\n Logger.getInstance().warn(\n \"Invalid value for OTEL_TRACES_SAMPLER_ARG. It should be a number in the range [0,1].\",\n );\n return 1;\n }\n\n return parsed;\n }\n}\n"]}
|
|
@@ -24,6 +24,7 @@ export declare class DiagFileConsoleLogger implements DiagLogger {
|
|
|
24
24
|
* non-actionable warnings to customers
|
|
25
25
|
*/
|
|
26
26
|
private _shouldFilterResourceAttributeWarning;
|
|
27
|
+
private _shouldFilterAzureMonitorExporterWarning;
|
|
27
28
|
private _storeToDisk;
|
|
28
29
|
private _createBackupFile;
|
|
29
30
|
private _fileCleanupTask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagFileConsoleLogger.d.ts","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAYrD,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAqB;;IAyCrC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"diagFileConsoleLogger.d.ts","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAYrD,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAqB;;IAyCrC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAY1C,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAYzC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAYzC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAY1C,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAYtC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/E;;;OAGG;IACH,OAAO,CAAC,qCAAqC;IA2C7C,OAAO,CAAC,wCAAwC;YAelC,YAAY;YAkCZ,iBAAiB;YAcjB,gBAAgB;CA0B/B"}
|
|
@@ -56,34 +56,56 @@ export class DiagFileConsoleLogger {
|
|
|
56
56
|
}
|
|
57
57
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
58
58
|
error(message, ...args) {
|
|
59
|
-
// Filter out warnings about accessing resource attributes before async attributes are settled
|
|
60
59
|
if (this._shouldFilterResourceAttributeWarning(message, args)) {
|
|
61
60
|
return;
|
|
62
61
|
}
|
|
62
|
+
if (this._shouldFilterAzureMonitorExporterWarning(message)) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
63
65
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
64
66
|
this.logMessage(message, args);
|
|
65
67
|
}
|
|
66
68
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
67
69
|
warn(message, ...args) {
|
|
68
|
-
// Filter out warnings about accessing resource attributes before async attributes are settled
|
|
69
70
|
if (this._shouldFilterResourceAttributeWarning(message, args)) {
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
73
|
+
if (this._shouldFilterAzureMonitorExporterWarning(message)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
72
76
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
73
77
|
this.logMessage(message, args);
|
|
74
78
|
}
|
|
75
79
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
76
80
|
info(message, ...args) {
|
|
81
|
+
if (this._shouldFilterResourceAttributeWarning(message, args)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (this._shouldFilterAzureMonitorExporterWarning(message)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
77
87
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
78
88
|
this.logMessage(message, args);
|
|
79
89
|
}
|
|
80
90
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
81
91
|
debug(message, ...args) {
|
|
92
|
+
if (this._shouldFilterResourceAttributeWarning(message, args)) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (this._shouldFilterAzureMonitorExporterWarning(message)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
82
98
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
83
99
|
this.logMessage(message, args);
|
|
84
100
|
}
|
|
85
101
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
86
102
|
verbose(message, ...args) {
|
|
103
|
+
if (this._shouldFilterResourceAttributeWarning(message, args)) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (this._shouldFilterAzureMonitorExporterWarning(message)) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
87
109
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
88
110
|
this.logMessage(message, args);
|
|
89
111
|
}
|
|
@@ -113,25 +135,26 @@ export class DiagFileConsoleLogger {
|
|
|
113
135
|
"accessing resource attributes before async attributes settled",
|
|
114
136
|
"resource attributes being accessed before async attributes finished",
|
|
115
137
|
"async attributes settled",
|
|
138
|
+
"unsettled resource attribute",
|
|
116
139
|
"resource attributes accessed before async detection completed",
|
|
117
140
|
"module @azure/core-tracing has been loaded before @azure/opentelemetry-instrumentation-azure-sdk",
|
|
118
141
|
];
|
|
142
|
+
const stringsToInspect = [];
|
|
119
143
|
if (typeof message === "string") {
|
|
120
|
-
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
144
|
+
stringsToInspect.push(message.toLowerCase());
|
|
123
145
|
}
|
|
124
|
-
// Check if the message is in the args array
|
|
125
146
|
if (args && Array.isArray(args)) {
|
|
126
147
|
for (const arg of args) {
|
|
127
148
|
if (typeof arg === "string") {
|
|
128
|
-
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
149
|
+
stringsToInspect.push(arg.toLowerCase());
|
|
131
150
|
}
|
|
132
151
|
}
|
|
133
152
|
}
|
|
134
|
-
|
|
153
|
+
for (const text of stringsToInspect) {
|
|
154
|
+
if (messagesToFilter.some((filterText) => text.includes(filterText))) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
135
158
|
if (typeof message === "string") {
|
|
136
159
|
const messageParts = message.split(" ");
|
|
137
160
|
if (messageParts.length >= 3 &&
|
|
@@ -143,6 +166,17 @@ export class DiagFileConsoleLogger {
|
|
|
143
166
|
}
|
|
144
167
|
return false;
|
|
145
168
|
}
|
|
169
|
+
_shouldFilterAzureMonitorExporterWarning(message) {
|
|
170
|
+
if (typeof message !== "string") {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
const text = message.toLowerCase();
|
|
174
|
+
if (!text.includes("otel_metrics_exporter")) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
const matchesUnsupportedValue = text.includes("unsupported otel_metrics_exporter value");
|
|
178
|
+
return matchesUnsupportedValue && text.includes("azure_monitor");
|
|
179
|
+
}
|
|
146
180
|
async _storeToDisk(args) {
|
|
147
181
|
const data = `${args}\r\n`;
|
|
148
182
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagFileConsoleLogger.js","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport type { DiagLogger } from \"@opentelemetry/api\";\nimport {\n accessAsync,\n appendFileAsync,\n confirmDirExists,\n getShallowFileSize,\n readdirAsync,\n readFileAsync,\n writeFileAsync,\n unlinkAsync,\n} from \"../../utils/index.js\";\n\nexport class DiagFileConsoleLogger implements DiagLogger {\n private _TAG = \"DiagFileConsoleLogger:\";\n private _cleanupTimeOut = 60 * 30 * 1000; // 30 minutes;\n private _fileCleanupTimer: NodeJS.Timeout | null = null;\n private _tempDir: string;\n private _logFileName: string;\n private _fileFullPath: string;\n private _backUpNameFormat: string;\n private _logToFile = false;\n private _logToConsole = true;\n private _maxHistory: number;\n private _maxSizeBytes: number;\n private _logDestination: string | undefined;\n\n constructor() {\n this._logDestination = process.env.APPLICATIONINSIGHTS_LOG_DESTINATION; // destination can be one of file, console or file+console\n if (this._logDestination === \"file+console\") {\n this._logToFile = true;\n }\n if (this._logDestination === \"file\") {\n this._logToFile = true;\n this._logToConsole = false;\n }\n this._maxSizeBytes = 50000;\n this._maxHistory = 1;\n this._logFileName = \"applicationinsights.log\";\n\n // If custom path not provided use temp folder, /tmp for *nix and USERDIR/AppData/Local/Temp for Windows\n const logFilePath = process.env.APPLICATIONINSIGHTS_LOGDIR;\n if (!logFilePath) {\n this._tempDir = path.join(os.tmpdir(), \"appInsights-node\");\n } else {\n if (path.isAbsolute(logFilePath)) {\n this._tempDir = logFilePath;\n } else {\n this._tempDir = path.join(process.cwd(), logFilePath);\n }\n }\n this._fileFullPath = path.join(this._tempDir, this._logFileName);\n this._backUpNameFormat = `.${this._logFileName}`; // {currentime}.applicationinsights.log\n\n if (this._logToFile) {\n if (!this._fileCleanupTimer) {\n this._fileCleanupTimer = setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._fileCleanupTask();\n }, this._cleanupTimeOut);\n this._fileCleanupTimer.unref();\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public error(message?: any, ...args: any[]): void {\n // Filter out warnings about accessing resource attributes before async attributes are settled\n if (this._shouldFilterResourceAttributeWarning(message, args)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public warn(message?: any, ...args: any[]): void {\n // Filter out warnings about accessing resource attributes before async attributes are settled\n if (this._shouldFilterResourceAttributeWarning(message, args)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public info(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public debug(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public verbose(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public async logMessage(message?: any, ...optionalParams: any[]): Promise<void> {\n try {\n const args = message ? [message, ...optionalParams] : optionalParams;\n if (this._logToFile) {\n await this._storeToDisk(args);\n }\n if (this._logToConsole) {\n // eslint-disable-next-line no-console\n console.log(...args);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to log to file: ${err && err.message}`);\n }\n }\n\n /**\n * Checks if the warning message should be filtered out to avoid showing\n * non-actionable warnings to customers\n */\n private _shouldFilterResourceAttributeWarning(message?: any, args?: any[]): boolean {\n const messagesToFilter = [\n \"accessing resource attributes before async attributes settled\",\n \"resource attributes being accessed before async attributes finished\",\n \"async attributes settled\",\n \"resource attributes accessed before async detection completed\",\n \"module @azure/core-tracing has been loaded before @azure/opentelemetry-instrumentation-azure-sdk\",\n ];\n\n if (typeof message === \"string\") {\n if (messagesToFilter.some((filterText) => message.toLowerCase().includes(filterText))) {\n return true;\n }\n }\n\n // Check if the message is in the args array\n if (args && Array.isArray(args)) {\n for (const arg of args) {\n if (typeof arg === \"string\") {\n if (messagesToFilter.some((filterText) => arg.toLowerCase().includes(filterText))) {\n return true;\n }\n }\n }\n }\n\n // Also check if message starts with the warning text (in case it's formatted differently)\n if (typeof message === \"string\") {\n const messageParts = message.split(\" \");\n if (\n messageParts.length >= 3 &&\n messageParts[0].toLowerCase() === \"accessing\" &&\n messageParts[1].toLowerCase() === \"resource\" &&\n messageParts[2].toLowerCase() === \"attributes\"\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n private async _storeToDisk(args: any): Promise<void> {\n const data = `${args}\\r\\n`;\n\n try {\n await confirmDirExists(this._tempDir);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to create directory for log file: ${err && err.message}`);\n return;\n }\n try {\n await accessAsync(this._fileFullPath, fs.constants.F_OK);\n } catch (err: any) {\n // No file create one\n try {\n await appendFileAsync(this._fileFullPath, data);\n } catch (appendError: any) {\n // eslint-disable-next-line no-console\n console.log(\n this._TAG,\n `Failed to put log into file: ${appendError && appendError.message}`,\n );\n return;\n }\n }\n // Check size\n const size = await getShallowFileSize(this._fileFullPath);\n if (size && size > this._maxSizeBytes) {\n await this._createBackupFile(data);\n } else {\n await appendFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _createBackupFile(data: string): Promise<void> {\n try {\n const buffer = await readFileAsync(this._fileFullPath);\n const backupPath = path.join(this._tempDir, `${new Date().getTime()}.${this._logFileName}`);\n await writeFileAsync(backupPath, buffer);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(\"Failed to generate backup log file\", err);\n } finally {\n // Store logs\n await writeFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _fileCleanupTask(): Promise<void> {\n try {\n let files = await readdirAsync(this._tempDir);\n // Filter only backup files\n files = files.filter((f) => path.basename(f).indexOf(this._backUpNameFormat) > -1);\n // Sort by creation date\n files.sort((a: string, b: string) => {\n // Check expiration\n const aCreationDate: Date = new Date(parseInt(a.split(this._backUpNameFormat)[0]));\n const bCreationDate: Date = new Date(parseInt(b.split(this._backUpNameFormat)[0]));\n if (aCreationDate < bCreationDate) {\n return -1;\n } else {\n return 1;\n }\n });\n const totalFiles = files.length;\n for (let i = 0; i < totalFiles - this._maxHistory; i++) {\n const pathToDelete = path.join(this._tempDir, files[i]);\n await unlinkAsync(pathToDelete);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to cleanup log files: ${err && err.message}`);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"diagFileConsoleLogger.js","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport type { DiagLogger } from \"@opentelemetry/api\";\nimport {\n accessAsync,\n appendFileAsync,\n confirmDirExists,\n getShallowFileSize,\n readdirAsync,\n readFileAsync,\n writeFileAsync,\n unlinkAsync,\n} from \"../../utils/index.js\";\n\nexport class DiagFileConsoleLogger implements DiagLogger {\n private _TAG = \"DiagFileConsoleLogger:\";\n private _cleanupTimeOut = 60 * 30 * 1000; // 30 minutes;\n private _fileCleanupTimer: NodeJS.Timeout | null = null;\n private _tempDir: string;\n private _logFileName: string;\n private _fileFullPath: string;\n private _backUpNameFormat: string;\n private _logToFile = false;\n private _logToConsole = true;\n private _maxHistory: number;\n private _maxSizeBytes: number;\n private _logDestination: string | undefined;\n\n constructor() {\n this._logDestination = process.env.APPLICATIONINSIGHTS_LOG_DESTINATION; // destination can be one of file, console or file+console\n if (this._logDestination === \"file+console\") {\n this._logToFile = true;\n }\n if (this._logDestination === \"file\") {\n this._logToFile = true;\n this._logToConsole = false;\n }\n this._maxSizeBytes = 50000;\n this._maxHistory = 1;\n this._logFileName = \"applicationinsights.log\";\n\n // If custom path not provided use temp folder, /tmp for *nix and USERDIR/AppData/Local/Temp for Windows\n const logFilePath = process.env.APPLICATIONINSIGHTS_LOGDIR;\n if (!logFilePath) {\n this._tempDir = path.join(os.tmpdir(), \"appInsights-node\");\n } else {\n if (path.isAbsolute(logFilePath)) {\n this._tempDir = logFilePath;\n } else {\n this._tempDir = path.join(process.cwd(), logFilePath);\n }\n }\n this._fileFullPath = path.join(this._tempDir, this._logFileName);\n this._backUpNameFormat = `.${this._logFileName}`; // {currentime}.applicationinsights.log\n\n if (this._logToFile) {\n if (!this._fileCleanupTimer) {\n this._fileCleanupTimer = setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._fileCleanupTask();\n }, this._cleanupTimeOut);\n this._fileCleanupTimer.unref();\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public error(message?: any, ...args: any[]): void {\n if (this._shouldFilterResourceAttributeWarning(message, args)) {\n return;\n }\n if (this._shouldFilterAzureMonitorExporterWarning(message)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public warn(message?: any, ...args: any[]): void {\n if (this._shouldFilterResourceAttributeWarning(message, args)) {\n return;\n }\n if (this._shouldFilterAzureMonitorExporterWarning(message)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public info(message?: any, ...args: any[]): void {\n if (this._shouldFilterResourceAttributeWarning(message, args)) {\n return;\n }\n if (this._shouldFilterAzureMonitorExporterWarning(message)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public debug(message?: any, ...args: any[]): void {\n if (this._shouldFilterResourceAttributeWarning(message, args)) {\n return;\n }\n if (this._shouldFilterAzureMonitorExporterWarning(message)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public verbose(message?: any, ...args: any[]): void {\n if (this._shouldFilterResourceAttributeWarning(message, args)) {\n return;\n }\n if (this._shouldFilterAzureMonitorExporterWarning(message)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public async logMessage(message?: any, ...optionalParams: any[]): Promise<void> {\n try {\n const args = message ? [message, ...optionalParams] : optionalParams;\n if (this._logToFile) {\n await this._storeToDisk(args);\n }\n if (this._logToConsole) {\n // eslint-disable-next-line no-console\n console.log(...args);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to log to file: ${err && err.message}`);\n }\n }\n\n /**\n * Checks if the warning message should be filtered out to avoid showing\n * non-actionable warnings to customers\n */\n private _shouldFilterResourceAttributeWarning(message?: any, args?: any[]): boolean {\n const messagesToFilter = [\n \"accessing resource attributes before async attributes settled\",\n \"resource attributes being accessed before async attributes finished\",\n \"async attributes settled\",\n \"unsettled resource attribute\",\n \"resource attributes accessed before async detection completed\",\n \"module @azure/core-tracing has been loaded before @azure/opentelemetry-instrumentation-azure-sdk\",\n ];\n\n const stringsToInspect: string[] = [];\n if (typeof message === \"string\") {\n stringsToInspect.push(message.toLowerCase());\n }\n if (args && Array.isArray(args)) {\n for (const arg of args) {\n if (typeof arg === \"string\") {\n stringsToInspect.push(arg.toLowerCase());\n }\n }\n }\n\n for (const text of stringsToInspect) {\n if (messagesToFilter.some((filterText) => text.includes(filterText))) {\n return true;\n }\n }\n\n if (typeof message === \"string\") {\n const messageParts = message.split(\" \");\n if (\n messageParts.length >= 3 &&\n messageParts[0].toLowerCase() === \"accessing\" &&\n messageParts[1].toLowerCase() === \"resource\" &&\n messageParts[2].toLowerCase() === \"attributes\"\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n private _shouldFilterAzureMonitorExporterWarning(message?: any): boolean {\n if (typeof message !== \"string\") {\n return false;\n }\n\n const text = message.toLowerCase();\n if (!text.includes(\"otel_metrics_exporter\")) {\n return false;\n }\n\n const matchesUnsupportedValue = text.includes(\"unsupported otel_metrics_exporter value\");\n\n return matchesUnsupportedValue && text.includes(\"azure_monitor\");\n }\n\n private async _storeToDisk(args: any): Promise<void> {\n const data = `${args}\\r\\n`;\n\n try {\n await confirmDirExists(this._tempDir);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to create directory for log file: ${err && err.message}`);\n return;\n }\n try {\n await accessAsync(this._fileFullPath, fs.constants.F_OK);\n } catch (err: any) {\n // No file create one\n try {\n await appendFileAsync(this._fileFullPath, data);\n } catch (appendError: any) {\n // eslint-disable-next-line no-console\n console.log(\n this._TAG,\n `Failed to put log into file: ${appendError && appendError.message}`,\n );\n return;\n }\n }\n // Check size\n const size = await getShallowFileSize(this._fileFullPath);\n if (size && size > this._maxSizeBytes) {\n await this._createBackupFile(data);\n } else {\n await appendFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _createBackupFile(data: string): Promise<void> {\n try {\n const buffer = await readFileAsync(this._fileFullPath);\n const backupPath = path.join(this._tempDir, `${new Date().getTime()}.${this._logFileName}`);\n await writeFileAsync(backupPath, buffer);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(\"Failed to generate backup log file\", err);\n } finally {\n // Store logs\n await writeFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _fileCleanupTask(): Promise<void> {\n try {\n let files = await readdirAsync(this._tempDir);\n // Filter only backup files\n files = files.filter((f) => path.basename(f).indexOf(this._backUpNameFormat) > -1);\n // Sort by creation date\n files.sort((a: string, b: string) => {\n // Check expiration\n const aCreationDate: Date = new Date(parseInt(a.split(this._backUpNameFormat)[0]));\n const bCreationDate: Date = new Date(parseInt(b.split(this._backUpNameFormat)[0]));\n if (aCreationDate < bCreationDate) {\n return -1;\n } else {\n return 1;\n }\n });\n const totalFiles = files.length;\n for (let i = 0; i < totalFiles - this._maxHistory; i++) {\n const pathToDelete = path.join(this._tempDir, files[i]);\n await unlinkAsync(pathToDelete);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to cleanup log files: ${err && err.message}`);\n }\n }\n}\n"]}
|
|
@@ -9,4 +9,10 @@ export declare function loadAzureFunctionCore(): ReturnType<typeof require>;
|
|
|
9
9
|
* @returns The directory name of the current module.
|
|
10
10
|
*/
|
|
11
11
|
export declare function dirName(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Returns the current module URL for loader registration scenarios.
|
|
14
|
+
* Used by the instrumentation loader to register Node.js module hooks.
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function getModuleParentURL(): string;
|
|
12
18
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/shared/module.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CASlE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAIhC"}
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/shared/module.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CASlE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAIhC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C"}
|
|
@@ -31,4 +31,14 @@ export function dirName() {
|
|
|
31
31
|
// @ts-ignore ESM only output
|
|
32
32
|
return dirname(fileURLToPath(import.meta.url));
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the current module URL for loader registration scenarios.
|
|
36
|
+
* Used by the instrumentation loader to register Node.js module hooks.
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export function getModuleParentURL() {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
41
|
+
// @ts-ignore ESM only output
|
|
42
|
+
return import.meta.url;
|
|
43
|
+
}
|
|
34
44
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/shared/module.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,6DAA6D;AAC7D,sFAAsF;AACtF,sEAAsE;AAEtE;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,6DAA6D;QAC7D,6BAA6B;QAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yEAAyE;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO;IACrB,6DAA6D;IAC7D,6BAA6B;IAC7B,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createRequire } from \"node:module\";\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n// Provides ESM-specific implementation for various functions\n// As per https://github.com/isaacs/tshy?tab=readme-ov-file#commonjs-dialect-polyfills\n// Encapsulating the ESM / CommonJS specific implementation as needed.\n\n/**\n * An ESM module loader for Azure Function Core.\n * @returns The Azure Functions Core module if it exists, otherwise undefined\n */\nexport function loadAzureFunctionCore(): ReturnType<typeof require> {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore ESM only output\n return createRequire(import.meta.url)(\"@azure/functions-core\");\n } catch (e) {\n // Module not found, this is expected in non-Azure Functions environments\n return undefined;\n }\n}\n\n/**\n * A polyfill for __dirname in ESM.\n *\n * @returns The directory name of the current module.\n */\nexport function dirName(): string {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore ESM only output\n return dirname(fileURLToPath(import.meta.url));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/shared/module.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,6DAA6D;AAC7D,sFAAsF;AACtF,sEAAsE;AAEtE;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,6DAA6D;QAC7D,6BAA6B;QAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yEAAyE;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO;IACrB,6DAA6D;IAC7D,6BAA6B;IAC7B,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,6DAA6D;IAC7D,6BAA6B;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACzB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createRequire } from \"node:module\";\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n// Provides ESM-specific implementation for various functions\n// As per https://github.com/isaacs/tshy?tab=readme-ov-file#commonjs-dialect-polyfills\n// Encapsulating the ESM / CommonJS specific implementation as needed.\n\n/**\n * An ESM module loader for Azure Function Core.\n * @returns The Azure Functions Core module if it exists, otherwise undefined\n */\nexport function loadAzureFunctionCore(): ReturnType<typeof require> {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore ESM only output\n return createRequire(import.meta.url)(\"@azure/functions-core\");\n } catch (e) {\n // Module not found, this is expected in non-Azure Functions environments\n return undefined;\n }\n}\n\n/**\n * A polyfill for __dirname in ESM.\n *\n * @returns The directory name of the current module.\n */\nexport function dirName(): string {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore ESM only output\n return dirname(fileURLToPath(import.meta.url));\n}\n\n/**\n * Returns the current module URL for loader registration scenarios.\n * Used by the instrumentation loader to register Node.js module hooks.\n * @internal\n */\nexport function getModuleParentURL(): string {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore ESM only output\n return import.meta.url;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/traces/handler.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAWnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAU;IAE1B;;;;OAIG;gBACS,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/traces/handler.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAWnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAU;IAE1B;;;;OAIG;gBACS,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;IA2BzD,UAAU,IAAI,OAAO;IAIrB,qBAAqB,IAAI,kBAAkB;IAI3C,4BAA4B,IAAI,yBAAyB;IAIzD,mBAAmB,IAAI,eAAe,EAAE;IAI/C;;OAEG;IAEU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAqDpC"}
|
|
@@ -34,8 +34,11 @@ export class TraceHandler {
|
|
|
34
34
|
this._metricHandler = metricHandler;
|
|
35
35
|
this._instrumentations = [];
|
|
36
36
|
// Check sampler precedence
|
|
37
|
-
if (this._config.
|
|
38
|
-
|
|
37
|
+
if (this._config.sampler) {
|
|
38
|
+
this._sampler = this._config.sampler;
|
|
39
|
+
}
|
|
40
|
+
else if (this._config.tracesPerSecond && this._config.tracesPerSecond > 0) {
|
|
41
|
+
// If tracesPerSecond is set to a positive number, use RateLimitedSampler
|
|
39
42
|
this._sampler = new RateLimitedSampler(this._config.tracesPerSecond);
|
|
40
43
|
}
|
|
41
44
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/traces/handler.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAKnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAI5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,mBAAmB,CAAqB;IACxC,mBAAmB,CAA4B;IAC/C,cAAc,CAA4B;IAC1C,iBAAiB,CAAoB;IACrC,OAAO,CAAiB;IACxB,cAAc,CAAgB;IAC9B,mBAAmB,CAAqB;IACxC,QAAQ,CAAU;IAE1B;;;;OAIG;IACH,YAAY,MAAsB,EAAE,aAA4B;QAC9D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,2BAA2B;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/traces/handler.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RequestOptions } from \"node:http\";\nimport { createAzureSdkInstrumentation } from \"@azure/opentelemetry-instrumentation-azure-sdk\";\nimport {\n AzureMonitorTraceExporter,\n RateLimitedSampler,\n} from \"@azure/monitor-opentelemetry-exporter\";\nimport type { BufferConfig, Sampler } from \"@opentelemetry/sdk-trace-base\";\nimport { BatchSpanProcessor } from \"@opentelemetry/sdk-trace-base\";\nimport type {\n HttpInstrumentationConfig,\n IgnoreOutgoingRequestFunction,\n} from \"@opentelemetry/instrumentation-http\";\nimport { HttpInstrumentation } from \"@opentelemetry/instrumentation-http\";\nimport { MongoDBInstrumentation } from \"@opentelemetry/instrumentation-mongodb\";\nimport { MySQLInstrumentation } from \"@opentelemetry/instrumentation-mysql\";\nimport { PgInstrumentation } from \"@opentelemetry/instrumentation-pg\";\nimport { RedisInstrumentation } from \"@opentelemetry/instrumentation-redis\";\n\nimport type { InternalConfig } from \"../shared/config.js\";\nimport type { MetricHandler } from \"../metrics/handler.js\";\nimport { ignoreOutgoingRequestHook } from \"../utils/common.js\";\nimport { AzureMonitorSpanProcessor } from \"./spanProcessor.js\";\nimport { AzureFunctionsHook } from \"./azureFnHook.js\";\nimport type { Instrumentation } from \"@opentelemetry/instrumentation\";\nimport { ApplicationInsightsSampler } from \"./sampler.js\";\n\n/**\n * Azure Monitor OpenTelemetry Trace Handler\n */\nexport class TraceHandler {\n private _batchSpanProcessor: BatchSpanProcessor;\n private _azureSpanProcessor: AzureMonitorSpanProcessor;\n private _azureExporter: AzureMonitorTraceExporter;\n private _instrumentations: Instrumentation[];\n private _config: InternalConfig;\n private _metricHandler: MetricHandler;\n private _azureFunctionsHook: AzureFunctionsHook;\n private _sampler: Sampler;\n\n /**\n * Initializes a new instance of the TraceHandler class.\n * @param _config - Configuration.\n * @param _metricHandler - MetricHandler.\n */\n constructor(config: InternalConfig, metricHandler: MetricHandler) {\n this._config = config;\n this._metricHandler = metricHandler;\n this._instrumentations = [];\n // Check sampler precedence\n if (this._config.sampler) {\n this._sampler = this._config.sampler;\n } else if (this._config.tracesPerSecond && this._config.tracesPerSecond > 0) {\n // If tracesPerSecond is set to a positive number, use RateLimitedSampler\n this._sampler = new RateLimitedSampler(this._config.tracesPerSecond);\n } else {\n // Otherwise, use PercentageSampler with samplingRatio\n this._sampler = new ApplicationInsightsSampler(this._config.samplingRatio);\n }\n this._azureExporter = new AzureMonitorTraceExporter(this._config.azureMonitorExporterOptions);\n const bufferConfig: BufferConfig = {\n maxExportBatchSize: 512,\n scheduledDelayMillis: 5000,\n exportTimeoutMillis: 30000,\n maxQueueSize: 2048,\n };\n this._batchSpanProcessor = new BatchSpanProcessor(this._azureExporter, bufferConfig);\n this._azureSpanProcessor = new AzureMonitorSpanProcessor(this._metricHandler);\n this._azureFunctionsHook = new AzureFunctionsHook();\n this._initializeInstrumentations();\n }\n\n public getSampler(): Sampler {\n return this._sampler;\n }\n\n public getBatchSpanProcessor(): BatchSpanProcessor {\n return this._batchSpanProcessor;\n }\n\n public getAzureMonitorSpanProcessor(): AzureMonitorSpanProcessor {\n return this._azureSpanProcessor;\n }\n\n public getInstrumentations(): Instrumentation[] {\n return this._instrumentations;\n }\n\n /**\n * Shutdown handler\n */\n // eslint-disable-next-line @typescript-eslint/require-await\n public async shutdown(): Promise<void> {\n this._azureFunctionsHook.shutdown();\n }\n\n /**\n * Start auto collection of telemetry\n */\n private _initializeInstrumentations(): void {\n if (this._config.instrumentationOptions.http?.enabled) {\n const httpinstrumentationOptions = this._config.instrumentationOptions\n .http as HttpInstrumentationConfig;\n const providedIgnoreOutgoingRequestHook =\n httpinstrumentationOptions.ignoreOutgoingRequestHook;\n const mergedIgnoreOutgoingRequestHook: IgnoreOutgoingRequestFunction = (\n request: RequestOptions,\n ) => {\n const result = ignoreOutgoingRequestHook(request);\n if (!result) {\n // Not internal call\n if (providedIgnoreOutgoingRequestHook) {\n // Provided hook in config\n return providedIgnoreOutgoingRequestHook(request);\n }\n }\n return result;\n };\n httpinstrumentationOptions.ignoreOutgoingRequestHook = mergedIgnoreOutgoingRequestHook;\n this._instrumentations.push(\n new HttpInstrumentation(this._config.instrumentationOptions.http),\n );\n }\n if (this._config.instrumentationOptions.azureSdk?.enabled) {\n this._instrumentations.push(\n createAzureSdkInstrumentation(this._config.instrumentationOptions.azureSdk),\n );\n }\n if (this._config.instrumentationOptions.mongoDb?.enabled) {\n this._instrumentations.push(\n new MongoDBInstrumentation(this._config.instrumentationOptions.mongoDb),\n );\n }\n if (this._config.instrumentationOptions.mySql?.enabled) {\n this._instrumentations.push(\n new MySQLInstrumentation(this._config.instrumentationOptions.mySql),\n );\n }\n if (this._config.instrumentationOptions.postgreSql?.enabled) {\n this._instrumentations.push(\n new PgInstrumentation(this._config.instrumentationOptions.postgreSql),\n );\n }\n if (\n this._config.instrumentationOptions.redis?.enabled ||\n this._config.instrumentationOptions.redis4?.enabled\n ) {\n this._instrumentations.push(\n new RedisInstrumentation(this._config.instrumentationOptions.redis),\n );\n }\n }\n}\n"]}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { AzureMonitorExporterOptions } from "@azure/monitor-opentelemetry-e
|
|
|
2
2
|
import type { InstrumentationConfig } from "@opentelemetry/instrumentation";
|
|
3
3
|
import type { Resource } from "@opentelemetry/resources";
|
|
4
4
|
import type { LogRecordProcessor } from "@opentelemetry/sdk-logs";
|
|
5
|
-
import type { MetricReader } from "@opentelemetry/sdk-metrics";
|
|
5
|
+
import type { MetricReader, ViewOptions } from "@opentelemetry/sdk-metrics";
|
|
6
6
|
import type { SpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
7
7
|
/**
|
|
8
8
|
* Azure Monitor OpenTelemetry Options
|
|
@@ -34,6 +34,8 @@ export interface AzureMonitorOpenTelemetryOptions {
|
|
|
34
34
|
spanProcessors?: SpanProcessor[];
|
|
35
35
|
/** An array of metric readers to register to the meter provider.*/
|
|
36
36
|
metricReaders?: MetricReader[];
|
|
37
|
+
/** An array of metric views to register to the meter provider.*/
|
|
38
|
+
views?: ViewOptions[];
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
39
41
|
* OpenTelemetry Instrumentations Configuration interface
|
|
@@ -138,7 +140,7 @@ export interface BrowserSdkLoaderOptions {
|
|
|
138
140
|
/** Browser SDK Loader Connection String */
|
|
139
141
|
connectionString?: string;
|
|
140
142
|
}
|
|
141
|
-
export declare const AZURE_MONITOR_OPENTELEMETRY_VERSION = "1.
|
|
143
|
+
export declare const AZURE_MONITOR_OPENTELEMETRY_VERSION = "1.15.0";
|
|
142
144
|
export declare const AZURE_MONITOR_STATSBEAT_FEATURES = "AZURE_MONITOR_STATSBEAT_FEATURES";
|
|
143
145
|
export declare const AZURE_MONITOR_PREFIX = "AZURE_MONITOR_PREFIX";
|
|
144
146
|
export declare const AZURE_MONITOR_AUTO_ATTACH = "AZURE_MONITOR_AUTO_ATTACH";
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/types.js
CHANGED
|
@@ -13,7 +13,7 @@ export const StatsbeatFeaturesMap = new Map([
|
|
|
13
13
|
["multiIkey", 128],
|
|
14
14
|
["rateLimitedSampler", 256],
|
|
15
15
|
]);
|
|
16
|
-
export const AZURE_MONITOR_OPENTELEMETRY_VERSION = "1.
|
|
16
|
+
export const AZURE_MONITOR_OPENTELEMETRY_VERSION = "1.15.0";
|
|
17
17
|
export const AZURE_MONITOR_STATSBEAT_FEATURES = "AZURE_MONITOR_STATSBEAT_FEATURES";
|
|
18
18
|
export const AZURE_MONITOR_PREFIX = "AZURE_MONITOR_PREFIX";
|
|
19
19
|
export const AZURE_MONITOR_AUTO_ATTACH = "AZURE_MONITOR_AUTO_ATTACH";
|