@microsoft/opentelemetry 1.0.2 → 1.2.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 (404) hide show
  1. package/README.md +74 -71
  2. package/dist/commonjs/a365/configuration/A365Configuration.d.ts +3 -0
  3. package/dist/commonjs/a365/configuration/A365Configuration.d.ts.map +1 -1
  4. package/dist/commonjs/a365/configuration/A365Configuration.js +8 -3
  5. package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
  6. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +10 -1
  7. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  8. package/dist/commonjs/a365/constants.d.ts +134 -3
  9. package/dist/commonjs/a365/constants.d.ts.map +1 -1
  10. package/dist/commonjs/a365/constants.js +141 -2
  11. package/dist/commonjs/a365/constants.js.map +1 -1
  12. package/dist/commonjs/a365/contracts.d.ts +246 -8
  13. package/dist/commonjs/a365/contracts.d.ts.map +1 -1
  14. package/dist/commonjs/a365/contracts.js +81 -3
  15. package/dist/commonjs/a365/contracts.js.map +1 -1
  16. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +33 -1
  17. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  18. package/dist/commonjs/a365/exporter/Agent365Exporter.js +134 -3
  19. package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
  20. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +28 -1
  21. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  22. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +2 -0
  23. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  24. package/dist/commonjs/a365/exporter/AgentIdentity.d.ts +17 -0
  25. package/dist/commonjs/a365/exporter/AgentIdentity.d.ts.map +1 -0
  26. package/dist/commonjs/a365/exporter/AgentIdentity.js +5 -0
  27. package/dist/commonjs/a365/exporter/AgentIdentity.js.map +1 -0
  28. package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts +3 -0
  29. package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts.map +1 -1
  30. package/dist/commonjs/a365/exporter/ExporterEventNames.js +3 -0
  31. package/dist/commonjs/a365/exporter/ExporterEventNames.js.map +1 -1
  32. package/dist/commonjs/a365/exporter/TokenResolverContext.d.ts +18 -0
  33. package/dist/commonjs/a365/exporter/TokenResolverContext.d.ts.map +1 -0
  34. package/dist/commonjs/a365/exporter/TokenResolverContext.js +5 -0
  35. package/dist/commonjs/a365/exporter/TokenResolverContext.js.map +1 -0
  36. package/dist/commonjs/a365/exporter/index.d.ts +3 -1
  37. package/dist/commonjs/a365/exporter/index.d.ts.map +1 -1
  38. package/dist/commonjs/a365/exporter/index.js.map +1 -1
  39. package/dist/commonjs/a365/exporter/utils.d.ts +5 -0
  40. package/dist/commonjs/a365/exporter/utils.d.ts.map +1 -1
  41. package/dist/commonjs/a365/exporter/utils.js +23 -25
  42. package/dist/commonjs/a365/exporter/utils.js.map +1 -1
  43. package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts +24 -0
  44. package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts.map +1 -1
  45. package/dist/commonjs/a365/hosting/agenticTokenCache.js +40 -3
  46. package/dist/commonjs/a365/hosting/agenticTokenCache.js.map +1 -1
  47. package/dist/commonjs/a365/hosting/index.d.ts +1 -1
  48. package/dist/commonjs/a365/hosting/index.d.ts.map +1 -1
  49. package/dist/commonjs/a365/hosting/index.js +2 -1
  50. package/dist/commonjs/a365/hosting/index.js.map +1 -1
  51. package/dist/commonjs/a365/hosting/scopeUtils.js +1 -1
  52. package/dist/commonjs/a365/hosting/scopeUtils.js.map +1 -1
  53. package/dist/commonjs/a365/hosting/turnContextUtils.d.ts +6 -1
  54. package/dist/commonjs/a365/hosting/turnContextUtils.d.ts.map +1 -1
  55. package/dist/commonjs/a365/hosting/turnContextUtils.js +31 -5
  56. package/dist/commonjs/a365/hosting/turnContextUtils.js.map +1 -1
  57. package/dist/commonjs/a365/hosting/types.d.ts +48 -2
  58. package/dist/commonjs/a365/hosting/types.d.ts.map +1 -1
  59. package/dist/commonjs/a365/index.d.ts +5 -5
  60. package/dist/commonjs/a365/index.d.ts.map +1 -1
  61. package/dist/commonjs/a365/index.js +8 -2
  62. package/dist/commonjs/a365/index.js.map +1 -1
  63. package/dist/commonjs/a365/message-utils.d.ts +10 -5
  64. package/dist/commonjs/a365/message-utils.d.ts.map +1 -1
  65. package/dist/commonjs/a365/message-utils.js +27 -24
  66. package/dist/commonjs/a365/message-utils.js.map +1 -1
  67. package/dist/commonjs/a365/processors/A365SpanProcessor.d.ts +3 -0
  68. package/dist/commonjs/a365/processors/A365SpanProcessor.d.ts.map +1 -1
  69. package/dist/commonjs/a365/processors/A365SpanProcessor.js +12 -4
  70. package/dist/commonjs/a365/processors/A365SpanProcessor.js.map +1 -1
  71. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.d.ts +45 -0
  72. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.d.ts.map +1 -0
  73. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.js +132 -0
  74. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.js.map +1 -0
  75. package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts +8 -2
  76. package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
  77. package/dist/commonjs/a365/scopes/OpenTelemetryScope.js +9 -1
  78. package/dist/commonjs/a365/scopes/OpenTelemetryScope.js.map +1 -1
  79. package/dist/commonjs/a365/scopes/OutputScope.d.ts.map +1 -1
  80. package/dist/commonjs/a365/scopes/OutputScope.js +2 -4
  81. package/dist/commonjs/a365/scopes/OutputScope.js.map +1 -1
  82. package/dist/commonjs/a365/scopes/index.d.ts +1 -0
  83. package/dist/commonjs/a365/scopes/index.d.ts.map +1 -1
  84. package/dist/commonjs/a365/scopes/index.js +3 -1
  85. package/dist/commonjs/a365/scopes/index.js.map +1 -1
  86. package/dist/commonjs/azureMonitor/index.d.ts +6 -6
  87. package/dist/commonjs/azureMonitor/index.d.ts.map +1 -1
  88. package/dist/commonjs/azureMonitor/index.js +3 -3
  89. package/dist/commonjs/azureMonitor/index.js.map +1 -1
  90. package/dist/commonjs/azureMonitor/logs/handler.d.ts +3 -3
  91. package/dist/commonjs/azureMonitor/logs/handler.js +3 -3
  92. package/dist/commonjs/azureMonitor/metrics/handler.d.ts +1 -1
  93. package/dist/commonjs/azureMonitor/metrics/handler.js +1 -1
  94. package/dist/commonjs/azureMonitor/metrics/performanceCounters.d.ts +2 -2
  95. package/dist/commonjs/azureMonitor/metrics/performanceCounters.js +2 -2
  96. package/dist/commonjs/azureMonitor/metrics/quickpulse/filtering/validator.js +2 -2
  97. package/dist/commonjs/azureMonitor/metrics/quickpulse/filtering/validator.js.map +1 -1
  98. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +4 -4
  99. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
  100. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js +27 -15
  101. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
  102. package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js +1 -1
  103. package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
  104. package/dist/commonjs/azureMonitor/metrics/standardMetrics.d.ts +1 -1
  105. package/dist/commonjs/azureMonitor/metrics/standardMetrics.js +1 -1
  106. package/dist/commonjs/distro/autoAttach.js +2 -2
  107. package/dist/commonjs/distro/autoAttach.js.map +1 -1
  108. package/dist/commonjs/distro/distro.d.ts +2 -2
  109. package/dist/commonjs/distro/distro.d.ts.map +1 -1
  110. package/dist/commonjs/distro/distro.js +70 -36
  111. package/dist/commonjs/distro/distro.js.map +1 -1
  112. package/dist/commonjs/distro/instrumentations.d.ts +2 -2
  113. package/dist/commonjs/distro/instrumentations.js +2 -2
  114. package/dist/commonjs/distro/loader.d.ts +1 -1
  115. package/dist/commonjs/distro/loader.js +1 -1
  116. package/dist/commonjs/genai/index.d.ts +1 -0
  117. package/dist/commonjs/genai/index.d.ts.map +1 -1
  118. package/dist/commonjs/genai/index.js +9 -0
  119. package/dist/commonjs/genai/index.js.map +1 -1
  120. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +1 -1
  121. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  122. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +11 -54
  123. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  124. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +3 -3
  125. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  126. package/dist/commonjs/genai/instrumentations/langchain/tracer.js +31 -9
  127. package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
  128. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts +6 -0
  129. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  130. package/dist/commonjs/genai/instrumentations/langchain/utils.js +159 -21
  131. package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
  132. package/dist/commonjs/genai/instrumentations/openai/utils.d.ts.map +1 -1
  133. package/dist/commonjs/genai/instrumentations/openai/utils.js +9 -4
  134. package/dist/commonjs/genai/instrumentations/openai/utils.js.map +1 -1
  135. package/dist/commonjs/genai/mainAgent/constants.d.ts +21 -0
  136. package/dist/commonjs/genai/mainAgent/constants.d.ts.map +1 -0
  137. package/dist/commonjs/genai/mainAgent/constants.js +26 -0
  138. package/dist/commonjs/genai/mainAgent/constants.js.map +1 -0
  139. package/dist/commonjs/genai/mainAgent/index.d.ts +3 -0
  140. package/dist/commonjs/genai/mainAgent/index.d.ts.map +1 -0
  141. package/dist/commonjs/genai/mainAgent/index.js +15 -0
  142. package/dist/commonjs/genai/mainAgent/index.js.map +1 -0
  143. package/dist/commonjs/genai/mainAgent/processor.d.ts +64 -0
  144. package/dist/commonjs/genai/mainAgent/processor.d.ts.map +1 -0
  145. package/dist/commonjs/genai/mainAgent/processor.js +150 -0
  146. package/dist/commonjs/genai/mainAgent/processor.js.map +1 -0
  147. package/dist/commonjs/genai/semconv.d.ts +3 -0
  148. package/dist/commonjs/genai/semconv.d.ts.map +1 -1
  149. package/dist/commonjs/genai/semconv.js +4 -1
  150. package/dist/commonjs/genai/semconv.js.map +1 -1
  151. package/dist/commonjs/index.d.ts +4 -3
  152. package/dist/commonjs/index.d.ts.map +1 -1
  153. package/dist/commonjs/index.js +16 -2
  154. package/dist/commonjs/index.js.map +1 -1
  155. package/dist/commonjs/otlp/handler.d.ts.map +1 -1
  156. package/dist/commonjs/otlp/handler.js +3 -6
  157. package/dist/commonjs/otlp/handler.js.map +1 -1
  158. package/dist/commonjs/sdkstats/constants.d.ts +45 -0
  159. package/dist/commonjs/sdkstats/constants.d.ts.map +1 -0
  160. package/dist/commonjs/sdkstats/constants.js +77 -0
  161. package/dist/commonjs/sdkstats/constants.js.map +1 -0
  162. package/dist/commonjs/sdkstats/index.d.ts +6 -3
  163. package/dist/commonjs/sdkstats/index.d.ts.map +1 -1
  164. package/dist/commonjs/sdkstats/index.js +22 -4
  165. package/dist/commonjs/sdkstats/index.js.map +1 -1
  166. package/dist/commonjs/sdkstats/manager.d.ts +7 -3
  167. package/dist/commonjs/sdkstats/manager.d.ts.map +1 -1
  168. package/dist/commonjs/sdkstats/manager.js +100 -27
  169. package/dist/commonjs/sdkstats/manager.js.map +1 -1
  170. package/dist/commonjs/sdkstats/metrics.d.ts +46 -2
  171. package/dist/commonjs/sdkstats/metrics.d.ts.map +1 -1
  172. package/dist/commonjs/sdkstats/metrics.js +117 -14
  173. package/dist/commonjs/sdkstats/metrics.js.map +1 -1
  174. package/dist/commonjs/sdkstats/networkStats.d.ts +79 -0
  175. package/dist/commonjs/sdkstats/networkStats.d.ts.map +1 -0
  176. package/dist/commonjs/sdkstats/networkStats.js +191 -0
  177. package/dist/commonjs/sdkstats/networkStats.js.map +1 -0
  178. package/dist/commonjs/sdkstats/state.d.ts +10 -10
  179. package/dist/commonjs/sdkstats/state.d.ts.map +1 -1
  180. package/dist/commonjs/sdkstats/state.js +4 -4
  181. package/dist/commonjs/sdkstats/state.js.map +1 -1
  182. package/dist/commonjs/shared/config.d.ts +1 -1
  183. package/dist/commonjs/shared/config.js +1 -1
  184. package/dist/commonjs/types.d.ts +18 -18
  185. package/dist/commonjs/types.d.ts.map +1 -1
  186. package/dist/commonjs/types.js +89 -89
  187. package/dist/commonjs/types.js.map +1 -1
  188. package/dist/commonjs/utils/index.d.ts +1 -1
  189. package/dist/commonjs/utils/index.d.ts.map +1 -1
  190. package/dist/commonjs/utils/index.js +2 -2
  191. package/dist/commonjs/utils/index.js.map +1 -1
  192. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.d.ts +1 -1
  193. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.js +11 -11
  194. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.js.map +1 -1
  195. package/dist/commonjs/utils/sdkStats.d.ts +15 -0
  196. package/dist/commonjs/utils/sdkStats.d.ts.map +1 -0
  197. package/dist/commonjs/utils/sdkStats.js +138 -0
  198. package/dist/commonjs/utils/sdkStats.js.map +1 -0
  199. package/dist/esm/a365/configuration/A365Configuration.d.ts +3 -0
  200. package/dist/esm/a365/configuration/A365Configuration.d.ts.map +1 -1
  201. package/dist/esm/a365/configuration/A365Configuration.js +8 -3
  202. package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
  203. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +10 -1
  204. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  205. package/dist/esm/a365/constants.d.ts +134 -3
  206. package/dist/esm/a365/constants.d.ts.map +1 -1
  207. package/dist/esm/a365/constants.js +141 -2
  208. package/dist/esm/a365/constants.js.map +1 -1
  209. package/dist/esm/a365/contracts.d.ts +246 -8
  210. package/dist/esm/a365/contracts.d.ts.map +1 -1
  211. package/dist/esm/a365/contracts.js +80 -2
  212. package/dist/esm/a365/contracts.js.map +1 -1
  213. package/dist/esm/a365/exporter/Agent365Exporter.d.ts +33 -1
  214. package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  215. package/dist/esm/a365/exporter/Agent365Exporter.js +135 -4
  216. package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
  217. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +28 -1
  218. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  219. package/dist/esm/a365/exporter/Agent365ExporterOptions.js +2 -0
  220. package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  221. package/dist/esm/a365/exporter/AgentIdentity.d.ts +17 -0
  222. package/dist/esm/a365/exporter/AgentIdentity.d.ts.map +1 -0
  223. package/dist/esm/a365/exporter/AgentIdentity.js +4 -0
  224. package/dist/esm/a365/exporter/AgentIdentity.js.map +1 -0
  225. package/dist/esm/a365/exporter/ExporterEventNames.d.ts +3 -0
  226. package/dist/esm/a365/exporter/ExporterEventNames.d.ts.map +1 -1
  227. package/dist/esm/a365/exporter/ExporterEventNames.js +3 -0
  228. package/dist/esm/a365/exporter/ExporterEventNames.js.map +1 -1
  229. package/dist/esm/a365/exporter/TokenResolverContext.d.ts +18 -0
  230. package/dist/esm/a365/exporter/TokenResolverContext.d.ts.map +1 -0
  231. package/dist/esm/a365/exporter/TokenResolverContext.js +4 -0
  232. package/dist/esm/a365/exporter/TokenResolverContext.js.map +1 -0
  233. package/dist/esm/a365/exporter/index.d.ts +3 -1
  234. package/dist/esm/a365/exporter/index.d.ts.map +1 -1
  235. package/dist/esm/a365/exporter/index.js.map +1 -1
  236. package/dist/esm/a365/exporter/utils.d.ts +5 -0
  237. package/dist/esm/a365/exporter/utils.d.ts.map +1 -1
  238. package/dist/esm/a365/exporter/utils.js +22 -24
  239. package/dist/esm/a365/exporter/utils.js.map +1 -1
  240. package/dist/esm/a365/hosting/agenticTokenCache.d.ts +24 -0
  241. package/dist/esm/a365/hosting/agenticTokenCache.d.ts.map +1 -1
  242. package/dist/esm/a365/hosting/agenticTokenCache.js +40 -3
  243. package/dist/esm/a365/hosting/agenticTokenCache.js.map +1 -1
  244. package/dist/esm/a365/hosting/index.d.ts +1 -1
  245. package/dist/esm/a365/hosting/index.d.ts.map +1 -1
  246. package/dist/esm/a365/hosting/index.js +1 -1
  247. package/dist/esm/a365/hosting/index.js.map +1 -1
  248. package/dist/esm/a365/hosting/scopeUtils.js +2 -2
  249. package/dist/esm/a365/hosting/scopeUtils.js.map +1 -1
  250. package/dist/esm/a365/hosting/turnContextUtils.d.ts +6 -1
  251. package/dist/esm/a365/hosting/turnContextUtils.d.ts.map +1 -1
  252. package/dist/esm/a365/hosting/turnContextUtils.js +30 -5
  253. package/dist/esm/a365/hosting/turnContextUtils.js.map +1 -1
  254. package/dist/esm/a365/hosting/types.d.ts +48 -2
  255. package/dist/esm/a365/hosting/types.d.ts.map +1 -1
  256. package/dist/esm/a365/index.d.ts +5 -5
  257. package/dist/esm/a365/index.d.ts.map +1 -1
  258. package/dist/esm/a365/index.js +3 -3
  259. package/dist/esm/a365/index.js.map +1 -1
  260. package/dist/esm/a365/message-utils.d.ts +10 -5
  261. package/dist/esm/a365/message-utils.d.ts.map +1 -1
  262. package/dist/esm/a365/message-utils.js +28 -25
  263. package/dist/esm/a365/message-utils.js.map +1 -1
  264. package/dist/esm/a365/processors/A365SpanProcessor.d.ts +3 -0
  265. package/dist/esm/a365/processors/A365SpanProcessor.d.ts.map +1 -1
  266. package/dist/esm/a365/processors/A365SpanProcessor.js +12 -4
  267. package/dist/esm/a365/processors/A365SpanProcessor.js.map +1 -1
  268. package/dist/esm/a365/scopes/ApplyGuardrailScope.d.ts +45 -0
  269. package/dist/esm/a365/scopes/ApplyGuardrailScope.d.ts.map +1 -0
  270. package/dist/esm/a365/scopes/ApplyGuardrailScope.js +128 -0
  271. package/dist/esm/a365/scopes/ApplyGuardrailScope.js.map +1 -0
  272. package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts +8 -2
  273. package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
  274. package/dist/esm/a365/scopes/OpenTelemetryScope.js +9 -1
  275. package/dist/esm/a365/scopes/OpenTelemetryScope.js.map +1 -1
  276. package/dist/esm/a365/scopes/OutputScope.d.ts.map +1 -1
  277. package/dist/esm/a365/scopes/OutputScope.js +2 -4
  278. package/dist/esm/a365/scopes/OutputScope.js.map +1 -1
  279. package/dist/esm/a365/scopes/index.d.ts +1 -0
  280. package/dist/esm/a365/scopes/index.d.ts.map +1 -1
  281. package/dist/esm/a365/scopes/index.js +1 -0
  282. package/dist/esm/a365/scopes/index.js.map +1 -1
  283. package/dist/esm/azureMonitor/index.d.ts +6 -6
  284. package/dist/esm/azureMonitor/index.d.ts.map +1 -1
  285. package/dist/esm/azureMonitor/index.js +2 -2
  286. package/dist/esm/azureMonitor/index.js.map +1 -1
  287. package/dist/esm/azureMonitor/logs/handler.d.ts +3 -3
  288. package/dist/esm/azureMonitor/logs/handler.js +3 -3
  289. package/dist/esm/azureMonitor/metrics/handler.d.ts +1 -1
  290. package/dist/esm/azureMonitor/metrics/handler.js +1 -1
  291. package/dist/esm/azureMonitor/metrics/performanceCounters.d.ts +2 -2
  292. package/dist/esm/azureMonitor/metrics/performanceCounters.js +2 -2
  293. package/dist/esm/azureMonitor/metrics/quickpulse/filtering/validator.js +2 -2
  294. package/dist/esm/azureMonitor/metrics/quickpulse/filtering/validator.js.map +1 -1
  295. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +4 -4
  296. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
  297. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js +27 -15
  298. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
  299. package/dist/esm/azureMonitor/metrics/quickpulse/utils.js +1 -1
  300. package/dist/esm/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
  301. package/dist/esm/azureMonitor/metrics/standardMetrics.d.ts +1 -1
  302. package/dist/esm/azureMonitor/metrics/standardMetrics.js +1 -1
  303. package/dist/esm/distro/autoAttach.js +2 -2
  304. package/dist/esm/distro/autoAttach.js.map +1 -1
  305. package/dist/esm/distro/distro.d.ts +2 -2
  306. package/dist/esm/distro/distro.d.ts.map +1 -1
  307. package/dist/esm/distro/distro.js +62 -28
  308. package/dist/esm/distro/distro.js.map +1 -1
  309. package/dist/esm/distro/instrumentations.d.ts +2 -2
  310. package/dist/esm/distro/instrumentations.js +2 -2
  311. package/dist/esm/distro/loader.d.ts +1 -1
  312. package/dist/esm/distro/loader.js +1 -1
  313. package/dist/esm/genai/index.d.ts +1 -0
  314. package/dist/esm/genai/index.d.ts.map +1 -1
  315. package/dist/esm/genai/index.js +1 -0
  316. package/dist/esm/genai/index.js.map +1 -1
  317. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +1 -1
  318. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  319. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +11 -21
  320. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  321. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +3 -3
  322. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  323. package/dist/esm/genai/instrumentations/langchain/tracer.js +31 -9
  324. package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
  325. package/dist/esm/genai/instrumentations/langchain/utils.d.ts +6 -0
  326. package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  327. package/dist/esm/genai/instrumentations/langchain/utils.js +155 -23
  328. package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
  329. package/dist/esm/genai/instrumentations/openai/utils.d.ts.map +1 -1
  330. package/dist/esm/genai/instrumentations/openai/utils.js +10 -5
  331. package/dist/esm/genai/instrumentations/openai/utils.js.map +1 -1
  332. package/dist/esm/genai/mainAgent/constants.d.ts +21 -0
  333. package/dist/esm/genai/mainAgent/constants.d.ts.map +1 -0
  334. package/dist/esm/genai/mainAgent/constants.js +23 -0
  335. package/dist/esm/genai/mainAgent/constants.js.map +1 -0
  336. package/dist/esm/genai/mainAgent/index.d.ts +3 -0
  337. package/dist/esm/genai/mainAgent/index.d.ts.map +1 -0
  338. package/dist/esm/genai/mainAgent/index.js +5 -0
  339. package/dist/esm/genai/mainAgent/index.js.map +1 -0
  340. package/dist/esm/genai/mainAgent/processor.d.ts +64 -0
  341. package/dist/esm/genai/mainAgent/processor.d.ts.map +1 -0
  342. package/dist/esm/genai/mainAgent/processor.js +145 -0
  343. package/dist/esm/genai/mainAgent/processor.js.map +1 -0
  344. package/dist/esm/genai/semconv.d.ts +3 -0
  345. package/dist/esm/genai/semconv.d.ts.map +1 -1
  346. package/dist/esm/genai/semconv.js +3 -0
  347. package/dist/esm/genai/semconv.js.map +1 -1
  348. package/dist/esm/index.d.ts +4 -3
  349. package/dist/esm/index.d.ts.map +1 -1
  350. package/dist/esm/index.js +3 -1
  351. package/dist/esm/index.js.map +1 -1
  352. package/dist/esm/otlp/handler.d.ts.map +1 -1
  353. package/dist/esm/otlp/handler.js +3 -6
  354. package/dist/esm/otlp/handler.js.map +1 -1
  355. package/dist/esm/sdkstats/constants.d.ts +45 -0
  356. package/dist/esm/sdkstats/constants.d.ts.map +1 -0
  357. package/dist/esm/sdkstats/constants.js +74 -0
  358. package/dist/esm/sdkstats/constants.js.map +1 -0
  359. package/dist/esm/sdkstats/index.d.ts +6 -3
  360. package/dist/esm/sdkstats/index.d.ts.map +1 -1
  361. package/dist/esm/sdkstats/index.js +4 -3
  362. package/dist/esm/sdkstats/index.js.map +1 -1
  363. package/dist/esm/sdkstats/manager.d.ts +7 -3
  364. package/dist/esm/sdkstats/manager.d.ts.map +1 -1
  365. package/dist/esm/sdkstats/manager.js +100 -27
  366. package/dist/esm/sdkstats/manager.js.map +1 -1
  367. package/dist/esm/sdkstats/metrics.d.ts +46 -2
  368. package/dist/esm/sdkstats/metrics.d.ts.map +1 -1
  369. package/dist/esm/sdkstats/metrics.js +117 -14
  370. package/dist/esm/sdkstats/metrics.js.map +1 -1
  371. package/dist/esm/sdkstats/networkStats.d.ts +79 -0
  372. package/dist/esm/sdkstats/networkStats.d.ts.map +1 -0
  373. package/dist/esm/sdkstats/networkStats.js +172 -0
  374. package/dist/esm/sdkstats/networkStats.js.map +1 -0
  375. package/dist/esm/sdkstats/state.d.ts +10 -10
  376. package/dist/esm/sdkstats/state.d.ts.map +1 -1
  377. package/dist/esm/sdkstats/state.js +4 -4
  378. package/dist/esm/sdkstats/state.js.map +1 -1
  379. package/dist/esm/shared/config.d.ts +1 -1
  380. package/dist/esm/shared/config.js +1 -1
  381. package/dist/esm/types.d.ts +18 -18
  382. package/dist/esm/types.d.ts.map +1 -1
  383. package/dist/esm/types.js +88 -88
  384. package/dist/esm/types.js.map +1 -1
  385. package/dist/esm/utils/index.d.ts +1 -1
  386. package/dist/esm/utils/index.d.ts.map +1 -1
  387. package/dist/esm/utils/index.js +1 -1
  388. package/dist/esm/utils/index.js.map +1 -1
  389. package/dist/esm/utils/opentelemetryInstrumentationPatcher.d.ts +1 -1
  390. package/dist/esm/utils/opentelemetryInstrumentationPatcher.js +12 -12
  391. package/dist/esm/utils/opentelemetryInstrumentationPatcher.js.map +1 -1
  392. package/dist/esm/utils/sdkStats.d.ts +15 -0
  393. package/dist/esm/utils/sdkStats.d.ts.map +1 -0
  394. package/dist/esm/utils/sdkStats.js +135 -0
  395. package/dist/esm/utils/sdkStats.js.map +1 -0
  396. package/package.json +38 -29
  397. package/dist/commonjs/utils/statsbeat.d.ts +0 -15
  398. package/dist/commonjs/utils/statsbeat.d.ts.map +0 -1
  399. package/dist/commonjs/utils/statsbeat.js +0 -127
  400. package/dist/commonjs/utils/statsbeat.js.map +0 -1
  401. package/dist/esm/utils/statsbeat.d.ts +0 -15
  402. package/dist/esm/utils/statsbeat.d.ts.map +0 -1
  403. package/dist/esm/utils/statsbeat.js +0 -124
  404. package/dist/esm/utils/statsbeat.js.map +0 -1
