@azure/monitor-opentelemetry-exporter 1.0.0-beta.31 → 1.0.0-beta.33

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 (195) hide show
  1. package/README.md +4 -4
  2. package/dist/commonjs/Declarations/Constants.d.ts +5 -0
  3. package/dist/commonjs/Declarations/Constants.d.ts.map +1 -1
  4. package/dist/commonjs/Declarations/Constants.js +6 -1
  5. package/dist/commonjs/Declarations/Constants.js.map +1 -1
  6. package/dist/commonjs/export/base.js +25 -14
  7. package/dist/commonjs/export/base.js.map +1 -1
  8. package/dist/commonjs/export/log.js +5 -4
  9. package/dist/commonjs/export/log.js.map +1 -1
  10. package/dist/commonjs/export/metric.js +5 -4
  11. package/dist/commonjs/export/metric.js.map +1 -1
  12. package/dist/commonjs/export/statsbeat/customerStatsbeat.d.ts +125 -0
  13. package/dist/commonjs/export/statsbeat/customerStatsbeat.d.ts.map +1 -0
  14. package/dist/commonjs/export/statsbeat/customerStatsbeat.js +480 -0
  15. package/dist/commonjs/export/statsbeat/customerStatsbeat.js.map +1 -0
  16. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +7 -7
  17. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -1
  18. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js +69 -30
  19. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -1
  20. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts +6 -1
  21. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -1
  22. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js +115 -43
  23. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js.map +1 -1
  24. package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts +7 -0
  25. package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts.map +1 -1
  26. package/dist/commonjs/export/statsbeat/statsbeatExporter.js +25 -5
  27. package/dist/commonjs/export/statsbeat/statsbeatExporter.js.map +1 -1
  28. package/dist/commonjs/export/statsbeat/statsbeatMetrics.js +6 -8
  29. package/dist/commonjs/export/statsbeat/statsbeatMetrics.js.map +1 -1
  30. package/dist/commonjs/export/statsbeat/types.d.ts +52 -0
  31. package/dist/commonjs/export/statsbeat/types.d.ts.map +1 -1
  32. package/dist/commonjs/export/statsbeat/types.js +75 -1
  33. package/dist/commonjs/export/statsbeat/types.js.map +1 -1
  34. package/dist/commonjs/export/trace.js +6 -5
  35. package/dist/commonjs/export/trace.js.map +1 -1
  36. package/dist/commonjs/generated/applicationInsightsClient.js +9 -4
  37. package/dist/commonjs/generated/applicationInsightsClient.js.map +1 -1
  38. package/dist/commonjs/generated/models/mappers.js +145 -68
  39. package/dist/commonjs/generated/models/mappers.js.map +1 -1
  40. package/dist/commonjs/index.d.ts +2 -1
  41. package/dist/commonjs/index.d.ts.map +1 -1
  42. package/dist/commonjs/index.js +5 -3
  43. package/dist/commonjs/index.js.map +1 -1
  44. package/dist/commonjs/platform/nodejs/baseSender.d.ts +1 -0
  45. package/dist/commonjs/platform/nodejs/baseSender.d.ts.map +1 -1
  46. package/dist/commonjs/platform/nodejs/baseSender.js +101 -34
  47. package/dist/commonjs/platform/nodejs/baseSender.js.map +1 -1
  48. package/dist/commonjs/platform/nodejs/context/context.d.ts +0 -1
  49. package/dist/commonjs/platform/nodejs/context/context.d.ts.map +1 -1
  50. package/dist/commonjs/platform/nodejs/context/context.js +4 -8
  51. package/dist/commonjs/platform/nodejs/context/context.js.map +1 -1
  52. package/dist/commonjs/platform/nodejs/httpSender.js +11 -4
  53. package/dist/commonjs/platform/nodejs/httpSender.js.map +1 -1
  54. package/dist/commonjs/platform/nodejs/index.d.ts +1 -0
  55. package/dist/commonjs/platform/nodejs/index.d.ts.map +1 -1
  56. package/dist/commonjs/platform/nodejs/index.js +1 -0
  57. package/dist/commonjs/platform/nodejs/index.js.map +1 -1
  58. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js +7 -7
  59. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js.map +1 -1
  60. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts +9 -1
  61. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -1
  62. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js +37 -16
  63. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js.map +1 -1
  64. package/dist/commonjs/{sampling.d.ts → sampling/percentageSampler.d.ts} +2 -3
  65. package/dist/commonjs/sampling/percentageSampler.d.ts.map +1 -0
  66. package/dist/commonjs/{sampling.js → sampling/percentageSampler.js} +6 -39
  67. package/dist/commonjs/sampling/percentageSampler.js.map +1 -0
  68. package/dist/commonjs/sampling/rateLimitedSampler.d.ts +58 -0
  69. package/dist/commonjs/sampling/rateLimitedSampler.d.ts.map +1 -0
  70. package/dist/commonjs/sampling/rateLimitedSampler.js +118 -0
  71. package/dist/commonjs/sampling/rateLimitedSampler.js.map +1 -0
  72. package/dist/commonjs/sampling/samplingUtils.d.ts +17 -0
  73. package/dist/commonjs/sampling/samplingUtils.d.ts.map +1 -0
  74. package/dist/commonjs/sampling/samplingUtils.js +94 -0
  75. package/dist/commonjs/sampling/samplingUtils.js.map +1 -0
  76. package/dist/commonjs/tsdoc-metadata.json +11 -11
  77. package/dist/commonjs/types.d.ts.map +1 -1
  78. package/dist/commonjs/types.js +1 -0
  79. package/dist/commonjs/types.js.map +1 -1
  80. package/dist/commonjs/utils/common.js +2 -3
  81. package/dist/commonjs/utils/common.js.map +1 -1
  82. package/dist/commonjs/utils/connectionStringParser.js +3 -3
  83. package/dist/commonjs/utils/connectionStringParser.js.map +1 -1
  84. package/dist/commonjs/utils/constants/applicationinsights.d.ts +1 -1
  85. package/dist/commonjs/utils/constants/applicationinsights.js +1 -1
  86. package/dist/commonjs/utils/constants/applicationinsights.js.map +1 -1
  87. package/dist/commonjs/utils/eventhub.js +5 -2
  88. package/dist/commonjs/utils/eventhub.js.map +1 -1
  89. package/dist/commonjs/utils/logUtils.js +10 -9
  90. package/dist/commonjs/utils/logUtils.js.map +1 -1
  91. package/dist/commonjs/utils/metricUtils.d.ts.map +1 -1
  92. package/dist/commonjs/utils/metricUtils.js +6 -6
  93. package/dist/commonjs/utils/metricUtils.js.map +1 -1
  94. package/dist/commonjs/utils/spanUtils.d.ts.map +1 -1
  95. package/dist/commonjs/utils/spanUtils.js +16 -14
  96. package/dist/commonjs/utils/spanUtils.js.map +1 -1
  97. package/dist/esm/Declarations/Constants.d.ts +5 -0
  98. package/dist/esm/Declarations/Constants.d.ts.map +1 -1
  99. package/dist/esm/Declarations/Constants.js +5 -0
  100. package/dist/esm/Declarations/Constants.js.map +1 -1
  101. package/dist/esm/export/base.js +25 -14
  102. package/dist/esm/export/base.js.map +1 -1
  103. package/dist/esm/export/log.js +5 -4
  104. package/dist/esm/export/log.js.map +1 -1
  105. package/dist/esm/export/metric.js +5 -4
  106. package/dist/esm/export/metric.js.map +1 -1
  107. package/dist/esm/export/statsbeat/customerStatsbeat.d.ts +125 -0
  108. package/dist/esm/export/statsbeat/customerStatsbeat.d.ts.map +1 -0
  109. package/dist/esm/export/statsbeat/customerStatsbeat.js +475 -0
  110. package/dist/esm/export/statsbeat/customerStatsbeat.js.map +1 -0
  111. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +7 -7
  112. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -1
  113. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js +68 -30
  114. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -1
  115. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts +6 -1
  116. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -1
  117. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js +115 -43
  118. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js.map +1 -1
  119. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts +7 -0
  120. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts.map +1 -1
  121. package/dist/esm/export/statsbeat/statsbeatExporter.js +25 -5
  122. package/dist/esm/export/statsbeat/statsbeatExporter.js.map +1 -1
  123. package/dist/esm/export/statsbeat/statsbeatMetrics.js +6 -8
  124. package/dist/esm/export/statsbeat/statsbeatMetrics.js.map +1 -1
  125. package/dist/esm/export/statsbeat/types.d.ts +52 -0
  126. package/dist/esm/export/statsbeat/types.d.ts.map +1 -1
  127. package/dist/esm/export/statsbeat/types.js +73 -0
  128. package/dist/esm/export/statsbeat/types.js.map +1 -1
  129. package/dist/esm/export/trace.js +6 -5
  130. package/dist/esm/export/trace.js.map +1 -1
  131. package/dist/esm/generated/applicationInsightsClient.js +9 -4
  132. package/dist/esm/generated/applicationInsightsClient.js.map +1 -1
  133. package/dist/esm/generated/models/mappers.js +145 -68
  134. package/dist/esm/generated/models/mappers.js.map +1 -1
  135. package/dist/esm/index.d.ts +2 -1
  136. package/dist/esm/index.d.ts.map +1 -1
  137. package/dist/esm/index.js +2 -1
  138. package/dist/esm/index.js.map +1 -1
  139. package/dist/esm/platform/nodejs/baseSender.d.ts +1 -0
  140. package/dist/esm/platform/nodejs/baseSender.d.ts.map +1 -1
  141. package/dist/esm/platform/nodejs/baseSender.js +104 -37
  142. package/dist/esm/platform/nodejs/baseSender.js.map +1 -1
  143. package/dist/esm/platform/nodejs/context/context.d.ts +0 -1
  144. package/dist/esm/platform/nodejs/context/context.d.ts.map +1 -1
  145. package/dist/esm/platform/nodejs/context/context.js +4 -8
  146. package/dist/esm/platform/nodejs/context/context.js.map +1 -1
  147. package/dist/esm/platform/nodejs/httpSender.js +11 -4
  148. package/dist/esm/platform/nodejs/httpSender.js.map +1 -1
  149. package/dist/esm/platform/nodejs/index.d.ts +1 -0
  150. package/dist/esm/platform/nodejs/index.d.ts.map +1 -1
  151. package/dist/esm/platform/nodejs/index.js +1 -0
  152. package/dist/esm/platform/nodejs/index.js.map +1 -1
  153. package/dist/esm/platform/nodejs/persist/fileAccessControl.js +7 -7
  154. package/dist/esm/platform/nodejs/persist/fileAccessControl.js.map +1 -1
  155. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts +9 -1
  156. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -1
  157. package/dist/esm/platform/nodejs/persist/fileSystemPersist.js +37 -16
  158. package/dist/esm/platform/nodejs/persist/fileSystemPersist.js.map +1 -1
  159. package/dist/esm/{sampling.d.ts → sampling/percentageSampler.d.ts} +2 -3
  160. package/dist/esm/sampling/percentageSampler.d.ts.map +1 -0
  161. package/dist/esm/{sampling.js → sampling/percentageSampler.js} +6 -39
  162. package/dist/esm/sampling/percentageSampler.js.map +1 -0
  163. package/dist/esm/sampling/rateLimitedSampler.d.ts +58 -0
  164. package/dist/esm/sampling/rateLimitedSampler.d.ts.map +1 -0
  165. package/dist/esm/sampling/rateLimitedSampler.js +114 -0
  166. package/dist/esm/sampling/rateLimitedSampler.js.map +1 -0
  167. package/dist/esm/sampling/samplingUtils.d.ts +17 -0
  168. package/dist/esm/sampling/samplingUtils.d.ts.map +1 -0
  169. package/dist/esm/sampling/samplingUtils.js +89 -0
  170. package/dist/esm/sampling/samplingUtils.js.map +1 -0
  171. package/dist/esm/types.d.ts.map +1 -1
  172. package/dist/esm/types.js +2 -1
  173. package/dist/esm/types.js.map +1 -1
  174. package/dist/esm/utils/common.js +2 -3
  175. package/dist/esm/utils/common.js.map +1 -1
  176. package/dist/esm/utils/connectionStringParser.js +3 -3
  177. package/dist/esm/utils/connectionStringParser.js.map +1 -1
  178. package/dist/esm/utils/constants/applicationinsights.d.ts +1 -1
  179. package/dist/esm/utils/constants/applicationinsights.js +1 -1
  180. package/dist/esm/utils/constants/applicationinsights.js.map +1 -1
  181. package/dist/esm/utils/eventhub.js +5 -2
  182. package/dist/esm/utils/eventhub.js.map +1 -1
  183. package/dist/esm/utils/logUtils.js +10 -9
  184. package/dist/esm/utils/logUtils.js.map +1 -1
  185. package/dist/esm/utils/metricUtils.d.ts.map +1 -1
  186. package/dist/esm/utils/metricUtils.js +6 -6
  187. package/dist/esm/utils/metricUtils.js.map +1 -1
  188. package/dist/esm/utils/spanUtils.d.ts.map +1 -1
  189. package/dist/esm/utils/spanUtils.js +16 -14
  190. package/dist/esm/utils/spanUtils.js.map +1 -1
  191. package/package.json +21 -26
  192. package/dist/commonjs/sampling.d.ts.map +0 -1
  193. package/dist/commonjs/sampling.js.map +0 -1
  194. package/dist/esm/sampling.d.ts.map +0 -1
  195. package/dist/esm/sampling.js.map +0 -1
