@azure/monitor-opentelemetry-exporter 1.0.0-beta.3 → 1.0.0-beta.30

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 (389) hide show
  1. package/README.md +119 -44
  2. package/dist/commonjs/Declarations/Constants.d.ts +149 -0
  3. package/dist/commonjs/Declarations/Constants.d.ts.map +1 -0
  4. package/dist/commonjs/Declarations/Constants.js +167 -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 +127 -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 +289 -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 +102 -0
  47. package/dist/commonjs/export/statsbeat/types.d.ts.map +1 -0
  48. package/dist/commonjs/export/statsbeat/types.js +89 -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 +21 -0
  92. package/dist/commonjs/platform/nodejs/context/context.d.ts.map +1 -0
  93. package/dist/commonjs/platform/nodejs/context/context.js +66 -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 +101 -0
  129. package/dist/commonjs/types.d.ts.map +1 -0
  130. package/dist/commonjs/types.js +111 -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 +251 -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 +42 -0
  145. package/dist/commonjs/utils/constants/applicationinsights.d.ts.map +1 -0
  146. package/dist/commonjs/utils/constants/applicationinsights.js +48 -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 +219 -0
  159. package/dist/commonjs/utils/logUtils.js.map +1 -0
  160. package/dist/commonjs/utils/metricUtils.d.ts +13 -0
  161. package/dist/commonjs/utils/metricUtils.d.ts.map +1 -0
  162. package/dist/commonjs/utils/metricUtils.js +132 -0
  163. package/dist/commonjs/utils/metricUtils.js.map +1 -0
  164. package/dist/commonjs/utils/spanUtils.d.ts +27 -0
  165. package/dist/commonjs/utils/spanUtils.d.ts.map +1 -0
  166. package/dist/commonjs/utils/spanUtils.js +518 -0
  167. package/dist/commonjs/utils/spanUtils.js.map +1 -0
  168. package/dist/esm/Declarations/Constants.d.ts +149 -0
  169. package/dist/esm/Declarations/Constants.d.ts.map +1 -0
  170. package/{dist-esm/src → dist/esm}/Declarations/Constants.js +109 -20
  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/Constants.js +4 -0
  175. package/dist/esm/Declarations/Contracts/Constants.js.map +1 -0
  176. package/dist/esm/Declarations/Contracts/index.d.ts +2 -0
  177. package/dist/esm/Declarations/Contracts/index.d.ts.map +1 -0
  178. package/dist/esm/Declarations/Contracts/index.js +4 -0
  179. package/dist/esm/Declarations/Contracts/index.js.map +1 -0
  180. package/dist/esm/config.d.ts +30 -0
  181. package/dist/esm/config.d.ts.map +1 -0
  182. package/dist/esm/config.js +2 -0
  183. package/dist/esm/config.js.map +1 -0
  184. package/dist/esm/export/base.d.ts +36 -0
  185. package/dist/esm/export/base.d.ts.map +1 -0
  186. package/dist/esm/export/base.js +55 -0
  187. package/dist/esm/export/base.js.map +1 -0
  188. package/dist/esm/export/log.d.ts +30 -0
  189. package/dist/esm/export/log.d.ts.map +1 -0
  190. package/dist/esm/export/log.js +64 -0
  191. package/dist/esm/export/log.js.map +1 -0
  192. package/dist/esm/export/metric.d.ts +39 -0
  193. package/dist/esm/export/metric.d.ts.map +1 -0
  194. package/dist/esm/export/metric.js +75 -0
  195. package/dist/esm/export/metric.js.map +1 -0
  196. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +39 -0
  197. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -0
  198. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js +123 -0
  199. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -0
  200. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts +51 -0
  201. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -0
  202. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js +284 -0
  203. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js.map +1 -0
  204. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts +32 -0
  205. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts.map +1 -0
  206. package/dist/esm/export/statsbeat/statsbeatExporter.js +58 -0
  207. package/dist/esm/export/statsbeat/statsbeatExporter.js.map +1 -0
  208. package/dist/esm/export/statsbeat/statsbeatMetrics.d.ts +11 -0
  209. package/dist/esm/export/statsbeat/statsbeatMetrics.d.ts.map +1 -0
  210. package/dist/esm/export/statsbeat/statsbeatMetrics.js +101 -0
  211. package/dist/esm/export/statsbeat/statsbeatMetrics.js.map +1 -0
  212. package/dist/esm/export/statsbeat/types.d.ts +102 -0
  213. package/dist/esm/export/statsbeat/types.d.ts.map +1 -0
  214. package/dist/esm/export/statsbeat/types.js +84 -0
  215. package/dist/esm/export/statsbeat/types.js.map +1 -0
  216. package/dist/esm/export/trace.d.ts +31 -0
  217. package/dist/esm/export/trace.d.ts.map +1 -0
  218. package/dist/esm/export/trace.js +72 -0
  219. package/dist/esm/export/trace.js.map +1 -0
  220. package/dist/esm/generated/applicationInsightsClient.d.ts +17 -0
  221. package/dist/esm/generated/applicationInsightsClient.d.ts.map +1 -0
  222. package/dist/esm/generated/applicationInsightsClient.js +84 -0
  223. package/dist/esm/generated/applicationInsightsClient.js.map +1 -0
  224. package/dist/esm/generated/index.d.ts +3 -0
  225. package/dist/esm/generated/index.d.ts.map +1 -0
  226. package/{dist-esm/src → dist/esm}/generated/index.js +2 -3
  227. package/dist/esm/generated/index.js.map +1 -0
  228. package/dist/esm/generated/models/index.d.ts +429 -0
  229. package/dist/esm/generated/models/index.d.ts.map +1 -0
  230. package/dist/esm/generated/models/index.js +90 -0
  231. package/dist/esm/generated/models/index.js.map +1 -0
  232. package/dist/esm/generated/models/mappers.d.ts +19 -0
  233. package/dist/esm/generated/models/mappers.d.ts.map +1 -0
  234. package/{dist-esm/src → dist/esm}/generated/models/mappers.js +291 -270
  235. package/dist/esm/generated/models/mappers.js.map +1 -0
  236. package/dist/esm/generated/models/parameters.d.ts +6 -0
  237. package/dist/esm/generated/models/parameters.d.ts.map +1 -0
  238. package/{dist-esm/src → dist/esm}/generated/models/parameters.js +17 -12
  239. package/dist/esm/generated/models/parameters.js.map +1 -0
  240. package/dist/esm/index.d.ts +10 -0
  241. package/dist/esm/index.d.ts.map +1 -0
  242. package/dist/esm/index.js +10 -0
  243. package/dist/esm/index.js.map +1 -0
  244. package/dist/esm/package.json +3 -0
  245. package/dist/esm/platform/index.d.ts +2 -0
  246. package/dist/esm/platform/index.d.ts.map +1 -0
  247. package/{dist-esm/src → dist/esm}/platform/index.js +2 -2
  248. package/dist/esm/platform/index.js.map +1 -0
  249. package/dist/esm/platform/nodejs/baseSender.d.ts +49 -0
  250. package/dist/esm/platform/nodejs/baseSender.d.ts.map +1 -0
  251. package/dist/esm/platform/nodejs/baseSender.js +235 -0
  252. package/dist/esm/platform/nodejs/baseSender.js.map +1 -0
  253. package/dist/esm/platform/nodejs/constants.d.ts +10 -0
  254. package/dist/esm/platform/nodejs/constants.d.ts.map +1 -0
  255. package/dist/esm/platform/nodejs/constants.js +12 -0
  256. package/dist/esm/platform/nodejs/constants.js.map +1 -0
  257. package/dist/esm/platform/nodejs/context/context.d.ts +21 -0
  258. package/dist/esm/platform/nodejs/context/context.d.ts.map +1 -0
  259. package/dist/esm/platform/nodejs/context/context.js +60 -0
  260. package/dist/esm/platform/nodejs/context/context.js.map +1 -0
  261. package/dist/esm/platform/nodejs/context/index.d.ts +2 -0
  262. package/dist/esm/platform/nodejs/context/index.d.ts.map +1 -0
  263. package/dist/esm/platform/nodejs/context/index.js +4 -0
  264. package/{dist-esm/src → dist/esm}/platform/nodejs/context/index.js.map +1 -1
  265. package/dist/esm/platform/nodejs/httpSender.d.ts +32 -0
  266. package/dist/esm/platform/nodejs/httpSender.d.ts.map +1 -0
  267. package/dist/esm/platform/nodejs/httpSender.js +65 -0
  268. package/dist/esm/platform/nodejs/httpSender.js.map +1 -0
  269. package/dist/esm/platform/nodejs/index.d.ts +8 -0
  270. package/dist/esm/platform/nodejs/index.d.ts.map +1 -0
  271. package/dist/esm/platform/nodejs/index.js +10 -0
  272. package/dist/esm/platform/nodejs/index.js.map +1 -0
  273. package/dist/esm/platform/nodejs/persist/fileAccessControl.d.ts +18 -0
  274. package/dist/esm/platform/nodejs/persist/fileAccessControl.d.ts.map +1 -0
  275. package/dist/esm/platform/nodejs/persist/fileAccessControl.js +172 -0
  276. package/dist/esm/platform/nodejs/persist/fileAccessControl.js.map +1 -0
  277. package/dist/esm/platform/nodejs/persist/fileSystemHelpers.d.ts +11 -0
  278. package/dist/esm/platform/nodejs/persist/fileSystemHelpers.d.ts.map +1 -0
  279. package/dist/esm/platform/nodejs/persist/fileSystemHelpers.js +55 -0
  280. package/dist/esm/platform/nodejs/persist/fileSystemHelpers.js.map +1 -0
  281. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts +29 -0
  282. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -0
  283. package/dist/esm/platform/nodejs/persist/fileSystemPersist.js +180 -0
  284. package/dist/esm/platform/nodejs/persist/fileSystemPersist.js.map +1 -0
  285. package/dist/esm/platform/nodejs/persist/index.d.ts +2 -0
  286. package/dist/esm/platform/nodejs/persist/index.d.ts.map +1 -0
  287. package/dist/esm/platform/nodejs/persist/index.js +4 -0
  288. package/{dist-esm/src → dist/esm}/platform/nodejs/persist/index.js.map +1 -1
  289. package/dist/esm/sampling.d.ts +38 -0
  290. package/dist/esm/sampling.d.ts.map +1 -0
  291. package/dist/esm/sampling.js +88 -0
  292. package/dist/esm/sampling.js.map +1 -0
  293. package/dist/esm/types.d.ts +101 -0
  294. package/dist/esm/types.d.ts.map +1 -0
  295. package/dist/esm/types.js +108 -0
  296. package/dist/esm/types.js.map +1 -0
  297. package/dist/esm/utils/breezeUtils.d.ts +25 -0
  298. package/dist/esm/utils/breezeUtils.d.ts.map +1 -0
  299. package/dist/esm/utils/breezeUtils.js +35 -0
  300. package/dist/esm/utils/breezeUtils.js.map +1 -0
  301. package/dist/esm/utils/common.d.ts +14 -0
  302. package/dist/esm/utils/common.d.ts.map +1 -0
  303. package/dist/esm/utils/common.js +240 -0
  304. package/dist/esm/utils/common.js.map +1 -0
  305. package/dist/esm/utils/connectionStringParser.d.ts +13 -0
  306. package/dist/esm/utils/connectionStringParser.d.ts.map +1 -0
  307. package/{dist-esm/src → dist/esm}/utils/connectionStringParser.js +22 -8
  308. package/dist/esm/utils/connectionStringParser.js.map +1 -0
  309. package/dist/esm/utils/constants/applicationinsights.d.ts +42 -0
  310. package/dist/esm/utils/constants/applicationinsights.d.ts.map +1 -0
  311. package/dist/esm/utils/constants/applicationinsights.js +45 -0
  312. package/dist/esm/utils/constants/applicationinsights.js.map +1 -0
  313. package/dist/esm/utils/constants/span/azAttributes.d.ts +16 -0
  314. package/dist/esm/utils/constants/span/azAttributes.d.ts.map +1 -0
  315. package/dist/esm/utils/constants/span/azAttributes.js +18 -0
  316. package/dist/esm/utils/constants/span/azAttributes.js.map +1 -0
  317. package/dist/esm/utils/eventhub.d.ts +10 -0
  318. package/dist/esm/utils/eventhub.d.ts.map +1 -0
  319. package/{dist-esm/src → dist/esm}/utils/eventhub.js +6 -5
  320. package/dist/esm/utils/eventhub.js.map +1 -0
  321. package/dist/esm/utils/logUtils.d.ts +8 -0
  322. package/dist/esm/utils/logUtils.d.ts.map +1 -0
  323. package/dist/esm/utils/logUtils.js +216 -0
  324. package/dist/esm/utils/logUtils.js.map +1 -0
  325. package/dist/esm/utils/metricUtils.d.ts +13 -0
  326. package/dist/esm/utils/metricUtils.d.ts.map +1 -0
  327. package/dist/esm/utils/metricUtils.js +125 -0
  328. package/dist/esm/utils/metricUtils.js.map +1 -0
  329. package/dist/esm/utils/spanUtils.d.ts +27 -0
  330. package/dist/esm/utils/spanUtils.d.ts.map +1 -0
  331. package/dist/esm/utils/spanUtils.js +502 -0
  332. package/dist/esm/utils/spanUtils.js.map +1 -0
  333. package/package.json +98 -57
  334. package/CHANGELOG.md +0 -22
  335. package/dist/index.js +0 -1855
  336. package/dist-esm/src/Declarations/Constants.js.map +0 -1
  337. package/dist-esm/src/Declarations/Contracts/Constants.js +0 -4
  338. package/dist-esm/src/Declarations/Contracts/Constants.js.map +0 -1
  339. package/dist-esm/src/Declarations/Contracts/index.js +0 -4
  340. package/dist-esm/src/Declarations/Contracts/index.js.map +0 -1
  341. package/dist-esm/src/config.js +0 -13
  342. package/dist-esm/src/config.js.map +0 -1
  343. package/dist-esm/src/export/trace.js +0 -135
  344. package/dist-esm/src/export/trace.js.map +0 -1
  345. package/dist-esm/src/generated/applicationInsightsClient.js +0 -64
  346. package/dist-esm/src/generated/applicationInsightsClient.js.map +0 -1
  347. package/dist-esm/src/generated/applicationInsightsClientContext.js +0 -32
  348. package/dist-esm/src/generated/applicationInsightsClientContext.js.map +0 -1
  349. package/dist-esm/src/generated/index.js.map +0 -1
  350. package/dist-esm/src/generated/models/index.js +0 -9
  351. package/dist-esm/src/generated/models/index.js.map +0 -1
  352. package/dist-esm/src/generated/models/mappers.js.map +0 -1
  353. package/dist-esm/src/generated/models/parameters.js.map +0 -1
  354. package/dist-esm/src/index.js +0 -5
  355. package/dist-esm/src/index.js.map +0 -1
  356. package/dist-esm/src/platform/index.js.map +0 -1
  357. package/dist-esm/src/platform/nodejs/constants.js +0 -8
  358. package/dist-esm/src/platform/nodejs/constants.js.map +0 -1
  359. package/dist-esm/src/platform/nodejs/context/context.js +0 -105
  360. package/dist-esm/src/platform/nodejs/context/context.js.map +0 -1
  361. package/dist-esm/src/platform/nodejs/context/index.js +0 -4
  362. package/dist-esm/src/platform/nodejs/httpSender.js +0 -34
  363. package/dist-esm/src/platform/nodejs/httpSender.js.map +0 -1
  364. package/dist-esm/src/platform/nodejs/index.js +0 -10
  365. package/dist-esm/src/platform/nodejs/index.js.map +0 -1
  366. package/dist-esm/src/platform/nodejs/persist/fileSystemHelpers.js +0 -48
  367. package/dist-esm/src/platform/nodejs/persist/fileSystemHelpers.js.map +0 -1
  368. package/dist-esm/src/platform/nodejs/persist/fileSystemPersist.js +0 -121
  369. package/dist-esm/src/platform/nodejs/persist/fileSystemPersist.js.map +0 -1
  370. package/dist-esm/src/platform/nodejs/persist/index.js +0 -4
  371. package/dist-esm/src/types.js +0 -4
  372. package/dist-esm/src/types.js.map +0 -1
  373. package/dist-esm/src/utils/breezeUtils.js +0 -27
  374. package/dist-esm/src/utils/breezeUtils.js.map +0 -1
  375. package/dist-esm/src/utils/connectionStringParser.js.map +0 -1
  376. package/dist-esm/src/utils/constants/applicationinsights.js +0 -13
  377. package/dist-esm/src/utils/constants/applicationinsights.js.map +0 -1
  378. package/dist-esm/src/utils/constants/span/azAttributes.js +0 -6
  379. package/dist-esm/src/utils/constants/span/azAttributes.js.map +0 -1
  380. package/dist-esm/src/utils/constants/span/dbAttributes.js +0 -14
  381. package/dist-esm/src/utils/constants/span/dbAttributes.js.map +0 -1
  382. package/dist-esm/src/utils/constants/span/grpcAttributes.js +0 -9
  383. package/dist-esm/src/utils/constants/span/grpcAttributes.js.map +0 -1
  384. package/dist-esm/src/utils/constants/span/httpAttributes.js +0 -8
  385. package/dist-esm/src/utils/constants/span/httpAttributes.js.map +0 -1
  386. package/dist-esm/src/utils/eventhub.js.map +0 -1
  387. package/dist-esm/src/utils/spanUtils.js +0 -214
  388. package/dist-esm/src/utils/spanUtils.js.map +0 -1
  389. package/types/monitor-opentelemetry-exporter.d.ts +0 -29