@@ -6,20 +6,24 @@
6
6
  */
7
7
  export declare class SdkStatsManager {
8
8
  private static _instance;
9
- private _meterProvider;
9
+ private _longMeterProvider;
10
+ private _shortMeterProvider;
10
11
  private _metrics;
11
12
  private _initialized;
12
13
  private _initialExportTimer;
13
14
  static getInstance(): SdkStatsManager;
14
15
  get isInitialized(): boolean;
15
16
  /**
16
- * Set up SDKStats export via the Azure Monitor statsbeat endpoint.
17
+ * Set up SDKStats export via the Azure Monitor SDKStats endpoint.
17
18
  *
18
19
  * Returns `true` if the standalone pipeline was initialized (or was
19
20
  * already initialized), `false` if SDKStats are disabled via env var
20
21
  * or initialization failed.
21
22
  */
22
- initialize(): Promise<boolean>;
23
+ initialize(options?: {
24
+ networkOnly?: boolean;
25
+ cikey?: string;
26
+ }): Promise<boolean>;
23
27
  shutdown(): Promise<boolean>;
24
28
  private _cleanup;
25
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/manager.ts"],"names":[],"mappings":"AAyDA;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IAEtD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAA6B;IAExD,MAAM,CAAC,WAAW,IAAI,eAAe;IAOrC,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IA2E9B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBlC,OAAO,CAAC,QAAQ;IAUhB;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;CAG7B"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/manager.ts"],"names":[],"mappings":"AAsFA;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IAEtD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAA6B;IAExD,MAAM,CAAC,WAAW,IAAI,eAAe;IAOrC,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;;;;OAMG;IACG,UAAU,CAAC,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA8GrF,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBlC,OAAO,CAAC,QAAQ;IAWhB;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;CAG7B"}
@@ -5,19 +5,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.SdkStatsManager = void 0;
6
6
  /**
7
7
  * SDKStats manager — sends SDK self-telemetry to the Application Insights
8
- * statsbeat ingestion endpoint, independent of the customer's telemetry
8
+ * SDKStats ingestion endpoint, independent of the customer's telemetry
9
9
  * pipeline.
10
10
  *
11
11
  * When the full Azure Monitor pipeline is enabled, the exporter package's
12
- * own statsbeat machinery handles SDKStats emission and the distro just
13
- * publishes its bits via the `AZURE_MONITOR_STATSBEAT_FEATURES` env var
12
+ * own SDKStats machinery handles SDKStats emission and we just
13
+ * publish our bits via the `AZURE_MONITOR_STATSBEAT_FEATURES` env var
14
14
  * for the exporter to read. For A365-only, OTLP-only, or Console-only
15
15
  * customers this manager spins up a standalone `MeterProvider` →
16
16
  * `AzureMonitorStatsbeatExporter` pipeline so feature/instrumentation
17
17
  * SDKStats are still collected.
18
18
  *
19
19
  * Mirrors `src/microsoft/opentelemetry/_sdkstats/_manager.py` from the
20
- * Python distro.
20
+ * Python implementation.
21
21
  */
