@microsoft/opentelemetry 0.1.0-alpha.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/README.md +90 -3
  2. package/dist/commonjs/a365/configuration/A365Configuration.d.ts +32 -0
  3. package/dist/commonjs/a365/configuration/A365Configuration.d.ts.map +1 -1
  4. package/dist/commonjs/a365/configuration/A365Configuration.js +74 -5
  5. package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
  6. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +49 -0
  7. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  8. package/dist/commonjs/a365/constants.d.ts +1 -1
  9. package/dist/commonjs/a365/constants.d.ts.map +1 -1
  10. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +4 -2
  11. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  12. package/dist/commonjs/a365/exporter/Agent365Exporter.js +55 -30
  13. package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
  14. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
  15. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  16. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +5 -1
  17. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  18. package/dist/commonjs/a365/exporter/utils.d.ts +29 -1
  19. package/dist/commonjs/a365/exporter/utils.d.ts.map +1 -1
  20. package/dist/commonjs/a365/exporter/utils.js +121 -5
  21. package/dist/commonjs/a365/exporter/utils.js.map +1 -1
  22. package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts +58 -0
  23. package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts.map +1 -0
  24. package/dist/commonjs/a365/hosting/agenticTokenCache.js +229 -0
  25. package/dist/commonjs/a365/hosting/agenticTokenCache.js.map +1 -0
  26. package/dist/commonjs/a365/hosting/index.d.ts +2 -0
  27. package/dist/commonjs/a365/hosting/index.d.ts.map +1 -1
  28. package/dist/commonjs/a365/hosting/index.js +4 -1
  29. package/dist/commonjs/a365/hosting/index.js.map +1 -1
  30. package/dist/commonjs/a365/index.d.ts +2 -2
  31. package/dist/commonjs/a365/index.d.ts.map +1 -1
  32. package/dist/commonjs/a365/index.js +3 -1
  33. package/dist/commonjs/a365/index.js.map +1 -1
  34. package/dist/commonjs/azureMonitor/index.d.ts +9 -1
  35. package/dist/commonjs/azureMonitor/index.d.ts.map +1 -1
  36. package/dist/commonjs/azureMonitor/index.js +13 -18
  37. package/dist/commonjs/azureMonitor/index.js.map +1 -1
  38. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js +1 -1
  39. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
  40. package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
  41. package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js +4 -6
  42. package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
  43. package/dist/commonjs/distro/distro.d.ts +11 -2
  44. package/dist/commonjs/distro/distro.d.ts.map +1 -1
  45. package/dist/commonjs/distro/distro.js +183 -36
  46. package/dist/commonjs/distro/distro.js.map +1 -1
  47. package/dist/commonjs/distro/loader.d.ts +10 -0
  48. package/dist/commonjs/distro/loader.d.ts.map +1 -0
  49. package/dist/commonjs/distro/loader.js +16 -0
  50. package/dist/commonjs/distro/loader.js.map +1 -0
  51. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
  52. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  53. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
  54. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  55. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +9 -8
  56. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  57. package/dist/commonjs/genai/instrumentations/langchain/tracer.js +40 -15
  58. package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
  59. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  60. package/dist/commonjs/genai/instrumentations/langchain/utils.js +259 -75
  61. package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
  62. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
  63. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
  64. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
  65. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
  66. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
  67. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +72 -37
  68. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
  69. package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts +0 -2
  70. package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts.map +1 -1
  71. package/dist/commonjs/genai/instrumentations/openai/semconv.js +1 -3
  72. package/dist/commonjs/genai/instrumentations/openai/semconv.js.map +1 -1
  73. package/dist/commonjs/genai/instrumentations/openai/utils.d.ts +37 -16
  74. package/dist/commonjs/genai/instrumentations/openai/utils.d.ts.map +1 -1
  75. package/dist/commonjs/genai/instrumentations/openai/utils.js +239 -60
  76. package/dist/commonjs/genai/instrumentations/openai/utils.js.map +1 -1
  77. package/dist/commonjs/genai/semconv.d.ts +2 -0
  78. package/dist/commonjs/genai/semconv.d.ts.map +1 -1
  79. package/dist/commonjs/genai/semconv.js +5 -1
  80. package/dist/commonjs/genai/semconv.js.map +1 -1
  81. package/dist/commonjs/index.d.ts +2 -2
  82. package/dist/commonjs/index.d.ts.map +1 -1
  83. package/dist/commonjs/index.js +3 -1
  84. package/dist/commonjs/index.js.map +1 -1
  85. package/dist/commonjs/sdkstats/index.d.ts +18 -0
  86. package/dist/commonjs/sdkstats/index.d.ts.map +1 -0
  87. package/dist/commonjs/sdkstats/index.js +37 -0
  88. package/dist/commonjs/sdkstats/index.js.map +1 -0
  89. package/dist/commonjs/sdkstats/manager.d.ts +31 -0
  90. package/dist/commonjs/sdkstats/manager.d.ts.map +1 -0
  91. package/dist/commonjs/sdkstats/manager.js +190 -0
  92. package/dist/commonjs/sdkstats/manager.js.map +1 -0
  93. package/dist/commonjs/sdkstats/metrics.d.ts +20 -0
  94. package/dist/commonjs/sdkstats/metrics.d.ts.map +1 -0
  95. package/dist/commonjs/sdkstats/metrics.js +84 -0
  96. package/dist/commonjs/sdkstats/metrics.js.map +1 -0
  97. package/dist/commonjs/sdkstats/state.d.ts +58 -0
  98. package/dist/commonjs/sdkstats/state.d.ts.map +1 -0
  99. package/dist/commonjs/sdkstats/state.js +94 -0
  100. package/dist/commonjs/sdkstats/state.js.map +1 -0
  101. package/dist/commonjs/types.d.ts +6 -9
  102. package/dist/commonjs/types.d.ts.map +1 -1
  103. package/dist/commonjs/types.js +5 -1
  104. package/dist/commonjs/types.js.map +1 -1
  105. package/dist/commonjs/utils/common.js +2 -2
  106. package/dist/commonjs/utils/common.js.map +1 -1
  107. package/dist/commonjs/utils/index.d.ts +2 -0
  108. package/dist/commonjs/utils/index.d.ts.map +1 -1
  109. package/dist/commonjs/utils/index.js +5 -1
  110. package/dist/commonjs/utils/index.js.map +1 -1
  111. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.d.ts.map +1 -0
  112. package/dist/commonjs/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.js +13 -11
  113. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.js.map +1 -0
  114. package/dist/commonjs/{azureMonitor/utils → utils}/statsbeat.d.ts +1 -1
  115. package/dist/commonjs/utils/statsbeat.d.ts.map +1 -0
  116. package/dist/commonjs/{azureMonitor/utils → utils}/statsbeat.js +8 -8
  117. package/dist/commonjs/utils/statsbeat.js.map +1 -0
  118. package/dist/esm/a365/configuration/A365Configuration.d.ts +32 -0
  119. package/dist/esm/a365/configuration/A365Configuration.d.ts.map +1 -1
  120. package/dist/esm/a365/configuration/A365Configuration.js +74 -5
  121. package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
  122. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +49 -0
  123. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  124. package/dist/esm/a365/constants.d.ts +1 -1
  125. package/dist/esm/a365/constants.d.ts.map +1 -1
  126. package/dist/esm/a365/exporter/Agent365Exporter.d.ts +4 -2
  127. package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  128. package/dist/esm/a365/exporter/Agent365Exporter.js +56 -31
  129. package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
  130. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
  131. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  132. package/dist/esm/a365/exporter/Agent365ExporterOptions.js +5 -1
  133. package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  134. package/dist/esm/a365/exporter/utils.d.ts +29 -1
  135. package/dist/esm/a365/exporter/utils.d.ts.map +1 -1
  136. package/dist/esm/a365/exporter/utils.js +119 -6
  137. package/dist/esm/a365/exporter/utils.js.map +1 -1
  138. package/dist/esm/a365/hosting/agenticTokenCache.d.ts +58 -0
  139. package/dist/esm/a365/hosting/agenticTokenCache.d.ts.map +1 -0
  140. package/dist/esm/a365/hosting/agenticTokenCache.js +225 -0
  141. package/dist/esm/a365/hosting/agenticTokenCache.js.map +1 -0
  142. package/dist/esm/a365/hosting/index.d.ts +2 -0
  143. package/dist/esm/a365/hosting/index.d.ts.map +1 -1
  144. package/dist/esm/a365/hosting/index.js +1 -0
  145. package/dist/esm/a365/hosting/index.js.map +1 -1
  146. package/dist/esm/a365/index.d.ts +2 -2
  147. package/dist/esm/a365/index.d.ts.map +1 -1
  148. package/dist/esm/a365/index.js +1 -1
  149. package/dist/esm/a365/index.js.map +1 -1
  150. package/dist/esm/azureMonitor/index.d.ts +9 -1
  151. package/dist/esm/azureMonitor/index.d.ts.map +1 -1
  152. package/dist/esm/azureMonitor/index.js +12 -18
  153. package/dist/esm/azureMonitor/index.js.map +1 -1
  154. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js +1 -1
  155. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
  156. package/dist/esm/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
  157. package/dist/esm/azureMonitor/metrics/quickpulse/utils.js +5 -7
  158. package/dist/esm/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
  159. package/dist/esm/distro/distro.d.ts +11 -2
  160. package/dist/esm/distro/distro.d.ts.map +1 -1
  161. package/dist/esm/distro/distro.js +181 -35
  162. package/dist/esm/distro/distro.js.map +1 -1
  163. package/dist/esm/distro/loader.d.ts +10 -0
  164. package/dist/esm/distro/loader.d.ts.map +1 -0
  165. package/dist/esm/distro/loader.js +14 -0
  166. package/dist/esm/distro/loader.js.map +1 -0
  167. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
  168. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  169. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
  170. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  171. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +9 -8
  172. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  173. package/dist/esm/genai/instrumentations/langchain/tracer.js +41 -16
  174. package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
  175. package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  176. package/dist/esm/genai/instrumentations/langchain/utils.js +260 -76
  177. package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
  178. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
  179. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
  180. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
  181. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
  182. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
  183. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +75 -40
  184. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
  185. package/dist/esm/genai/instrumentations/openai/semconv.d.ts +0 -2
  186. package/dist/esm/genai/instrumentations/openai/semconv.d.ts.map +1 -1
  187. package/dist/esm/genai/instrumentations/openai/semconv.js +0 -2
  188. package/dist/esm/genai/instrumentations/openai/semconv.js.map +1 -1
  189. package/dist/esm/genai/instrumentations/openai/utils.d.ts +37 -16
  190. package/dist/esm/genai/instrumentations/openai/utils.d.ts.map +1 -1
  191. package/dist/esm/genai/instrumentations/openai/utils.js +233 -57
  192. package/dist/esm/genai/instrumentations/openai/utils.js.map +1 -1
  193. package/dist/esm/genai/semconv.d.ts +2 -0
  194. package/dist/esm/genai/semconv.d.ts.map +1 -1
  195. package/dist/esm/genai/semconv.js +4 -0
  196. package/dist/esm/genai/semconv.js.map +1 -1
  197. package/dist/esm/index.d.ts +2 -2
  198. package/dist/esm/index.d.ts.map +1 -1
  199. package/dist/esm/index.js +1 -1
  200. package/dist/esm/index.js.map +1 -1
  201. package/dist/esm/sdkstats/index.d.ts +18 -0
  202. package/dist/esm/sdkstats/index.d.ts.map +1 -0
  203. package/dist/esm/sdkstats/index.js +20 -0
  204. package/dist/esm/sdkstats/index.js.map +1 -0
  205. package/dist/esm/sdkstats/manager.d.ts +31 -0
  206. package/dist/esm/sdkstats/manager.d.ts.map +1 -0
  207. package/dist/esm/sdkstats/manager.js +186 -0
  208. package/dist/esm/sdkstats/manager.js.map +1 -0
  209. package/dist/esm/sdkstats/metrics.d.ts +20 -0
  210. package/dist/esm/sdkstats/metrics.d.ts.map +1 -0
  211. package/dist/esm/sdkstats/metrics.js +77 -0
  212. package/dist/esm/sdkstats/metrics.js.map +1 -0
  213. package/dist/esm/sdkstats/state.d.ts +58 -0
  214. package/dist/esm/sdkstats/state.d.ts.map +1 -0
  215. package/dist/esm/sdkstats/state.js +83 -0
  216. package/dist/esm/sdkstats/state.js.map +1 -0
  217. package/dist/esm/types.d.ts +6 -9
  218. package/dist/esm/types.d.ts.map +1 -1
  219. package/dist/esm/types.js +5 -1
  220. package/dist/esm/types.js.map +1 -1
  221. package/dist/esm/utils/common.js +2 -2
  222. package/dist/esm/utils/common.js.map +1 -1
  223. package/dist/esm/utils/index.d.ts +2 -0
  224. package/dist/esm/utils/index.d.ts.map +1 -1
  225. package/dist/esm/utils/index.js +2 -0
  226. package/dist/esm/utils/index.js.map +1 -1
  227. package/dist/esm/utils/opentelemetryInstrumentationPatcher.d.ts.map +1 -0
  228. package/dist/esm/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.js +13 -11
  229. package/dist/esm/utils/opentelemetryInstrumentationPatcher.js.map +1 -0
  230. package/dist/esm/{azureMonitor/utils → utils}/statsbeat.d.ts +1 -1
  231. package/dist/esm/utils/statsbeat.d.ts.map +1 -0
  232. package/dist/esm/{azureMonitor/utils → utils}/statsbeat.js +8 -8
  233. package/dist/esm/utils/statsbeat.js.map +1 -0
  234. package/package.json +6 -6
  235. package/dist/commonjs/azureMonitor/utils/opentelemetryInstrumentationPatcher.d.ts.map +0 -1
  236. package/dist/commonjs/azureMonitor/utils/opentelemetryInstrumentationPatcher.js.map +0 -1
  237. package/dist/commonjs/azureMonitor/utils/statsbeat.d.ts.map +0 -1
  238. package/dist/commonjs/azureMonitor/utils/statsbeat.js.map +0 -1
  239. package/dist/esm/azureMonitor/utils/opentelemetryInstrumentationPatcher.d.ts.map +0 -1
  240. package/dist/esm/azureMonitor/utils/opentelemetryInstrumentationPatcher.js.map +0 -1
  241. package/dist/esm/azureMonitor/utils/statsbeat.d.ts.map +0 -1
  242. package/dist/esm/azureMonitor/utils/statsbeat.js.map +0 -1
  243. /package/dist/commonjs/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.d.ts +0 -0
  244. /package/dist/esm/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.d.ts +0 -0
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.parseResourceDetectorsFromEnvVar = exports.isFunctionApp = exports.unlinkAsync = exports.writeFileAsync = exports.mkdirAsync = exports.lstatAsync = exports.statAsync = exports.readFileAsync = exports.readdirAsync = exports.getShallowFileSize = exports.getShallowDirectorySizeSync = exports.getShallowDirectorySize = exports.confirmDirExists = exports.appendFileAsync = exports.accessAsync = void 0;
5
+ exports.patchOpenTelemetryInstrumentationEnable = exports.getInstance = exports.parseResourceDetectorsFromEnvVar = exports.isFunctionApp = exports.unlinkAsync = exports.writeFileAsync = exports.mkdirAsync = exports.lstatAsync = exports.statAsync = exports.readFileAsync = exports.readdirAsync = exports.getShallowFileSize = exports.getShallowDirectorySizeSync = exports.getShallowDirectorySize = exports.confirmDirExists = exports.appendFileAsync = exports.accessAsync = void 0;
6
6
  var fileSystem_js_1 = require("./fileSystem.js");