package/README.md CHANGED
@@ -30,7 +30,7 @@ Add the exporter to your existing OpenTelemetry Tracer Provider (`NodeTracerProv
30
30
  ```ts snippet:ReadmeSampleDistributedTracing
31
31
  import { AzureMonitorTraceExporter } from "@azure/monitor-opentelemetry-exporter";
32
32
  import { NodeTracerProvider, BatchSpanProcessor } from "@opentelemetry/sdk-trace-node";
33
- import { Resource } from "@opentelemetry/resources";
33
+ import { resourceFromAttributes } from "@opentelemetry/resources";
34
34
  import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
35
35
 
36
36
  // Create an exporter instance
@@ -40,7 +40,7 @@ const exporter = new AzureMonitorTraceExporter({
40
40
 
41
41
  // Create and configure the Node Tracer provider
42
42
  const tracerProvider = new NodeTracerProvider({
43
- resource: new Resource({
43
+ resource: resourceFromAttributes({
44
44
  [ATTR_SERVICE_NAME]: "basic-service",
45
45
  }),
46
46
  spanProcessors: [
@@ -110,7 +110,7 @@ You can enable sampling to limit the amount of telemetry records you receive. In
110
110
  ```ts snippet:ReadmeSampleSampling
111
111
  import { ApplicationInsightsSampler } from "@azure/monitor-opentelemetry-exporter";
112
112
  import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
113
- import { Resource } from "@opentelemetry/resources";
113
+ import { resourceFromAttributes } from "@opentelemetry/resources";
114
114
  import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
115
115
 
116
116
  // Sampler expects a sample rate of between 0 and 1 inclusive
@@ -118,7 +118,7 @@ import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
118
118
  const aiSampler = new ApplicationInsightsSampler(0.75);
119
119
  const provider = new NodeTracerProvider({
120
120
  sampler: aiSampler,
121
- resource: new Resource({
121
+ resource: resourceFromAttributes({
122
122
  [ATTR_SERVICE_NAME]: "basic-service",
123
123
  }),
124
124
  });
@@ -99,6 +99,11 @@ export declare const ENV_AZURE_MONITOR_PREFIX = "AZURE_MONITOR_PREFIX";
99
99
  * @internal
100
100
  */
101
101
  export declare const ENV_AZURE_MONITOR_DISTRO_VERSION = "AZURE_MONITOR_DISTRO_VERSION";
102
+ /**
103
+ * Enables the preview version of customer-facing Statsbeat.
104
+ * @internal
105
+ */
106
+ export declare const ENV_APPLICATIONINSIGHTS_STATSBEAT_ENABLED_PREVIEW = "APPLICATIONINSIGHTS_STATSBEAT_ENABLED_PREVIEW";
102
107
  /**
103
108
  * QuickPulse metric counter names.
104
109
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,EAAE,uBAAuB;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCAAyC,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AACnF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AACvE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0CAA0C,CAAC;AAC7E;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AACxE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,2CAA2C,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAChF;;;GAGG;AACH,eAAO,MAAM,0CAA0C,+DACO,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AACzE;;;GAGG;AACH,eAAO,MAAM,uDAAuD,wDACb,CAAC;AAExD;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,kBAAkB,uBAAuB;IACzC,kBAAkB,cAAc;CACjC;AACD;;;GAGG;AACH,eAAO,MAAM,oCAAoC,sCAAsC,CAAC;AACxF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,gCAAgC,iCAAiC,CAAC;AAE/E;;;GAGG;AACH,oBAAY,iBAAiB;IAE3B,eAAe,8BAA8B;IAG7C,cAAc,0CAA0C;IAGxD,YAAY,wCAAwC;IACpD,oBAAoB,+CAA+C;IACnE,gBAAgB,4CAA4C;IAG5D,eAAe,gDAAgD;IAC/D,uBAAuB,uDAAuD;IAC9E,mBAAmB,oDAAoD;IAGvE,cAAc,0CAA0C;CACzD;AAED;;;GAGG;AACH,oBAAY,kBAAkB;IAE5B,aAAa,iDAAiD;IAC9D,eAAe,8BAA8B;IAG7C,cAAc,0CAA0C;IACxD,qBAAqB,oDAAoD;IACzE,uBAAuB,+DAA+D;IAGtF,YAAY,6DAA6D;IACzE,gBAAgB,uEAAuE;IAGvF,cAAc,sEAAsE;IAEpF,OAAO,qDAAqD;CAC7D;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAY9E,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,cAAc,CAAC;AACnB;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,wBAAwB,GACxB,4BAA4B,GAC5B,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,6BAA6B,GAC7B,+BAA+B,CAAC"}
1
+ {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,EAAE,uBAAuB;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCAAyC,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AACnF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AACvE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0CAA0C,CAAC;AAC7E;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AACxE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,2CAA2C,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAChF;;;GAGG;AACH,eAAO,MAAM,0CAA0C,+DACO,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AACzE;;;GAGG;AACH,eAAO,MAAM,uDAAuD,wDACb,CAAC;AAExD;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,kBAAkB,uBAAuB;IACzC,kBAAkB,cAAc;CACjC;AACD;;;GAGG;AACH,eAAO,MAAM,oCAAoC,sCAAsC,CAAC;AACxF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,gCAAgC,iCAAiC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,iDAAiD,kDACb,CAAC;AAElD;;;GAGG;AACH,oBAAY,iBAAiB;IAE3B,eAAe,8BAA8B;IAG7C,cAAc,0CAA0C;IAGxD,YAAY,wCAAwC;IACpD,oBAAoB,+CAA+C;IACnE,gBAAgB,4CAA4C;IAG5D,eAAe,gDAAgD;IAC/D,uBAAuB,uDAAuD;IAC9E,mBAAmB,oDAAoD;IAGvE,cAAc,0CAA0C;CACzD;AAED;;;GAGG;AACH,oBAAY,kBAAkB;IAE5B,aAAa,iDAAiD;IAC9D,eAAe,8BAA8B;IAG7C,cAAc,0CAA0C;IACxD,qBAAqB,oDAAoD;IACzE,uBAAuB,+DAA+D;IAGtF,YAAY,6DAA6D;IACzE,gBAAgB,uEAAuE;IAGvF,cAAc,sEAAsE;IAEpF,OAAO,qDAAqD;CAC7D;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAY9E,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,cAAc,CAAC;AACnB;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,wBAAwB,GACxB,4BAA4B,GAC5B,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,6BAA6B,GAC7B,+BAA+B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.PerformanceToQuickPulseCounter = exports.PerformanceCounter = exports.QuickPulseCounter = exports.ENV_AZURE_MONITOR_DISTRO_VERSION = exports.ENV_AZURE_MONITOR_PREFIX = exports.ENV_APPLICATIONINSIGHTS_SHIM_VERSION = exports.RetriableRestErrorTypes = exports.ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED = exports.ENV_AZURE_MONITOR_AUTO_ATTACH = exports.ENV_OTEL_METRICS_EXPORTER = exports.ENV_OTLP_METRICS_ENDPOINT = exports.ENV_OPENTELEMETRY_RESOURCE_METRIC_DISABLED = exports.LEGACY_ENV_DISABLE_STATSBEAT = exports.ENV_DISABLE_STATSBEAT = exports.ENV_INSTRUMENTATION_KEY = exports.ENV_CONNECTION_STRING = exports.DEFAULT_LIVEMETRICS_HOST = exports.DEFAULT_LIVEMETRICS_ENDPOINT = exports.DEFAULT_BREEZE_API_VERSION = exports.DEFAULT_BREEZE_ENDPOINT = exports.AI_OPERATION_NAME = exports.ServiceApiVersion = void 0;
5
+ exports.PerformanceToQuickPulseCounter = exports.PerformanceCounter = exports.QuickPulseCounter = exports.ENV_APPLICATIONINSIGHTS_STATSBEAT_ENABLED_PREVIEW = exports.ENV_AZURE_MONITOR_DISTRO_VERSION = exports.ENV_AZURE_MONITOR_PREFIX = exports.ENV_APPLICATIONINSIGHTS_SHIM_VERSION = exports.RetriableRestErrorTypes = exports.ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED = exports.ENV_AZURE_MONITOR_AUTO_ATTACH = exports.ENV_OTEL_METRICS_EXPORTER = exports.ENV_OTLP_METRICS_ENDPOINT = exports.ENV_OPENTELEMETRY_RESOURCE_METRIC_DISABLED = exports.LEGACY_ENV_DISABLE_STATSBEAT = exports.ENV_DISABLE_STATSBEAT = exports.ENV_INSTRUMENTATION_KEY = exports.ENV_CONNECTION_STRING = exports.DEFAULT_LIVEMETRICS_HOST = exports.DEFAULT_LIVEMETRICS_ENDPOINT = exports.DEFAULT_BREEZE_API_VERSION = exports.DEFAULT_BREEZE_ENDPOINT = exports.AI_OPERATION_NAME = exports.ServiceApiVersion = void 0;
6
6
  /**
7
7
  * Azure service API version.
8
8
  */
@@ -106,6 +106,11 @@ exports.ENV_AZURE_MONITOR_PREFIX = "AZURE_MONITOR_PREFIX";
106
106
  * @internal
107
107
  */
108
108
  exports.ENV_AZURE_MONITOR_DISTRO_VERSION = "AZURE_MONITOR_DISTRO_VERSION";
109
+ /**
110
+ * Enables the preview version of customer-facing Statsbeat.
111
+ * @internal
112
+ */
113
+ exports.ENV_APPLICATIONINSIGHTS_STATSBEAT_ENABLED_PREVIEW = "APPLICATIONINSIGHTS_STATSBEAT_ENABLED_PREVIEW";
109
114
  /**
110
115
  * QuickPulse metric counter names.
111
116
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Azure service API version.\n */\nexport enum ServiceApiVersion {\n /**\n * V2 Version\n */\n V2 = \"2020-09-15_Preview\",\n}\n\n/**\n * Operation Name attribute name.\n */\nexport const AI_OPERATION_NAME = \"ai.operation.name\";\n\n/**\n * Default Breeze endpoint.\n * @internal\n */\nexport const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\n/**\n * Default Breeze API version.\n * @internal\n */\nexport const DEFAULT_BREEZE_API_VERSION = ServiceApiVersion.V2;\n/**\n * Default Live Metrics endpoint.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_ENDPOINT = \"https://rt.services.visualstudio.com\";\n/**\n * Default Live Metrics host.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_HOST = \"rt.services.visualstudio.com\";\n/**\n * Connection string environment variable name.\n * @internal\n */\nexport const ENV_CONNECTION_STRING = \"APPLICATIONINSIGHTS_CONNECTION_STRING\";\n/**\n * Instrumentation key environment variable name.\n * @internal\n */\nexport const ENV_INSTRUMENTATION_KEY = \"APPINSIGHTS_INSTRUMENTATIONKEY\";\n/**\n * Disable Statsbeat environment variable name.\n * @internal\n */\nexport const ENV_DISABLE_STATSBEAT = \"APPLICATIONINSIGHTS_STATSBEAT_DISABLED\";\n/**\n * Legacy disable Statsbeat environment variable name.\n * @internal\n */\nexport const LEGACY_ENV_DISABLE_STATSBEAT = \"APPLICATION_INSIGHTS_NO_STATSBEAT\";\n/**\n * Disable OpenTelemetry Resource Metric.\n * @internal\n */\nexport const ENV_OPENTELEMETRY_RESOURCE_METRIC_DISABLED =\n \"APPLICATIONINSIGHTS_OPENTELEMETRY_RESOURCE_METRIC_DISABLED\";\n/**\n * OTLP Metrics Endpoint.\n * @internal\n */\nexport const ENV_OTLP_METRICS_ENDPOINT = \"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT\";\n/**\n * OTel Metrics Exporter.\n * @internal\n */\nexport const ENV_OTEL_METRICS_EXPORTER = \"OTEL_METRICS_EXPORTER\";\n/**\n * Determine if exporter was initialized in an auto-attach scenario.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_AUTO_ATTACH = \"AZURE_MONITOR_AUTO_ATTACH\";\n/**\n * Determines if custom metrics should be sent to Breeze.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED =\n \"APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED\";\n\n/**\n * REST error types for failed requests that can be retried.\n * @internal\n */\nexport enum RetriableRestErrorTypes {\n REQUEST_SEND_ERROR = \"REQUEST_SEND_ERROR\",\n DNS_LOOKUP_TIMEOUT = \"EAI_AGAIN\",\n}\n/**\n * Application Insights shim version.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_SHIM_VERSION = \"APPLICATION_INSIGHTS_SHIM_VERSION\";\n/**\n * Azure Monitor version prefix.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_PREFIX = \"AZURE_MONITOR_PREFIX\";\n/**\n * Azure Monitor Distro version.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_DISTRO_VERSION = \"AZURE_MONITOR_DISTRO_VERSION\";\n\n/**\n * QuickPulse metric counter names.\n * @internal\n */\nexport enum QuickPulseCounter {\n // Memory\n COMMITTED_BYTES = \"\\\\Memory\\\\Committed Bytes\",\n\n // CPU\n PROCESSOR_TIME = \"\\\\Processor(_Total)\\\\% Processor Time\",\n\n // Request\n REQUEST_RATE = \"\\\\ApplicationInsights\\\\Requests/Sec\",\n REQUEST_FAILURE_RATE = \"\\\\ApplicationInsights\\\\Requests Failed/Sec\",\n REQUEST_DURATION = \"\\\\ApplicationInsights\\\\Request Duration\",\n\n // Dependency\n DEPENDENCY_RATE = \"\\\\ApplicationInsights\\\\Dependency Calls/Sec\",\n DEPENDENCY_FAILURE_RATE = \"\\\\ApplicationInsights\\\\Dependency Calls Failed/Sec\",\n DEPENDENCY_DURATION = \"\\\\ApplicationInsights\\\\Dependency Call Duration\",\n\n // Exception\n EXCEPTION_RATE = \"\\\\ApplicationInsights\\\\Exceptions/Sec\",\n}\n\n/**\n * Performance metric counter names.\n * @internal\n */\nexport enum PerformanceCounter {\n // Memory\n PRIVATE_BYTES = \"\\\\Process(??APP_WIN32_PROC??)\\\\Private Bytes\",\n AVAILABLE_BYTES = \"\\\\Memory\\\\Available Bytes\",\n\n // CPU\n PROCESSOR_TIME = \"\\\\Processor(_Total)\\\\% Processor Time\",\n PROCESS_TIME_STANDARD = \"\\\\Process(??APP_WIN32_PROC??)\\\\% Processor Time\",\n PROCESS_TIME_NORMALIZED = \"\\\\Process(??APP_WIN32_PROC??)\\\\% Processor Time Normalized\",\n\n // Requests\n REQUEST_RATE = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Requests/Sec\",\n REQUEST_DURATION = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Request Execution Time\",\n\n // Exception\n EXCEPTION_RATE = \"\\\\.NET CLR Exceptions(??APP_CLR_PROC??)\\\\# of Exceps Thrown / sec\",\n // I/O\n IO_RATE = \"\\\\Process(??APP_WIN32_PROC??)\\\\IO Data Bytes/sec\",\n}\n\n/**\n * Map a PerformanceCounter/QuickPulseCounter to a QuickPulseCounter. If no mapping exists, mapping is *undefined*\n * @internal\n */\nexport const PerformanceToQuickPulseCounter: { [key: string]: QuickPulseCounter } = {\n [PerformanceCounter.PROCESSOR_TIME]: QuickPulseCounter.PROCESSOR_TIME,\n [PerformanceCounter.REQUEST_RATE]: QuickPulseCounter.REQUEST_RATE,\n [PerformanceCounter.REQUEST_DURATION]: QuickPulseCounter.REQUEST_DURATION,\n\n // Remap quick pulse only counters\n [QuickPulseCounter.COMMITTED_BYTES]: QuickPulseCounter.COMMITTED_BYTES,\n [QuickPulseCounter.REQUEST_FAILURE_RATE]: QuickPulseCounter.REQUEST_FAILURE_RATE,\n [QuickPulseCounter.DEPENDENCY_RATE]: QuickPulseCounter.DEPENDENCY_RATE,\n [QuickPulseCounter.DEPENDENCY_FAILURE_RATE]: QuickPulseCounter.DEPENDENCY_FAILURE_RATE,\n [QuickPulseCounter.DEPENDENCY_DURATION]: QuickPulseCounter.DEPENDENCY_DURATION,\n [QuickPulseCounter.EXCEPTION_RATE]: QuickPulseCounter.EXCEPTION_RATE,\n};\n\n/**\n * QuickPulse document types.\n * @internal\n */\nexport type QuickPulseDocumentType =\n | \"Event\"\n | \"Exception\"\n | \"Trace\"\n | \"Metric\"\n | \"Request\"\n | \"RemoteDependency\"\n | \"Availability\";\n/**\n * QuickPulse telemetry types.\n * @internal\n */\nexport type QuickPulseType =\n | \"EventTelemetryDocument\"\n | \"ExceptionTelemetryDocument\"\n | \"TraceTelemetryDocument\"\n | \"MetricTelemetryDocument\"\n | \"RequestTelemetryDocument\"\n | \"DependencyTelemetryDocument\"\n | \"AvailabilityTelemetryDocument\";\n"]}
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Azure service API version.\n */\nexport enum ServiceApiVersion {\n /**\n * V2 Version\n */\n V2 = \"2020-09-15_Preview\",\n}\n\n/**\n * Operation Name attribute name.\n */\nexport const AI_OPERATION_NAME = \"ai.operation.name\";\n\n/**\n * Default Breeze endpoint.\n * @internal\n */\nexport const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\n/**\n * Default Breeze API version.\n * @internal\n */\nexport const DEFAULT_BREEZE_API_VERSION = ServiceApiVersion.V2;\n/**\n * Default Live Metrics endpoint.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_ENDPOINT = \"https://rt.services.visualstudio.com\";\n/**\n * Default Live Metrics host.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_HOST = \"rt.services.visualstudio.com\";\n/**\n * Connection string environment variable name.\n * @internal\n */\nexport const ENV_CONNECTION_STRING = \"APPLICATIONINSIGHTS_CONNECTION_STRING\";\n/**\n * Instrumentation key environment variable name.\n * @internal\n */\nexport const ENV_INSTRUMENTATION_KEY = \"APPINSIGHTS_INSTRUMENTATIONKEY\";\n/**\n * Disable Statsbeat environment variable name.\n * @internal\n */\nexport const ENV_DISABLE_STATSBEAT = \"APPLICATIONINSIGHTS_STATSBEAT_DISABLED\";\n/**\n * Legacy disable Statsbeat environment variable name.\n * @internal\n */\nexport const LEGACY_ENV_DISABLE_STATSBEAT = \"APPLICATION_INSIGHTS_NO_STATSBEAT\";\n/**\n * Disable OpenTelemetry Resource Metric.\n * @internal\n */\nexport const ENV_OPENTELEMETRY_RESOURCE_METRIC_DISABLED =\n \"APPLICATIONINSIGHTS_OPENTELEMETRY_RESOURCE_METRIC_DISABLED\";\n/**\n * OTLP Metrics Endpoint.\n * @internal\n */\nexport const ENV_OTLP_METRICS_ENDPOINT = \"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT\";\n/**\n * OTel Metrics Exporter.\n * @internal\n */\nexport const ENV_OTEL_METRICS_EXPORTER = \"OTEL_METRICS_EXPORTER\";\n/**\n * Determine if exporter was initialized in an auto-attach scenario.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_AUTO_ATTACH = \"AZURE_MONITOR_AUTO_ATTACH\";\n/**\n * Determines if custom metrics should be sent to Breeze.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED =\n \"APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED\";\n\n/**\n * REST error types for failed requests that can be retried.\n * @internal\n */\nexport enum RetriableRestErrorTypes {\n REQUEST_SEND_ERROR = \"REQUEST_SEND_ERROR\",\n DNS_LOOKUP_TIMEOUT = \"EAI_AGAIN\",\n}\n/**\n * Application Insights shim version.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_SHIM_VERSION = \"APPLICATION_INSIGHTS_SHIM_VERSION\";\n/**\n * Azure Monitor version prefix.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_PREFIX = \"AZURE_MONITOR_PREFIX\";\n/**\n * Azure Monitor Distro version.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_DISTRO_VERSION = \"AZURE_MONITOR_DISTRO_VERSION\";\n\n/**\n * Enables the preview version of customer-facing Statsbeat.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_STATSBEAT_ENABLED_PREVIEW =\n \"APPLICATIONINSIGHTS_STATSBEAT_ENABLED_PREVIEW\";\n\n/**\n * QuickPulse metric counter names.\n * @internal\n */\nexport enum QuickPulseCounter {\n // Memory\n COMMITTED_BYTES = \"\\\\Memory\\\\Committed Bytes\",\n\n // CPU\n PROCESSOR_TIME = \"\\\\Processor(_Total)\\\\% Processor Time\",\n\n // Request\n REQUEST_RATE = \"\\\\ApplicationInsights\\\\Requests/Sec\",\n REQUEST_FAILURE_RATE = \"\\\\ApplicationInsights\\\\Requests Failed/Sec\",\n REQUEST_DURATION = \"\\\\ApplicationInsights\\\\Request Duration\",\n\n // Dependency\n DEPENDENCY_RATE = \"\\\\ApplicationInsights\\\\Dependency Calls/Sec\",\n DEPENDENCY_FAILURE_RATE = \"\\\\ApplicationInsights\\\\Dependency Calls Failed/Sec\",\n DEPENDENCY_DURATION = \"\\\\ApplicationInsights\\\\Dependency Call Duration\",\n\n // Exception\n EXCEPTION_RATE = \"\\\\ApplicationInsights\\\\Exceptions/Sec\",\n}\n\n/**\n * Performance metric counter names.\n * @internal\n */\nexport enum PerformanceCounter {\n // Memory\n PRIVATE_BYTES = \"\\\\Process(??APP_WIN32_PROC??)\\\\Private Bytes\",\n AVAILABLE_BYTES = \"\\\\Memory\\\\Available Bytes\",\n\n // CPU\n PROCESSOR_TIME = \"\\\\Processor(_Total)\\\\% Processor Time\",\n PROCESS_TIME_STANDARD = \"\\\\Process(??APP_WIN32_PROC??)\\\\% Processor Time\",\n PROCESS_TIME_NORMALIZED = \"\\\\Process(??APP_WIN32_PROC??)\\\\% Processor Time Normalized\",\n\n // Requests\n REQUEST_RATE = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Requests/Sec\",\n REQUEST_DURATION = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Request Execution Time\",\n\n // Exception\n EXCEPTION_RATE = \"\\\\.NET CLR Exceptions(??APP_CLR_PROC??)\\\\# of Exceps Thrown / sec\",\n // I/O\n IO_RATE = \"\\\\Process(??APP_WIN32_PROC??)\\\\IO Data Bytes/sec\",\n}\n\n/**\n * Map a PerformanceCounter/QuickPulseCounter to a QuickPulseCounter. If no mapping exists, mapping is *undefined*\n * @internal\n */\nexport const PerformanceToQuickPulseCounter: { [key: string]: QuickPulseCounter } = {\n [PerformanceCounter.PROCESSOR_TIME]: QuickPulseCounter.PROCESSOR_TIME,\n [PerformanceCounter.REQUEST_RATE]: QuickPulseCounter.REQUEST_RATE,\n [PerformanceCounter.REQUEST_DURATION]: QuickPulseCounter.REQUEST_DURATION,\n\n // Remap quick pulse only counters\n [QuickPulseCounter.COMMITTED_BYTES]: QuickPulseCounter.COMMITTED_BYTES,\n [QuickPulseCounter.REQUEST_FAILURE_RATE]: QuickPulseCounter.REQUEST_FAILURE_RATE,\n [QuickPulseCounter.DEPENDENCY_RATE]: QuickPulseCounter.DEPENDENCY_RATE,\n [QuickPulseCounter.DEPENDENCY_FAILURE_RATE]: QuickPulseCounter.DEPENDENCY_FAILURE_RATE,\n [QuickPulseCounter.DEPENDENCY_DURATION]: QuickPulseCounter.DEPENDENCY_DURATION,\n [QuickPulseCounter.EXCEPTION_RATE]: QuickPulseCounter.EXCEPTION_RATE,\n};\n\n/**\n * QuickPulse document types.\n * @internal\n */\nexport type QuickPulseDocumentType =\n | \"Event\"\n | \"Exception\"\n | \"Trace\"\n | \"Metric\"\n | \"Request\"\n | \"RemoteDependency\"\n | \"Availability\";\n/**\n * QuickPulse telemetry types.\n * @internal\n */\nexport type QuickPulseType =\n | \"EventTelemetryDocument\"\n | \"ExceptionTelemetryDocument\"\n | \"TraceTelemetryDocument\"\n | \"MetricTelemetryDocument\"\n | \"RequestTelemetryDocument\"\n | \"DependencyTelemetryDocument\"\n | \"AvailabilityTelemetryDocument\";\n"]}
@@ -10,24 +10,35 @@ const Constants_js_1 = require("../Declarations/Constants.js");
10
10
  * Azure Monitor OpenTelemetry Trace Exporter.
11
11
  */
12
12
  class AzureMonitorBaseExporter {
13
+ /**
14
+ * Instrumentation key to be used for exported envelopes
15
+ */
16
+ instrumentationKey = "";
17
+ /**
18
+ * Ingestion Endpoint URL
19
+ */
20
+ endpointUrl = "";
21
+ /**
22
+ *Flag to determine if exporter will generate Statsbeat data
23
+ */
24
+ trackStatsbeat = false;
25
+ /**
26
+ * Instrumentation key to be used for exported envelopes
27
+ */
28
+ aadAudience;
29
+ /**
30
+ * Flag to determine if the Exporter is a Statsbeat Exporter
31
+ */
32
+ isStatsbeatExporter;
33
+ /**
34
+ * Exporter internal configuration
35
+ */
36
+ options;
13
37
  /**
14
38
  * Initializes a new instance of the AzureMonitorBaseExporter class.
15
39
  * @param AzureMonitorExporterOptions - Exporter configuration.
16
40
  */
17
41
  constructor(options = {}, isStatsbeatExporter) {
18
- var _a;
19
- /**
20
- * Instrumentation key to be used for exported envelopes
21
- */
22
- this.instrumentationKey = "";
23
- /**
24
- * Ingestion Endpoint URL
25
- */
26
- this.endpointUrl = "";
27
- /**
28
- *Flag to determine if exporter will generate Statsbeat data
29
- */
30
- this.trackStatsbeat = false;
31
42
  this.options = options;
32
43
  this.instrumentationKey = "";
33
44
  this.endpointUrl = Constants_js_1.DEFAULT_BREEZE_ENDPOINT;
@@ -37,7 +48,7 @@ class AzureMonitorBaseExporter {
37
48
  const parsedConnectionString = connectionStringParser_js_1.ConnectionStringParser.parse(connectionString);
38
49
  this.instrumentationKey =
39
50
  parsedConnectionString.instrumentationkey || this.instrumentationKey;
40
- this.endpointUrl = ((_a = parsedConnectionString.ingestionendpoint) === null || _a === void 0 ? void 0 : _a.trim()) || this.endpointUrl;
51
+ this.endpointUrl = parsedConnectionString.ingestionendpoint?.trim() || this.endpointUrl;
41
52
  this.aadAudience = parsedConnectionString.aadaudience;
42
53
  }
43
54
  // Instrumentation key is required
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/export/base.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAA0C;AAC1C,kFAA4E;AAE5E,+DAIsC;AAEtC;;GAEG;AACH,MAAsB,wBAAwB;IA4B5C;;;OAGG;IACH,YAAY,UAAuC,EAAE,EAAE,mBAA6B;;QA/BpF;;WAEG;QACO,uBAAkB,GAAW,EAAE,CAAC;QAC1C;;WAEG;QACO,gBAAW,GAAW,EAAE,CAAC;QACnC;;WAEG;QACO,mBAAc,GAAY,KAAK,CAAC;QAqBxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,sCAAuB,CAAC;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,oCAAqB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7E,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,sBAAsB,GAAG,kDAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC9E,IAAI,CAAC,kBAAkB;gBACrB,sBAAsB,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC;YACvE,IAAI,CAAC,WAAW,GAAG,CAAA,MAAA,sBAAsB,CAAC,iBAAiB,0CAAE,IAAI,EAAE,KAAI,IAAI,CAAC,WAAW,CAAC;YACxF,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,WAAW,CAAC;QACxD,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,OAAO,GACX,wFAAwF,CAAC;YAC3F,UAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,kDAAsB,CAAC,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChF,MAAM,OAAO,GAAG,wEAAwE,CAAC;YACzF,UAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,CAAC;QAE9F,UAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC5D,CAAC;CACF;AA/DD,4DA+DC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { diag } from \"@opentelemetry/api\";\nimport { ConnectionStringParser } from \"../utils/connectionStringParser.js\";\nimport type { AzureMonitorExporterOptions } from \"../config.js\";\nimport {\n DEFAULT_BREEZE_ENDPOINT,\n ENV_CONNECTION_STRING,\n LEGACY_ENV_DISABLE_STATSBEAT,\n} from \"../Declarations/Constants.js\";\n\n/**\n * Azure Monitor OpenTelemetry Trace Exporter.\n */\nexport abstract class AzureMonitorBaseExporter {\n /**\n * Instrumentation key to be used for exported envelopes\n */\n protected instrumentationKey: string = \"\";\n /**\n * Ingestion Endpoint URL\n */\n protected endpointUrl: string = \"\";\n /**\n *Flag to determine if exporter will generate Statsbeat data\n */\n protected trackStatsbeat: boolean = false;\n /**\n * Instrumentation key to be used for exported envelopes\n */\n protected aadAudience: string | undefined;\n\n /**\n * Flag to determine if the Exporter is a Statsbeat Exporter\n */\n private isStatsbeatExporter: boolean;\n\n /**\n * Exporter internal configuration\n */\n private readonly options: AzureMonitorExporterOptions;\n\n /**\n * Initializes a new instance of the AzureMonitorBaseExporter class.\n * @param AzureMonitorExporterOptions - Exporter configuration.\n */\n constructor(options: AzureMonitorExporterOptions = {}, isStatsbeatExporter?: boolean) {\n this.options = options;\n this.instrumentationKey = \"\";\n this.endpointUrl = DEFAULT_BREEZE_ENDPOINT;\n const connectionString = this.options.connectionString || process.env[ENV_CONNECTION_STRING];\n this.isStatsbeatExporter = isStatsbeatExporter ? isStatsbeatExporter : false;\n\n if (connectionString) {\n const parsedConnectionString = ConnectionStringParser.parse(connectionString);\n this.instrumentationKey =\n parsedConnectionString.instrumentationkey || this.instrumentationKey;\n this.endpointUrl = parsedConnectionString.ingestionendpoint?.trim() || this.endpointUrl;\n this.aadAudience = parsedConnectionString.aadaudience;\n }\n\n // Instrumentation key is required\n if (!this.instrumentationKey) {\n const message =\n \"No instrumentation key or connection string was provided to the Azure Monitor Exporter\";\n diag.error(message);\n throw new Error(message);\n }\n if (!ConnectionStringParser.validateInstrumentationKey(this.instrumentationKey)) {\n const message = \"Invalid instrumentation key was provided to the Azure Monitor Exporter\";\n diag.error(message);\n throw new Error(message);\n }\n this.trackStatsbeat = !this.isStatsbeatExporter && !process.env[LEGACY_ENV_DISABLE_STATSBEAT];\n\n diag.debug(\"AzureMonitorExporter was successfully setup\");\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/export/base.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAA0C;AAC1C,kFAA4E;AAE5E,+DAIsC;AAEtC;;GAEG;AACH,MAAsB,wBAAwB;IAC5C;;OAEG;IACO,kBAAkB,GAAW,EAAE,CAAC;IAC1C;;OAEG;IACO,WAAW,GAAW,EAAE,CAAC;IACnC;;OAEG;IACO,cAAc,GAAY,KAAK,CAAC;IAC1C;;OAEG;IACO,WAAW,CAAqB;IAE1C;;OAEG;IACK,mBAAmB,CAAU;IAErC;;OAEG;IACc,OAAO,CAA8B;IAEtD;;;OAGG;IACH,YAAY,UAAuC,EAAE,EAAE,mBAA6B;QAClF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,sCAAuB,CAAC;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,oCAAqB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7E,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,sBAAsB,GAAG,kDAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC9E,IAAI,CAAC,kBAAkB;gBACrB,sBAAsB,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC;YACvE,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;YACxF,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,WAAW,CAAC;QACxD,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,OAAO,GACX,wFAAwF,CAAC;YAC3F,UAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,kDAAsB,CAAC,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChF,MAAM,OAAO,GAAG,wEAAwE,CAAC;YACzF,UAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,CAAC;QAE9F,UAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC5D,CAAC;CACF;AA/DD,4DA+DC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { diag } from \"@opentelemetry/api\";\nimport { ConnectionStringParser } from \"../utils/connectionStringParser.js\";\nimport type { AzureMonitorExporterOptions } from \"../config.js\";\nimport {\n DEFAULT_BREEZE_ENDPOINT,\n ENV_CONNECTION_STRING,\n LEGACY_ENV_DISABLE_STATSBEAT,\n} from \"../Declarations/Constants.js\";\n\n/**\n * Azure Monitor OpenTelemetry Trace Exporter.\n */\nexport abstract class AzureMonitorBaseExporter {\n /**\n * Instrumentation key to be used for exported envelopes\n */\n protected instrumentationKey: string = \"\";\n /**\n * Ingestion Endpoint URL\n */\n protected endpointUrl: string = \"\";\n /**\n *Flag to determine if exporter will generate Statsbeat data\n */\n protected trackStatsbeat: boolean = false;\n /**\n * Instrumentation key to be used for exported envelopes\n */\n protected aadAudience: string | undefined;\n\n /**\n * Flag to determine if the Exporter is a Statsbeat Exporter\n */\n private isStatsbeatExporter: boolean;\n\n /**\n * Exporter internal configuration\n */\n private readonly options: AzureMonitorExporterOptions;\n\n /**\n * Initializes a new instance of the AzureMonitorBaseExporter class.\n * @param AzureMonitorExporterOptions - Exporter configuration.\n */\n constructor(options: AzureMonitorExporterOptions = {}, isStatsbeatExporter?: boolean) {\n this.options = options;\n this.instrumentationKey = \"\";\n this.endpointUrl = DEFAULT_BREEZE_ENDPOINT;\n const connectionString = this.options.connectionString || process.env[ENV_CONNECTION_STRING];\n this.isStatsbeatExporter = isStatsbeatExporter ? isStatsbeatExporter : false;\n\n if (connectionString) {\n const parsedConnectionString = ConnectionStringParser.parse(connectionString);\n this.instrumentationKey =\n parsedConnectionString.instrumentationkey || this.instrumentationKey;\n this.endpointUrl = parsedConnectionString.ingestionendpoint?.trim() || this.endpointUrl;\n this.aadAudience = parsedConnectionString.aadaudience;\n }\n\n // Instrumentation key is required\n if (!this.instrumentationKey) {\n const message =\n \"No instrumentation key or connection string was provided to the Azure Monitor Exporter\";\n diag.error(message);\n throw new Error(message);\n }\n if (!ConnectionStringParser.validateInstrumentationKey(this.instrumentationKey)) {\n const message = \"Invalid instrumentation key was provided to the Azure Monitor Exporter\";\n diag.error(message);\n throw new Error(message);\n }\n this.trackStatsbeat = !this.isStatsbeatExporter && !process.env[LEGACY_ENV_DISABLE_STATSBEAT];\n\n diag.debug(\"AzureMonitorExporter was successfully setup\");\n }\n}\n"]}
@@ -12,16 +12,17 @@ const index_js_1 = require("../platform/index.js");
12
12
  * Azure Monitor OpenTelemetry Log Exporter.
13
13
  */
14
14
  class AzureMonitorLogExporter extends base_js_1.AzureMonitorBaseExporter {
15
+ /**
16
+ * Flag to determine if Exporter is shutdown.
17
+ */
18
+ _isShutdown = false;
19
+ _sender;
15
20
  /**
16
21
  * Initializes a new instance of the AzureMonitorLogExporter class.
17
22
  * @param AzureExporterConfig - Exporter configuration.
18
23
  */
19
24
  constructor(options = {}) {
20
25
  super(options);
21
- /**
22
- * Flag to determine if Exporter is shutdown.
23
- */
24
- this._isShutdown = false;
25
26
  this._sender = new index_js_1.HttpSender({
26
27
  endpointUrl: this.endpointUrl,
27
28
  instrumentationKey: this.instrumentationKey,
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/export/log.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAAmD;AAEnD,8CAAwE;AACxE,uCAAqD;AAErD,sDAAqD;AAGrD,mDAAkD;AAElD;;GAEG;AACH,MAAa,uBAAwB,SAAQ,kCAAwB;IAOnE;;;OAGG;IAEH,YAAY,UAAuC,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QAZjB;;WAEG;QACK,gBAAW,GAAG,KAAK,CAAC;QAU1B,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAU,CAAC;YAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,OAAO;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,UAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAM,CACjB,IAAyB,EACzB,cAA8C;QAE9C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,UAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACzD,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,UAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,sCAAsC,CAAC,CAAC;QAE1E,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7D,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,0DAA0D;QAC1D,MAAM,aAAO,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,aAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;YAC/D,cAAc,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,UAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;CACF;AA7DD,0DA6DC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { context, diag } from \"@opentelemetry/api\";\nimport type { ExportResult } from \"@opentelemetry/core\";\nimport { ExportResultCode, suppressTracing } from \"@opentelemetry/core\";\nimport { AzureMonitorBaseExporter } from \"./base.js\";\nimport type { TelemetryItem as Envelope } from \"../generated/index.js\";\nimport { logToEnvelope } from \"../utils/logUtils.js\";\nimport type { AzureMonitorExporterOptions } from \"../config.js\";\nimport type { ReadableLogRecord, LogRecordExporter } from \"@opentelemetry/sdk-logs\";\nimport { HttpSender } from \"../platform/index.js\";\n\n/**\n * Azure Monitor OpenTelemetry Log Exporter.\n */\nexport class AzureMonitorLogExporter extends AzureMonitorBaseExporter implements LogRecordExporter {\n /**\n * Flag to determine if Exporter is shutdown.\n */\n private _isShutdown = false;\n private readonly _sender: HttpSender;\n\n /**\n * Initializes a new instance of the AzureMonitorLogExporter class.\n * @param AzureExporterConfig - Exporter configuration.\n */\n\n constructor(options: AzureMonitorExporterOptions = {}) {\n super(options);\n this._sender = new HttpSender({\n endpointUrl: this.endpointUrl,\n instrumentationKey: this.instrumentationKey,\n trackStatsbeat: this.trackStatsbeat,\n exporterOptions: options,\n aadAudience: this.aadAudience,\n });\n diag.debug(\"AzureMonitorLogExporter was successfully setup\");\n }\n\n /**\n * Export OpenTelemetry logs.\n * @param logs - Logs to export.\n * @param resultCallback - Result callback.\n */\n public async export(\n logs: ReadableLogRecord[],\n resultCallback: (result: ExportResult) => void,\n ): Promise<void> {\n if (this._isShutdown) {\n diag.info(\"Exporter shut down. Failed to export spans.\");\n setTimeout(() => resultCallback({ code: ExportResultCode.FAILED }), 0);\n return;\n }\n diag.info(`Exporting ${logs.length} logs(s). Converting to envelopes...`);\n\n const envelopes: Envelope[] = [];\n logs.forEach((log) => {\n const envelope = logToEnvelope(log, this.instrumentationKey);\n if (envelope) {\n envelopes.push(envelope);\n }\n });\n // Supress tracing until OpenTelemetry Logs SDK support it\n await context.with(suppressTracing(context.active()), async () => {\n resultCallback(await this._sender.exportEnvelopes(envelopes));\n });\n }\n\n /**\n * Shutdown AzureMonitorLogExporter.\n */\n public async shutdown(): Promise<void> {\n this._isShutdown = true;\n diag.info(\"AzureMonitorLogExporter shutting down\");\n return this._sender.shutdown();\n }\n}\n"]}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/export/log.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAAmD;AAEnD,8CAAwE;AACxE,uCAAqD;AAErD,sDAAqD;AAGrD,mDAAkD;AAElD;;GAEG;AACH,MAAa,uBAAwB,SAAQ,kCAAwB;IACnE;;OAEG;IACK,WAAW,GAAG,KAAK,CAAC;IACX,OAAO,CAAa;IAErC;;;OAGG;IAEH,YAAY,UAAuC,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAU,CAAC;YAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,OAAO;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,UAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAM,CACjB,IAAyB,EACzB,cAA8C;QAE9C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,UAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACzD,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,UAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,sCAAsC,CAAC,CAAC;QAE1E,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7D,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,0DAA0D;QAC1D,MAAM,aAAO,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,aAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;YAC/D,cAAc,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,UAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;CACF;AA7DD,0DA6DC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { context, diag } from \"@opentelemetry/api\";\nimport type { ExportResult } from \"@opentelemetry/core\";\nimport { ExportResultCode, suppressTracing } from \"@opentelemetry/core\";\nimport { AzureMonitorBaseExporter } from \"./base.js\";\nimport type { TelemetryItem as Envelope } from \"../generated/index.js\";\nimport { logToEnvelope } from \"../utils/logUtils.js\";\nimport type { AzureMonitorExporterOptions } from \"../config.js\";\nimport type { ReadableLogRecord, LogRecordExporter } from \"@opentelemetry/sdk-logs\";\nimport { HttpSender } from \"../platform/index.js\";\n\n/**\n * Azure Monitor OpenTelemetry Log Exporter.\n */\nexport class AzureMonitorLogExporter extends AzureMonitorBaseExporter implements LogRecordExporter {\n /**\n * Flag to determine if Exporter is shutdown.\n */\n private _isShutdown = false;\n private readonly _sender: HttpSender;\n\n /**\n * Initializes a new instance of the AzureMonitorLogExporter class.\n * @param AzureExporterConfig - Exporter configuration.\n */\n\n constructor(options: AzureMonitorExporterOptions = {}) {\n super(options);\n this._sender = new HttpSender({\n endpointUrl: this.endpointUrl,\n instrumentationKey: this.instrumentationKey,\n trackStatsbeat: this.trackStatsbeat,\n exporterOptions: options,\n aadAudience: this.aadAudience,\n });\n diag.debug(\"AzureMonitorLogExporter was successfully setup\");\n }\n\n /**\n * Export OpenTelemetry logs.\n * @param logs - Logs to export.\n * @param resultCallback - Result callback.\n */\n public async export(\n logs: ReadableLogRecord[],\n resultCallback: (result: ExportResult) => void,\n ): Promise<void> {\n if (this._isShutdown) {\n diag.info(\"Exporter shut down. Failed to export spans.\");\n setTimeout(() => resultCallback({ code: ExportResultCode.FAILED }), 0);\n return;\n }\n diag.info(`Exporting ${logs.length} logs(s). Converting to envelopes...`);\n\n const envelopes: Envelope[] = [];\n logs.forEach((log) => {\n const envelope = logToEnvelope(log, this.instrumentationKey);\n if (envelope) {\n envelopes.push(envelope);\n }\n });\n // Supress tracing until OpenTelemetry Logs SDK support it\n await context.with(suppressTracing(context.active()), async () => {\n resultCallback(await this._sender.exportEnvelopes(envelopes));\n });\n }\n\n /**\n * Shutdown AzureMonitorLogExporter.\n */\n public async shutdown(): Promise<void> {\n this._isShutdown = true;\n diag.info(\"AzureMonitorLogExporter shutting down\");\n return this._sender.shutdown();\n }\n}\n"]}
@@ -13,16 +13,17 @@ const index_js_1 = require("../platform/index.js");
13
13
  * Azure Monitor OpenTelemetry Metric Exporter.
14
14
  */
15
15
  class AzureMonitorMetricExporter extends base_js_1.AzureMonitorBaseExporter {
16
+ /**
17
+ * Flag to determine if Exporter is shutdown.
18
+ */
19
+ _isShutdown = false;
20
+ _sender;
16
21
  /**
17
22
  * Initializes a new instance of the AzureMonitorMetricExporter class.
18
23
  * @param AzureExporterConfig - Exporter configuration.
19
24
  */
20
25
  constructor(options = {}) {
21
26
  super(options);
22
- /**
23
- * Flag to determine if Exporter is shutdown.
24
- */
25
- this._isShutdown = false;
26
27
  this._sender = new index_js_1.HttpSender({
27
28
  endpointUrl: this.endpointUrl,
28
29
  instrumentationKey: this.instrumentationKey,
@@ -1 +1 @@
1
- {"version":3,"file":"metric.js","sourceRoot":"","sources":["../../../src/export/metric.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,4CAAmD;AAEnD,4DAAoF;AAEpF,8CAAwE;AACxE,uCAAqD;AAErD,4DAAoE;AAEpE,mDAAkD;AAElD;;GAEG;AACH,MAAa,0BACX,SAAQ,kCAAwB;IAShC;;;OAGG;IAEH,YAAY,UAAuC,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QAZjB;;WAEG;QACK,gBAAW,GAAG,KAAK,CAAC;QAU1B,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAU,CAAC;YAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,OAAO;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,UAAI,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,OAAwB,EACxB,cAA8C;QAE9C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,UAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACzD,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,UAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,YAAY,CAAC,MAAM,yCAAyC,CAAC,CAAC;QAE7F,MAAM,SAAS,GAAe,IAAA,0CAAyB,EAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1F,6DAA6D;QAC7D,MAAM,aAAO,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,aAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;YAC/D,cAAc,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,UAAI,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,4BAA4B,CAAC,cAA8B;QAChE,IACE,cAAc,KAAK,4BAAc,CAAC,eAAe;YACjD,cAAc,KAAK,4BAAc,CAAC,0BAA0B,EAC5D,CAAC;YACD,OAAO,oCAAsB,CAAC,UAAU,CAAC;QAC3C,CAAC;QACD,OAAO,oCAAsB,CAAC,KAAK,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA9ED,gEA8EC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { context, diag } from \"@opentelemetry/api\";\nimport type { PushMetricExporter, ResourceMetrics } from \"@opentelemetry/sdk-metrics\";\nimport { AggregationTemporality, InstrumentType } from \"@opentelemetry/sdk-metrics\";\nimport type { ExportResult } from \"@opentelemetry/core\";\nimport { ExportResultCode, suppressTracing } from \"@opentelemetry/core\";\nimport { AzureMonitorBaseExporter } from \"./base.js\";\nimport type { TelemetryItem as Envelope } from \"../generated/index.js\";\nimport { resourceMetricsToEnvelope } from \"../utils/metricUtils.js\";\nimport type { AzureMonitorExporterOptions } from \"../config.js\";\nimport { HttpSender } from \"../platform/index.js\";\n\n/**\n * Azure Monitor OpenTelemetry Metric Exporter.\n */\nexport class AzureMonitorMetricExporter\n extends AzureMonitorBaseExporter\n implements PushMetricExporter\n{\n /**\n * Flag to determine if Exporter is shutdown.\n */\n private _isShutdown = false;\n private _sender: HttpSender;\n\n /**\n * Initializes a new instance of the AzureMonitorMetricExporter class.\n * @param AzureExporterConfig - Exporter configuration.\n */\n\n constructor(options: AzureMonitorExporterOptions = {}) {\n super(options);\n this._sender = new HttpSender({\n endpointUrl: this.endpointUrl,\n instrumentationKey: this.instrumentationKey,\n trackStatsbeat: this.trackStatsbeat,\n exporterOptions: options,\n aadAudience: this.aadAudience,\n });\n diag.debug(\"AzureMonitorMetricExporter was successfully setup\");\n }\n\n /**\n * Export OpenTelemetry resource metrics.\n * @param metrics - Resource metrics to export.\n * @param resultCallback - Result callback.\n */\n async export(\n metrics: ResourceMetrics,\n resultCallback: (result: ExportResult) => void,\n ): Promise<void> {\n if (this._isShutdown) {\n diag.info(\"Exporter shut down. Failed to export spans.\");\n setTimeout(() => resultCallback({ code: ExportResultCode.FAILED }), 0);\n return;\n }\n diag.info(`Exporting ${metrics.scopeMetrics.length} metrics(s). Converting to envelopes...`);\n\n const envelopes: Envelope[] = resourceMetricsToEnvelope(metrics, this.instrumentationKey);\n // Supress tracing until OpenTelemetry Metrics SDK support it\n await context.with(suppressTracing(context.active()), async () => {\n resultCallback(await this._sender.exportEnvelopes(envelopes));\n });\n }\n\n /**\n * Shutdown AzureMonitorMetricExporter.\n */\n public async shutdown(): Promise<void> {\n this._isShutdown = true;\n diag.info(\"AzureMonitorMetricExporter shutting down\");\n return this._sender.shutdown();\n }\n\n /**\n * Select aggregation temporality\n */\n public selectAggregationTemporality(instrumentType: InstrumentType): AggregationTemporality {\n if (\n instrumentType === InstrumentType.UP_DOWN_COUNTER ||\n instrumentType === InstrumentType.OBSERVABLE_UP_DOWN_COUNTER\n ) {\n return AggregationTemporality.CUMULATIVE;\n }\n return AggregationTemporality.DELTA;\n }\n\n /**\n * Force flush\n */\n public async forceFlush(): Promise<void> {\n return Promise.resolve();\n }\n}\n"]}
1
+ {"version":3,"file":"metric.js","sourceRoot":"","sources":["../../../src/export/metric.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,4CAAmD;AAEnD,4DAAoF;AAEpF,8CAAwE;AACxE,uCAAqD;AAErD,4DAAoE;AAEpE,mDAAkD;AAElD;;GAEG;AACH,MAAa,0BACX,SAAQ,kCAAwB;IAGhC;;OAEG;IACK,WAAW,GAAG,KAAK,CAAC;IACpB,OAAO,CAAa;IAE5B;;;OAGG;IAEH,YAAY,UAAuC,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAU,CAAC;YAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,OAAO;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,UAAI,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,OAAwB,EACxB,cAA8C;QAE9C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,UAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACzD,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,UAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,YAAY,CAAC,MAAM,yCAAyC,CAAC,CAAC;QAE7F,MAAM,SAAS,GAAe,IAAA,0CAAyB,EAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1F,6DAA6D;QAC7D,MAAM,aAAO,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,aAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;YAC/D,cAAc,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,UAAI,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,4BAA4B,CAAC,cAA8B;QAChE,IACE,cAAc,KAAK,4BAAc,CAAC,eAAe;YACjD,cAAc,KAAK,4BAAc,CAAC,0BAA0B,EAC5D,CAAC;YACD,OAAO,oCAAsB,CAAC,UAAU,CAAC;QAC3C,CAAC;QACD,OAAO,oCAAsB,CAAC,KAAK,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA9ED,gEA8EC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { context, diag } from \"@opentelemetry/api\";\nimport type { PushMetricExporter, ResourceMetrics } from \"@opentelemetry/sdk-metrics\";\nimport { AggregationTemporality, InstrumentType } from \"@opentelemetry/sdk-metrics\";\nimport type { ExportResult } from \"@opentelemetry/core\";\nimport { ExportResultCode, suppressTracing } from \"@opentelemetry/core\";\nimport { AzureMonitorBaseExporter } from \"./base.js\";\nimport type { TelemetryItem as Envelope } from \"../generated/index.js\";\nimport { resourceMetricsToEnvelope } from \"../utils/metricUtils.js\";\nimport type { AzureMonitorExporterOptions } from \"../config.js\";\nimport { HttpSender } from \"../platform/index.js\";\n\n/**\n * Azure Monitor OpenTelemetry Metric Exporter.\n */\nexport class AzureMonitorMetricExporter\n extends AzureMonitorBaseExporter\n implements PushMetricExporter\n{\n /**\n * Flag to determine if Exporter is shutdown.\n */\n private _isShutdown = false;\n private _sender: HttpSender;\n\n /**\n * Initializes a new instance of the AzureMonitorMetricExporter class.\n * @param AzureExporterConfig - Exporter configuration.\n */\n\n constructor(options: AzureMonitorExporterOptions = {}) {\n super(options);\n this._sender = new HttpSender({\n endpointUrl: this.endpointUrl,\n instrumentationKey: this.instrumentationKey,\n trackStatsbeat: this.trackStatsbeat,\n exporterOptions: options,\n aadAudience: this.aadAudience,\n });\n diag.debug(\"AzureMonitorMetricExporter was successfully setup\");\n }\n\n /**\n * Export OpenTelemetry resource metrics.\n * @param metrics - Resource metrics to export.\n * @param resultCallback - Result callback.\n */\n async export(\n metrics: ResourceMetrics,\n resultCallback: (result: ExportResult) => void,\n ): Promise<void> {\n if (this._isShutdown) {\n diag.info(\"Exporter shut down. Failed to export spans.\");\n setTimeout(() => resultCallback({ code: ExportResultCode.FAILED }), 0);\n return;\n }\n diag.info(`Exporting ${metrics.scopeMetrics.length} metrics(s). Converting to envelopes...`);\n\n const envelopes: Envelope[] = resourceMetricsToEnvelope(metrics, this.instrumentationKey);\n // Supress tracing until OpenTelemetry Metrics SDK support it\n await context.with(suppressTracing(context.active()), async () => {\n resultCallback(await this._sender.exportEnvelopes(envelopes));\n });\n }\n\n /**\n * Shutdown AzureMonitorMetricExporter.\n */\n public async shutdown(): Promise<void> {\n this._isShutdown = true;\n diag.info(\"AzureMonitorMetricExporter shutting down\");\n return this._sender.shutdown();\n }\n\n /**\n * Select aggregation temporality\n */\n public selectAggregationTemporality(instrumentType: InstrumentType): AggregationTemporality {\n if (\n instrumentType === InstrumentType.UP_DOWN_COUNTER ||\n instrumentType === InstrumentType.OBSERVABLE_UP_DOWN_COUNTER\n ) {\n return AggregationTemporality.CUMULATIVE;\n }\n return AggregationTemporality.DELTA;\n }\n\n /**\n * Force flush\n */\n public async forceFlush(): Promise<void> {\n return Promise.resolve();\n }\n}\n"]}
@@ -0,0 +1,125 @@
1
+ import { StatsbeatMetrics } from "./statsbeatMetrics.js";
2
+ import type { StatsbeatOptions } from "./types.js";
3
+ import { DropCode, RetryCode } from "./types.js";
4
+ import { TelemetryType } from "./types.js";
5
+ import type { TelemetryItem as Envelope } from "../../generated/index.js";
6
+ /**
7
+ * Class that handles customer-facing statsbeat metrics
8
+ * These metrics are sent to the customer's breeze endpoint
9
+ *
10
+ * Implements a singleton pattern to ensure only one set of customer statsbeat metrics
11
+ * is exported every 15 minutes, regardless of the number of exporters or senders.
12
+ */
13
+ export declare class CustomerStatsbeatMetrics extends StatsbeatMetrics {
14
+ private static _instance;
15
+ private statsCollectionInterval;
16
+ private customerStatsbeatMeter;
17
+ private customerStatsbeatMeterProvider;
18
+ private customerStatsbeatExporter;
19
+ private customerStatsbeatCounter;
20
+ private customerStatsbeatMetricReader;
21
+ private isInitialized;
22
+ private language;
23
+ private version;
24
+ private attach;
25
+ private itemSuccessCountGauge;
26
+ private itemDropCountGauge;
27
+ private itemRetryCountGauge;
28
+ private customerProperties;
29
+ private constructor();
30
+ /**
31
+ * Get singleton instance of CustomerStatsbeatMetrics
32
+ * @param options - Configuration options for customer statsbeat metrics
33
+ * @returns The singleton instance
34
+ */
35
+ static getInstance(options: StatsbeatOptions): CustomerStatsbeatMetrics;
36
+ /**
37
+ * Shutdown the singleton instance
38
+ * Used for cleanup and complete shutdown
39
+ */
40
+ static shutdown(): Promise<void> | undefined;
41
+ /**
42
+ * Shuts down the customer statsbeat metrics provider
43
+ * @returns Promise<void>
44
+ */
45
+ shutdown(): Promise<void>;
46
+ /**
47
+ * Initializes the customer statsbeat metrics
48
+ * Sets up the resource provider and adds observable callbacks for each metric
49
+ * @returns Promise<void>
50
+ */
51
+ private initialize;
52
+ private itemSuccessCallback;
53
+ private itemDropCallback;
54
+ private itemRetryCallback;
55
+ /**
56
+ * Tracks succcessful items
57
+ * @param envelopes - Number of successful envelopes
58
+ * @param telemetry_type - The type of telemetry being tracked
59
+ */
60
+ countSuccessfulItems(envelopes: Envelope[]): void;
61
+ /**
62
+ * Tracks dropped items
63
+ * @param envelopes - Number of envelopes dropped
64
+ * @param dropCode - The drop code indicating the reason for drop
65
+ * @param telemetry_type - The type of telemetry being tracked
66
+ * @param exceptionMessage - Optional exception message when dropCode is CLIENT_EXCEPTION
67
+ */
68
+ countDroppedItems(envelopes: Envelope[], dropCode: DropCode | number, exceptionMessage?: string): void;
69
+ /**
70
+ * Generates a low-cardinality, informative description for drop reasons
71
+ * @param dropCode - The drop code (enum value or status code number)
72
+ * @param exceptionMessage - Optional exception message for CLIENT_EXCEPTION
73
+ * @returns A descriptive reason string with low cardinality
74
+ */
75
+ private getDropReason;
76
+ /**
77
+ * Categorizes exception messages into low-cardinality groups
78
+ * @param exceptionMessage - The exception message to categorize
79
+ * @returns A low-cardinality category string
80
+ */
81
+ private categorizeExceptionMessage;
82
+ /**
83
+ * Categorizes HTTP status codes into informative descriptions
84
+ * @param statusCode - The HTTP status code
85
+ * @returns A descriptive category string
86
+ */
87
+ private categorizeStatusCode;
88
+ /**
89
+ * Tracks retried envelopes
90
+ * @param envelopes - Number of envelopes retried
91
+ * @param retryCode - The retry code indicating the reason for retry
92
+ * @param telemetry_type - The type of telemetry being tracked
93
+ * @param exceptionMessage - Optional exception message when retryCode is CLIENT_EXCEPTION
94
+ */
95
+ countRetryItems(envelopes: Envelope[], retryCode: RetryCode | number, exceptionMessage?: string): void;
96
+ /**
97
+ * Generates a low-cardinality, informative description for retry reasons
98
+ * @param retryCode - The retry code (enum value or status code number)
99
+ * @param exceptionMessage - Optional exception message for CLIENT_EXCEPTION
100
+ * @returns A descriptive reason string with low cardinality
101
+ */
102
+ private getRetryReason;
103
+ /**
104
+ * Check if a metric name corresponds to a performance counter
105
+ * @param metricName - The name of the metric to check
106
+ * @returns true if the metric name is a performance counter, false otherwise
107
+ */
108
+ private isPerformanceCounterMetric;
109
+ /**
110
+ * Extract telemetry type from an envelope based on its baseType
111
+ * @param envelope - The envelope to extract telemetry type from
112
+ * @returns The corresponding telemetry type
113
+ */
114
+ getTelemetryTypeFromEnvelope(envelope: Envelope): TelemetryType;
115
+ /**
116
+ * Checks if the given error is a timeout-related error
117
+ * @param error - The error to check
118
+ * @returns true if the error is timeout-related, false otherwise
119
+ */
120
+ isTimeoutError(error: {
121
+ code?: string;
122
+ message?: string;
123
+ }): boolean;
124
+ }
125
+ //# sourceMappingURL=customerStatsbeat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customerStatsbeat.d.ts","sourceRoot":"","sources":["../../../../src/export/statsbeat/customerStatsbeat.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAA+B,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAqB,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAA8C,aAAa,EAAE,MAAM,YAAY,CAAC;AAKvF,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE1E;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D,OAAO,CAAC,MAAM,CAAC,SAAS,CAAuC;IAE/D,OAAO,CAAC,uBAAuB,CAAkB;IACjD,OAAO,CAAC,sBAAsB,CAAQ;IACtC,OAAO,CAAC,8BAA8B,CAAgB;IACtD,OAAO,CAAC,yBAAyB,CAAgC;IACjE,OAAO,CAAC,wBAAwB,CAAoB;IACpD,OAAO,CAAC,6BAA6B,CAAgC;IACrE,OAAO,CAAC,aAAa,CAAkB;IAGvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA2B;IAGzC,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,mBAAmB,CAAkB;IAG7C,OAAO,CAAC,kBAAkB,CAA8B;IAExD,OAAO;IAmDP;;;;OAIG;WACW,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,wBAAwB;IAO9E;;;OAGG;WACW,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IASnD;;;OAGG;IACI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;;OAIG;YACW,UAAU;IAkBxB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,iBAAiB;IAoCzB;;;;OAIG;IACI,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAYxD;;;;;;OAMG;IACI,iBAAiB,CACtB,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,IAAI;IA6BP;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAgCrB;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IA6BlC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;;;;;OAMG;IACI,eAAe,CACpB,SAAS,EAAE,QAAQ,EAAE,EACrB,SAAS,EAAE,SAAS,GAAG,MAAM,EAC7B,gBAAgB,CAAC,EAAE,MAAM,GACxB,IAAI;IA6BP;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA0BtB;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAMlC;;;;OAIG;IACI,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAqCtE;;;;OAIG;IACI,cAAc,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;CAsB3E"}