22
22
  const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
23
23
  const resources_1 = require("@opentelemetry/resources");
@@ -41,6 +41,32 @@ const DEFAULT_LONG_EXPORT_INTERVAL_MS = 24 * 60 * 60 * 1000;
41
41
  * @internal
42
42
  */
43
43
  const SDKSTATS_LONG_EXPORT_INTERVAL_ENV = "APPLICATIONINSIGHTS_STATS_LONG_EXPORT_INTERVAL";
44
+ /**
45
+ * Default short export interval (15 minutes) for network SDKStats
46
+ * counters. Matches the Application Insights SDKStats short-interval
47
+ * cadence used by the Python package (`_get_stats_short_export_interval()`
48
+ * in `azure.monitor.opentelemetry.exporter.statsbeat._utils`).
49
+ *
50
+ * @internal
51
+ */
52
+ const DEFAULT_SHORT_EXPORT_INTERVAL_MS = 15 * 60 * 1000;
53
+ /**
54
+ * Override env var: short (network) export interval in seconds.
55
+ * Matches the Python package env var name.
56
+ *
57
+ * @internal
58
+ */
59
+ const SDKSTATS_SHORT_EXPORT_INTERVAL_ENV = "APPLICATIONINSIGHTS_STATS_SHORT_EXPORT_INTERVAL";
60
+ /**
61
+ * Override env var: redirect SDKStats envelopes to a custom App
62
+ * Insights connection string. When unset, SDKStats flow to the
63
+ * Microsoft-owned SDKStats resource (`NON_EU_CONNECTION_STRING` in
64
+ * the AzMon exporter package). Primarily useful for testing.
65
+ * Matches the Python package env var name.
66
+ *
67
+ * @internal
68
+ */
69
+ const SDKSTATS_CONNECTION_STRING_ENV = "APPLICATIONINSIGHTS_STATS_CONNECTION_STRING";
44
70
  /**
45
71
  * Initial-export delay (15 seconds) before the first long-interval flush.
46
72
  *
@@ -59,7 +85,8 @@ const INITIAL_EXPORT_DELAY_MS = 15 * 1000;
59
85
  */