7
7
  Object.defineProperty(exports, "accessAsync", { enumerable: true, get: function () { return fileSystem_js_1.accessAsync; } });
8
8
  Object.defineProperty(exports, "appendFileAsync", { enumerable: true, get: function () { return fileSystem_js_1.appendFileAsync; } });
@@ -20,4 +20,8 @@ Object.defineProperty(exports, "unlinkAsync", { enumerable: true, get: function
20
20
  var common_js_1 = require("./common.js");
21
21
  Object.defineProperty(exports, "isFunctionApp", { enumerable: true, get: function () { return common_js_1.isFunctionApp; } });
22
22
  Object.defineProperty(exports, "parseResourceDetectorsFromEnvVar", { enumerable: true, get: function () { return common_js_1.parseResourceDetectorsFromEnvVar; } });
23
+ var statsbeat_js_1 = require("./statsbeat.js");
24
+ Object.defineProperty(exports, "getInstance", { enumerable: true, get: function () { return statsbeat_js_1.getInstance; } });
25
+ var opentelemetryInstrumentationPatcher_js_1 = require("./opentelemetryInstrumentationPatcher.js");
26
+ Object.defineProperty(exports, "patchOpenTelemetryInstrumentationEnable", { enumerable: true, get: function () { return opentelemetryInstrumentationPatcher_js_1.patchOpenTelemetryInstrumentationEnable; } });
23
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAcyB;AAbvB,4GAAA,WAAW,OAAA;AACX,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,wHAAA,uBAAuB,OAAA;AACvB,4HAAA,2BAA2B,OAAA;AAC3B,mHAAA,kBAAkB,OAAA;AAClB,6GAAA,YAAY,OAAA;AACZ,8GAAA,aAAa,OAAA;AACb,0GAAA,SAAS,OAAA;AACT,2GAAA,UAAU,OAAA;AACV,2GAAA,UAAU,OAAA;AACV,+GAAA,cAAc,OAAA;AACd,4GAAA,WAAW,OAAA;AAEb,yCAA8E;AAArE,0GAAA,aAAa,OAAA;AAAE,6HAAA,gCAAgC,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAcyB;AAbvB,4GAAA,WAAW,OAAA;AACX,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,wHAAA,uBAAuB,OAAA;AACvB,4HAAA,2BAA2B,OAAA;AAC3B,mHAAA,kBAAkB,OAAA;AAClB,6GAAA,YAAY,OAAA;AACZ,8GAAA,aAAa,OAAA;AACb,0GAAA,SAAS,OAAA;AACT,2GAAA,UAAU,OAAA;AACV,2GAAA,UAAU,OAAA;AACV,+GAAA,cAAc,OAAA;AACd,4GAAA,WAAW,OAAA;AAEb,yCAA8E;AAArE,0GAAA,aAAa,OAAA;AAAE,6HAAA,gCAAgC,OAAA;AACxD,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mGAAmG;AAA1F,iKAAA,uCAAuC,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opentelemetryInstrumentationPatcher.d.ts","sourceRoot":"","sources":["../../../src/utils/opentelemetryInstrumentationPatcher.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAgB,uCAAuC,IAAI,IAAI,CAmC9D"}
@@ -3,8 +3,8 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.patchOpenTelemetryInstrumentationEnable = patchOpenTelemetryInstrumentationEnable;
6
- const types_js_1 = require("../../types.js");
7
- const index_js_1 = require("../../shared/logging/index.js");
6
+ const types_js_1 = require("../types.js");
7
+ const index_js_1 = require("../shared/logging/index.js");
8
8
  /**
9
9
  * Patch OpenTelemetry Instrumentation enablement to update the statsbeat environment variable with the enabled instrumentations
10
10
  * @internal
@@ -19,16 +19,18 @@ function patchOpenTelemetryInstrumentationEnable() {
19
19
  // Parses the enabled instrumentations and then ammends the statsbeat instrumentation environment variable
20
20
  autoLoaderUtils.enableInstrumentations = function (instrumentations) {
21
21
  try {
22
- const statsbeatOptions = JSON.parse(process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] || emptyStatsbeatConfig);
23
- let updatedStatsbeat = {};
24
- for (let i = 0; i < instrumentations.length; i++) {
25
- updatedStatsbeat = {
26
- instrumentation: (statsbeatOptions.instrumentation |=
27
- types_js_1.StatsbeatInstrumentationMap.get(instrumentations[i].instrumentationName) || 0),
28
- feature: statsbeatOptions.feature,
29
- };
22
+ if (instrumentations.length > 0) {
23
+ const statsbeatOptions = JSON.parse(process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] || emptyStatsbeatConfig);
24
+ let updatedStatsbeat = {};
25
+ for (let i = 0; i < instrumentations.length; i++) {
26
+ updatedStatsbeat = {
27
+ instrumentation: (statsbeatOptions.instrumentation |=
28
+ types_js_1.StatsbeatInstrumentationMap.get(instrumentations[i].instrumentationName) || 0),
29
+ feature: statsbeatOptions.feature,
30
+ };
31
+ }
32
+ process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify(updatedStatsbeat);
30
33
  }
31
- process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify(updatedStatsbeat);
32
34
  }
33
35
  catch (_e) {
34
36
  index_js_1.Logger.getInstance().warn("Failed to parse the statsbeat environment variable");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opentelemetryInstrumentationPatcher.js","sourceRoot":"","sources":["../../../src/utils/opentelemetryInstrumentationPatcher.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAWlC,0FAmCC;AA1CD,0CAA4F;AAC5F,yDAAoD;AAEpD;;;GAGG;AACH,SAAgB,uCAAuC;IACrD,MAAM,oBAAoB,GAAW,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAClD,iEAAiE;QACjE,MAAM,eAAe,GAAG,OAAO,CAAC,0DAA0D,CAAC,CAAC;QAE5F,MAAM,wBAAwB,GAAG,eAAe,CAAC,sBAAsB,CAAC;QAExE,0GAA0G;QAC1G,eAAe,CAAC,sBAAsB,GAAG,UAAU,gBAAmC;YACpF,IAAI,CAAC;gBACH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,gBAAgB,GAA+B,IAAI,CAAC,KAAK,CAC7D,OAAO,CAAC,GAAG,CAAC,2CAAgC,CAAC,IAAI,oBAAoB,CACtE,CAAC;oBACF,IAAI,gBAAgB,GAAG,EAAE,CAAC;oBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,gBAAgB,GAAG;4BACjB,eAAe,EAAE,CAAC,gBAAgB,CAAC,eAAe;gCAChD,sCAA2B,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAChF,OAAO,EAAE,gBAAgB,CAAC,OAAO;yBAClC,CAAC;oBACJ,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,2CAAgC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,iBAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAClF,CAAC;YACD,8CAA8C;YAC9C,OAAO,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,2CAA2C;IAC7C,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { StatsbeatFeatures, StatsbeatInstrumentations } from "../../types.js";
1
+ import type { StatsbeatFeatures, StatsbeatInstrumentations } from "../types.js";
2
2
  declare class StatsbeatConfiguration {
3
3
  private initializedByShim;
4
4
  private currentStatsbeatInstrumentations;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsbeat.d.ts","sourceRoot":"","sources":["../../../src/utils/statsbeat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,iBAAiB,EACjB,yBAAyB,EAE1B,MAAM,aAAa,CAAC;AAUrB,cAAM,sBAAsB;IAE1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gCAAgC,CAAiC;IACzE,OAAO,CAAC,wBAAwB,CAAyB;;IAgBlD,oBAAoB,GACzB,2BAA2B,yBAAyB,EACpD,mBAAmB,iBAAiB,UA2GpC;CACH;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,sBAAsB,CAKpD"}
@@ -3,8 +3,7 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.getInstance = getInstance;
6
- const types_js_1 = require("../../types.js");
7
- const index_js_1 = require("../../shared/logging/index.js");
6
+ const types_js_1 = require("../types.js");
8
7
  let instance;
9
8
  class StatsbeatConfiguration {
10
9
  // Initial Statsbeat options
@@ -19,8 +18,8 @@ class StatsbeatConfiguration {
19
18
  this.initializedByShim = true;
20
19
  }
21
20
  }
22
- catch (error) {
23
- index_js_1.Logger.getInstance().error("Failed to parse statsbeat config environment variable.", error);
21
+ catch (_error) {
22
+ // Fail silently — statsbeat is best-effort
24
23
  }
25
24
  }
26
25
  setStatsbeatFeatures = (statsbeatInstrumentations, statsbeatFeatures) => {
@@ -28,8 +27,9 @@ class StatsbeatConfiguration {
28
27
  try {
29
28
  statsbeatEnv = JSON.parse(process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] || "{}");
30
29
  }
31
- catch (error) {
32
- index_js_1.Logger.getInstance().error("Failed to parse statsbeat config environment variable.", error);
30
+ catch (_error) {
31
+ // Fail silently — statsbeat is best-effort
32
+ return;
33
33
  }
34
34
  this.currentStatsbeatInstrumentations = {
35
35
  ...this.currentStatsbeatInstrumentations,
@@ -109,8 +109,8 @@ class StatsbeatConfiguration {
109
109
  feature: featureBitMap,
110
110
  });
111
111
  }
112
- catch (error) {
113
- index_js_1.Logger.getInstance().error("Failed call to JSON.stringify.", error);
112
+ catch (_error) {
113
+ // Fail silently — statsbeat is best-effort
114
114
  }
115
115
  };
116
116
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsbeat.js","sourceRoot":"","sources":["../../../src/utils/statsbeat.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,38 @@ export declare class A365Configuration {
29
29
  readonly domainOverride?: string;
30
30
  /** OAuth scopes for A365 service authentication. */
31
31
  readonly authScopes: string[];
32
+ /**
33
+ * Whether the A365 HTTP exporter (`Agent365Exporter`) should be added to
34
+ * the pipeline. The `A365SpanProcessor` is still registered when
35
+ * {@link enabled} is `true`, regardless of this flag.
36
+ *
37
+ * Resolved from {@link A365Options.enableObservabilityExporter} (programmatic)
38
+ * or the `ENABLE_A365_OBSERVABILITY_EXPORTER` environment variable; defaults
39
+ * to `false`.
40
+ */
41
+ readonly enableObservabilityExporter: boolean;
42
+ /**
43
+ * Resolved log level for A365 observability components.
44
+ *
45
+ * `undefined` when neither the `logLevel` option nor the
46
+ * `A365_OBSERVABILITY_LOG_LEVEL` environment variable is set; in that case
47
+ * the A365 logger keeps its default ("none").
48
+ */
49
+ readonly logLevel?: string;
50
+ /** When true, use the S2S endpoint path for export. */
51
+ readonly useS2SEndpoint: boolean;
52
+ /** Maximum span queue size before drops occur. */
53
+ readonly maxQueueSize?: number;
54
+ /** Delay (ms) between automatic batch flush attempts. */
55
+ readonly scheduledDelayMilliseconds?: number;
56
+ /** Maximum time (ms) for the entire export() call. */
57
+ readonly exporterTimeoutMilliseconds?: number;
58
+ /** Timeout (ms) per individual HTTP request. */
59
+ readonly httpRequestTimeoutMilliseconds?: number;
60
+ /** Maximum number of spans per export batch. */
61
+ readonly maxExportBatchSize?: number;
62
+ /** Maximum estimated payload size (bytes) per HTTP chunk. */
63
+ readonly maxPayloadBytes?: number;
32
64
  constructor(options?: A365Options);
33
65
  private _warnIfOptionsSetButDisabled;
34
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"A365Configuration.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAuBlF;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAmBX;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,6CAA6C;IAC7C,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,+DAA+D;IAC/D,SAAgB,aAAa,CAAC,EAAE,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,wBAAwB;IACxB,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,0DAA0D;IAC1D,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExC,oDAAoD;IACpD,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;gBAEzB,OAAO,CAAC,EAAE,WAAW;IAmDjC,OAAO,CAAC,4BAA4B;CAarC"}
1
+ {"version":3,"file":"A365Configuration.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAuBlF;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAmBX;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,6CAA6C;IAC7C,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,+DAA+D;IAC/D,SAAgB,aAAa,CAAC,EAAE,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,wBAAwB;IACxB,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,0DAA0D;IAC1D,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExC,oDAAoD;IACpD,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IAErC;;;;;;;;OAQG;IACH,SAAgB,2BAA2B,EAAE,OAAO,CAAC;IAErD;;;;;;OAMG;IACH,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC,uDAAuD;IACvD,SAAgB,cAAc,EAAE,OAAO,CAAC;IAExC,kDAAkD;IAClD,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtC,yDAAyD;IACzD,SAAgB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpD,sDAAsD;IACtD,SAAgB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErD,gDAAgD;IAChD,SAAgB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExD,gDAAgD;IAChD,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5C,6DAA6D;IAC7D,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAE7B,OAAO,CAAC,EAAE,WAAW;IA2FjC,OAAO,CAAC,4BAA4B;CAcrC"}
@@ -33,7 +33,7 @@ export const A365_ENV_VARS = {
33
33
  CLUSTER_CATEGORY: "CLUSTER_CATEGORY",
34
34
  LOG_LEVEL: "A365_OBSERVABILITY_LOG_LEVEL",
35
35
  };
36
- const DEFAULT_AUTH_SCOPE = "https://api.powerplatform.com/.default";
36
+ const DEFAULT_AUTH_SCOPE = "api://9b975845-388f-4429-889e-eab1ef63949c/.default";
37
37
  const VALID_CLUSTER_CATEGORIES = new Set([
38
38
  "local",
39
39
  "dev",
@@ -67,26 +67,74 @@ export class A365Configuration {
67
67
  domainOverride;
68
68
  /** OAuth scopes for A365 service authentication. */
69
69
  authScopes;
70
+ /**
71
+ * Whether the A365 HTTP exporter (`Agent365Exporter`) should be added to
72
+ * the pipeline. The `A365SpanProcessor` is still registered when
73
+ * {@link enabled} is `true`, regardless of this flag.
74
+ *
75
+ * Resolved from {@link A365Options.enableObservabilityExporter} (programmatic)
76
+ * or the `ENABLE_A365_OBSERVABILITY_EXPORTER` environment variable; defaults
77
+ * to `false`.
78
+ */
79
+ enableObservabilityExporter;
80
+ /**
81
+ * Resolved log level for A365 observability components.
82
+ *
83
+ * `undefined` when neither the `logLevel` option nor the
84
+ * `A365_OBSERVABILITY_LOG_LEVEL` environment variable is set; in that case
85
+ * the A365 logger keeps its default ("none").
86
+ */
87
+ logLevel;
88
+ /** When true, use the S2S endpoint path for export. */
89
+ useS2SEndpoint;
90
+ /** Maximum span queue size before drops occur. */
91
+ maxQueueSize;
92
+ /** Delay (ms) between automatic batch flush attempts. */
93
+ scheduledDelayMilliseconds;
94
+ /** Maximum time (ms) for the entire export() call. */
95
+ exporterTimeoutMilliseconds;
96
+ /** Timeout (ms) per individual HTTP request. */
97
+ httpRequestTimeoutMilliseconds;
98
+ /** Maximum number of spans per export batch. */
99
+ maxExportBatchSize;
100
+ /** Maximum estimated payload size (bytes) per HTTP chunk. */
101
+ maxPayloadBytes;
70
102
  constructor(options) {
71
103
  // 1. Set defaults
72
104
  let enabled = false;
105
+ let enableObservabilityExporter = false;
73
106
  let clusterCategory = "prod";
74
107
  let domainOverride = options?.domainOverride;
75
108
  let authScopes = options?.authScopes ?? [DEFAULT_AUTH_SCOPE];
76
109
  // 2. Apply programmatic options
77
110
  if (options) {
78
111
  enabled = options.enabled ?? enabled;
112
+ enableObservabilityExporter =
113
+ options.enableObservabilityExporter ?? enableObservabilityExporter;
79
114
  clusterCategory = options.clusterCategory ?? clusterCategory;
80
115
  }
81
116
  // 3. Apply environment variable overrides (highest precedence)
82
- const envEnabled = parseEnvBoolean(process.env[A365_ENV_VARS.EXPORTER_ENABLED]);
83
- if (envEnabled !== undefined) {
84
- enabled = envEnabled;
117
+ // ENABLE_A365_OBSERVABILITY_EXPORTER controls just the HTTP exporter, not
118
+ // the master `enabled` toggle. It is a secondary toggle that only takes
119
+ // effect when A365 is configured in code (options provided), matching the
120
+ // Python distro behavior (see microsoft/opentelemetry-distro-python#87).
121
+ const envExporter = parseEnvBoolean(process.env[A365_ENV_VARS.EXPORTER_ENABLED]);
122
+ if (envExporter !== undefined &&
123
+ options !== undefined &&
124
+ options.enableObservabilityExporter === undefined) {
125
+ enableObservabilityExporter = envExporter;
85
126
  }
86
127
  const envScopes = process.env[A365_ENV_VARS.AUTH_SCOPES]?.trim();
87
128
  if (envScopes) {
88
129
  authScopes = envScopes.split(/\s+/).filter(Boolean);
89
130
  }
131
+ // observabilityScopeOverride wins over authScopes / env var so callers can
132
+ // narrow the resolved scope set to a single explicit value (mirrors the
133
+ // Python distro's a365_observability_scope_override kwarg).
134
+ const scopeOverride = options?.observabilityScopeOverride?.trim();
135
+ if (scopeOverride) {
136
+ authScopes = [scopeOverride];
137
+ }
90
138
  const envDomain = process.env[A365_ENV_VARS.DOMAIN]?.trim();
91
139
  if (envDomain) {
92
140
  domainOverride = envDomain.replace(/\/+$/, "");
@@ -98,12 +146,32 @@ export class A365Configuration {
98
146
  else if (envCluster) {
99
147
  getA365Logger().warn(`Invalid ${A365_ENV_VARS.CLUSTER_CATEGORY} value '${envCluster}'. Using default cluster category.`);
100
148
  }
149
+ // Log level: programmatic option wins over the env var so callers can
150
+ // explicitly opt out of (or override) host-level configuration. The
151
+ // default ("none") is applied inside the A365 logger module when no
152
+ // value is supplied here, so leave `logLevel` undefined in that case.
153
+ let logLevel = options?.logLevel?.trim() || undefined;
154
+ if (logLevel === undefined) {
155
+ const envLogLevel = process.env[A365_ENV_VARS.LOG_LEVEL]?.trim();
156
+ if (envLogLevel) {
157
+ logLevel = envLogLevel;
158
+ }
159
+ }
101
160
  // Assign resolved values
102
161
  this.enabled = enabled;
162
+ this.enableObservabilityExporter = enableObservabilityExporter;
103
163
  this.tokenResolver = options?.tokenResolver;
104
164
  this.clusterCategory = clusterCategory;
105
165
  this.domainOverride = domainOverride;
106
166
  this.authScopes = authScopes;
167
+ this.logLevel = logLevel;
168
+ this.useS2SEndpoint = options?.useS2SEndpoint ?? false;
169
+ this.maxQueueSize = options?.maxQueueSize;
170
+ this.scheduledDelayMilliseconds = options?.scheduledDelayMilliseconds;
171
+ this.exporterTimeoutMilliseconds = options?.exporterTimeoutMilliseconds;
172
+ this.httpRequestTimeoutMilliseconds = options?.httpRequestTimeoutMilliseconds;
173
+ this.maxExportBatchSize = options?.maxExportBatchSize;
174
+ this.maxPayloadBytes = options?.maxPayloadBytes;
107
175
  // Warn when A365-scoped options are set but A365 is not enabled
108
176
  if (!this.enabled) {
109
177
  this._warnIfOptionsSetButDisabled(options);
@@ -115,7 +183,8 @@ export class A365Configuration {
115
183
  const hasNonTrivialOptions = options.tokenResolver !== undefined || options.domainOverride !== undefined;
116
184
  if (hasNonTrivialOptions) {
117
185
  getA365Logger().warn("A365 configuration options are set but A365 is not enabled. " +
118
- "Set `a365.enabled: true` or `ENABLE_A365_OBSERVABILITY_EXPORTER=true` to enable.");
186
+ "Set `a365.enabled: true` or set `ENABLE_A365_OBSERVABILITY_EXPORTER=true` " +
187
+ "(the env var only takes effect when a365 options are provided in code).");
119
188
  }
120
189
  }
121
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"A365Configuration.js","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A365Configuration.js","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"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"}
@@ -24,5 +24,54 @@ export interface A365Options {
24
24
  domainOverride?: string;
25
25
  /** OAuth scopes for A365 service authentication. */
26
26
  authScopes?: string[];
27
+ /**
28
+ * Single-string override for the A365 observability authentication scope.
29
+ *
30
+ * Equivalent to the `A365_OBSERVABILITY_SCOPES_OVERRIDE` environment
31
+ * variable; when supplied, it becomes the sole entry of the resolved
32
+ * {@link authScopes} array. Mirrors the Python distro's
33
+ * `a365_observability_scope_override` kwarg
34
+ * (microsoft/opentelemetry-distro-python#87).
35
+ *
36
+ * Precedence (highest to lowest): this option > env var > {@link authScopes}.
37
+ */
38
+ observabilityScopeOverride?: string;
39
+ /**
40
+ * Enable the A365 HTTP observability exporter (`Agent365Exporter`).
41
+ *
42
+ * Defaults to `false`. When `false` (and {@link enabled} is `true`), the
43
+ * `A365SpanProcessor` is still registered for baggage/attribute enrichment
44
+ * of downstream exporters (Azure Monitor, OTLP, console, …) but no data is
45
+ * sent to the A365 observability service.
46
+ *
47
+ * Equivalent to the `ENABLE_A365_OBSERVABILITY_EXPORTER` environment
48
+ * variable. The programmatic value wins when both are set.
49
+ *
50
+ * Has no effect when {@link enabled} is `false`.
51
+ */
52
+ enableObservabilityExporter?: boolean;
53
+ /**
54
+ * Log level for A365 observability components.
55
+ *
56
+ * Accepts `none`, `info`, `warn`, `error`, or a `|`-separated combination
57
+ * (e.g. `"warn|error"`). Defaults to `none` when neither this option nor
58
+ * the `A365_OBSERVABILITY_LOG_LEVEL` environment variable is set. When set,
59
+ * this option overrides the environment variable.
60
+ */
61
+ logLevel?: string;
62
+ /** When true, use the S2S endpoint path for export. @default false */
63
+ useS2SEndpoint?: boolean;
64
+ /** Maximum span queue size before drops occur. */
65
+ maxQueueSize?: number;
66
+ /** Delay (ms) between automatic batch flush attempts. */
67
+ scheduledDelayMilliseconds?: number;
68
+ /** Maximum time (ms) for the entire export() call. */
69
+ exporterTimeoutMilliseconds?: number;
70
+ /** Timeout (ms) per individual HTTP request. Each retry gets a fresh timeout. */
71
+ httpRequestTimeoutMilliseconds?: number;
72
+ /** Maximum number of spans per export batch. */
73
+ maxExportBatchSize?: number;
74
+ /** Maximum estimated payload size (bytes) per HTTP chunk. */
75
+ maxPayloadBytes?: number;
27
76
  }
28
77
  //# sourceMappingURL=A365ConfigurationOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"A365ConfigurationOptions.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365ConfigurationOptions.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,KAAK,GACL,MAAM,GACN,SAAS,GACT,cAAc,GACd,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,UAAU,GACV,IAAI,GACJ,IAAI,CAAC;AAET;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,sDAAsD;IACtD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB"}
1
+ {"version":3,"file":"A365ConfigurationOptions.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365ConfigurationOptions.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,KAAK,GACL,MAAM,GACN,SAAS,GACT,cAAc,GACd,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,UAAU,GACV,IAAI,GACJ,IAAI,CAAC;AAET;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,sDAAsD;IACtD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yDAAyD;IACzD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,sDAAsD;IACtD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,iFAAiF;IACjF,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -87,6 +87,6 @@ export declare class OpenTelemetryConstants {
87
87
  static readonly TELEMETRY_SDK_VERSION_KEY = "telemetry.sdk.version";
88
88
  static readonly TELEMETRY_SDK_NAME_VALUE = "A365ObservabilitySDK";
89
89
  static readonly TELEMETRY_SDK_LANGUAGE_VALUE = "nodejs";
90
- static readonly TELEMETRY_SDK_VERSION_VALUE = "0.1.0-alpha.6";
90
+ static readonly TELEMETRY_SDK_VERSION_VALUE = "1.0.0";
91
91
  }
92
92
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/a365/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/a365/constants.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,15 @@ import type { Agent365ExporterOptions } from "./Agent365ExporterOptions.js";
11
11
  export declare class Agent365Exporter implements SpanExporter {
12
12
  private closed;
13
13
  private readonly options;
14
- private readonly logger;
14
+ private get logger();
15
15
  constructor(options?: Agent365ExporterOptions);
16
16
  export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): Promise<void>;
17
17
  private exportGroup;
18
18
  private resolveToken;
19
19
  private postWithRetries;
20
- private buildExportRequest;
20
+ private mapAndTruncateSpans;
21
+ private getResourceAttributes;
22
+ private buildEnvelope;
21
23
  private mapSpan;
22
24
  shutdown(): Promise<void>;
23
25
  forceFlush(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Agent365Exporter.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365Exporter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAgE5E;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAE9B,OAAO,CAAC,EAAE,uBAAuB;IAIvC,MAAM,CACV,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;YAuDF,WAAW;YAuDX,YAAY;YAMZ,eAAe;IA0D7B,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,OAAO;IAwDT,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,OAAO,CAAC,gBAAgB;CAoBzB"}
1
+ {"version":3,"file":"Agent365Exporter.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365Exporter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAyE5E;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD,OAAO,KAAK,MAAM,GAEjB;gBAEW,OAAO,CAAC,EAAE,uBAAuB;IAIvC,MAAM,CACV,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;YAuDF,WAAW;YAmFX,YAAY;YAMZ,eAAe;IA0D7B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,OAAO;IAwDT,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,OAAO,CAAC,gBAAgB;CAoBzB"}
@@ -3,7 +3,7 @@
3
3
  import { ExportResultCode } from "@opentelemetry/core";
4
4
  import { ResolvedExporterOptions } from "./Agent365ExporterOptions.js";
5
5
  import { ExporterEventNames } from "./ExporterEventNames.js";
6
- import { partitionByIdentity, parseIdentityKey, hexTraceId, hexSpanId, kindName, statusName, resolveAgent365Endpoint, truncateSpan, } from "./utils.js";
6
+ import { partitionByIdentity, parseIdentityKey, hexTraceId, hexSpanId, kindName, statusName, resolveAgent365Endpoint, truncateSpan, estimateSpanBytes, chunkBySize, } from "./utils.js";
7
7
  import { getA365Logger } from "../logging.js";
8
8
  const DEFAULT_MAX_RETRIES = 3;
9
9
  /**
@@ -16,7 +16,9 @@ const DEFAULT_MAX_RETRIES = 3;
16
16
  export class Agent365Exporter {
17
17
  closed = false;
18
18
  options;
19
- logger = getA365Logger();
19
+ get logger() {
20
+ return getA365Logger();
21
+ }
20
22
  constructor(options) {
21
23
  this.options = new ResolvedExporterOptions(options);
22
24
  }
@@ -58,8 +60,13 @@ export class Agent365Exporter {
58
60
  async exportGroup(identityKey, spans) {
59
61
  const start = Date.now();
60
62
  const { tenantId, agentId } = parseIdentityKey(identityKey);
61
- const payload = this.buildExportRequest(spans);
62
- const body = JSON.stringify(payload);
63
+ // Map, truncate, and chunk spans by estimated byte size
64
+ const mappedSpans = this.mapAndTruncateSpans(spans);
65
+ const resourceAttrs = this.getResourceAttributes(spans);
66
+ const chunks = chunkBySize(mappedSpans, (ms) => estimateSpanBytes(ms.span), this.options.maxPayloadBytes);
67
+ if (chunks.length > 1) {
68
+ this.logger.info(`[Agent365Exporter] Split ${spans.length} spans into ${chunks.length} chunks for ${tenantId}/${agentId}`);
69
+ }
63
70
  const servicePrefix = this.options.useS2SEndpoint ? "/observabilityService" : "/observability";
64
71
  const endpointPath = `${servicePrefix}/tenants/${encodeURIComponent(tenantId)}/otlp/agents/${encodeURIComponent(agentId)}/traces`;
65
72
  const baseUrl = this.options.domainOverride ?? resolveAgent365Endpoint(this.options.clusterCategory);
@@ -76,16 +83,21 @@ export class Agent365Exporter {
76
83
  return;
77
84
  }
78
85
  headers["authorization"] = `Bearer ${token}`;
79
- const { ok, correlationId } = await this.postWithRetries(url, body, headers);
80
- if (!ok) {
81
- this.logExporterEvent(ExporterEventNames.EXPORT_GROUP, false, Date.now() - start, undefined, {
82
- tenantId,
83
- agentId,
84
- correlationId,
85
- });
86
- throw new Error(`Failed to export spans for ${tenantId}/${agentId}`);
86
+ // Send each chunk (all-or-nothing: fail on first chunk failure)
87
+ let lastCorrelationId = "unknown";
88
+ for (let i = 0; i < chunks.length; i++) {
89
+ const chunk = chunks[i];
90
+ const payload = this.buildEnvelope(chunk, resourceAttrs);
91
+ const body = JSON.stringify(payload);
92
+ this.logger.info(`[Agent365Exporter] Sending chunk ${i + 1} of ${chunks.length} (${chunk.length} spans)`);
93
+ const { ok, correlationId } = await this.postWithRetries(url, body, headers);
94
+ lastCorrelationId = correlationId;
95
+ if (!ok) {
96
+ this.logExporterEvent(ExporterEventNames.EXPORT_GROUP, false, Date.now() - start, `chunk ${i + 1} of ${chunks.length} failed`, { tenantId, agentId, correlationId });
97
+ throw new Error(`Failed to export spans (chunk ${i + 1} of ${chunks.length})`);
98
+ }
87
99
  }
88
- this.logExporterEvent(ExporterEventNames.EXPORT_GROUP, true, Date.now() - start, "Spans exported successfully", { tenantId, agentId, correlationId });
100
+ this.logExporterEvent(ExporterEventNames.EXPORT_GROUP, true, Date.now() - start, `${chunks.length} chunk(s) exported successfully`, { tenantId, agentId, correlationId: lastCorrelationId });
89
101
  }
90
102
  async resolveToken(agentId, tenantId) {
91
103
  if (!this.options.tokenResolver)
@@ -134,30 +146,43 @@ export class Agent365Exporter {
134
146
  }
135
147
  return { ok: false, correlationId: lastCorrelationId };
136
148
  }
137
- buildExportRequest(spans) {
138
- const scopeMap = new Map();
139
- for (const sp of spans) {
149
+ mapAndTruncateSpans(spans) {
150
+ return spans.map((sp) => {
140
151
  const scope = sp.instrumentationScope;
141
- const scopeKey = `${scope?.name ?? "unknown"}:${scope?.version ?? ""}`;
142
- let existing = scopeMap.get(scopeKey);
143
- if (!existing) {
144
- existing = [];
145
- scopeMap.set(scopeKey, existing);
146
- }
147
- existing.push(truncateSpan(this.mapSpan(sp)));
152
+ const scopeName = scope?.name ?? "unknown";
153
+ const scopeVersion = scope?.version ?? "";
154
+ return {
155
+ span: truncateSpan(this.mapSpan(sp)),
156
+ scopeKey: `${scopeName}:${scopeVersion}`,
157
+ scopeName,
158
+ scopeVersion: scopeVersion || undefined,
159
+ };
160
+ });
161
+ }
162
+ getResourceAttributes(spans) {
163
+ if (spans.length > 0 && spans[0].resource?.attributes) {
164
+ return { ...spans[0].resource.attributes };
165
+ }
166
+ return {};
167
+ }
168
+ buildEnvelope(mappedSpans, resourceAttrs) {
169
+ const scopeMap = new Map();
170
+ for (const ms of mappedSpans) {
171
+ const existing = scopeMap.get(ms.scopeKey) || [];
172
+ existing.push(ms.span);
173
+ scopeMap.set(ms.scopeKey, existing);
148
174
  }
149
175
  const scopeSpans = [];
150
- for (const [scopeKey, mappedSpans] of scopeMap) {
151
- const [name, version] = scopeKey.split(":");
176
+ for (const [scopeKey, spans] of scopeMap) {
177
+ const representative = mappedSpans.find((ms) => ms.scopeKey === scopeKey);
152
178
  scopeSpans.push({
153
- scope: { name, version: version || undefined },
154
- spans: mappedSpans,
179
+ scope: {
180
+ name: representative.scopeName,
181
+ version: representative.scopeVersion,
182
+ },
183
+ spans,
155
184
  });
156
185
  }
157
- let resourceAttrs = {};
158
- if (spans.length > 0 && spans[0].resource?.attributes) {
159
- resourceAttrs = { ...spans[0].resource.attributes };
160
- }
161
186
  return {
162
187
  resourceSpans: [
163
188
  {