@azure/monitor-opentelemetry 1.14.2 → 1.15.1-alpha.20260119.1

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.
Files changed (77) hide show
  1. package/README.md +44 -1
  2. package/dist/commonjs/index.d.ts.map +1 -1
  3. package/dist/commonjs/index.js +3 -1
  4. package/dist/commonjs/index.js.map +1 -1
  5. package/dist/commonjs/loader.d.ts +2 -0
  6. package/dist/commonjs/loader.d.ts.map +1 -0
  7. package/dist/commonjs/loader.js +40 -0
  8. package/dist/commonjs/loader.js.map +1 -0
  9. package/dist/commonjs/metrics/handler.d.ts.map +1 -1
  10. package/dist/commonjs/metrics/handler.js +33 -1
  11. package/dist/commonjs/metrics/handler.js.map +1 -1
  12. package/dist/commonjs/metrics/types.d.ts +5 -0
  13. package/dist/commonjs/metrics/types.d.ts.map +1 -1
  14. package/dist/commonjs/metrics/types.js +9 -1
  15. package/dist/commonjs/metrics/types.js.map +1 -1
  16. package/dist/commonjs/shared/config.d.ts +3 -0
  17. package/dist/commonjs/shared/config.d.ts.map +1 -1
  18. package/dist/commonjs/shared/config.js +3 -0
  19. package/dist/commonjs/shared/config.js.map +1 -1
  20. package/dist/commonjs/shared/envConfig.d.ts +6 -0
  21. package/dist/commonjs/shared/envConfig.d.ts.map +1 -1
  22. package/dist/commonjs/shared/envConfig.js +91 -19
  23. package/dist/commonjs/shared/envConfig.js.map +1 -1
  24. package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts +1 -0
  25. package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
  26. package/dist/commonjs/shared/logging/diagFileConsoleLogger.js +44 -10
  27. package/dist/commonjs/shared/logging/diagFileConsoleLogger.js.map +1 -1
  28. package/dist/commonjs/shared/module-cjs.cjs.map +1 -1
  29. package/dist/commonjs/shared/module-cjs.d.cts.map +1 -1
  30. package/dist/commonjs/shared/module.d.ts +6 -0
  31. package/dist/commonjs/shared/module.js +18 -0
  32. package/dist/commonjs/traces/handler.d.ts.map +1 -1
  33. package/dist/commonjs/traces/handler.js +5 -2
  34. package/dist/commonjs/traces/handler.js.map +1 -1
  35. package/dist/commonjs/tsdoc-metadata.json +1 -1
  36. package/dist/commonjs/types.d.ts +4 -2
  37. package/dist/commonjs/types.d.ts.map +1 -1
  38. package/dist/commonjs/types.js +1 -1
  39. package/dist/commonjs/types.js.map +1 -1
  40. package/dist/esm/index.d.ts.map +1 -1
  41. package/dist/esm/index.js +3 -1
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/loader.d.ts +2 -0
  44. package/dist/esm/loader.d.ts.map +1 -0
  45. package/dist/esm/loader.js +37 -0
  46. package/dist/esm/loader.js.map +1 -0
  47. package/dist/esm/metrics/handler.d.ts.map +1 -1
  48. package/dist/esm/metrics/handler.js +35 -3
  49. package/dist/esm/metrics/handler.js.map +1 -1
  50. package/dist/esm/metrics/types.d.ts +5 -0
  51. package/dist/esm/metrics/types.d.ts.map +1 -1
  52. package/dist/esm/metrics/types.js +8 -0
  53. package/dist/esm/metrics/types.js.map +1 -1
  54. package/dist/esm/shared/config.d.ts +3 -0
  55. package/dist/esm/shared/config.d.ts.map +1 -1
  56. package/dist/esm/shared/config.js +3 -0
  57. package/dist/esm/shared/config.js.map +1 -1
  58. package/dist/esm/shared/envConfig.d.ts +6 -0
  59. package/dist/esm/shared/envConfig.d.ts.map +1 -1
  60. package/dist/esm/shared/envConfig.js +91 -19
  61. package/dist/esm/shared/envConfig.js.map +1 -1
  62. package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts +1 -0
  63. package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
  64. package/dist/esm/shared/logging/diagFileConsoleLogger.js +44 -10
  65. package/dist/esm/shared/logging/diagFileConsoleLogger.js.map +1 -1
  66. package/dist/esm/shared/module.d.ts +6 -0
  67. package/dist/esm/shared/module.d.ts.map +1 -1
  68. package/dist/esm/shared/module.js +10 -0
  69. package/dist/esm/shared/module.js.map +1 -1
  70. package/dist/esm/traces/handler.d.ts.map +1 -1
  71. package/dist/esm/traces/handler.js +5 -2
  72. package/dist/esm/traces/handler.js.map +1 -1
  73. package/dist/esm/types.d.ts +4 -2
  74. package/dist/esm/types.d.ts.map +1 -1
  75. package/dist/esm/types.js +1 -1
  76. package/dist/esm/types.js.map +1 -1
  77. package/package.json +21 -10