60
86
  class SdkStatsManager {
61
87
  static _instance;
62
- _meterProvider;
88
+ _longMeterProvider;
89
+ _shortMeterProvider;
63
90
  _metrics;
64
91
  _initialized = false;
65
92
  _initialExportTimer;
@@ -73,13 +100,13 @@ class SdkStatsManager {
73
100
  return this._initialized;
74
101
  }
75
102
  /**
76
- * Set up SDKStats export via the Azure Monitor statsbeat endpoint.
103
+ * Set up SDKStats export via the Azure Monitor SDKStats endpoint.
77
104
  *
78
105
  * Returns `true` if the standalone pipeline was initialized (or was
79
106
  * already initialized), `false` if SDKStats are disabled via env var
80
107
  * or initialization failed.
81
108
  */
82
- async initialize() {
109
+ async initialize(options = {}) {
83
110
  if (!(0, state_js_1.isSdkStatsEnabled)()) {
84
111
  return false;
85
112
  }
@@ -90,33 +117,62 @@ class SdkStatsManager {
90
117
  // The exporter package's `exports` map blocks subpath imports, so
91
118
  // we resolve the package's own package.json to find its install
92
119
  // location on disk and require the internal modules by absolute
93
- // path. The statsbeat exporter is the correct vehicle for SDKStats
94
- // — it tags envelopes with the statsbeat ikey/endpoint and avoids
95
- // recursive statsbeat-of-statsbeat reporting via its
120
+ // path. The AzureMonitorStatsbeatExporter is the correct vehicle for
121
+ // SDKStats — it tags envelopes with the SDKStats ikey/endpoint and
122
+ // avoids recursive SDKStats-of-SDKStats reporting via its
96
123
  // `isStatsbeatExporter` flag.
97
124
  const baseUrl = (0, module_js_1.getModuleParentURL)() ?? (0, node_url_1.pathToFileURL)(process.cwd() + "/").href;
98
125
  const requireFromHere = (0, node_module_1.createRequire)(baseUrl);
99
126
  const exporterPackageJsonPath = requireFromHere.resolve("@azure/monitor-opentelemetry-exporter/package.json");
100
127
  const exporterPackageDir = (0, node_path_1.dirname)(exporterPackageJsonPath);
101
128
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
- const statsbeatExporterModule = requireFromHere((0, node_path_1.join)(exporterPackageDir, "dist", "esm", "export", "statsbeat", "statsbeatExporter.js"));
129
+ const sdkStatsExporterModule = requireFromHere((0, node_path_1.join)(exporterPackageDir, "dist", "esm", "export", "statsbeat", "statsbeatExporter.js"));
103
130
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
- const statsbeatTypesModule = requireFromHere((0, node_path_1.join)(exporterPackageDir, "dist", "esm", "export", "statsbeat", "types.js"));
105
- const AzureMonitorStatsbeatExporter = statsbeatExporterModule.AzureMonitorStatsbeatExporter;
106
- const NON_EU_CONNECTION_STRING = statsbeatTypesModule.NON_EU_CONNECTION_STRING;
107
- const exporter = new AzureMonitorStatsbeatExporter({
108
- connectionString: NON_EU_CONNECTION_STRING,
131
+ const sdkStatsTypesModule = requireFromHere((0, node_path_1.join)(exporterPackageDir, "dist", "esm", "export", "statsbeat", "types.js"));
132
+ const AzureMonitorStatsbeatExporter = sdkStatsExporterModule.AzureMonitorStatsbeatExporter;
133
+ const NON_EU_CONNECTION_STRING = sdkStatsTypesModule.NON_EU_CONNECTION_STRING;
134
+ // Allow overriding the SDKStats ingestion target via env var,
135
+ // matching the Python package's APPLICATIONINSIGHTS_STATS_CONNECTION_STRING
136
+ // hook. Primarily useful for testing — production should leave
137
+ // this unset so SDKStats flows to the Microsoft-owned SDKStats
138
+ // resource (NON_EU_CONNECTION_STRING).
139
+ const connectionString = process.env[SDKSTATS_CONNECTION_STRING_ENV] ?? NON_EU_CONNECTION_STRING;
140
+ const emptyResource = (0, resources_1.resourceFromAttributes)({});
141
+ // Long-interval pipeline (24h) — Feature / Feature.instrumentations.
142
+ // Skipped when `networkOnly` is true (AzMon exporter owns those).
143
+ if (!options.networkOnly) {
144
+ const longExporter = new AzureMonitorStatsbeatExporter({
145
+ connectionString,
146
+ disableOfflineStorage: true,
147
+ });
148
+ const longReader = new sdk_metrics_1.PeriodicExportingMetricReader({
149
+ exporter: longExporter,
150
+ exportIntervalMillis: resolveLongExportInterval(),
151
+ });
152
+ this._longMeterProvider = new sdk_metrics_1.MeterProvider({
153
+ readers: [longReader],
154
+ resource: emptyResource,
155
+ });
156
+ }
157
+ // Short-interval pipeline (15 min) — network SDKStats gauges.
158
+ const shortExporter = new AzureMonitorStatsbeatExporter({
159
+ connectionString,
109
160
  disableOfflineStorage: true,
110
161
  });
111
- const reader = new sdk_metrics_1.PeriodicExportingMetricReader({
112
- exporter,
113
- exportIntervalMillis: resolveExportInterval(),
162
+ const shortReader = new sdk_metrics_1.PeriodicExportingMetricReader({
163
+ exporter: shortExporter,
164
+ exportIntervalMillis: resolveShortExportInterval(),
165
+ });
166
+ this._shortMeterProvider = new sdk_metrics_1.MeterProvider({
167
+ readers: [shortReader],
168
+ resource: emptyResource,
114
169
  });
115
- this._meterProvider = new sdk_metrics_1.MeterProvider({
116
- readers: [reader],
117
- resource: (0, resources_1.resourceFromAttributes)({}),
170
+ this._metrics = new metrics_js_1.SdkStatsMetrics({
171
+ longMeterProvider: this._longMeterProvider,
172
+ shortMeterProvider: this._shortMeterProvider,
173
+ networkOnly: options.networkOnly,
174
+ cikey: options.cikey,
118
175
  });
119
- this._metrics = new metrics_js_1.SdkStatsMetrics(this._meterProvider);
120
176
  this._initialized = true;
121
177
  (0, state_js_1.setSdkStatsShutdown)(false);
122
178
  // Spec: long-interval SDKStats should perform an initial export
@@ -125,7 +181,10 @@ class SdkStatsManager {
125
181
  // excess startup traffic. `unref()` so the timer never blocks
126
182
  // process shutdown.
127
183
  this._initialExportTimer = setTimeout(() => {
128
- this._meterProvider?.forceFlush().catch((err) => {
184
+ Promise.all([
185
+ this._longMeterProvider?.forceFlush(),
186
+ this._shortMeterProvider?.forceFlush(),
187
+ ]).catch((err) => {
129
188
  index_js_1.Logger.getInstance().debug("[SDKStats] Initial forceFlush failed.", err);
130
189
  });
131
190
  }, INITIAL_EXPORT_DELAY_MS);
@@ -148,7 +207,10 @@ class SdkStatsManager {
148
207
  this._initialExportTimer = undefined;
149
208
  }
150
209
  try {
151
- await this._meterProvider?.shutdown();
210
+ await Promise.all([
211
+ this._longMeterProvider?.shutdown(),
212
+ this._shortMeterProvider?.shutdown(),
213
+ ]);
152
214
  }
153
215
  catch (error) {
154
216
  index_js_1.Logger.getInstance().debug("[SDKStats] Error shutting down standalone pipeline.", error);
@@ -160,7 +222,8 @@ class SdkStatsManager {
160
222
  return true;
161
223
  }
162
224
  _cleanup() {
163
- this._meterProvider = undefined;
225
+ this._longMeterProvider = undefined;
226
+ this._shortMeterProvider = undefined;
164
227
  this._metrics = undefined;
165
228
  this._initialized = false;
166
229
  if (this._initialExportTimer) {
@@ -177,7 +240,7 @@ class SdkStatsManager {
177
240
  }
178
241
  }
179
242
  exports.SdkStatsManager = SdkStatsManager;
180
- function resolveExportInterval() {
243
+ function resolveLongExportInterval() {
181
244
  const raw = process.env[SDKSTATS_LONG_EXPORT_INTERVAL_ENV];
182
245
  if (!raw)
183
246
  return DEFAULT_LONG_EXPORT_INTERVAL_MS;
@@ -187,4 +250,14 @@ function resolveExportInterval() {
187
250
  }
188
251
  return Math.floor(seconds * 1000);
189
252
  }
253
+ function resolveShortExportInterval() {
254
+ const raw = process.env[SDKSTATS_SHORT_EXPORT_INTERVAL_ENV];
255
+ if (!raw)
256
+ return DEFAULT_SHORT_EXPORT_INTERVAL_MS;
257
+ const seconds = Number(raw);
258
+ if (!Number.isFinite(seconds) || seconds <= 0) {
259
+ return DEFAULT_SHORT_EXPORT_INTERVAL_MS;
260
+ }
261
+ return Math.floor(seconds * 1000);
262
+ }
190
263
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/sdkstats/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/sdkstats/manager.ts"],"names":[],"mappings":"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"}
@@ -7,14 +7,58 @@ import type { MeterProvider } from "@opentelemetry/sdk-metrics";
7
7
  */
8
8
  export declare const FEATURE_TYPE_FEATURE = 0;
9
9
  export declare const FEATURE_TYPE_INSTRUMENTATION = 1;
10
+ /**
11
+ * Options for {@link SdkStatsMetrics}.
12
+ */
13
+ export interface SdkStatsMetricsOptions {
14
+ /** Override the distro version reported on every observation. */
15
+ distroVersion?: string;
16
+ /**
17
+ * Customer instrumentation key emitted as the `cikey` customDimension
18
+ * on every SDKStats observation, per the Application Insights SDKStats
19
+ * spec. Reported as `"N/A"` when undefined or empty (e.g. for OTLP-only
20
+ * customers without an Application Insights connection string).
21
+ */
22
+ cikey?: string;
23
+ /**
24
+ * When `true`, skip the Feature / Feature.instrumentations gauges. Used
25
+ * on the Azure-Monitor-enabled path because the AzMon exporter's own
26
+ * long-interval SDKStats already emits those gauges (with our distro
27
+ * bits bridged in via `AZURE_MONITOR_STATSBEAT_FEATURES`); registering
28
+ * them here would double-count.
29
+ *
30
+ * The network SDKStats gauge (`Request_Success_Count`) is always
31
+ * registered regardless of this flag — coexistence with AzMon's own
32
+ * network SDKStats is safe because the (endpoint, host) attributes
33
+ * partition the time series.
34
+ */
35
+ networkOnly?: boolean;
36
+ /**
37
+ * MeterProvider for long-interval gauges (Feature /
38
+ * Feature.instrumentations). May be undefined when `networkOnly` is
39
+ * true. When provided, gauges are registered on a meter from this
40
+ * provider so they export at the long (24h) cadence.
41
+ */
42
+ longMeterProvider?: MeterProvider;
43
+ /**
44
+ * MeterProvider for short-interval gauges (network SDKStats like
45
+ * `Request_Success_Count`). Gauges are registered on a meter from
46
+ * this provider so they export at the short (15 min) cadence.
47
+ */
48
+ shortMeterProvider: MeterProvider;
49
+ }
10
50
  /**
11
51
  * Registers observable gauges that emit feature/instrumentation data
12
- * derived from the global SDKStats state.
52
+ * derived from the global SDKStats state, plus per-export network
53
+ * SDKStats counters drained from {@link ./networkStats.js}.
13
54
  */
14
55
  export declare class SdkStatsMetrics {
15
56
  private readonly commonAttributes;
16
- constructor(meterProvider: MeterProvider, distroVersion?: string);
57
+ constructor(options: SdkStatsMetricsOptions);
58
+ /** @deprecated Use the options-object overload instead. */
59
+ constructor(meterProvider: MeterProvider, options?: Omit<SdkStatsMetricsOptions, "shortMeterProvider" | "longMeterProvider">);
17
60
  private observeFeatures;
18
61
  private observeInstrumentations;
62
+ private makeNetworkCallback;
19
63
  }
20
64
  //# sourceMappingURL=metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAMhE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAM9C;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;gBAE9C,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM;IAqBhE,OAAO,CAAC,eAAe,CAcrB;IAEF,OAAO,CAAC,uBAAuB,CAU7B;CACH"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAgBhE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AA+D9C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,EAAE,aAAa,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;gBAE9C,OAAO,EAAE,sBAAsB;IAC3C,2DAA2D;gBAEzD,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,oBAAoB,GAAG,mBAAmB,CAAC;IA4EpF,OAAO,CAAC,eAAe,CAcrB;IAEF,OAAO,CAAC,uBAAuB,CAU7B;IAEF,OAAO,CAAC,mBAAmB;CAe5B"}
@@ -14,11 +14,12 @@ exports.SdkStatsMetrics = exports.FEATURE_TYPE_INSTRUMENTATION = exports.FEATURE
14
14
  * caller-supplied `MeterProvider`.
15
15
  *
16
16
  * Mirrors `src/microsoft/opentelemetry/_sdkstats/_metrics.py` from the
17
- * Python distro.
17
+ * Python implementation.
18
18
  */
19
19
  const node_os_1 = __importDefault(require("node:os"));
20
20
  const types_js_1 = require("../types.js");
21
21
  const state_js_1 = require("./state.js");
22
+ const networkStats_js_1 = require("./networkStats.js");
22
23
  /**
23
24
  * Feature SDKStats `type` dimension values, per the Application Insights
24
25
  * SDKStats specification.
@@ -29,29 +30,116 @@ exports.FEATURE_TYPE_FEATURE = 0;
29
30
  exports.FEATURE_TYPE_INSTRUMENTATION = 1;
30
31
  const FEATURE_METRIC_NAME = "Feature";
31
32
  const INSTRUMENTATION_METRIC_NAME = "Feature.instrumentations";
32
- const STATSBEAT_LANGUAGE = "node";
33
+ const SDKSTATS_LANGUAGE = "node";
34
+ const NETWORK_GAUGE_SPECS = [
35
+ {
36
+ metric: networkStats_js_1.REQUEST_SUCCESS_NAME,
37
+ unit: "count",
38
+ description: "Number of successful HTTP exports per endpoint",
39
+ keyAttributes: ["endpoint", "host"],
40
+ },
41
+ {
42
+ metric: networkStats_js_1.REQUEST_FAILURE_NAME,
43
+ unit: "count",
44
+ description: "Number of failed HTTP exports per endpoint, broken down by status code",
45
+ keyAttributes: ["endpoint", "host", "statusCode"],
46
+ },
47
+ {
48
+ metric: networkStats_js_1.REQUEST_DURATION_NAME,
49
+ unit: "ms",
50
+ description: "Average HTTP export request duration per endpoint",
51
+ keyAttributes: ["endpoint", "host"],
52
+ },
53
+ {
54
+ metric: networkStats_js_1.RETRY_COUNT_NAME,
55
+ unit: "count",
56
+ description: "Number of HTTP exports that returned a retryable status code",
57
+ keyAttributes: ["endpoint", "host", "statusCode"],
58
+ },
59
+ {
60
+ metric: networkStats_js_1.THROTTLE_COUNT_NAME,
61
+ unit: "count",
62
+ description: "Number of HTTP exports that returned a throttling status code (402/439)",
63
+ keyAttributes: ["endpoint", "host", "statusCode"],
64
+ },
65
+ {
66
+ metric: networkStats_js_1.EXCEPTION_COUNT_NAME,
67
+ unit: "count",
68
+ description: "Number of HTTP exports that raised an exception (no HTTP response)",
69
+ keyAttributes: ["endpoint", "host", "exceptionType"],
70
+ },
71
+ ];
33
72
  /**
34
73
  * Registers observable gauges that emit feature/instrumentation data
35
- * derived from the global SDKStats state.
74
+ * derived from the global SDKStats state, plus per-export network
75
+ * SDKStats counters drained from {@link ./networkStats.js}.
36
76
  */
37
77
  class SdkStatsMetrics {
38
78
  commonAttributes;
39
- constructor(meterProvider, distroVersion) {
40
- const meter = meterProvider.getMeter("microsoft.opentelemetry.sdkstats");
79
+ constructor(providerOrOptions, legacyOptions) {
80
+ let longMeterProvider;
81
+ let shortMeterProvider;
82
+ let distroVersion;
83
+ let networkOnly;
84
+ let cikey;
85
+ if ("shortMeterProvider" in providerOrOptions) {
86
+ // New options-object overload
87
+ longMeterProvider = providerOrOptions.longMeterProvider;
88
+ shortMeterProvider = providerOrOptions.shortMeterProvider;
89
+ distroVersion = providerOrOptions.distroVersion;
90
+ networkOnly = providerOrOptions.networkOnly ?? false;
91
+ cikey = providerOrOptions.cikey;
92
+ }
93
+ else {
94
+ // Legacy single-provider overload (used by tests)
95
+ longMeterProvider = providerOrOptions;
96
+ shortMeterProvider = providerOrOptions;
97
+ distroVersion = legacyOptions?.distroVersion;
98
+ networkOnly = legacyOptions?.networkOnly ?? false;
99
+ cikey = legacyOptions?.cikey;
100
+ }
101
+ // Per spec/sdkstats.md the required customDimensions on every
102
+ // SDKStats observation are: rp, attach, runtimeVersion, os,
103
+ // language, version, cikey (plus endpoint/host on network gauges and
104
+ // statusCode/exceptionType where applicable). `cikey` falls back to
105
+ // "N/A" when unset.
41
106
  this.commonAttributes = {
107
+ rp: "unknown",
108
+ attach: "Manual",
42
109
  runtimeVersion: process.version,
43
110
  os: node_os_1.default.type(),
44
- language: STATSBEAT_LANGUAGE,
111
+ language: SDKSTATS_LANGUAGE,
45
112
  version: distroVersion || types_js_1.MICROSOFT_OPENTELEMETRY_VERSION,
113
+ cikey: cikey || "N/A",
46
114
  };
47
- const featureGauge = meter.createObservableGauge(FEATURE_METRIC_NAME, {
48
- description: "SDKStats metric tracking enabled features",
49
- });
50
- featureGauge.addCallback(this.observeFeatures);
51
- const instrumentationGauge = meter.createObservableGauge(INSTRUMENTATION_METRIC_NAME, {
52
- description: "SDKStats metric tracking enabled instrumentations",
53
- });
54
- instrumentationGauge.addCallback(this.observeInstrumentations);
115
+ // Feature / instrumentation bitmask gauges are skipped when running
116
+ // alongside the Azure Monitor exporter's own SDKStats — that pipeline
117
+ // already emits them (with our feature bits bridged in via
118
+ // `_bridge_sdkstats_to_azure_monitor`) and would collide with these.
119
+ // These gauges are registered on the long-interval MeterProvider.
120
+ if (!networkOnly && longMeterProvider) {
121
+ const longMeter = longMeterProvider.getMeter("microsoft.opentelemetry.sdkstats");
122
+ const featureGauge = longMeter.createObservableGauge(FEATURE_METRIC_NAME, {
123
+ description: "SDKStats metric tracking enabled features",
124
+ });
125
+ featureGauge.addCallback(this.observeFeatures);
126
+ const instrumentationGauge = longMeter.createObservableGauge(INSTRUMENTATION_METRIC_NAME, {
127
+ description: "SDKStats metric tracking enabled instrumentations",
128
+ });
129
+ instrumentationGauge.addCallback(this.observeInstrumentations);
130
+ }
131
+ // Network SDKStats gauges — always registered on the short-interval
132
+ // MeterProvider. Each callback drains the counts accumulated by
133
+ // exporters between observations and emits one Observation per
134
+ // (endpoint, host) tuple.
135
+ const shortMeter = shortMeterProvider.getMeter("microsoft.opentelemetry.sdkstats.network");
136
+ for (const spec of NETWORK_GAUGE_SPECS) {
137
+ const gauge = shortMeter.createObservableGauge(spec.metric, {
138
+ unit: spec.unit,
139
+ description: spec.description,
140
+ });
141
+ gauge.addCallback(this.makeNetworkCallback(spec));
142
+ }
55
143
  }
56
144
  observeFeatures = (result) => {
57
145
  const featureBits = (0, state_js_1.getSdkStatsFeatureFlags)();
@@ -79,6 +167,21 @@ class SdkStatsMetrics {
79
167
  type: exports.FEATURE_TYPE_INSTRUMENTATION,
80
168
  });
81
169
  };
170
+ makeNetworkCallback(spec) {
171
+ return (result) => {
172
+ for (const [key, value] of (0, networkStats_js_1.drain)(spec.metric)) {
173
+ const attrs = { ...this.commonAttributes };
174
+ for (let i = 0; i < spec.keyAttributes.length; i++) {
175
+ const name = spec.keyAttributes[i];
176
+ const part = key[i];
177
+ if (part !== undefined) {
178
+ attrs[name] = part;
179
+ }
180
+ }
181
+ result.observe(value, attrs);
182
+ }
183
+ };
184
+ }
82
185
  }
83
186
  exports.SdkStatsMetrics = SdkStatsMetrics;
84
187
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;AAElC;;;;;;;;;GASG;AAEH,sDAAyB;AAIzB,0CAA8D;AAC9D,yCAAsF;AAEtF;;;;;GAKG;AACU,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,4BAA4B,GAAG,CAAC,CAAC;AAE9C,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,2BAA2B,GAAG,0BAA0B,CAAC;AAC/D,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;GAGG;AACH,MAAa,eAAe;IACT,gBAAgB,CAAyB;IAE1D,YAAY,aAA4B,EAAE,aAAsB;QAC9D,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAEzE,IAAI,CAAC,gBAAgB,GAAG;YACtB,cAAc,EAAE,OAAO,CAAC,OAAO;YAC/B,EAAE,EAAE,iBAAE,CAAC,IAAI,EAAE;YACb,QAAQ,EAAE,kBAAkB;YAC5B,OAAO,EAAE,aAAa,IAAI,0CAA+B;SAC1D,CAAC;QAEF,MAAM,YAAY,GAAG,KAAK,CAAC,qBAAqB,CAAC,mBAAmB,EAAE;YACpE,WAAW,EAAE,2CAA2C;SACzD,CAAC,CAAC;QACH,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE/C,MAAM,oBAAoB,GAAG,KAAK,CAAC,qBAAqB,CAAC,2BAA2B,EAAE;YACpF,WAAW,EAAE,mDAAmD;SACjE,CAAC,CAAC;QACH,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACjE,CAAC;IAEO,eAAe,GAAG,CAAC,MAAwB,EAAQ,EAAE;QAC3D,MAAM,WAAW,GAAG,IAAA,kCAAuB,GAAE,CAAC;QAC9C,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,oEAAoE;YACpE,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE;YAChB,GAAG,IAAI,CAAC,gBAAgB;YACxB,oEAAoE;YACpE,kEAAkE;YAClE,qBAAqB;YACrB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC;YAC5B,IAAI,EAAE,4BAAoB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,uBAAuB,GAAG,CAAC,MAAwB,EAAQ,EAAE;QACnE,MAAM,SAAS,GAAG,IAAA,0CAA+B,GAAE,CAAC;QACpD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE;YAChB,GAAG,IAAI,CAAC,gBAAgB;YACxB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;YAC1B,IAAI,EAAE,oCAA4B;SACnC,CAAC,CAAC;IACL,CAAC,CAAC;CACH;AAnDD,0CAmDC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Network SDKStats accumulator for SDK self-telemetry.
3
+ *
4
+ * Per-export counters and timings for telemetry exporters. Exporters call
5
+ * the {@link recordSuccess} / {@link recordFailure} / {@link recordRetry} /
6
+ * {@link recordThrottle} / {@link recordException} / {@link recordDuration}
7
+ * functions after each transmit; the {@link SdkStatsMetrics}
8
+ * observable-gauge callbacks drain the accumulated counts on each export
9
+ * interval.
10
+ *
11
+ * Mirrors `src/microsoft/opentelemetry/_sdkstats/_utils.py` from the Python
12
+ * implementation.
13
+ */
14
+ import { REQUEST_SUCCESS_NAME, REQUEST_FAILURE_NAME, REQUEST_DURATION_NAME, RETRY_COUNT_NAME, THROTTLE_COUNT_NAME, EXCEPTION_COUNT_NAME, NETWORK_METRIC_NAMES, type NetworkMetricName } from "./constants.js";
15
+ export { REQUEST_SUCCESS_NAME, REQUEST_FAILURE_NAME, REQUEST_DURATION_NAME, RETRY_COUNT_NAME, THROTTLE_COUNT_NAME, EXCEPTION_COUNT_NAME, NETWORK_METRIC_NAMES, };
16
+ export type { NetworkMetricName };
17
+ /**
18
+ * Composite key for an aggregated network SDKStats counter.
19
+ *
20
+ * Per the Application Insights SDKStats spec the per-key dimensions are
21
+ * `endpoint` (category, e.g. "a365") and `host` (stamp-specific
22
+ * region or hostname), optionally followed by a third dimension —
23
+ * `statusCode` (failure/retry/throttle) or `exceptionType` (exception).
24
+ *
25
+ * @internal
26
+ */
27
+ export type NetworkKey = readonly string[];
28
+ export declare function recordSuccess(endpoint: string, host: string): void;
29
+ export declare function recordFailure(endpoint: string, host: string, statusCode: number | string): void;
30
+ export declare function recordRetry(endpoint: string, host: string, statusCode: number | string): void;
31
+ export declare function recordThrottle(endpoint: string, host: string, statusCode: number | string): void;
32
+ export declare function recordException(endpoint: string, host: string, exceptionType: string): void;
33
+ export declare function recordDuration(endpoint: string, host: string, durationMs: number): void;
34
+ /**
35
+ * Classification of an HTTP status code per the Application Insights
36
+ * SDKStats Network specification.
37
+ *
38
+ * - `success`: 200 (and 206 if all envelopes were accepted — handled by
39
+ * the caller, this helper only returns the bucket for a single response
40
+ * code).
41
+ * - `retry`: 401, 403, 408, 429, 500, 502, 503, 504.
42
+ * - `throttle`: 402, 439.
43
+ * - `failure`: everything else (excluding redirects 307/308 which are
44
+ * followed transparently and never reported).
45
+ */
46
+ export type StatusCodeKind = "success" | "retry" | "throttle" | "failure" | "ignored";
47
+ export declare function classifyStatusCode(status: number): StatusCodeKind;
48
+ /**
49
+ * Compute the stamp-specific short host for the SDKStats `host` dimension.
50
+ *
51
+ * Mirrors `getShortHost` in the AzMon exporter's `NetworkStatsbeatMetrics` class
52
+ * but additionally strips any trailing port (`:4318`) so localhost-style
53
+ * URLs report a clean `localhost` instead of `localhost:4318`. Examples:
54
+ * `https://westus2-1.in.applicationinsights.azure.com` → `westus2`
55
+ * `http://localhost:4318/v1/traces` → `localhost`
56
+ * `https://collector.example.com:8080` → `collector`
57
+ * `https://my-otlp-collector.example.com` → `my-otlp-collector`
58
+ * For non-URL inputs, returns the hostname or the raw input on failure.
59
+ *
60
+ * @internal
61
+ */
62
+ export declare function shortHost(input: string): string;
63
+ /**
64
+ * Atomically return and reset the counts for `metric`.
65
+ *
66
+ * Used by the observable-gauge callbacks so each observation reports only
67
+ * the delta accumulated during the export interval.
68
+ *
69
+ * For {@link REQUEST_DURATION_NAME} the reported value is the average of
70
+ * all durations recorded since the previous drain, per the spec
71
+ * ("Request_Duration ... avg request duration during the scheduled
72
+ * interval").
73
+ */
74
+ export declare function drain(metric: NetworkMetricName): Map<NetworkKey, number>;
75
+ /**
76
+ * @internal Test-only: clear all network SDKStats counters.
77
+ */
78
+ export declare function _resetAllForTest(): void;
79
+ //# sourceMappingURL=networkStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkStats.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/networkStats.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AAOH,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EAIpB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,CAAC;AACF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,MAAM,EAAE,CAAC;AA0C3C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE/F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7F;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhG;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAE3F;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAUvF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAMjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwB/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAgBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC"}