@@ -0,0 +1,21 @@
1
+ import type { Tags } from "../../../types.js";
2
+ /**
3
+ * Azure Telemetry context.
4
+ * @internal
5
+ */
6
+ export declare class Context {
7
+ tags: Tags;
8
+ static sdkVersion: string | null;
9
+ static opentelemetryVersion: string | null;
10
+ static nodeVersion: string;
11
+ constructor();
12
+ private _loadDeviceContext;
13
+ private _loadInternalContext;
14
+ private _getVersion;
15
+ }
16
+ /**
17
+ * Singleton Context instance
18
+ * @internal
19
+ */
20
+ export declare function getInstance(): Context;
21
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/platform/nodejs/context/context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAS9C;;;GAGG;AACH,qBAAa,OAAO;IACX,IAAI,EAAE,IAAI,CAAC;IAElB,OAAc,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/C,OAAc,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzD,OAAc,WAAW,EAAE,MAAM,CAAM;;IAQvC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,WAAW;CASpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAKrC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Context = void 0;
6
+ exports.getInstance = getInstance;
7
+ const tslib_1 = require("tslib");
8
+ const os = tslib_1.__importStar(require("node:os"));
9
+ const core_1 = require("@opentelemetry/core");
10
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
11
+ const index_js_1 = require("../../../generated/index.js");
12
+ const ai = tslib_1.__importStar(require("../../../utils/constants/applicationinsights.js"));
13
+ const Constants_js_1 = require("../../../Declarations/Constants.js");
14
+ let instance = null;
15
+ /**
16
+ * Azure Telemetry context.
17
+ * @internal
18
+ */
19
+ class Context {
20
+ constructor() {
21
+ this.tags = {};
22
+ this._loadDeviceContext();
23
+ this._loadInternalContext();
24
+ }
25
+ _loadDeviceContext() {
26
+ this.tags[index_js_1.KnownContextTagKeys.AiDeviceOsVersion] = os && `${os.type()} ${os.release()}`;
27
+ }
28
+ _loadInternalContext() {
29
+ const { node } = process.versions;
30
+ [Context.nodeVersion] = node.split(".");
31
+ Context.opentelemetryVersion = core_1.SDK_INFO[semantic_conventions_1.ATTR_TELEMETRY_SDK_VERSION];
32
+ Context.sdkVersion = ai.packageVersion;
33
+ const prefix = process.env[Constants_js_1.ENV_AZURE_MONITOR_PREFIX]
34
+ ? process.env[Constants_js_1.ENV_AZURE_MONITOR_PREFIX]
35
+ : "";
36
+ const version = this._getVersion();
37
+ const internalSdkVersion = `${prefix}node${Context.nodeVersion}:otel${Context.opentelemetryVersion}:${version}`;
38
+ this.tags[index_js_1.KnownContextTagKeys.AiInternalSdkVersion] = internalSdkVersion;
39
+ }
40
+ _getVersion() {
41
+ if (process.env[Constants_js_1.ENV_APPLICATIONINSIGHTS_SHIM_VERSION]) {
42
+ return `sha${process.env[Constants_js_1.ENV_APPLICATIONINSIGHTS_SHIM_VERSION]}`;
43
+ }
44
+ else if (process.env[Constants_js_1.ENV_AZURE_MONITOR_DISTRO_VERSION]) {
45
+ return `dst${process.env[Constants_js_1.ENV_AZURE_MONITOR_DISTRO_VERSION]}`;
46
+ }
47
+ else {
48
+ return `ext${Context.sdkVersion}`;
49
+ }
50
+ }
51
+ }
52
+ exports.Context = Context;
53
+ Context.sdkVersion = null;
54
+ Context.opentelemetryVersion = null;
55
+ Context.nodeVersion = "";
56
+ /**
57
+ * Singleton Context instance
58
+ * @internal
59
+ */
60
+ function getInstance() {
61
+ if (!instance) {
62
+ instance = new Context();
63
+ }
64
+ return instance;
65
+ }
66
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../src/platform/nodejs/context/context.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAoElC,kCAKC;;AAvED,oDAA8B;AAC9B,8CAA+C;AAC/C,8EAAiF;AACjF,0DAAkE;AAClE,4FAAsE;AAEtE,qEAI4C;AAE5C,IAAI,QAAQ,GAAmB,IAAI,CAAC;AAEpC;;;GAGG;AACH,MAAa,OAAO;IASlB;QACE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,8BAAmB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;IAC1F,CAAC;IAEO,oBAAoB;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,oBAAoB,GAAG,eAAQ,CAAC,iDAA0B,CAAC,CAAC;QACpE,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC;QAEvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uCAAwB,CAAC;YAClD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAwB,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,kBAAkB,GAAG,GAAG,MAAM,OAAO,OAAO,CAAC,WAAW,QAAQ,OAAO,CAAC,oBAAoB,IAAI,OAAO,EAAE,CAAC;QAChH,IAAI,CAAC,IAAI,CAAC,8BAAmB,CAAC,oBAAoB,CAAC,GAAG,kBAAkB,CAAC;IAC3E,CAAC;IAEO,WAAW;QACjB,IAAI,OAAO,CAAC,GAAG,CAAC,mDAAoC,CAAC,EAAE,CAAC;YACtD,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,mDAAoC,CAAC,EAAE,CAAC;QACnE,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,+CAAgC,CAAC,EAAE,CAAC;YACzD,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,+CAAgC,CAAC,EAAE,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;;AAzCH,0BA0CC;AAvCe,kBAAU,GAAkB,IAAI,CAAC;AAEjC,4BAAoB,GAAkB,IAAI,CAAC;AAE3C,mBAAW,GAAW,EAAE,CAAC;AAqCzC;;;GAGG;AACH,SAAgB,WAAW;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport * as os from \"node:os\";\nimport { SDK_INFO } from \"@opentelemetry/core\";\nimport { ATTR_TELEMETRY_SDK_VERSION } from \"@opentelemetry/semantic-conventions\";\nimport { KnownContextTagKeys } from \"../../../generated/index.js\";\nimport * as ai from \"../../../utils/constants/applicationinsights.js\";\nimport type { Tags } from \"../../../types.js\";\nimport {\n ENV_AZURE_MONITOR_PREFIX,\n ENV_APPLICATIONINSIGHTS_SHIM_VERSION,\n ENV_AZURE_MONITOR_DISTRO_VERSION,\n} from \"../../../Declarations/Constants.js\";\n\nlet instance: Context | null = null;\n\n/**\n * Azure Telemetry context.\n * @internal\n */\nexport class Context {\n public tags: Tags;\n\n public static sdkVersion: string | null = null;\n\n public static opentelemetryVersion: string | null = null;\n\n public static nodeVersion: string = \"\";\n\n constructor() {\n this.tags = {};\n this._loadDeviceContext();\n this._loadInternalContext();\n }\n\n private _loadDeviceContext(): void {\n this.tags[KnownContextTagKeys.AiDeviceOsVersion] = os && `${os.type()} ${os.release()}`;\n }\n\n private _loadInternalContext(): void {\n const { node } = process.versions;\n [Context.nodeVersion] = node.split(\".\");\n Context.opentelemetryVersion = SDK_INFO[ATTR_TELEMETRY_SDK_VERSION];\n Context.sdkVersion = ai.packageVersion;\n\n const prefix = process.env[ENV_AZURE_MONITOR_PREFIX]\n ? process.env[ENV_AZURE_MONITOR_PREFIX]\n : \"\";\n const version = this._getVersion();\n const internalSdkVersion = `${prefix}node${Context.nodeVersion}:otel${Context.opentelemetryVersion}:${version}`;\n this.tags[KnownContextTagKeys.AiInternalSdkVersion] = internalSdkVersion;\n }\n\n private _getVersion(): string {\n if (process.env[ENV_APPLICATIONINSIGHTS_SHIM_VERSION]) {\n return `sha${process.env[ENV_APPLICATIONINSIGHTS_SHIM_VERSION]}`;\n } else if (process.env[ENV_AZURE_MONITOR_DISTRO_VERSION]) {\n return `dst${process.env[ENV_AZURE_MONITOR_DISTRO_VERSION]}`;\n } else {\n return `ext${Context.sdkVersion}`;\n }\n }\n}\n\n/**\n * Singleton Context instance\n * @internal\n */\nexport function getInstance(): Context {\n if (!instance) {\n instance = new Context();\n }\n return instance;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "./context.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platform/nodejs/context/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const tslib_1 = require("tslib");
6
+ tslib_1.__exportStar(require("./context.js"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/platform/nodejs/context/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,uDAA6B","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport * from \"./context.js\";\n"]}
@@ -0,0 +1,32 @@
1
+ import type { SenderResult } from "../../types.js";
2
+ import type { TelemetryItem as Envelope } from "../../generated/index.js";
3
+ import type { AzureMonitorExporterOptions } from "../../config.js";
4
+ import { BaseSender } from "./baseSender.js";
5
+ /**
6
+ * Exporter HTTP sender class
7
+ * @internal
8
+ */
9
+ export declare class HttpSender extends BaseSender {
10
+ private readonly appInsightsClient;
11
+ private appInsightsClientOptions;
12
+ constructor(options: {
13
+ endpointUrl: string;
14
+ instrumentationKey: string;
15
+ trackStatsbeat: boolean;
16
+ exporterOptions: AzureMonitorExporterOptions;
17
+ aadAudience?: string;
18
+ isStatsbeatSender?: boolean;
19
+ });
20
+ /**
21
+ * Send Azure envelopes
22
+ * @internal
23
+ */
24
+ send(envelopes: Envelope[]): Promise<SenderResult>;
25
+ /**
26
+ * Shutdown sender
27
+ * @internal
28
+ */
29
+ shutdown(): Promise<void>;
30
+ handlePermanentRedirect(location: string | undefined): void;
31
+ }
32
+ //# sourceMappingURL=httpSender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpSender.d.ts","sourceRoot":"","sources":["../../../../src/platform/nodejs/httpSender.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EACV,aAAa,IAAI,QAAQ,EAG1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C;;;GAGG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,wBAAwB,CAA0C;gBAE9D,OAAO,EAAE;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,OAAO,CAAC;QACxB,eAAe,EAAE,2BAA2B,CAAC;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B;IAuBD;;;OAGG;IACG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBxD;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAQ5D"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.HttpSender = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const node_url_1 = tslib_1.__importDefault(require("node:url"));
8
+ const api_1 = require("@opentelemetry/api");
9
+ const core_rest_pipeline_1 = require("@azure/core-rest-pipeline");
10
+ const index_js_1 = require("../../generated/index.js");
11
+ const baseSender_js_1 = require("./baseSender.js");
12
+ const applicationInsightsResource = "https://monitor.azure.com//.default";
13
+ /**
14
+ * Exporter HTTP sender class
15
+ * @internal
16
+ */
17
+ class HttpSender extends baseSender_js_1.BaseSender {
18
+ constructor(options) {
19
+ super(options);
20
+ // Build endpoint using provided configuration or default values
21
+ this.appInsightsClientOptions = Object.assign({ host: options.endpointUrl }, options.exporterOptions);
22
+ if (this.appInsightsClientOptions.credential) {
23
+ // Add credentialScopes
24
+ if (options.aadAudience) {
25
+ this.appInsightsClientOptions.credentialScopes = [options.aadAudience];
26
+ }
27
+ else {
28
+ // Default
29
+ this.appInsightsClientOptions.credentialScopes = [applicationInsightsResource];
30
+ }
31
+ }
32
+ this.appInsightsClient = new index_js_1.ApplicationInsightsClient(this.appInsightsClientOptions);
33
+ // Handle redirects in HTTP Sender
34
+ this.appInsightsClient.pipeline.removePolicy({ name: core_rest_pipeline_1.redirectPolicyName });
35
+ }
36
+ /**
37
+ * Send Azure envelopes
38
+ * @internal
39
+ */
40
+ async send(envelopes) {
41
+ var _a;
42
+ const options = {};
43
+ let response;
44
+ function onResponse(rawResponse, flatResponse) {
45
+ response = rawResponse;
46
+ if (options.onResponse) {
47
+ options.onResponse(rawResponse, flatResponse);
48
+ }
49
+ }
50
+ await this.appInsightsClient.track(envelopes, Object.assign(Object.assign({}, options), { onResponse }));
51
+ return { statusCode: response === null || response === void 0 ? void 0 : response.status, result: (_a = response === null || response === void 0 ? void 0 : response.bodyAsText) !== null && _a !== void 0 ? _a : "" };
52
+ }
53
+ /**
54
+ * Shutdown sender
55
+ * @internal
56
+ */
57
+ async shutdown() {
58
+ api_1.diag.info("HttpSender shutting down");
59
+ }
60
+ handlePermanentRedirect(location) {
61
+ if (location) {
62
+ const locUrl = new node_url_1.default.URL(location);
63
+ if (locUrl && locUrl.host) {
64
+ this.appInsightsClient.host = "https://" + locUrl.host;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ exports.HttpSender = HttpSender;
70
+ //# sourceMappingURL=httpSender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpSender.js","sourceRoot":"","sources":["../../../../src/platform/nodejs/httpSender.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,gEAA2B;AAC3B,4CAA0C;AAE1C,kEAA+D;AAO/D,uDAAqE;AAErE,mDAA6C;AAE7C,MAAM,2BAA2B,GAAG,qCAAqC,CAAC;AAE1E;;;GAGG;AACH,MAAa,UAAW,SAAQ,0BAAU;IAIxC,YAAY,OAOX;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,gEAAgE;QAChE,IAAI,CAAC,wBAAwB,mBAC3B,IAAI,EAAE,OAAO,CAAC,WAAW,IACtB,OAAO,CAAC,eAAe,CAC3B,CAAC;QAEF,IAAI,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC;YAC7C,uBAAuB;YACvB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,UAAU;gBACV,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,oCAAyB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEtF,kCAAkC;QAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,uCAAkB,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,SAAqB;;QAC9B,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,QAA2C,CAAC;QAChD,SAAS,UAAU,CAAC,WAAkC,EAAE,YAAqB;YAC3E,QAAQ,GAAG,WAAW,CAAC;YACvB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,kCACvC,OAAO,KACV,UAAU,IACV,CAAC;QAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,mCAAI,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACZ,UAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC;IAED,uBAAuB,CAAC,QAA4B;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,kBAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAvED,gCAuEC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport url from \"node:url\";\nimport { diag } from \"@opentelemetry/api\";\nimport type { FullOperationResponse } from \"@azure/core-client\";\nimport { redirectPolicyName } from \"@azure/core-rest-pipeline\";\nimport type { SenderResult } from \"../../types.js\";\nimport type {\n TelemetryItem as Envelope,\n ApplicationInsightsClientOptionalParams,\n TrackOptionalParams,\n} from \"../../generated/index.js\";\nimport { ApplicationInsightsClient } from \"../../generated/index.js\";\nimport type { AzureMonitorExporterOptions } from \"../../config.js\";\nimport { BaseSender } from \"./baseSender.js\";\n\nconst applicationInsightsResource = \"https://monitor.azure.com//.default\";\n\n/**\n * Exporter HTTP sender class\n * @internal\n */\nexport class HttpSender extends BaseSender {\n private readonly appInsightsClient: ApplicationInsightsClient;\n private appInsightsClientOptions: ApplicationInsightsClientOptionalParams;\n\n constructor(options: {\n endpointUrl: string;\n instrumentationKey: string;\n trackStatsbeat: boolean;\n exporterOptions: AzureMonitorExporterOptions;\n aadAudience?: string;\n isStatsbeatSender?: boolean;\n }) {\n super(options);\n // Build endpoint using provided configuration or default values\n this.appInsightsClientOptions = {\n host: options.endpointUrl,\n ...options.exporterOptions,\n };\n\n if (this.appInsightsClientOptions.credential) {\n // Add credentialScopes\n if (options.aadAudience) {\n this.appInsightsClientOptions.credentialScopes = [options.aadAudience];\n } else {\n // Default\n this.appInsightsClientOptions.credentialScopes = [applicationInsightsResource];\n }\n }\n this.appInsightsClient = new ApplicationInsightsClient(this.appInsightsClientOptions);\n\n // Handle redirects in HTTP Sender\n this.appInsightsClient.pipeline.removePolicy({ name: redirectPolicyName });\n }\n\n /**\n * Send Azure envelopes\n * @internal\n */\n async send(envelopes: Envelope[]): Promise<SenderResult> {\n const options: TrackOptionalParams = {};\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n await this.appInsightsClient.track(envelopes, {\n ...options,\n onResponse,\n });\n\n return { statusCode: response?.status, result: response?.bodyAsText ?? \"\" };\n }\n\n /**\n * Shutdown sender\n * @internal\n */\n async shutdown(): Promise<void> {\n diag.info(\"HttpSender shutting down\");\n }\n\n handlePermanentRedirect(location: string | undefined): void {\n if (location) {\n const locUrl = new url.URL(location);\n if (locUrl && locUrl.host) {\n this.appInsightsClient.host = \"https://\" + locUrl.host;\n }\n }\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Node.js specific platform utils
3
+ */
4
+ export * from "./constants.js";
5
+ export * from "./persist/index.js";
6
+ export * from "./httpSender.js";
7
+ export * from "./context/index.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/nodejs/index.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const tslib_1 = require("tslib");
6
+ /**
7
+ * Node.js specific platform utils
8
+ */
9
+ tslib_1.__exportStar(require("./constants.js"), exports);
10
+ tslib_1.__exportStar(require("./persist/index.js"), exports);
11
+ tslib_1.__exportStar(require("./httpSender.js"), exports);
12
+ tslib_1.__exportStar(require("./context/index.js"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/nodejs/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC;;GAEG;AACH,yDAA+B;AAC/B,6DAAmC;AACnC,0DAAgC;AAChC,6DAAmC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Node.js specific platform utils\n */\nexport * from \"./constants.js\";\nexport * from \"./persist/index.js\";\nexport * from \"./httpSender.js\";\nexport * from \"./context/index.js\";\n"]}
@@ -0,0 +1,18 @@
1
+ export declare class FileAccessControl {
2
+ private static ICACLS_PATH;
3
+ private static POWERSHELL_PATH;
4
+ private static ACLED_DIRECTORIES;
5
+ private static ACL_IDENTITY;
6
+ private static OS_FILE_PROTECTION_CHECKED;
7
+ static OS_PROVIDES_FILE_PROTECTION: boolean;
8
+ static USE_ICACLS: boolean;
9
+ static checkFileProtection(): void;
10
+ static applyACLRules(directory: string): Promise<void>;
11
+ static applyACLRulesSync(directory: string): void;
12
+ private static _runICACLS;
13
+ private static _runICACLSSync;
14
+ private static _getACLIdentity;
15
+ private static _getACLIdentitySync;
16
+ private static _getACLArguments;
17
+ }
18
+ //# sourceMappingURL=fileAccessControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileAccessControl.d.ts","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/fileAccessControl.ts"],"names":[],"mappings":"AASA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,WAAW,CAA4D;IACtF,OAAO,CAAC,MAAM,CAAC,eAAe,CAAuF;IACrH,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAiC;IACjE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAuB;IAClD,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAS;IAClD,OAAc,2BAA2B,UAAS;IAClD,OAAc,UAAU,UAA6B;WAGvC,mBAAmB,IAAI,IAAI;WA6BrB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAwBrD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAcxD,OAAO,CAAC,MAAM,CAAC,UAAU;IAkBzB,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B,OAAO,CAAC,MAAM,CAAC,eAAe;IA2B9B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA0BlC,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAUhC"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.FileAccessControl = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const node_fs_1 = require("node:fs");
8
+ const node_os_1 = require("node:os");
9
+ const node_child_process_1 = require("node:child_process");
10
+ const api_1 = require("@opentelemetry/api");
11
+ const node_process_1 = tslib_1.__importDefault(require("node:process"));
12
+ class FileAccessControl {
13
+ // Check if file access control could be enabled
14
+ static checkFileProtection() {
15
+ if (!FileAccessControl.OS_PROVIDES_FILE_PROTECTION &&
16
+ !FileAccessControl.OS_FILE_PROTECTION_CHECKED) {
17
+ FileAccessControl.OS_FILE_PROTECTION_CHECKED = true;
18
+ // Node's chmod levels do not appropriately restrict file access on Windows
19
+ // Use the built-in command line tool ICACLS on Windows to properly restrict
20
+ // access to the temporary directory used for disk retry mode.
21
+ if (FileAccessControl.USE_ICACLS) {
22
+ // This should be async - but it's currently safer to have this synchronous
23
+ // This guarantees we can immediately fail setDiskRetryMode if we need to
24
+ try {
25
+ FileAccessControl.OS_PROVIDES_FILE_PROTECTION = (0, node_fs_1.existsSync)(FileAccessControl.ICACLS_PATH);
26
+ }
27
+ catch (e) {
28
+ // Ignore error
29
+ }
30
+ if (!FileAccessControl.OS_PROVIDES_FILE_PROTECTION) {
31
+ api_1.diag.warn("Could not find ICACLS in expected location! This is necessary to use disk retry mode on Windows.");
32
+ }
33
+ }
34
+ else {
35
+ // chmod works everywhere else
36
+ FileAccessControl.OS_PROVIDES_FILE_PROTECTION = true;
37
+ }
38
+ }
39
+ }
40
+ static async applyACLRules(directory) {
41
+ if (FileAccessControl.USE_ICACLS) {
42
+ if (FileAccessControl.ACLED_DIRECTORIES[directory] === undefined) {
43
+ // Avoid multiple calls race condition by setting ACLED_DIRECTORIES to false for this directory immediately
44
+ // If batches are being failed faster than the processes spawned below return, some data won't be stored to disk
45
+ // This is better than the alternative of potentially infinitely spawned processes
46
+ FileAccessControl.ACLED_DIRECTORIES[directory] = false;
47
+ try {
48
+ // Restrict this directory to only current user and administrator access
49
+ const identity = await this._getACLIdentity();
50
+ await this._runICACLS(this._getACLArguments(directory, identity));
51
+ FileAccessControl.ACLED_DIRECTORIES[directory] = true;
52
+ }
53
+ catch (ex) {
54
+ FileAccessControl.ACLED_DIRECTORIES[directory] = false; // false is used to cache failed (vs undefined which is "not yet tried")
55
+ throw ex;
56
+ }
57
+ }
58
+ else {
59
+ if (!FileAccessControl.ACLED_DIRECTORIES[directory]) {
60
+ throw new Error("Setting ACL restrictions did not succeed (cached result)");
61
+ }
62
+ }
63
+ }
64
+ }
65
+ static applyACLRulesSync(directory) {
66
+ if (FileAccessControl.USE_ICACLS) {
67
+ // For performance, only run ACL rules if we haven't already during this session
68
+ if (FileAccessControl.ACLED_DIRECTORIES[directory] === undefined) {
69
+ this._runICACLSSync(this._getACLArguments(directory, this._getACLIdentitySync()));
70
+ FileAccessControl.ACLED_DIRECTORIES[directory] = true; // If we get here, it succeeded. _runIACLSSync will throw on failures
71
+ return;
72
+ }
73
+ else if (!FileAccessControl.ACLED_DIRECTORIES[directory]) {
74
+ // falsy but not undefined
75
+ throw new Error("Setting ACL restrictions did not succeed (cached result)");
76
+ }
77
+ }
78
+ }
79
+ static _runICACLS(args) {
80
+ return new Promise((resolve, reject) => {
81
+ const aclProc = (0, node_child_process_1.spawn)(FileAccessControl.ICACLS_PATH, args, {
82
+ windowsHide: true,
83
+ });
84
+ aclProc.on("error", (e) => reject(e));
85
+ aclProc.on("close", (code) => {
86
+ if (code === 0) {
87
+ resolve();
88
+ }
89
+ else {
90
+ reject(new Error(`Setting ACL restrictions did not succeed (ICACLS returned code ${code})`));
91
+ }
92
+ });
93
+ });
94
+ }
95
+ static _runICACLSSync(args) {
96
+ // Some very old versions of Node (< 0.11) don't have this
97
+ if (node_child_process_1.spawnSync) {
98
+ const aclProc = (0, node_child_process_1.spawnSync)(FileAccessControl.ICACLS_PATH, args, {
99
+ windowsHide: true,
100
+ });
101
+ if (aclProc.error) {
102
+ throw aclProc.error;
103
+ }
104
+ else if (aclProc.status !== 0) {
105
+ throw new Error(`Setting ACL restrictions did not succeed (ICACLS returned code ${aclProc.status})`);
106
+ }
107
+ }
108
+ else {
109
+ throw new Error("Could not synchronously call ICACLS under current version of Node.js");
110
+ }
111
+ }
112
+ static _getACLIdentity() {
113
+ return new Promise((resolve, reject) => {
114
+ if (FileAccessControl.ACL_IDENTITY) {
115
+ resolve(FileAccessControl.ACL_IDENTITY);
116
+ }
117
+ const psProc = (0, node_child_process_1.spawn)(FileAccessControl.POWERSHELL_PATH, ["-Command", "[System.Security.Principal.WindowsIdentity]::GetCurrent().Name"], {
118
+ windowsHide: true,
119
+ stdio: ["ignore", "pipe", "pipe"], // Needed to prevent hanging on Win 7
120
+ });
121
+ let data = "";
122
+ psProc.stdout.on("data", (d) => (data += d));
123
+ psProc.on("error", (e) => reject(e));
124
+ psProc.on("close", (code) => {
125
+ FileAccessControl.ACL_IDENTITY = data && data.trim();
126
+ if (code === 0) {
127
+ resolve(FileAccessControl.ACL_IDENTITY);
128
+ }
129
+ else {
130
+ reject(new Error(`Getting ACL identity did not succeed (PS returned code ${code})`));
131
+ }
132
+ });
133
+ });
134
+ }
135
+ static _getACLIdentitySync() {
136
+ if (FileAccessControl.ACL_IDENTITY) {
137
+ return FileAccessControl.ACL_IDENTITY;
138
+ }
139
+ // Some very old versions of Node (< 0.11) don't have this
140
+ if (node_child_process_1.spawnSync) {
141
+ const psProc = (0, node_child_process_1.spawnSync)(FileAccessControl.POWERSHELL_PATH, ["-Command", "[System.Security.Principal.WindowsIdentity]::GetCurrent().Name"], {
142
+ windowsHide: true,
143
+ stdio: ["ignore", "pipe", "pipe"], // Needed to prevent hanging on Win 7
144
+ });
145
+ if (psProc.error) {
146
+ throw psProc.error;
147
+ }
148
+ else if (psProc.status !== 0) {
149
+ throw new Error(`Getting ACL identity did not succeed (PS returned code ${psProc.status})`);
150
+ }
151
+ FileAccessControl.ACL_IDENTITY = psProc.stdout && psProc.stdout.toString().trim();
152
+ return FileAccessControl.ACL_IDENTITY;
153
+ }
154
+ else {
155
+ throw new Error("Could not synchronously get ACL identity under current version of Node.js");
156
+ }
157
+ }
158
+ static _getACLArguments(directory, identity) {
159
+ return [
160
+ directory,
161
+ "/grant",
162
+ "*S-1-5-32-544:(OI)(CI)F", // Full permission for Administrators
163
+ "/grant",
164
+ `${identity}:(OI)(CI)F`, // Full permission for current user
165
+ "/inheritance:r",
166
+ ]; // Remove all inherited permissions
167
+ }
168
+ }
169
+ exports.FileAccessControl = FileAccessControl;
170
+ FileAccessControl.ICACLS_PATH = `${node_process_1.default.env.SYSTEMDRIVE}/windows/system32/icacls.exe`;
171
+ FileAccessControl.POWERSHELL_PATH = `${node_process_1.default.env.SYSTEMDRIVE}/windows/system32/windowspowershell/v1.0/powershell.exe`;
172
+ FileAccessControl.ACLED_DIRECTORIES = {};
173
+ FileAccessControl.ACL_IDENTITY = null;
174
+ FileAccessControl.OS_FILE_PROTECTION_CHECKED = false;
175
+ FileAccessControl.OS_PROVIDES_FILE_PROTECTION = false;
176
+ FileAccessControl.USE_ICACLS = (0, node_os_1.type)() === "Windows_NT";
177
+ //# sourceMappingURL=fileAccessControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileAccessControl.js","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/fileAccessControl.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { existsSync } from \"node:fs\";\nimport { type as osType } from \"node:os\";\nimport { spawn, spawnSync } from \"node:child_process\";\nimport { diag } from \"@opentelemetry/api\";\nimport process from \"node:process\";\n\nexport class FileAccessControl {\n private static ICACLS_PATH = `${process.env.SYSTEMDRIVE}/windows/system32/icacls.exe`;\n private static POWERSHELL_PATH = `${process.env.SYSTEMDRIVE}/windows/system32/windowspowershell/v1.0/powershell.exe`;\n private static ACLED_DIRECTORIES: { [id: string]: boolean } = {};\n private static ACL_IDENTITY: string | null = null;\n private static OS_FILE_PROTECTION_CHECKED = false;\n public static OS_PROVIDES_FILE_PROTECTION = false;\n public static USE_ICACLS = osType() === \"Windows_NT\";\n\n // Check if file access control could be enabled\n public static checkFileProtection(): void {\n if (\n !FileAccessControl.OS_PROVIDES_FILE_PROTECTION &&\n !FileAccessControl.OS_FILE_PROTECTION_CHECKED\n ) {\n FileAccessControl.OS_FILE_PROTECTION_CHECKED = true;\n // Node's chmod levels do not appropriately restrict file access on Windows\n // Use the built-in command line tool ICACLS on Windows to properly restrict\n // access to the temporary directory used for disk retry mode.\n if (FileAccessControl.USE_ICACLS) {\n // This should be async - but it's currently safer to have this synchronous\n // This guarantees we can immediately fail setDiskRetryMode if we need to\n try {\n FileAccessControl.OS_PROVIDES_FILE_PROTECTION = existsSync(FileAccessControl.ICACLS_PATH);\n } catch (e: any) {\n // Ignore error\n }\n if (!FileAccessControl.OS_PROVIDES_FILE_PROTECTION) {\n diag.warn(\n \"Could not find ICACLS in expected location! This is necessary to use disk retry mode on Windows.\",\n );\n }\n } else {\n // chmod works everywhere else\n FileAccessControl.OS_PROVIDES_FILE_PROTECTION = true;\n }\n }\n }\n\n public static async applyACLRules(directory: string): Promise<void> {\n if (FileAccessControl.USE_ICACLS) {\n if (FileAccessControl.ACLED_DIRECTORIES[directory] === undefined) {\n // Avoid multiple calls race condition by setting ACLED_DIRECTORIES to false for this directory immediately\n // If batches are being failed faster than the processes spawned below return, some data won't be stored to disk\n // This is better than the alternative of potentially infinitely spawned processes\n FileAccessControl.ACLED_DIRECTORIES[directory] = false;\n try {\n // Restrict this directory to only current user and administrator access\n const identity = await this._getACLIdentity();\n await this._runICACLS(this._getACLArguments(directory, identity));\n FileAccessControl.ACLED_DIRECTORIES[directory] = true;\n } catch (ex: any) {\n FileAccessControl.ACLED_DIRECTORIES[directory] = false; // false is used to cache failed (vs undefined which is \"not yet tried\")\n throw ex;\n }\n } else {\n if (!FileAccessControl.ACLED_DIRECTORIES[directory]) {\n throw new Error(\"Setting ACL restrictions did not succeed (cached result)\");\n }\n }\n }\n }\n\n public static applyACLRulesSync(directory: string): void {\n if (FileAccessControl.USE_ICACLS) {\n // For performance, only run ACL rules if we haven't already during this session\n if (FileAccessControl.ACLED_DIRECTORIES[directory] === undefined) {\n this._runICACLSSync(this._getACLArguments(directory, this._getACLIdentitySync()));\n FileAccessControl.ACLED_DIRECTORIES[directory] = true; // If we get here, it succeeded. _runIACLSSync will throw on failures\n return;\n } else if (!FileAccessControl.ACLED_DIRECTORIES[directory]) {\n // falsy but not undefined\n throw new Error(\"Setting ACL restrictions did not succeed (cached result)\");\n }\n }\n }\n\n private static _runICACLS(args: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const aclProc = spawn(FileAccessControl.ICACLS_PATH, args, <any>{\n windowsHide: true,\n });\n aclProc.on(\"error\", (e: Error) => reject(e));\n aclProc.on(\"close\", (code: number) => {\n if (code === 0) {\n resolve();\n } else {\n reject(\n new Error(`Setting ACL restrictions did not succeed (ICACLS returned code ${code})`),\n );\n }\n });\n });\n }\n\n private static _runICACLSSync(args: string[]): void {\n // Some very old versions of Node (< 0.11) don't have this\n if (spawnSync) {\n const aclProc = spawnSync(FileAccessControl.ICACLS_PATH, args, <any>{\n windowsHide: true,\n });\n if (aclProc.error) {\n throw aclProc.error;\n } else if (aclProc.status !== 0) {\n throw new Error(\n `Setting ACL restrictions did not succeed (ICACLS returned code ${aclProc.status})`,\n );\n }\n } else {\n throw new Error(\"Could not synchronously call ICACLS under current version of Node.js\");\n }\n }\n\n private static _getACLIdentity(): Promise<string> {\n return new Promise((resolve, reject) => {\n if (FileAccessControl.ACL_IDENTITY) {\n resolve(FileAccessControl.ACL_IDENTITY);\n }\n const psProc = spawn(\n FileAccessControl.POWERSHELL_PATH,\n [\"-Command\", \"[System.Security.Principal.WindowsIdentity]::GetCurrent().Name\"],\n <any>{\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"], // Needed to prevent hanging on Win 7\n },\n );\n let data = \"\";\n psProc.stdout.on(\"data\", (d: string) => (data += d));\n psProc.on(\"error\", (e: Error) => reject(e));\n psProc.on(\"close\", (code: number) => {\n FileAccessControl.ACL_IDENTITY = data && data.trim();\n if (code === 0) {\n resolve(FileAccessControl.ACL_IDENTITY);\n } else {\n reject(new Error(`Getting ACL identity did not succeed (PS returned code ${code})`));\n }\n });\n });\n }\n\n private static _getACLIdentitySync(): string {\n if (FileAccessControl.ACL_IDENTITY) {\n return FileAccessControl.ACL_IDENTITY;\n }\n // Some very old versions of Node (< 0.11) don't have this\n if (spawnSync) {\n const psProc = spawnSync(\n FileAccessControl.POWERSHELL_PATH,\n [\"-Command\", \"[System.Security.Principal.WindowsIdentity]::GetCurrent().Name\"],\n <any>{\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"], // Needed to prevent hanging on Win 7\n },\n );\n if (psProc.error) {\n throw psProc.error;\n } else if (psProc.status !== 0) {\n throw new Error(`Getting ACL identity did not succeed (PS returned code ${psProc.status})`);\n }\n FileAccessControl.ACL_IDENTITY = psProc.stdout && psProc.stdout.toString().trim();\n return FileAccessControl.ACL_IDENTITY;\n } else {\n throw new Error(\"Could not synchronously get ACL identity under current version of Node.js\");\n }\n }\n\n private static _getACLArguments(directory: string, identity: string): string[] {\n return [\n directory,\n \"/grant\",\n \"*S-1-5-32-544:(OI)(CI)F\", // Full permission for Administrators\n \"/grant\",\n `${identity}:(OI)(CI)F`, // Full permission for current user\n \"/inheritance:r\",\n ]; // Remove all inherited permissions\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Computes the size (in bytes) of all files in a directory at the root level. Asynchronously.
3
+ * @internal
4
+ */
5
+ export declare const getShallowDirectorySize: (directory: string) => Promise<number>;
6
+ /**
7
+ * Validate directory exists.
8
+ * @internal
9
+ */
10
+ export declare const confirmDirExists: (directory: string) => Promise<void>;
11
+ //# sourceMappingURL=fileSystemHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystemHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/fileSystemHelpers.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAmB/E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAmBtE,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.confirmDirExists = exports.getShallowDirectorySize = void 0;
6
+ const api_1 = require("@opentelemetry/api");
7
+ const node_path_1 = require("node:path");
8
+ const promises_1 = require("node:fs/promises");
9
+ /**
10
+ * Computes the size (in bytes) of all files in a directory at the root level. Asynchronously.
11
+ * @internal
12
+ */
13
+ const getShallowDirectorySize = async (directory) => {
14
+ let totalSize = 0;
15
+ try {
16
+ // Get the directory listing
17
+ const files = await (0, promises_1.readdir)(directory);
18
+ // Query all file sizes
19
+ for (const file of files) {
20
+ const fileStats = await (0, promises_1.stat)((0, node_path_1.join)(directory, file));
21
+ if (fileStats.isFile()) {
22
+ totalSize += fileStats.size;
23
+ }
24
+ }
25
+ return totalSize;
26
+ }
27
+ catch (err) {
28
+ api_1.diag.error(`Error getting directory size: ${err}`);
29
+ return 0;
30
+ }
31
+ };
32
+ exports.getShallowDirectorySize = getShallowDirectorySize;
33
+ /**
34
+ * Validate directory exists.
35
+ * @internal
36
+ */
37
+ const confirmDirExists = async (directory) => {
38
+ try {
39
+ const stats = await (0, promises_1.lstat)(directory);
40
+ if (!stats.isDirectory()) {
41
+ throw new Error("Path existed but was not a directory");
42
+ }
43
+ }
44
+ catch (err) {
45
+ if (err && err.code === "ENOENT") {
46
+ try {
47
+ const options = { recursive: true };
48
+ await (0, promises_1.mkdir)(directory, options);
49
+ }
50
+ catch (mkdirErr) {
51
+ if (mkdirErr && mkdirErr.code !== "EEXIST") {
52
+ // Handle race condition by ignoring EEXIST
53
+ throw mkdirErr;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ };
59
+ exports.confirmDirExists = confirmDirExists;
60
+ //# sourceMappingURL=fileSystemHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystemHelpers.js","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/fileSystemHelpers.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAA0C;AAE1C,yCAAiC;AACjC,+CAA+D;AAE/D;;;GAGG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAE,SAAiB,EAAmB,EAAE;IAClF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAO,EAAC,SAAS,CAAC,CAAC;QAEvC,uBAAuB;QACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,IAAA,eAAI,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvB,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAI,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,uBAAuB,2BAmBlC;AAEF;;;GAGG;AACI,MAAM,gBAAgB,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;IACzE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAyB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAA,gBAAK,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,QAAa,EAAE,CAAC;gBACvB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3C,2CAA2C;oBAC3C,MAAM,QAAQ,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,gBAAgB,oBAmB3B","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { diag } from \"@opentelemetry/api\";\nimport type { MakeDirectoryOptions } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { lstat, mkdir, readdir, stat } from \"node:fs/promises\";\n\n/**\n * Computes the size (in bytes) of all files in a directory at the root level. Asynchronously.\n * @internal\n */\nexport const getShallowDirectorySize = async (directory: string): Promise<number> => {\n let totalSize = 0;\n try {\n // Get the directory listing\n const files = await readdir(directory);\n\n // Query all file sizes\n for (const file of files) {\n const fileStats = await stat(join(directory, file));\n if (fileStats.isFile()) {\n totalSize += fileStats.size;\n }\n }\n\n return totalSize;\n } catch (err) {\n diag.error(`Error getting directory size: ${err}`);\n return 0;\n }\n};\n\n/**\n * Validate directory exists.\n * @internal\n */\nexport const confirmDirExists = async (directory: string): Promise<void> => {\n try {\n const stats = await lstat(directory);\n if (!stats.isDirectory()) {\n throw new Error(\"Path existed but was not a directory\");\n }\n } catch (err: any) {\n if (err && err.code === \"ENOENT\") {\n try {\n const options: MakeDirectoryOptions = { recursive: true };\n await mkdir(directory, options);\n } catch (mkdirErr: any) {\n if (mkdirErr && mkdirErr.code !== \"EEXIST\") {\n // Handle race condition by ignoring EEXIST\n throw mkdirErr;\n }\n }\n }\n }\n};\n"]}
@@ -0,0 +1,29 @@
1
+ import type { PersistentStorage } from "../../../types.js";
2
+ import type { AzureMonitorExporterOptions } from "../../../config.js";
3
+ /**
4
+ * File system persist class.
5
+ * @internal
6
+ */
7
+ export declare class FileSystemPersist implements PersistentStorage {
8
+ private _options?;
9
+ static TEMPDIR_PREFIX: string;
10
+ static FILENAME_SUFFIX: string;
11
+ fileRetemptionPeriod: number;
12
+ cleanupTimeOut: number;
13
+ maxBytesOnDisk: number;
14
+ private _enabled;
15
+ private _tempDirectory;
16
+ private _fileCleanupTimer;
17
+ private _instrumentationKey;
18
+ constructor(instrumentationKey: string, _options?: AzureMonitorExporterOptions | undefined);
19
+ push(value: unknown[]): Promise<boolean>;
20
+ shift(): Promise<unknown>;
21
+ /**
22
+ * Check for temp telemetry files
23
+ * reads the first file if exist, deletes it and tries to send its load
24
+ */
25
+ private _getFirstFileOnDisk;
26
+ private _storeToDisk;
27
+ private _fileCleanupTask;
28
+ }
29
+ //# sourceMappingURL=fileSystemPersist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystemPersist.d.ts","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/fileSystemPersist.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGtE;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IAevD,OAAO,CAAC,QAAQ,CAAC;IAdnB,MAAM,CAAC,cAAc,SAAwB;IAC7C,MAAM,CAAC,eAAe,SAAc;IAEpC,oBAAoB,SAA2B;IAC/C,cAAc,SAAkB;IAChC,cAAc,EAAE,MAAM,CAAc;IAEpC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,mBAAmB,CAAS;gBAGlC,kBAAkB,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,2BAA2B,YAAA;IAyChD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAkB/B;;;OAGG;YACW,mBAAmB;YA8BnB,YAAY;YAmCZ,gBAAgB;CA+B/B"}