@@ -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 && envSamplerArg) {
32
- if (envSampler === RATE_LIMITED_SAMPLER || envSampler === FIXED_PERCENTAGE_SAMPLER) {
33
- const argValue = Number(envSamplerArg);
34
- if (isNaN(argValue) || argValue < 0) {
35
- Logger.getInstance().warn("Invalid value for OTEL_TRACES_SAMPLER_ARG. It should be a non-negative number.");
36
- }
37
- else {
38
- if (envSampler === RATE_LIMITED_SAMPLER) {
39
- this.tracesPerSecond = argValue;
40
- }
41
- else if (envSampler === FIXED_PERCENTAGE_SAMPLER) {
42
- this.samplingRatio = argValue;
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
- // Not supported sampler
47
- else {
48
- Logger.getInstance().warn(`Unsupported value for OTEL_TRACES_SAMPLER: ${envSampler}. Supported values are: ${RATE_LIMITED_SAMPLER}, ${FIXED_PERCENTAGE_SAMPLER}.`);
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;AAE9D;;;GAGG;AACH,MAAM,OAAO,SAAS;IACpB,mFAAmF;IAC5E,aAAa,CAAU;IAC9B,2EAA2E;IACpE,eAAe,CAAU;IAExB,MAAM,CAAC,QAAQ,CAAY;IAEnC,6BAA6B;IACtB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH;QACE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,UAAU,KAAK,oBAAoB,IAAI,UAAU,KAAK,wBAAwB,EAAE,CAAC;gBACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CACvB,gFAAgF,CACjF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;wBACxC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;oBAClC,CAAC;yBAAM,IAAI,UAAU,KAAK,wBAAwB,EAAE,CAAC;wBACnD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;oBAChC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,wBAAwB;iBACnB,CAAC;gBACJ,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CACvB,8CAA8C,UAAU,2BAA2B,oBAAoB,KAAK,wBAAwB,GAAG,CACxI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AzureMonitorOpenTelemetryOptions } from \"../types.js\";\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\";\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\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];\n const envSamplerArg = process.env[TRACES_SAMPLER_ARG];\n if (envSampler && envSamplerArg) {\n if (envSampler === RATE_LIMITED_SAMPLER || envSampler === FIXED_PERCENTAGE_SAMPLER) {\n const argValue = Number(envSamplerArg);\n if (isNaN(argValue) || argValue < 0) {\n Logger.getInstance().warn(\n \"Invalid value for OTEL_TRACES_SAMPLER_ARG. It should be a non-negative number.\",\n );\n } else {\n if (envSampler === RATE_LIMITED_SAMPLER) {\n this.tracesPerSecond = argValue;\n } else if (envSampler === FIXED_PERCENTAGE_SAMPLER) {\n this.samplingRatio = argValue;\n }\n }\n }\n // Not supported sampler\n else {\n Logger.getInstance().warn(\n `Unsupported value for OTEL_TRACES_SAMPLER: ${envSampler}. Supported values are: ${RATE_LIMITED_SAMPLER}, ${FIXED_PERCENTAGE_SAMPLER}.`,\n );\n }\n }\n }\n}\n"]}
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;IAU1C,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAUzC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMzC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM1C,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMtC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/E;;;OAGG;IACH,OAAO,CAAC,qCAAqC;YA0C/B,YAAY;YAkCZ,iBAAiB;YAcjB,gBAAgB;CA0B/B"}
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
- if (messagesToFilter.some((filterText) => message.toLowerCase().includes(filterText))) {
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
- if (messagesToFilter.some((filterText) => arg.toLowerCase().includes(filterText))) {
129
- return true;
130
- }
149
+ stringsToInspect.push(arg.toLowerCase());
131
150
  }
132
151
  }
133
152
  }
134
- // Also check if message starts with the warning text (in case it's formatted differently)
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;IAyBzD,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"}
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.tracesPerSecond && this._config.tracesPerSecond >= 0) {
38
- // If tracesPerSecond is set, use RateLimitedSampler
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":"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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.tracesPerSecond && this._config.tracesPerSecond >= 0) {\n // If tracesPerSecond is set, 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"]}
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"]}
@@ -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.14.2";
143
+ export declare const AZURE_MONITOR_OPENTELEMETRY_VERSION = "1.15.1";
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";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
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.14.2";
16
+ export const AZURE_MONITOR_OPENTELEMETRY_VERSION = "1.15.1";
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";