@azure/monitor-opentelemetry-exporter 1.0.0-beta.27 → 1.0.0-beta.28

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 (367) hide show
  1. package/README.md +10 -13
  2. package/dist/commonjs/Declarations/Constants.d.ts +111 -0
  3. package/dist/commonjs/Declarations/Constants.d.ts.map +1 -0
  4. package/dist/commonjs/Declarations/Constants.js +127 -0
  5. package/dist/commonjs/Declarations/Constants.js.map +1 -0
  6. package/dist/commonjs/Declarations/Contracts/Constants.d.ts +14 -0
  7. package/dist/commonjs/Declarations/Contracts/Constants.d.ts.map +1 -0
  8. package/dist/commonjs/Declarations/Contracts/Constants.js +5 -0
  9. package/dist/commonjs/Declarations/Contracts/Constants.js.map +1 -0
  10. package/dist/commonjs/Declarations/Contracts/index.d.ts +2 -0
  11. package/dist/commonjs/Declarations/Contracts/index.d.ts.map +1 -0
  12. package/dist/commonjs/Declarations/Contracts/index.js +7 -0
  13. package/dist/commonjs/Declarations/Contracts/index.js.map +1 -0
  14. package/dist/commonjs/config.d.ts +30 -0
  15. package/dist/commonjs/config.d.ts.map +1 -0
  16. package/dist/commonjs/config.js +3 -0
  17. package/dist/commonjs/config.js.map +1 -0
  18. package/dist/commonjs/export/base.d.ts +36 -0
  19. package/dist/commonjs/export/base.d.ts.map +1 -0
  20. package/dist/commonjs/export/base.js +59 -0
  21. package/dist/commonjs/export/base.js.map +1 -0
  22. package/dist/commonjs/export/log.d.ts +30 -0
  23. package/dist/commonjs/export/log.d.ts.map +1 -0
  24. package/dist/commonjs/export/log.js +68 -0
  25. package/dist/commonjs/export/log.js.map +1 -0
  26. package/dist/commonjs/export/metric.d.ts +39 -0
  27. package/dist/commonjs/export/metric.d.ts.map +1 -0
  28. package/dist/commonjs/export/metric.js +79 -0
  29. package/dist/commonjs/export/metric.js.map +1 -0
  30. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +39 -0
  31. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -0
  32. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js +126 -0
  33. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -0
  34. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts +51 -0
  35. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -0
  36. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js +288 -0
  37. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js.map +1 -0
  38. package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts +32 -0
  39. package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts.map +1 -0
  40. package/dist/commonjs/export/statsbeat/statsbeatExporter.js +62 -0
  41. package/dist/commonjs/export/statsbeat/statsbeatExporter.js.map +1 -0
  42. package/dist/commonjs/export/statsbeat/statsbeatMetrics.d.ts +11 -0
  43. package/dist/commonjs/export/statsbeat/statsbeatMetrics.d.ts.map +1 -0
  44. package/dist/commonjs/export/statsbeat/statsbeatMetrics.js +106 -0
  45. package/dist/commonjs/export/statsbeat/statsbeatMetrics.js.map +1 -0
  46. package/dist/commonjs/export/statsbeat/types.d.ts +97 -0
  47. package/dist/commonjs/export/statsbeat/types.d.ts.map +1 -0
  48. package/dist/commonjs/export/statsbeat/types.js +83 -0
  49. package/dist/commonjs/export/statsbeat/types.js.map +1 -0
  50. package/dist/commonjs/export/trace.d.ts +31 -0
  51. package/dist/commonjs/export/trace.d.ts.map +1 -0
  52. package/dist/commonjs/export/trace.js +76 -0
  53. package/dist/commonjs/export/trace.js.map +1 -0
  54. package/dist/commonjs/generated/applicationInsightsClient.d.ts +17 -0
  55. package/dist/commonjs/generated/applicationInsightsClient.d.ts.map +1 -0
  56. package/dist/commonjs/generated/applicationInsightsClient.js +89 -0
  57. package/dist/commonjs/generated/applicationInsightsClient.js.map +1 -0
  58. package/dist/commonjs/generated/index.d.ts +3 -0
  59. package/dist/commonjs/generated/index.d.ts.map +1 -0
  60. package/dist/commonjs/generated/index.js +15 -0
  61. package/dist/commonjs/generated/index.js.map +1 -0
  62. package/dist/commonjs/generated/models/index.d.ts +429 -0
  63. package/dist/commonjs/generated/models/index.d.ts.map +1 -0
  64. package/dist/commonjs/generated/models/index.js +93 -0
  65. package/dist/commonjs/generated/models/index.js.map +1 -0
  66. package/dist/commonjs/generated/models/mappers.d.ts +19 -0
  67. package/dist/commonjs/generated/models/mappers.d.ts.map +1 -0
  68. package/dist/commonjs/generated/models/mappers.js +848 -0
  69. package/dist/commonjs/generated/models/mappers.js.map +1 -0
  70. package/dist/commonjs/generated/models/parameters.d.ts +6 -0
  71. package/dist/commonjs/generated/models/parameters.d.ts.map +1 -0
  72. package/dist/commonjs/generated/models/parameters.js +60 -0
  73. package/dist/commonjs/generated/models/parameters.js.map +1 -0
  74. package/dist/commonjs/index.d.ts +10 -0
  75. package/dist/commonjs/index.d.ts.map +1 -0
  76. package/dist/commonjs/index.js +20 -0
  77. package/dist/commonjs/index.js.map +1 -0
  78. package/dist/commonjs/package.json +3 -0
  79. package/dist/commonjs/platform/index.d.ts +2 -0
  80. package/dist/commonjs/platform/index.d.ts.map +1 -0
  81. package/dist/commonjs/platform/index.js +10 -0
  82. package/dist/commonjs/platform/index.js.map +1 -0
  83. package/dist/commonjs/platform/nodejs/baseSender.d.ts +49 -0
  84. package/dist/commonjs/platform/nodejs/baseSender.d.ts.map +1 -0
  85. package/dist/commonjs/platform/nodejs/baseSender.js +239 -0
  86. package/dist/commonjs/platform/nodejs/baseSender.js.map +1 -0
  87. package/dist/commonjs/platform/nodejs/constants.d.ts +10 -0
  88. package/dist/commonjs/platform/nodejs/constants.d.ts.map +1 -0
  89. package/dist/commonjs/platform/nodejs/constants.js +15 -0
  90. package/dist/commonjs/platform/nodejs/constants.js.map +1 -0
  91. package/dist/commonjs/platform/nodejs/context/context.d.ts +20 -0
  92. package/dist/commonjs/platform/nodejs/context/context.d.ts.map +1 -0
  93. package/dist/commonjs/platform/nodejs/context/context.js +54 -0
  94. package/dist/commonjs/platform/nodejs/context/context.js.map +1 -0
  95. package/dist/commonjs/platform/nodejs/context/index.d.ts +2 -0
  96. package/dist/commonjs/platform/nodejs/context/index.d.ts.map +1 -0
  97. package/dist/commonjs/platform/nodejs/context/index.js +7 -0
  98. package/dist/commonjs/platform/nodejs/context/index.js.map +1 -0
  99. package/dist/commonjs/platform/nodejs/httpSender.d.ts +32 -0
  100. package/dist/commonjs/platform/nodejs/httpSender.d.ts.map +1 -0
  101. package/dist/commonjs/platform/nodejs/httpSender.js +70 -0
  102. package/dist/commonjs/platform/nodejs/httpSender.js.map +1 -0
  103. package/dist/commonjs/platform/nodejs/index.d.ts +8 -0
  104. package/dist/commonjs/platform/nodejs/index.d.ts.map +1 -0
  105. package/dist/commonjs/platform/nodejs/index.js +13 -0
  106. package/dist/commonjs/platform/nodejs/index.js.map +1 -0
  107. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.d.ts +18 -0
  108. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.d.ts.map +1 -0
  109. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js +177 -0
  110. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js.map +1 -0
  111. package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.d.ts +11 -0
  112. package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.d.ts.map +1 -0
  113. package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.js +60 -0
  114. package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.js.map +1 -0
  115. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts +29 -0
  116. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -0
  117. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js +184 -0
  118. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js.map +1 -0
  119. package/dist/commonjs/platform/nodejs/persist/index.d.ts +2 -0
  120. package/dist/commonjs/platform/nodejs/persist/index.d.ts.map +1 -0
  121. package/dist/commonjs/platform/nodejs/persist/index.js +7 -0
  122. package/dist/commonjs/platform/nodejs/persist/index.js.map +1 -0
  123. package/dist/commonjs/sampling.d.ts +38 -0
  124. package/dist/commonjs/sampling.d.ts.map +1 -0
  125. package/dist/commonjs/sampling.js +92 -0
  126. package/dist/commonjs/sampling.js.map +1 -0
  127. package/dist/commonjs/tsdoc-metadata.json +11 -0
  128. package/dist/commonjs/types.d.ts +86 -0
  129. package/dist/commonjs/types.d.ts.map +1 -0
  130. package/dist/commonjs/types.js +43 -0
  131. package/dist/commonjs/types.js.map +1 -0
  132. package/dist/commonjs/utils/breezeUtils.d.ts +25 -0
  133. package/dist/commonjs/utils/breezeUtils.d.ts.map +1 -0
  134. package/dist/commonjs/utils/breezeUtils.js +39 -0
  135. package/dist/commonjs/utils/breezeUtils.js.map +1 -0
  136. package/dist/commonjs/utils/common.d.ts +14 -0
  137. package/dist/commonjs/utils/common.d.ts.map +1 -0
  138. package/dist/commonjs/utils/common.js +250 -0
  139. package/dist/commonjs/utils/common.js.map +1 -0
  140. package/dist/commonjs/utils/connectionStringParser.d.ts +13 -0
  141. package/dist/commonjs/utils/connectionStringParser.d.ts.map +1 -0
  142. package/dist/commonjs/utils/connectionStringParser.js +83 -0
  143. package/dist/commonjs/utils/connectionStringParser.js.map +1 -0
  144. package/dist/commonjs/utils/constants/applicationinsights.d.ts +41 -0
  145. package/dist/commonjs/utils/constants/applicationinsights.d.ts.map +1 -0
  146. package/dist/commonjs/utils/constants/applicationinsights.js +47 -0
  147. package/dist/commonjs/utils/constants/applicationinsights.js.map +1 -0
  148. package/dist/commonjs/utils/constants/span/azAttributes.d.ts +16 -0
  149. package/dist/commonjs/utils/constants/span/azAttributes.d.ts.map +1 -0
  150. package/dist/commonjs/utils/constants/span/azAttributes.js +21 -0
  151. package/dist/commonjs/utils/constants/span/azAttributes.js.map +1 -0
  152. package/dist/commonjs/utils/eventhub.d.ts +10 -0
  153. package/dist/commonjs/utils/eventhub.d.ts.map +1 -0
  154. package/dist/commonjs/utils/eventhub.js +57 -0
  155. package/dist/commonjs/utils/eventhub.js.map +1 -0
  156. package/dist/commonjs/utils/logUtils.d.ts +8 -0
  157. package/dist/commonjs/utils/logUtils.d.ts.map +1 -0
  158. package/dist/commonjs/utils/logUtils.js +206 -0
  159. package/dist/commonjs/utils/logUtils.js.map +1 -0
  160. package/dist/commonjs/utils/metricUtils.d.ts +8 -0
  161. package/dist/commonjs/utils/metricUtils.d.ts.map +1 -0
  162. package/dist/commonjs/utils/metricUtils.js +90 -0
  163. package/dist/commonjs/utils/metricUtils.js.map +1 -0
  164. package/dist/commonjs/utils/spanUtils.d.ts +13 -0
  165. package/dist/commonjs/utils/spanUtils.d.ts.map +1 -0
  166. package/dist/commonjs/utils/spanUtils.js +461 -0
  167. package/dist/commonjs/utils/spanUtils.js.map +1 -0
  168. package/dist/esm/Declarations/Constants.d.ts +111 -0
  169. package/dist/esm/Declarations/Constants.d.ts.map +1 -0
  170. package/{dist-esm/src → dist/esm}/Declarations/Constants.js +13 -0
  171. package/dist/esm/Declarations/Constants.js.map +1 -0
  172. package/dist/esm/Declarations/Contracts/Constants.d.ts +14 -0
  173. package/dist/esm/Declarations/Contracts/Constants.d.ts.map +1 -0
  174. package/dist/esm/Declarations/Contracts/index.d.ts +2 -0
  175. package/dist/esm/Declarations/Contracts/index.d.ts.map +1 -0
  176. package/{dist-esm/src/platform/nodejs/context → dist/esm/Declarations/Contracts}/index.js +1 -1
  177. package/dist/esm/Declarations/Contracts/index.js.map +1 -0
  178. package/dist/esm/config.d.ts +30 -0
  179. package/dist/esm/config.d.ts.map +1 -0
  180. package/dist/esm/config.js.map +1 -0
  181. package/dist/esm/export/base.d.ts +36 -0
  182. package/dist/esm/export/base.d.ts.map +1 -0
  183. package/{dist-esm/src → dist/esm}/export/base.js +2 -2
  184. package/dist/esm/export/base.js.map +1 -0
  185. package/dist/esm/export/log.d.ts +30 -0
  186. package/dist/esm/export/log.d.ts.map +1 -0
  187. package/{dist-esm/src → dist/esm}/export/log.js +3 -4
  188. package/dist/esm/export/log.js.map +1 -0
  189. package/dist/esm/export/metric.d.ts +39 -0
  190. package/dist/esm/export/metric.d.ts.map +1 -0
  191. package/{dist-esm/src → dist/esm}/export/metric.js +4 -5
  192. package/dist/esm/export/metric.js.map +1 -0
  193. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +39 -0
  194. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -0
  195. package/{dist-esm/src → dist/esm}/export/statsbeat/longIntervalStatsbeatMetrics.js +16 -14
  196. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -0
  197. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts +51 -0
  198. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -0
  199. package/{dist-esm/src → dist/esm}/export/statsbeat/networkStatsbeatMetrics.js +9 -9
  200. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js.map +1 -0
  201. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts +32 -0
  202. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts.map +1 -0
  203. package/{dist-esm/src → dist/esm}/export/statsbeat/statsbeatExporter.js +3 -4
  204. package/dist/esm/export/statsbeat/statsbeatExporter.js.map +1 -0
  205. package/dist/esm/export/statsbeat/statsbeatMetrics.d.ts +11 -0
  206. package/dist/esm/export/statsbeat/statsbeatMetrics.d.ts.map +1 -0
  207. package/{dist-esm/src → dist/esm}/export/statsbeat/statsbeatMetrics.js +3 -4
  208. package/dist/esm/export/statsbeat/statsbeatMetrics.js.map +1 -0
  209. package/dist/esm/export/statsbeat/types.d.ts +97 -0
  210. package/dist/esm/export/statsbeat/types.d.ts.map +1 -0
  211. package/dist/esm/export/trace.d.ts +31 -0
  212. package/dist/esm/export/trace.d.ts.map +1 -0
  213. package/{dist-esm/src → dist/esm}/export/trace.js +4 -5
  214. package/dist/esm/export/trace.js.map +1 -0
  215. package/dist/esm/generated/applicationInsightsClient.d.ts +17 -0
  216. package/dist/esm/generated/applicationInsightsClient.d.ts.map +1 -0
  217. package/{dist-esm/src → dist/esm}/generated/applicationInsightsClient.js +3 -3
  218. package/dist/esm/generated/applicationInsightsClient.js.map +1 -0
  219. package/dist/esm/generated/index.d.ts +3 -0
  220. package/dist/esm/generated/index.d.ts.map +1 -0
  221. package/{dist-esm/src → dist/esm}/generated/index.js +2 -2
  222. package/dist/esm/generated/index.js.map +1 -0
  223. package/dist/esm/generated/models/index.d.ts +429 -0
  224. package/dist/esm/generated/models/index.d.ts.map +1 -0
  225. package/dist/esm/generated/models/mappers.d.ts +19 -0
  226. package/dist/esm/generated/models/mappers.d.ts.map +1 -0
  227. package/dist/esm/generated/models/parameters.d.ts +6 -0
  228. package/dist/esm/generated/models/parameters.d.ts.map +1 -0
  229. package/dist/esm/index.d.ts +10 -0
  230. package/dist/esm/index.d.ts.map +1 -0
  231. package/dist/esm/index.js +10 -0
  232. package/dist/esm/index.js.map +1 -0
  233. package/dist/esm/package.json +3 -0
  234. package/dist/esm/platform/index.d.ts +2 -0
  235. package/dist/esm/platform/index.d.ts.map +1 -0
  236. package/{dist-esm/src → dist/esm}/platform/index.js +1 -1
  237. package/dist/esm/platform/index.js.map +1 -0
  238. package/dist/esm/platform/nodejs/baseSender.d.ts +49 -0
  239. package/dist/esm/platform/nodejs/baseSender.d.ts.map +1 -0
  240. package/{dist-esm/src → dist/esm}/platform/nodejs/baseSender.js +10 -8
  241. package/dist/esm/platform/nodejs/baseSender.js.map +1 -0
  242. package/dist/esm/platform/nodejs/constants.d.ts +10 -0
  243. package/dist/esm/platform/nodejs/constants.d.ts.map +1 -0
  244. package/dist/esm/platform/nodejs/context/context.d.ts +20 -0
  245. package/dist/esm/platform/nodejs/context/context.d.ts.map +1 -0
  246. package/{dist-esm/src → dist/esm}/platform/nodejs/context/context.js +5 -5
  247. package/dist/esm/platform/nodejs/context/context.js.map +1 -0
  248. package/dist/esm/platform/nodejs/context/index.d.ts +2 -0
  249. package/dist/esm/platform/nodejs/context/index.d.ts.map +1 -0
  250. package/{dist-esm/src/Declarations/Contracts → dist/esm/platform/nodejs/context}/index.js +1 -1
  251. package/{dist-esm/src → dist/esm}/platform/nodejs/context/index.js.map +1 -1
  252. package/dist/esm/platform/nodejs/httpSender.d.ts +32 -0
  253. package/dist/esm/platform/nodejs/httpSender.d.ts.map +1 -0
  254. package/{dist-esm/src → dist/esm}/platform/nodejs/httpSender.js +3 -4
  255. package/dist/esm/platform/nodejs/httpSender.js.map +1 -0
  256. package/dist/esm/platform/nodejs/index.d.ts +8 -0
  257. package/dist/esm/platform/nodejs/index.d.ts.map +1 -0
  258. package/dist/esm/platform/nodejs/index.js +10 -0
  259. package/dist/esm/platform/nodejs/index.js.map +1 -0
  260. package/dist/esm/platform/nodejs/persist/fileAccessControl.d.ts +18 -0
  261. package/dist/esm/platform/nodejs/persist/fileAccessControl.d.ts.map +1 -0
  262. package/{dist-esm/src → dist/esm}/platform/nodejs/persist/fileAccessControl.js +14 -13
  263. package/dist/esm/platform/nodejs/persist/fileAccessControl.js.map +1 -0
  264. package/dist/esm/platform/nodejs/persist/fileSystemHelpers.d.ts +11 -0
  265. package/dist/esm/platform/nodejs/persist/fileSystemHelpers.d.ts.map +1 -0
  266. package/{dist-esm/src → dist/esm}/platform/nodejs/persist/fileSystemHelpers.js +6 -11
  267. package/dist/esm/platform/nodejs/persist/fileSystemHelpers.js.map +1 -0
  268. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts +29 -0
  269. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -0
  270. package/{dist-esm/src → dist/esm}/platform/nodejs/persist/fileSystemPersist.js +19 -26
  271. package/dist/esm/platform/nodejs/persist/fileSystemPersist.js.map +1 -0
  272. package/dist/esm/platform/nodejs/persist/index.d.ts +2 -0
  273. package/dist/esm/platform/nodejs/persist/index.d.ts.map +1 -0
  274. package/{dist-esm/src → dist/esm}/platform/nodejs/persist/index.js +1 -1
  275. package/{dist-esm/src → dist/esm}/platform/nodejs/persist/index.js.map +1 -1
  276. package/dist/esm/sampling.d.ts +38 -0
  277. package/dist/esm/sampling.d.ts.map +1 -0
  278. package/{dist-esm/src → dist/esm}/sampling.js +1 -1
  279. package/dist/esm/sampling.js.map +1 -0
  280. package/dist/esm/types.d.ts +86 -0
  281. package/dist/esm/types.d.ts.map +1 -0
  282. package/dist/esm/types.js.map +1 -0
  283. package/dist/esm/utils/breezeUtils.d.ts +25 -0
  284. package/dist/esm/utils/breezeUtils.d.ts.map +1 -0
  285. package/dist/esm/utils/common.d.ts +14 -0
  286. package/dist/esm/utils/common.d.ts.map +1 -0
  287. package/{dist-esm/src → dist/esm}/utils/common.js +9 -8
  288. package/dist/esm/utils/common.js.map +1 -0
  289. package/dist/esm/utils/connectionStringParser.d.ts +13 -0
  290. package/dist/esm/utils/connectionStringParser.d.ts.map +1 -0
  291. package/{dist-esm/src → dist/esm}/utils/connectionStringParser.js +1 -1
  292. package/dist/esm/utils/connectionStringParser.js.map +1 -0
  293. package/dist/esm/utils/constants/applicationinsights.d.ts +41 -0
  294. package/dist/esm/utils/constants/applicationinsights.d.ts.map +1 -0
  295. package/{dist-esm/src → dist/esm}/utils/constants/applicationinsights.js +1 -1
  296. package/{dist-esm/src → dist/esm}/utils/constants/applicationinsights.js.map +1 -1
  297. package/dist/esm/utils/constants/span/azAttributes.d.ts +16 -0
  298. package/dist/esm/utils/constants/span/azAttributes.d.ts.map +1 -0
  299. package/dist/esm/utils/eventhub.d.ts +10 -0
  300. package/dist/esm/utils/eventhub.d.ts.map +1 -0
  301. package/{dist-esm/src → dist/esm}/utils/eventhub.js +2 -2
  302. package/dist/esm/utils/eventhub.js.map +1 -0
  303. package/dist/esm/utils/logUtils.d.ts +8 -0
  304. package/dist/esm/utils/logUtils.d.ts.map +1 -0
  305. package/{dist-esm/src → dist/esm}/utils/logUtils.js +15 -11
  306. package/dist/esm/utils/logUtils.js.map +1 -0
  307. package/dist/esm/utils/metricUtils.d.ts +8 -0
  308. package/dist/esm/utils/metricUtils.d.ts.map +1 -0
  309. package/{dist-esm/src → dist/esm}/utils/metricUtils.js +2 -2
  310. package/dist/esm/utils/metricUtils.js.map +1 -0
  311. package/dist/esm/utils/spanUtils.d.ts +13 -0
  312. package/dist/esm/utils/spanUtils.d.ts.map +1 -0
  313. package/{dist-esm/src → dist/esm}/utils/spanUtils.js +20 -12
  314. package/dist/esm/utils/spanUtils.js.map +1 -0
  315. package/package.json +59 -39
  316. package/dist/index.js +0 -4134
  317. package/dist-esm/src/Declarations/Constants.js.map +0 -1
  318. package/dist-esm/src/Declarations/Contracts/index.js.map +0 -1
  319. package/dist-esm/src/config.js.map +0 -1
  320. package/dist-esm/src/export/base.js.map +0 -1
  321. package/dist-esm/src/export/log.js.map +0 -1
  322. package/dist-esm/src/export/metric.js.map +0 -1
  323. package/dist-esm/src/export/statsbeat/longIntervalStatsbeatMetrics.js.map +0 -1
  324. package/dist-esm/src/export/statsbeat/networkStatsbeatMetrics.js.map +0 -1
  325. package/dist-esm/src/export/statsbeat/statsbeatExporter.js.map +0 -1
  326. package/dist-esm/src/export/statsbeat/statsbeatMetrics.js.map +0 -1
  327. package/dist-esm/src/export/trace.js.map +0 -1
  328. package/dist-esm/src/generated/applicationInsightsClient.js.map +0 -1
  329. package/dist-esm/src/generated/index.js.map +0 -1
  330. package/dist-esm/src/index.js +0 -9
  331. package/dist-esm/src/index.js.map +0 -1
  332. package/dist-esm/src/platform/index.js.map +0 -1
  333. package/dist-esm/src/platform/nodejs/baseSender.js.map +0 -1
  334. package/dist-esm/src/platform/nodejs/context/context.js.map +0 -1
  335. package/dist-esm/src/platform/nodejs/httpSender.js.map +0 -1
  336. package/dist-esm/src/platform/nodejs/index.js +0 -10
  337. package/dist-esm/src/platform/nodejs/index.js.map +0 -1
  338. package/dist-esm/src/platform/nodejs/persist/fileAccessControl.js.map +0 -1
  339. package/dist-esm/src/platform/nodejs/persist/fileSystemHelpers.js.map +0 -1
  340. package/dist-esm/src/platform/nodejs/persist/fileSystemPersist.js.map +0 -1
  341. package/dist-esm/src/sampling.js.map +0 -1
  342. package/dist-esm/src/types.js.map +0 -1
  343. package/dist-esm/src/utils/common.js.map +0 -1
  344. package/dist-esm/src/utils/connectionStringParser.js.map +0 -1
  345. package/dist-esm/src/utils/eventhub.js.map +0 -1
  346. package/dist-esm/src/utils/logUtils.js.map +0 -1
  347. package/dist-esm/src/utils/metricUtils.js.map +0 -1
  348. package/dist-esm/src/utils/spanUtils.js.map +0 -1
  349. package/types/monitor-opentelemetry-exporter.d.ts +0 -222
  350. /package/{dist-esm/src → dist/esm}/Declarations/Contracts/Constants.js +0 -0
  351. /package/{dist-esm/src → dist/esm}/Declarations/Contracts/Constants.js.map +0 -0
  352. /package/{dist-esm/src → dist/esm}/config.js +0 -0
  353. /package/{dist-esm/src → dist/esm}/export/statsbeat/types.js +0 -0
  354. /package/{dist-esm/src → dist/esm}/export/statsbeat/types.js.map +0 -0
  355. /package/{dist-esm/src → dist/esm}/generated/models/index.js +0 -0
  356. /package/{dist-esm/src → dist/esm}/generated/models/index.js.map +0 -0
  357. /package/{dist-esm/src → dist/esm}/generated/models/mappers.js +0 -0
  358. /package/{dist-esm/src → dist/esm}/generated/models/mappers.js.map +0 -0
  359. /package/{dist-esm/src → dist/esm}/generated/models/parameters.js +0 -0
  360. /package/{dist-esm/src → dist/esm}/generated/models/parameters.js.map +0 -0
  361. /package/{dist-esm/src → dist/esm}/platform/nodejs/constants.js +0 -0
  362. /package/{dist-esm/src → dist/esm}/platform/nodejs/constants.js.map +0 -0
  363. /package/{dist-esm/src → dist/esm}/types.js +0 -0
  364. /package/{dist-esm/src → dist/esm}/utils/breezeUtils.js +0 -0
  365. /package/{dist-esm/src → dist/esm}/utils/breezeUtils.js.map +0 -0
  366. /package/{dist-esm/src → dist/esm}/utils/constants/span/azAttributes.js +0 -0
  367. /package/{dist-esm/src → dist/esm}/utils/constants/span/azAttributes.js.map +0 -0
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AzureMonitorLogExporter = void 0;
6
+ const api_1 = require("@opentelemetry/api");
7
+ const core_1 = require("@opentelemetry/core");
8
+ const base_js_1 = require("./base.js");
9
+ const logUtils_js_1 = require("../utils/logUtils.js");
10
+ const index_js_1 = require("../platform/index.js");
11
+ /**
12
+ * Azure Monitor OpenTelemetry Log Exporter.
13
+ */
14
+ class AzureMonitorLogExporter extends base_js_1.AzureMonitorBaseExporter {
15
+ /**
16
+ * Initializes a new instance of the AzureMonitorLogExporter class.
17
+ * @param AzureExporterConfig - Exporter configuration.
18
+ */
19
+ constructor(options = {}) {
20
+ super(options);
21
+ /**
22
+ * Flag to determine if Exporter is shutdown.
23
+ */
24
+ this._isShutdown = false;
25
+ this._sender = new index_js_1.HttpSender({
26
+ endpointUrl: this.endpointUrl,
27
+ instrumentationKey: this.instrumentationKey,
28
+ trackStatsbeat: this.trackStatsbeat,
29
+ exporterOptions: options,
30
+ aadAudience: this.aadAudience,
31
+ });
32
+ api_1.diag.debug("AzureMonitorLogExporter was successfully setup");
33
+ }
34
+ /**
35
+ * Export OpenTelemetry logs.
36
+ * @param logs - Logs to export.
37
+ * @param resultCallback - Result callback.
38
+ */
39
+ async export(logs, resultCallback) {
40
+ if (this._isShutdown) {
41
+ api_1.diag.info("Exporter shut down. Failed to export spans.");
42
+ setTimeout(() => resultCallback({ code: core_1.ExportResultCode.FAILED }), 0);
43
+ return;
44
+ }
45
+ api_1.diag.info(`Exporting ${logs.length} logs(s). Converting to envelopes...`);
46
+ const envelopes = [];
47
+ logs.forEach((log) => {
48
+ const envelope = (0, logUtils_js_1.logToEnvelope)(log, this.instrumentationKey);
49
+ if (envelope) {
50
+ envelopes.push(envelope);
51
+ }
52
+ });
53
+ // Supress tracing until OpenTelemetry Logs SDK support it
54
+ await api_1.context.with((0, core_1.suppressTracing)(api_1.context.active()), async () => {
55
+ resultCallback(await this._sender.exportEnvelopes(envelopes));
56
+ });
57
+ }
58
+ /**
59
+ * Shutdown AzureMonitorLogExporter.
60
+ */
61
+ async shutdown() {
62
+ this._isShutdown = true;
63
+ api_1.diag.info("AzureMonitorLogExporter shutting down");
64
+ return this._sender.shutdown();
65
+ }
66
+ }
67
+ exports.AzureMonitorLogExporter = AzureMonitorLogExporter;
68
+ //# sourceMappingURL=log.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,39 @@
1
+ import type { PushMetricExporter, ResourceMetrics } from "@opentelemetry/sdk-metrics";
2
+ import { AggregationTemporality, InstrumentType } from "@opentelemetry/sdk-metrics";
3
+ import type { ExportResult } from "@opentelemetry/core";
4
+ import { AzureMonitorBaseExporter } from "./base.js";
5
+ import type { AzureMonitorExporterOptions } from "../config.js";
6
+ /**
7
+ * Azure Monitor OpenTelemetry Metric Exporter.
8
+ */
9
+ export declare class AzureMonitorMetricExporter extends AzureMonitorBaseExporter implements PushMetricExporter {
10
+ /**
11
+ * Flag to determine if Exporter is shutdown.
12
+ */
13
+ private _isShutdown;
14
+ private _sender;
15
+ /**
16
+ * Initializes a new instance of the AzureMonitorMetricExporter class.
17
+ * @param AzureExporterConfig - Exporter configuration.
18
+ */
19
+ constructor(options?: AzureMonitorExporterOptions);
20
+ /**
21
+ * Export OpenTelemetry resource metrics.
22
+ * @param metrics - Resource metrics to export.
23
+ * @param resultCallback - Result callback.
24
+ */
25
+ export(metrics: ResourceMetrics, resultCallback: (result: ExportResult) => void): Promise<void>;
26
+ /**
27
+ * Shutdown AzureMonitorMetricExporter.
28
+ */
29
+ shutdown(): Promise<void>;
30
+ /**
31
+ * Select aggregation temporality
32
+ */
33
+ selectAggregationTemporality(instrumentType: InstrumentType): AggregationTemporality;
34
+ /**
35
+ * Force flush
36
+ */
37
+ forceFlush(): Promise<void>;
38
+ }
39
+ //# sourceMappingURL=metric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric.d.ts","sourceRoot":"","sources":["../../../src/export/metric.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAGhE;;GAEG;AACH,qBAAa,0BACX,SAAQ,wBACR,YAAW,kBAAkB;IAE7B;;OAEG;IACH,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAa;IAE5B;;;OAGG;gBAES,OAAO,GAAE,2BAAgC;IAYrD;;;;OAIG;IACG,MAAM,CACV,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC;;OAEG;IACI,4BAA4B,CAAC,cAAc,EAAE,cAAc,GAAG,sBAAsB;IAU3F;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AzureMonitorMetricExporter = void 0;
4
+ // Copyright (c) Microsoft Corporation.
5
+ // Licensed under the MIT License.
6
+ const api_1 = require("@opentelemetry/api");
7
+ const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
8
+ const core_1 = require("@opentelemetry/core");
9
+ const base_js_1 = require("./base.js");
10
+ const metricUtils_js_1 = require("../utils/metricUtils.js");
11
+ const index_js_1 = require("../platform/index.js");
12
+ /**
13
+ * Azure Monitor OpenTelemetry Metric Exporter.
14
+ */
15
+ class AzureMonitorMetricExporter extends base_js_1.AzureMonitorBaseExporter {
16
+ /**
17
+ * Initializes a new instance of the AzureMonitorMetricExporter class.
18
+ * @param AzureExporterConfig - Exporter configuration.
19
+ */
20
+ constructor(options = {}) {
21
+ super(options);
22
+ /**
23
+ * Flag to determine if Exporter is shutdown.
24
+ */
25
+ this._isShutdown = false;
26
+ this._sender = new index_js_1.HttpSender({
27
+ endpointUrl: this.endpointUrl,
28
+ instrumentationKey: this.instrumentationKey,
29
+ trackStatsbeat: this.trackStatsbeat,
30
+ exporterOptions: options,
31
+ aadAudience: this.aadAudience,
32
+ });
33
+ api_1.diag.debug("AzureMonitorMetricExporter was successfully setup");
34
+ }
35
+ /**
36
+ * Export OpenTelemetry resource metrics.
37
+ * @param metrics - Resource metrics to export.
38
+ * @param resultCallback - Result callback.
39
+ */
40
+ async export(metrics, resultCallback) {
41
+ if (this._isShutdown) {
42
+ api_1.diag.info("Exporter shut down. Failed to export spans.");
43
+ setTimeout(() => resultCallback({ code: core_1.ExportResultCode.FAILED }), 0);
44
+ return;
45
+ }
46
+ api_1.diag.info(`Exporting ${metrics.scopeMetrics.length} metrics(s). Converting to envelopes...`);
47
+ const envelopes = (0, metricUtils_js_1.resourceMetricsToEnvelope)(metrics, this.instrumentationKey);
48
+ // Supress tracing until OpenTelemetry Metrics SDK support it
49
+ await api_1.context.with((0, core_1.suppressTracing)(api_1.context.active()), async () => {
50
+ resultCallback(await this._sender.exportEnvelopes(envelopes));
51
+ });
52
+ }
53
+ /**
54
+ * Shutdown AzureMonitorMetricExporter.
55
+ */
56
+ async shutdown() {
57
+ this._isShutdown = true;
58
+ api_1.diag.info("AzureMonitorMetricExporter shutting down");
59
+ return this._sender.shutdown();
60
+ }
61
+ /**
62
+ * Select aggregation temporality
63
+ */
64
+ selectAggregationTemporality(instrumentType) {
65
+ if (instrumentType === sdk_metrics_1.InstrumentType.UP_DOWN_COUNTER ||
66
+ instrumentType === sdk_metrics_1.InstrumentType.OBSERVABLE_UP_DOWN_COUNTER) {
67
+ return sdk_metrics_1.AggregationTemporality.CUMULATIVE;
68
+ }
69
+ return sdk_metrics_1.AggregationTemporality.DELTA;
70
+ }
71
+ /**
72
+ * Force flush
73
+ */
74
+ async forceFlush() {
75
+ return Promise.resolve();
76
+ }
77
+ }
78
+ exports.AzureMonitorMetricExporter = AzureMonitorMetricExporter;
79
+ //# sourceMappingURL=metric.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,39 @@
1
+ import { StatsbeatMetrics } from "./statsbeatMetrics.js";
2
+ import type { StatsbeatOptions } from "./types.js";
3
+ /**
4
+ * Long Interval Statsbeat Metrics
5
+ * @internal
6
+ */
7
+ declare class LongIntervalStatsbeatMetrics extends StatsbeatMetrics {
8
+ private statsCollectionLongInterval;
9
+ private cikey;
10
+ private runtimeVersion;
11
+ private language;
12
+ private version;
13
+ private attach;
14
+ private commonProperties;
15
+ private attachProperties;
16
+ private feature;
17
+ private instrumentation;
18
+ private longIntervalStatsbeatMeterProvider;
19
+ private longIntervalAzureExporter;
20
+ private longIntervalMetricReader;
21
+ private longIntervalStatsbeatMeter;
22
+ private connectionString;
23
+ private featureStatsbeatGauge;
24
+ private attachStatsbeatGauge;
25
+ isInitialized: boolean;
26
+ constructor(options: StatsbeatOptions);
27
+ private initialize;
28
+ private getEnvironmentStatus;
29
+ private setFeatures;
30
+ private attachCallback;
31
+ shutdown(): Promise<void>;
32
+ }
33
+ /**
34
+ * Singleton LongIntervalStatsbeatMetrics instance.
35
+ * @internal
36
+ */
37
+ export declare function getInstance(options: StatsbeatOptions): LongIntervalStatsbeatMetrics;
38
+ export {};
39
+ //# sourceMappingURL=longIntervalStatsbeatMetrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longIntervalStatsbeatMetrics.d.ts","sourceRoot":"","sources":["../../../../src/export/statsbeat/longIntervalStatsbeatMetrics.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAMpB;;;GAGG;AACH,cAAM,4BAA6B,SAAQ,gBAAgB;IACzD,OAAO,CAAC,2BAA2B,CAAoB;IAEvD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAoB;IAElC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,eAAe,CAAa;IAEpC,OAAO,CAAC,kCAAkC,CAAgB;IAC1D,OAAO,CAAC,yBAAyB,CAAgC;IACjE,OAAO,CAAC,wBAAwB,CAAgC;IAChE,OAAO,CAAC,0BAA0B,CAAQ;IAG1C,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,oBAAoB,CAAkB;IAEvC,aAAa,EAAE,OAAO,CAAS;gBAE1B,OAAO,EAAE,gBAAgB;YA0DvB,UAAU;IA2BxB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,cAAc;IAKf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,4BAA4B,CAKnF"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getInstance = getInstance;
6
+ const tslib_1 = require("tslib");
7
+ const api_1 = require("@opentelemetry/api");
8
+ const core_1 = require("@opentelemetry/core");
9
+ const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
10
+ const ai = tslib_1.__importStar(require("../../utils/constants/applicationinsights.js"));
11
+ const statsbeatMetrics_js_1 = require("./statsbeatMetrics.js");
12
+ const types_js_1 = require("./types.js");
13
+ const statsbeatExporter_js_1 = require("./statsbeatExporter.js");
14
+ let instance = null;
15
+ /**
16
+ * Long Interval Statsbeat Metrics
17
+ * @internal
18
+ */
19
+ class LongIntervalStatsbeatMetrics extends statsbeatMetrics_js_1.StatsbeatMetrics {
20
+ constructor(options) {
21
+ super();
22
+ this.statsCollectionLongInterval = 86400000; // 1 day
23
+ this.attach = "Manual";
24
+ this.feature = 0;
25
+ this.instrumentation = 0;
26
+ this.isInitialized = false;
27
+ this.connectionString = super.getConnectionString(options.endpointUrl);
28
+ const exporterConfig = {
29
+ connectionString: this.connectionString,
30
+ disableOfflineStorage: options.disableOfflineStorage,
31
+ };
32
+ this.setFeatures();
33
+ this.longIntervalStatsbeatMeterProvider = new sdk_metrics_1.MeterProvider();
34
+ this.longIntervalAzureExporter = new statsbeatExporter_js_1.AzureMonitorStatsbeatExporter(exporterConfig);
35
+ // Export Long Interval Statsbeats every day
36
+ const longIntervalMetricReaderOptions = {
37
+ exporter: this.longIntervalAzureExporter,
38
+ exportIntervalMillis: Number(process.env.LONG_INTERVAL_EXPORT_MILLIS) || this.statsCollectionLongInterval, // 1 day
39
+ };
40
+ this.longIntervalMetricReader = new sdk_metrics_1.PeriodicExportingMetricReader(longIntervalMetricReaderOptions);
41
+ this.longIntervalStatsbeatMeterProvider.addMetricReader(this.longIntervalMetricReader);
42
+ this.longIntervalStatsbeatMeter = this.longIntervalStatsbeatMeterProvider.getMeter("Azure Monitor Long Interval Statsbeat");
43
+ // Assign Common Properties
44
+ this.runtimeVersion = process.version;
45
+ this.language = types_js_1.STATSBEAT_LANGUAGE;
46
+ this.version = ai.packageVersion;
47
+ this.cikey = options.instrumentationKey;
48
+ this.featureStatsbeatGauge = this.longIntervalStatsbeatMeter.createObservableGauge(types_js_1.StatsbeatCounter.FEATURE);
49
+ this.attachStatsbeatGauge = this.longIntervalStatsbeatMeter.createObservableGauge(types_js_1.StatsbeatCounter.ATTACH);
50
+ this.isInitialized = true;
51
+ this.initialize();
52
+ this.commonProperties = {
53
+ os: this.os,
54
+ rp: this.resourceProvider,
55
+ cikey: this.cikey,
56
+ runtimeVersion: this.runtimeVersion,
57
+ language: this.language,
58
+ version: this.version,
59
+ attach: this.attach,
60
+ };
61
+ this.attachProperties = {
62
+ rpId: this.resourceIdentifier,
63
+ };
64
+ }
65
+ async initialize() {
66
+ try {
67
+ await this.getResourceProvider();
68
+ // Add long interval observable callbacks
69
+ this.attachStatsbeatGauge.addCallback(this.attachCallback.bind(this));
70
+ this.longIntervalStatsbeatMeter.addBatchObservableCallback(this.getEnvironmentStatus.bind(this), [this.featureStatsbeatGauge]);
71
+ // Export Feature/Attach Statsbeat once upon app initialization after 15 second delay
72
+ setTimeout(async () => {
73
+ this.longIntervalAzureExporter.export((await this.longIntervalMetricReader.collect()).resourceMetrics, (result) => {
74
+ if (result.code !== core_1.ExportResultCode.SUCCESS) {
75
+ api_1.diag.error(`LongIntervalStatsbeat: metrics export failed (error ${result.error})`);
76
+ }
77
+ });
78
+ }, 15000); // 15 seconds
79
+ }
80
+ catch (error) {
81
+ api_1.diag.debug("Call to get the resource provider failed.");
82
+ }
83
+ }
84
+ getEnvironmentStatus(observableResult) {
85
+ this.setFeatures();
86
+ let attributes;
87
+ if (this.instrumentation) {
88
+ attributes = Object.assign(Object.assign({}, this.commonProperties), { feature: this.instrumentation, type: types_js_1.StatsbeatFeatureType.INSTRUMENTATION });
89
+ observableResult.observe(this.featureStatsbeatGauge, 1, Object.assign({}, attributes));
90
+ }
91
+ if (this.feature) {
92
+ attributes = Object.assign(Object.assign({}, this.commonProperties), { feature: this.feature, type: types_js_1.StatsbeatFeatureType.FEATURE });
93
+ observableResult.observe(this.featureStatsbeatGauge, 1, Object.assign({}, attributes));
94
+ }
95
+ }
96
+ setFeatures() {
97
+ const statsbeatFeatures = process.env.AZURE_MONITOR_STATSBEAT_FEATURES;
98
+ if (statsbeatFeatures) {
99
+ try {
100
+ this.feature = JSON.parse(statsbeatFeatures).feature;
101
+ this.instrumentation = JSON.parse(statsbeatFeatures).instrumentation;
102
+ }
103
+ catch (error) {
104
+ api_1.diag.error(`LongIntervalStatsbeat: Failed to parse features/instrumentations (error ${error})`);
105
+ }
106
+ }
107
+ }
108
+ attachCallback(observableResult) {
109
+ const attributes = Object.assign(Object.assign({}, this.commonProperties), this.attachProperties);
110
+ observableResult.observe(1, attributes);
111
+ }
112
+ shutdown() {
113
+ return this.longIntervalStatsbeatMeterProvider.shutdown();
114
+ }
115
+ }
116
+ /**
117
+ * Singleton LongIntervalStatsbeatMetrics instance.
118
+ * @internal
119
+ */
120
+ function getInstance(options) {
121
+ if (!instance) {
122
+ instance = new LongIntervalStatsbeatMetrics(options);
123
+ }
124
+ return instance;
125
+ }
126
+ //# sourceMappingURL=longIntervalStatsbeatMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longIntervalStatsbeatMetrics.js","sourceRoot":"","sources":["../../../../src/export/statsbeat/longIntervalStatsbeatMetrics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n BatchObservableResult,\n ObservableGauge,\n ObservableResult,\n Meter,\n} from \"@opentelemetry/api\";\nimport { diag } from \"@opentelemetry/api\";\nimport type { ExportResult } from \"@opentelemetry/core\";\nimport { ExportResultCode } from \"@opentelemetry/core\";\nimport type { PeriodicExportingMetricReaderOptions } from \"@opentelemetry/sdk-metrics\";\nimport { MeterProvider, PeriodicExportingMetricReader } from \"@opentelemetry/sdk-metrics\";\nimport type { AzureMonitorExporterOptions } from \"../../index.js\";\nimport * as ai from \"../../utils/constants/applicationinsights.js\";\nimport { StatsbeatMetrics } from \"./statsbeatMetrics.js\";\nimport type {\n CommonStatsbeatProperties,\n AttachStatsbeatProperties,\n StatsbeatOptions,\n} from \"./types.js\";\nimport { StatsbeatCounter, STATSBEAT_LANGUAGE, StatsbeatFeatureType } from \"./types.js\";\nimport { AzureMonitorStatsbeatExporter } from \"./statsbeatExporter.js\";\n\nlet instance: LongIntervalStatsbeatMetrics | null = null;\n\n/**\n * Long Interval Statsbeat Metrics\n * @internal\n */\nclass LongIntervalStatsbeatMetrics extends StatsbeatMetrics {\n private statsCollectionLongInterval: number = 86400000; // 1 day\n // Custom dimensions\n private cikey: string;\n private runtimeVersion: string;\n private language: string;\n private version: string;\n private attach: string = \"Manual\";\n\n private commonProperties: CommonStatsbeatProperties;\n private attachProperties: AttachStatsbeatProperties;\n\n private feature: number = 0;\n private instrumentation: number = 0;\n\n private longIntervalStatsbeatMeterProvider: MeterProvider;\n private longIntervalAzureExporter: AzureMonitorStatsbeatExporter;\n private longIntervalMetricReader: PeriodicExportingMetricReader;\n private longIntervalStatsbeatMeter: Meter;\n\n // Network Attributes\n private connectionString: string;\n\n // Observable Gauges\n private featureStatsbeatGauge: ObservableGauge;\n private attachStatsbeatGauge: ObservableGauge;\n\n public isInitialized: boolean = false;\n\n constructor(options: StatsbeatOptions) {\n super();\n this.connectionString = super.getConnectionString(options.endpointUrl);\n const exporterConfig: AzureMonitorExporterOptions = {\n connectionString: this.connectionString,\n disableOfflineStorage: options.disableOfflineStorage,\n };\n\n this.setFeatures();\n\n this.longIntervalStatsbeatMeterProvider = new MeterProvider();\n this.longIntervalAzureExporter = new AzureMonitorStatsbeatExporter(exporterConfig);\n\n // Export Long Interval Statsbeats every day\n const longIntervalMetricReaderOptions: PeriodicExportingMetricReaderOptions = {\n exporter: this.longIntervalAzureExporter,\n exportIntervalMillis:\n Number(process.env.LONG_INTERVAL_EXPORT_MILLIS) || this.statsCollectionLongInterval, // 1 day\n };\n\n this.longIntervalMetricReader = new PeriodicExportingMetricReader(\n longIntervalMetricReaderOptions,\n );\n this.longIntervalStatsbeatMeterProvider.addMetricReader(this.longIntervalMetricReader);\n this.longIntervalStatsbeatMeter = this.longIntervalStatsbeatMeterProvider.getMeter(\n \"Azure Monitor Long Interval Statsbeat\",\n );\n\n // Assign Common Properties\n this.runtimeVersion = process.version;\n this.language = STATSBEAT_LANGUAGE;\n this.version = ai.packageVersion;\n this.cikey = options.instrumentationKey;\n\n this.featureStatsbeatGauge = this.longIntervalStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.FEATURE,\n );\n this.attachStatsbeatGauge = this.longIntervalStatsbeatMeter.createObservableGauge(\n StatsbeatCounter.ATTACH,\n );\n this.isInitialized = true;\n this.initialize();\n\n this.commonProperties = {\n os: this.os,\n rp: this.resourceProvider,\n cikey: this.cikey,\n runtimeVersion: this.runtimeVersion,\n language: this.language,\n version: this.version,\n attach: this.attach,\n };\n\n this.attachProperties = {\n rpId: this.resourceIdentifier,\n };\n }\n\n private async initialize(): Promise<void> {\n try {\n await this.getResourceProvider();\n\n // Add long interval observable callbacks\n this.attachStatsbeatGauge.addCallback(this.attachCallback.bind(this));\n this.longIntervalStatsbeatMeter.addBatchObservableCallback(\n this.getEnvironmentStatus.bind(this),\n [this.featureStatsbeatGauge],\n );\n\n // Export Feature/Attach Statsbeat once upon app initialization after 15 second delay\n setTimeout(async () => {\n this.longIntervalAzureExporter.export(\n (await this.longIntervalMetricReader.collect()).resourceMetrics,\n (result: ExportResult) => {\n if (result.code !== ExportResultCode.SUCCESS) {\n diag.error(`LongIntervalStatsbeat: metrics export failed (error ${result.error})`);\n }\n },\n );\n }, 15000); // 15 seconds\n } catch (error) {\n diag.debug(\"Call to get the resource provider failed.\");\n }\n }\n\n private getEnvironmentStatus(observableResult: BatchObservableResult): void {\n this.setFeatures();\n let attributes;\n if (this.instrumentation) {\n attributes = {\n ...this.commonProperties,\n feature: this.instrumentation,\n type: StatsbeatFeatureType.INSTRUMENTATION,\n };\n observableResult.observe(this.featureStatsbeatGauge, 1, { ...attributes });\n }\n\n if (this.feature) {\n attributes = {\n ...this.commonProperties,\n feature: this.feature,\n type: StatsbeatFeatureType.FEATURE,\n };\n observableResult.observe(this.featureStatsbeatGauge, 1, { ...attributes });\n }\n }\n\n private setFeatures(): void {\n const statsbeatFeatures = process.env.AZURE_MONITOR_STATSBEAT_FEATURES;\n if (statsbeatFeatures) {\n try {\n this.feature = JSON.parse(statsbeatFeatures).feature;\n this.instrumentation = JSON.parse(statsbeatFeatures).instrumentation;\n } catch (error: any) {\n diag.error(\n `LongIntervalStatsbeat: Failed to parse features/instrumentations (error ${error})`,\n );\n }\n }\n }\n\n private attachCallback(observableResult: ObservableResult): void {\n const attributes = { ...this.commonProperties, ...this.attachProperties };\n observableResult.observe(1, attributes);\n }\n\n public shutdown(): Promise<void> {\n return this.longIntervalStatsbeatMeterProvider.shutdown();\n }\n}\n\n/**\n * Singleton LongIntervalStatsbeatMetrics instance.\n * @internal\n */\nexport function getInstance(options: StatsbeatOptions): LongIntervalStatsbeatMetrics {\n if (!instance) {\n instance = new LongIntervalStatsbeatMetrics(options);\n }\n return instance;\n}\n"]}
@@ -0,0 +1,51 @@
1
+ import { StatsbeatMetrics } from "./statsbeatMetrics.js";
2
+ import type { StatsbeatOptions } from "./types.js";
3
+ export declare class NetworkStatsbeatMetrics extends StatsbeatMetrics {
4
+ private disableNonEssentialStatsbeat;
5
+ private commonProperties;
6
+ private networkProperties;
7
+ private isInitialized;
8
+ private statsCollectionShortInterval;
9
+ private networkStatsbeatCollection;
10
+ private networkStatsbeatMeter;
11
+ private networkStatsbeatMeterProvider;
12
+ private networkAzureExporter;
13
+ private networkMetricReader;
14
+ private cikey;
15
+ private runtimeVersion;
16
+ private language;
17
+ private version;
18
+ private attach;
19
+ private successCountGauge;
20
+ private failureCountGauge;
21
+ private retryCountGauge;
22
+ private throttleCountGauge;
23
+ private exceptionCountGauge;
24
+ private averageDurationGauge;
25
+ private readFailureGauge;
26
+ private writeFailureGauge;
27
+ private connectionString;
28
+ private endpointUrl;
29
+ private host;
30
+ constructor(options: StatsbeatOptions);
31
+ shutdown(): Promise<void>;
32
+ private initialize;
33
+ private successCallback;
34
+ private failureCallback;
35
+ private retryCallback;
36
+ private throttleCallback;
37
+ private exceptionCallback;
38
+ private durationCallback;
39
+ private readFailureCallback;
40
+ private writeFailureCallback;
41
+ countSuccess(duration: number): void;
42
+ countFailure(duration: number, statusCode: number): void;
43
+ countRetry(statusCode: number): void;
44
+ countThrottle(statusCode: number): void;
45
+ countReadFailure(): void;
46
+ countWriteFailure(): void;
47
+ countException(exceptionType: Error): void;
48
+ private getNetworkStatsbeatCounter;
49
+ private getShortHost;
50
+ }
51
+ //# sourceMappingURL=networkStatsbeatMetrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkStatsbeatMetrics.d.ts","sourceRoot":"","sources":["../../../../src/export/statsbeat/networkStatsbeatMetrics.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,4BAA4B,CAAiD;IACrF,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,4BAA4B,CAAkB;IAEtD,OAAO,CAAC,0BAA0B,CAA+B;IACjE,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,6BAA6B,CAAgB;IACrD,OAAO,CAAC,oBAAoB,CAAgC;IAC5D,OAAO,CAAC,mBAAmB,CAAgC;IAG3D,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAoB;IAGlC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,oBAAoB,CAAkB;IAE9C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,iBAAiB,CAA8B;IAGvD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAS;gBAET,OAAO,EAAE,gBAAgB;IA4E9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIlB,UAAU;IA6BxB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;IAQrB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUpC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBxD,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAgBpC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAgBvC,gBAAgB,IAAI,IAAI;IAQxB,iBAAiB,IAAI,IAAI;IAQzB,cAAc,CAAC,aAAa,EAAE,KAAK,GAAG,IAAI;IAgBjD,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,YAAY;CAcrB"}