@microsoft/opentelemetry 1.0.1 → 1.1.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 (344) hide show
  1. package/README.md +70 -68
  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 +6 -1
  5. package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
  6. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +9 -0
  7. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  8. package/dist/commonjs/a365/constants.d.ts +26 -2
  9. package/dist/commonjs/a365/constants.d.ts.map +1 -1
  10. package/dist/commonjs/a365/constants.js +33 -1
  11. package/dist/commonjs/a365/constants.js.map +1 -1
  12. package/dist/commonjs/a365/contracts.d.ts +108 -8
  13. package/dist/commonjs/a365/contracts.d.ts.map +1 -1
  14. package/dist/commonjs/a365/contracts.js +48 -3
  15. package/dist/commonjs/a365/contracts.js.map +1 -1
  16. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  17. package/dist/commonjs/a365/exporter/Agent365Exporter.js +55 -3
  18. package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
  19. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +20 -1
  20. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  21. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +2 -0
  22. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  23. package/dist/commonjs/a365/exporter/AgentIdentity.d.ts +17 -0
  24. package/dist/commonjs/a365/exporter/AgentIdentity.d.ts.map +1 -0
  25. package/dist/commonjs/a365/exporter/AgentIdentity.js +5 -0
  26. package/dist/commonjs/a365/exporter/AgentIdentity.js.map +1 -0
  27. package/dist/commonjs/a365/exporter/TokenResolverContext.d.ts +18 -0
  28. package/dist/commonjs/a365/exporter/TokenResolverContext.d.ts.map +1 -0
  29. package/dist/commonjs/a365/exporter/TokenResolverContext.js +5 -0
  30. package/dist/commonjs/a365/exporter/TokenResolverContext.js.map +1 -0
  31. package/dist/commonjs/a365/exporter/index.d.ts +3 -1
  32. package/dist/commonjs/a365/exporter/index.d.ts.map +1 -1
  33. package/dist/commonjs/a365/exporter/index.js.map +1 -1
  34. package/dist/commonjs/a365/exporter/utils.d.ts +5 -0
  35. package/dist/commonjs/a365/exporter/utils.d.ts.map +1 -1
  36. package/dist/commonjs/a365/exporter/utils.js +23 -25
  37. package/dist/commonjs/a365/exporter/utils.js.map +1 -1
  38. package/dist/commonjs/a365/hosting/index.d.ts +1 -1
  39. package/dist/commonjs/a365/hosting/index.d.ts.map +1 -1
  40. package/dist/commonjs/a365/hosting/index.js +2 -1
  41. package/dist/commonjs/a365/hosting/index.js.map +1 -1
  42. package/dist/commonjs/a365/hosting/scopeUtils.js +1 -1
  43. package/dist/commonjs/a365/hosting/scopeUtils.js.map +1 -1
  44. package/dist/commonjs/a365/hosting/turnContextUtils.d.ts +6 -1
  45. package/dist/commonjs/a365/hosting/turnContextUtils.d.ts.map +1 -1
  46. package/dist/commonjs/a365/hosting/turnContextUtils.js +30 -4
  47. package/dist/commonjs/a365/hosting/turnContextUtils.js.map +1 -1
  48. package/dist/commonjs/a365/hosting/types.d.ts +1 -0
  49. package/dist/commonjs/a365/hosting/types.d.ts.map +1 -1
  50. package/dist/commonjs/a365/index.d.ts +5 -5
  51. package/dist/commonjs/a365/index.d.ts.map +1 -1
  52. package/dist/commonjs/a365/index.js +8 -2
  53. package/dist/commonjs/a365/index.js.map +1 -1
  54. package/dist/commonjs/a365/message-utils.d.ts +10 -5
  55. package/dist/commonjs/a365/message-utils.d.ts.map +1 -1
  56. package/dist/commonjs/a365/message-utils.js +27 -24
  57. package/dist/commonjs/a365/message-utils.js.map +1 -1
  58. package/dist/commonjs/a365/processors/A365SpanProcessor.d.ts +3 -0
  59. package/dist/commonjs/a365/processors/A365SpanProcessor.d.ts.map +1 -1
  60. package/dist/commonjs/a365/processors/A365SpanProcessor.js +12 -4
  61. package/dist/commonjs/a365/processors/A365SpanProcessor.js.map +1 -1
  62. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.d.ts +45 -0
  63. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.d.ts.map +1 -0
  64. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.js +132 -0
  65. package/dist/commonjs/a365/scopes/ApplyGuardrailScope.js.map +1 -0
  66. package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts +7 -1
  67. package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
  68. package/dist/commonjs/a365/scopes/OpenTelemetryScope.js +8 -0
  69. package/dist/commonjs/a365/scopes/OpenTelemetryScope.js.map +1 -1
  70. package/dist/commonjs/a365/scopes/OutputScope.d.ts.map +1 -1
  71. package/dist/commonjs/a365/scopes/OutputScope.js +2 -4
  72. package/dist/commonjs/a365/scopes/OutputScope.js.map +1 -1
  73. package/dist/commonjs/a365/scopes/index.d.ts +1 -0
  74. package/dist/commonjs/a365/scopes/index.d.ts.map +1 -1
  75. package/dist/commonjs/a365/scopes/index.js +3 -1
  76. package/dist/commonjs/a365/scopes/index.js.map +1 -1
  77. package/dist/commonjs/azureMonitor/index.d.ts +4 -4
  78. package/dist/commonjs/azureMonitor/index.d.ts.map +1 -1
  79. package/dist/commonjs/azureMonitor/index.js +3 -3
  80. package/dist/commonjs/azureMonitor/index.js.map +1 -1
  81. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +1 -1
  82. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
  83. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js +6 -6
  84. package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
  85. package/dist/commonjs/distro/distro.d.ts.map +1 -1
  86. package/dist/commonjs/distro/distro.js +66 -32
  87. package/dist/commonjs/distro/distro.js.map +1 -1
  88. package/dist/commonjs/genai/index.d.ts +1 -0
  89. package/dist/commonjs/genai/index.d.ts.map +1 -1
  90. package/dist/commonjs/genai/index.js +9 -0
  91. package/dist/commonjs/genai/index.js.map +1 -1
  92. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +3 -3
  93. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  94. package/dist/commonjs/genai/instrumentations/langchain/tracer.js +31 -9
  95. package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
  96. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts +6 -0
  97. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  98. package/dist/commonjs/genai/instrumentations/langchain/utils.js +159 -21
  99. package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
  100. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +2 -2
  101. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
  102. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +1 -1
  103. package/dist/commonjs/genai/instrumentations/openai/utils.d.ts +1 -1
  104. package/dist/commonjs/genai/instrumentations/openai/utils.d.ts.map +1 -1
  105. package/dist/commonjs/genai/instrumentations/openai/utils.js +9 -4
  106. package/dist/commonjs/genai/instrumentations/openai/utils.js.map +1 -1
  107. package/dist/commonjs/genai/mainAgent/constants.d.ts +16 -0
  108. package/dist/commonjs/genai/mainAgent/constants.d.ts.map +1 -0
  109. package/dist/commonjs/genai/mainAgent/constants.js +21 -0
  110. package/dist/commonjs/genai/mainAgent/constants.js.map +1 -0
  111. package/dist/commonjs/genai/mainAgent/index.d.ts +3 -0
  112. package/dist/commonjs/genai/mainAgent/index.d.ts.map +1 -0
  113. package/dist/commonjs/genai/mainAgent/index.js +15 -0
  114. package/dist/commonjs/genai/mainAgent/index.js.map +1 -0
  115. package/dist/commonjs/genai/mainAgent/processor.d.ts +39 -0
  116. package/dist/commonjs/genai/mainAgent/processor.d.ts.map +1 -0
  117. package/dist/commonjs/genai/mainAgent/processor.js +125 -0
  118. package/dist/commonjs/genai/mainAgent/processor.js.map +1 -0
  119. package/dist/commonjs/genai/semconv.d.ts +3 -0
  120. package/dist/commonjs/genai/semconv.d.ts.map +1 -1
  121. package/dist/commonjs/genai/semconv.js +4 -1
  122. package/dist/commonjs/genai/semconv.js.map +1 -1
  123. package/dist/commonjs/index.d.ts +4 -3
  124. package/dist/commonjs/index.d.ts.map +1 -1
  125. package/dist/commonjs/index.js +16 -2
  126. package/dist/commonjs/index.js.map +1 -1
  127. package/dist/commonjs/otlp/handler.d.ts.map +1 -1
  128. package/dist/commonjs/otlp/handler.js +17 -3
  129. package/dist/commonjs/otlp/handler.js.map +1 -1
  130. package/dist/commonjs/sdkstats/index.d.ts +4 -0
  131. package/dist/commonjs/sdkstats/index.d.ts.map +1 -1
  132. package/dist/commonjs/sdkstats/index.js +12 -1
  133. package/dist/commonjs/sdkstats/index.js.map +1 -1
  134. package/dist/commonjs/sdkstats/manager.d.ts +7 -3
  135. package/dist/commonjs/sdkstats/manager.d.ts.map +1 -1
  136. package/dist/commonjs/sdkstats/manager.js +98 -25
  137. package/dist/commonjs/sdkstats/manager.js.map +1 -1
  138. package/dist/commonjs/sdkstats/metrics.d.ts +46 -2
  139. package/dist/commonjs/sdkstats/metrics.d.ts.map +1 -1
  140. package/dist/commonjs/sdkstats/metrics.js +82 -13
  141. package/dist/commonjs/sdkstats/metrics.js.map +1 -1
  142. package/dist/commonjs/sdkstats/networkStats.d.ts +57 -0
  143. package/dist/commonjs/sdkstats/networkStats.d.ts.map +1 -0
  144. package/dist/commonjs/sdkstats/networkStats.js +126 -0
  145. package/dist/commonjs/sdkstats/networkStats.js.map +1 -0
  146. package/dist/commonjs/sdkstats/otlpWrapper.d.ts +56 -0
  147. package/dist/commonjs/sdkstats/otlpWrapper.d.ts.map +1 -0
  148. package/dist/commonjs/sdkstats/otlpWrapper.js +121 -0
  149. package/dist/commonjs/sdkstats/otlpWrapper.js.map +1 -0
  150. package/dist/commonjs/sdkstats/state.d.ts +6 -6
  151. package/dist/commonjs/sdkstats/state.d.ts.map +1 -1
  152. package/dist/commonjs/sdkstats/state.js +2 -2
  153. package/dist/commonjs/sdkstats/state.js.map +1 -1
  154. package/dist/commonjs/types.d.ts +16 -16
  155. package/dist/commonjs/types.d.ts.map +1 -1
  156. package/dist/commonjs/types.js +88 -88
  157. package/dist/commonjs/types.js.map +1 -1
  158. package/dist/commonjs/utils/index.d.ts +1 -1
  159. package/dist/commonjs/utils/index.d.ts.map +1 -1
  160. package/dist/commonjs/utils/index.js +2 -2
  161. package/dist/commonjs/utils/index.js.map +1 -1
  162. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.d.ts +1 -1
  163. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.js +11 -11
  164. package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.js.map +1 -1
  165. package/dist/commonjs/utils/sdkStats.d.ts +15 -0
  166. package/dist/commonjs/utils/sdkStats.d.ts.map +1 -0
  167. package/dist/commonjs/utils/sdkStats.js +127 -0
  168. package/dist/commonjs/utils/sdkStats.js.map +1 -0
  169. package/dist/esm/a365/configuration/A365Configuration.d.ts +3 -0
  170. package/dist/esm/a365/configuration/A365Configuration.d.ts.map +1 -1
  171. package/dist/esm/a365/configuration/A365Configuration.js +6 -1
  172. package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
  173. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +9 -0
  174. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  175. package/dist/esm/a365/constants.d.ts +26 -2
  176. package/dist/esm/a365/constants.d.ts.map +1 -1
  177. package/dist/esm/a365/constants.js +33 -1
  178. package/dist/esm/a365/constants.js.map +1 -1
  179. package/dist/esm/a365/contracts.d.ts +108 -8
  180. package/dist/esm/a365/contracts.d.ts.map +1 -1
  181. package/dist/esm/a365/contracts.js +47 -2
  182. package/dist/esm/a365/contracts.js.map +1 -1
  183. package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  184. package/dist/esm/a365/exporter/Agent365Exporter.js +56 -4
  185. package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
  186. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +20 -1
  187. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  188. package/dist/esm/a365/exporter/Agent365ExporterOptions.js +2 -0
  189. package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  190. package/dist/esm/a365/exporter/AgentIdentity.d.ts +17 -0
  191. package/dist/esm/a365/exporter/AgentIdentity.d.ts.map +1 -0
  192. package/dist/esm/a365/exporter/AgentIdentity.js +4 -0
  193. package/dist/esm/a365/exporter/AgentIdentity.js.map +1 -0
  194. package/dist/esm/a365/exporter/TokenResolverContext.d.ts +18 -0
  195. package/dist/esm/a365/exporter/TokenResolverContext.d.ts.map +1 -0
  196. package/dist/esm/a365/exporter/TokenResolverContext.js +4 -0
  197. package/dist/esm/a365/exporter/TokenResolverContext.js.map +1 -0
  198. package/dist/esm/a365/exporter/index.d.ts +3 -1
  199. package/dist/esm/a365/exporter/index.d.ts.map +1 -1
  200. package/dist/esm/a365/exporter/index.js.map +1 -1
  201. package/dist/esm/a365/exporter/utils.d.ts +5 -0
  202. package/dist/esm/a365/exporter/utils.d.ts.map +1 -1
  203. package/dist/esm/a365/exporter/utils.js +22 -24
  204. package/dist/esm/a365/exporter/utils.js.map +1 -1
  205. package/dist/esm/a365/hosting/index.d.ts +1 -1
  206. package/dist/esm/a365/hosting/index.d.ts.map +1 -1
  207. package/dist/esm/a365/hosting/index.js +1 -1
  208. package/dist/esm/a365/hosting/index.js.map +1 -1
  209. package/dist/esm/a365/hosting/scopeUtils.js +2 -2
  210. package/dist/esm/a365/hosting/scopeUtils.js.map +1 -1
  211. package/dist/esm/a365/hosting/turnContextUtils.d.ts +6 -1
  212. package/dist/esm/a365/hosting/turnContextUtils.d.ts.map +1 -1
  213. package/dist/esm/a365/hosting/turnContextUtils.js +29 -4
  214. package/dist/esm/a365/hosting/turnContextUtils.js.map +1 -1
  215. package/dist/esm/a365/hosting/types.d.ts +1 -0
  216. package/dist/esm/a365/hosting/types.d.ts.map +1 -1
  217. package/dist/esm/a365/index.d.ts +5 -5
  218. package/dist/esm/a365/index.d.ts.map +1 -1
  219. package/dist/esm/a365/index.js +3 -3
  220. package/dist/esm/a365/index.js.map +1 -1
  221. package/dist/esm/a365/message-utils.d.ts +10 -5
  222. package/dist/esm/a365/message-utils.d.ts.map +1 -1
  223. package/dist/esm/a365/message-utils.js +28 -25
  224. package/dist/esm/a365/message-utils.js.map +1 -1
  225. package/dist/esm/a365/processors/A365SpanProcessor.d.ts +3 -0
  226. package/dist/esm/a365/processors/A365SpanProcessor.d.ts.map +1 -1
  227. package/dist/esm/a365/processors/A365SpanProcessor.js +12 -4
  228. package/dist/esm/a365/processors/A365SpanProcessor.js.map +1 -1
  229. package/dist/esm/a365/scopes/ApplyGuardrailScope.d.ts +45 -0
  230. package/dist/esm/a365/scopes/ApplyGuardrailScope.d.ts.map +1 -0
  231. package/dist/esm/a365/scopes/ApplyGuardrailScope.js +128 -0
  232. package/dist/esm/a365/scopes/ApplyGuardrailScope.js.map +1 -0
  233. package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts +7 -1
  234. package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
  235. package/dist/esm/a365/scopes/OpenTelemetryScope.js +8 -0
  236. package/dist/esm/a365/scopes/OpenTelemetryScope.js.map +1 -1
  237. package/dist/esm/a365/scopes/OutputScope.d.ts.map +1 -1
  238. package/dist/esm/a365/scopes/OutputScope.js +2 -4
  239. package/dist/esm/a365/scopes/OutputScope.js.map +1 -1
  240. package/dist/esm/a365/scopes/index.d.ts +1 -0
  241. package/dist/esm/a365/scopes/index.d.ts.map +1 -1
  242. package/dist/esm/a365/scopes/index.js +1 -0
  243. package/dist/esm/a365/scopes/index.js.map +1 -1
  244. package/dist/esm/azureMonitor/index.d.ts +4 -4
  245. package/dist/esm/azureMonitor/index.d.ts.map +1 -1
  246. package/dist/esm/azureMonitor/index.js +2 -2
  247. package/dist/esm/azureMonitor/index.js.map +1 -1
  248. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +1 -1
  249. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
  250. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js +6 -6
  251. package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
  252. package/dist/esm/distro/distro.d.ts.map +1 -1
  253. package/dist/esm/distro/distro.js +58 -24
  254. package/dist/esm/distro/distro.js.map +1 -1
  255. package/dist/esm/genai/index.d.ts +1 -0
  256. package/dist/esm/genai/index.d.ts.map +1 -1
  257. package/dist/esm/genai/index.js +1 -0
  258. package/dist/esm/genai/index.js.map +1 -1
  259. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +3 -3
  260. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  261. package/dist/esm/genai/instrumentations/langchain/tracer.js +31 -9
  262. package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
  263. package/dist/esm/genai/instrumentations/langchain/utils.d.ts +6 -0
  264. package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  265. package/dist/esm/genai/instrumentations/langchain/utils.js +155 -23
  266. package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
  267. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +2 -2
  268. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
  269. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +1 -1
  270. package/dist/esm/genai/instrumentations/openai/utils.d.ts +1 -1
  271. package/dist/esm/genai/instrumentations/openai/utils.d.ts.map +1 -1
  272. package/dist/esm/genai/instrumentations/openai/utils.js +10 -5
  273. package/dist/esm/genai/instrumentations/openai/utils.js.map +1 -1
  274. package/dist/esm/genai/mainAgent/constants.d.ts +16 -0
  275. package/dist/esm/genai/mainAgent/constants.d.ts.map +1 -0
  276. package/dist/esm/genai/mainAgent/constants.js +18 -0
  277. package/dist/esm/genai/mainAgent/constants.js.map +1 -0
  278. package/dist/esm/genai/mainAgent/index.d.ts +3 -0
  279. package/dist/esm/genai/mainAgent/index.d.ts.map +1 -0
  280. package/dist/esm/genai/mainAgent/index.js +5 -0
  281. package/dist/esm/genai/mainAgent/index.js.map +1 -0
  282. package/dist/esm/genai/mainAgent/processor.d.ts +39 -0
  283. package/dist/esm/genai/mainAgent/processor.d.ts.map +1 -0
  284. package/dist/esm/genai/mainAgent/processor.js +120 -0
  285. package/dist/esm/genai/mainAgent/processor.js.map +1 -0
  286. package/dist/esm/genai/semconv.d.ts +3 -0
  287. package/dist/esm/genai/semconv.d.ts.map +1 -1
  288. package/dist/esm/genai/semconv.js +3 -0
  289. package/dist/esm/genai/semconv.js.map +1 -1
  290. package/dist/esm/index.d.ts +4 -3
  291. package/dist/esm/index.d.ts.map +1 -1
  292. package/dist/esm/index.js +3 -1
  293. package/dist/esm/index.js.map +1 -1
  294. package/dist/esm/otlp/handler.d.ts.map +1 -1
  295. package/dist/esm/otlp/handler.js +17 -3
  296. package/dist/esm/otlp/handler.js.map +1 -1
  297. package/dist/esm/sdkstats/index.d.ts +4 -0
  298. package/dist/esm/sdkstats/index.d.ts.map +1 -1
  299. package/dist/esm/sdkstats/index.js +2 -0
  300. package/dist/esm/sdkstats/index.js.map +1 -1
  301. package/dist/esm/sdkstats/manager.d.ts +7 -3
  302. package/dist/esm/sdkstats/manager.d.ts.map +1 -1
  303. package/dist/esm/sdkstats/manager.js +98 -25
  304. package/dist/esm/sdkstats/manager.js.map +1 -1
  305. package/dist/esm/sdkstats/metrics.d.ts +46 -2
  306. package/dist/esm/sdkstats/metrics.d.ts.map +1 -1
  307. package/dist/esm/sdkstats/metrics.js +82 -13
  308. package/dist/esm/sdkstats/metrics.js.map +1 -1
  309. package/dist/esm/sdkstats/networkStats.d.ts +57 -0
  310. package/dist/esm/sdkstats/networkStats.d.ts.map +1 -0
  311. package/dist/esm/sdkstats/networkStats.js +119 -0
  312. package/dist/esm/sdkstats/networkStats.js.map +1 -0
  313. package/dist/esm/sdkstats/otlpWrapper.d.ts +56 -0
  314. package/dist/esm/sdkstats/otlpWrapper.d.ts.map +1 -0
  315. package/dist/esm/sdkstats/otlpWrapper.js +115 -0
  316. package/dist/esm/sdkstats/otlpWrapper.js.map +1 -0
  317. package/dist/esm/sdkstats/state.d.ts +6 -6
  318. package/dist/esm/sdkstats/state.d.ts.map +1 -1
  319. package/dist/esm/sdkstats/state.js +2 -2
  320. package/dist/esm/sdkstats/state.js.map +1 -1
  321. package/dist/esm/types.d.ts +16 -16
  322. package/dist/esm/types.d.ts.map +1 -1
  323. package/dist/esm/types.js +87 -87
  324. package/dist/esm/types.js.map +1 -1
  325. package/dist/esm/utils/index.d.ts +1 -1
  326. package/dist/esm/utils/index.d.ts.map +1 -1
  327. package/dist/esm/utils/index.js +1 -1
  328. package/dist/esm/utils/index.js.map +1 -1
  329. package/dist/esm/utils/opentelemetryInstrumentationPatcher.d.ts +1 -1
  330. package/dist/esm/utils/opentelemetryInstrumentationPatcher.js +12 -12
  331. package/dist/esm/utils/opentelemetryInstrumentationPatcher.js.map +1 -1
  332. package/dist/esm/utils/sdkStats.d.ts +15 -0
  333. package/dist/esm/utils/sdkStats.d.ts.map +1 -0
  334. package/dist/esm/utils/sdkStats.js +124 -0
  335. package/dist/esm/utils/sdkStats.js.map +1 -0
  336. package/package.json +25 -25
  337. package/dist/commonjs/utils/statsbeat.d.ts +0 -15
  338. package/dist/commonjs/utils/statsbeat.d.ts.map +0 -1
  339. package/dist/commonjs/utils/statsbeat.js +0 -127
  340. package/dist/commonjs/utils/statsbeat.js.map +0 -1
  341. package/dist/esm/utils/statsbeat.d.ts +0 -15
  342. package/dist/esm/utils/statsbeat.d.ts.map +0 -1
  343. package/dist/esm/utils/statsbeat.js +0 -124
  344. package/dist/esm/utils/statsbeat.js.map +0 -1
@@ -7,6 +7,7 @@ import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
7
7
  import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
8
8
  import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
9
9
  import { Logger } from "../shared/logging/index.js";
10
+ import { NetworkStatsLogExporter, NetworkStatsMetricExporter, NetworkStatsSpanExporter, isSdkStatsEnabled, } from "../sdkstats/index.js";
10
11
  const OTEL_EXPORTER_OTLP_ENDPOINT = "OTEL_EXPORTER_OTLP_ENDPOINT";
11
12
  const OTEL_EXPORTER_OTLP_TRACES_ENDPOINT = "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT";
12
13
  const OTEL_EXPORTER_OTLP_METRICS_ENDPOINT = "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT";
@@ -111,11 +112,18 @@ export function isOtlpEnabled() {
111
112
  export function createOtlpComponents() {
112
113
  const components = {};
113
114
  Logger.getInstance().info("OTLP export enabled for traces, metrics, and logs.");
115
+ // When SDKStats is enabled, decorate each OTLP exporter with the
116
+ // matching NetworkStats* wrapper so per-export success / failure /
117
+ // exception / duration counters reach the standalone SDKStats pipeline.
118
+ const recordNetworkStats = isSdkStatsEnabled();
114
119
  // Trace exporter — reads OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT,
115
120
  // OTEL_EXPORTER_OTLP_HEADERS, OTEL_EXPORTER_OTLP_TRACES_HEADERS,
116
121
  // OTEL_EXPORTER_OTLP_TIMEOUT, OTEL_EXPORTER_OTLP_TRACES_TIMEOUT,
117
122
  // OTEL_EXPORTER_OTLP_COMPRESSION, OTEL_EXPORTER_OTLP_TRACES_COMPRESSION
118
- const traceExporter = new OTLPTraceExporter();
123
+ let traceExporter = new OTLPTraceExporter();
124
+ if (recordNetworkStats) {
125
+ traceExporter = new NetworkStatsSpanExporter(traceExporter);
126
+ }
119
127
  components.spanProcessor = new BatchSpanProcessor(traceExporter);
120
128
  // Metric exporter — reads OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_METRICS_ENDPOINT,
121
129
  // OTEL_EXPORTER_OTLP_HEADERS, OTEL_EXPORTER_OTLP_METRICS_HEADERS,
@@ -123,7 +131,10 @@ export function createOtlpComponents() {
123
131
  // OTEL_EXPORTER_OTLP_COMPRESSION, OTEL_EXPORTER_OTLP_METRICS_COMPRESSION,
124
132
  // OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE,
125
133
  // OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION
126
- const metricExporter = new OTLPMetricExporter();
134
+ let metricExporter = new OTLPMetricExporter();
135
+ if (recordNetworkStats) {
136
+ metricExporter = new NetworkStatsMetricExporter(metricExporter);
137
+ }
127
138
  components.metricReader = new PeriodicExportingMetricReader({
128
139
  exporter: metricExporter,
129
140
  });
@@ -131,7 +142,10 @@ export function createOtlpComponents() {
131
142
  // OTEL_EXPORTER_OTLP_HEADERS, OTEL_EXPORTER_OTLP_LOGS_HEADERS,
132
143
  // OTEL_EXPORTER_OTLP_TIMEOUT, OTEL_EXPORTER_OTLP_LOGS_TIMEOUT,
133
144
  // OTEL_EXPORTER_OTLP_COMPRESSION, OTEL_EXPORTER_OTLP_LOGS_COMPRESSION
134
- const logExporter = new OTLPLogExporter();
145
+ let logExporter = new OTLPLogExporter();
146
+ if (recordNetworkStats) {
147
+ logExporter = new NetworkStatsLogExporter(logExporter);
148
+ }
135
149
  components.logRecordProcessor = new BatchLogRecordProcessor(logExporter);
136
150
  return components;
137
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/otlp/handler.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAClE,MAAM,kCAAkC,GAAG,oCAAoC,CAAC;AAChF,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAClF,MAAM,gCAAgC,GAAG,kCAAkC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,2BAA2B;QAC3B,kCAAkC;QAClC,mCAAmC;QACnC,gCAAgC;KACjC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,UAAU,GAAmB,EAAE,CAAC;IAEtC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAEhF,0FAA0F;IAC1F,iEAAiE;IACjE,iEAAiE;IACjE,wEAAwE;IACxE,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC9C,UAAU,CAAC,aAAa,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAEjE,4FAA4F;IAC5F,kEAAkE;IAClE,kEAAkE;IAClE,0EAA0E;IAC1E,qDAAqD;IACrD,2DAA2D;IAC3D,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAChD,UAAU,CAAC,YAAY,GAAG,IAAI,6BAA6B,CAAC;QAC1D,QAAQ,EAAE,cAAc;KACzB,CAAC,CAAC;IAEH,sFAAsF;IACtF,+DAA+D;IAC/D,+DAA+D;IAC/D,sEAAsE;IACtE,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;IAC1C,UAAU,CAAC,kBAAkB,GAAG,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEzE,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/otlp/handler.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAClE,MAAM,kCAAkC,GAAG,oCAAoC,CAAC;AAChF,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAClF,MAAM,gCAAgC,GAAG,kCAAkC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,2BAA2B;QAC3B,kCAAkC;QAClC,mCAAmC;QACnC,gCAAgC;KACjC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,UAAU,GAAmB,EAAE,CAAC;IAEtC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAChF,iEAAiE;IACjE,mEAAmE;IACnE,wEAAwE;IACxE,MAAM,kBAAkB,GAAG,iBAAiB,EAAE,CAAC;IAE/C,0FAA0F;IAC1F,iEAAiE;IACjE,iEAAiE;IACjE,wEAAwE;IACxE,IAAI,aAAa,GAAiB,IAAI,iBAAiB,EAAE,CAAC;IAC1D,IAAI,kBAAkB,EAAE,CAAC;QACvB,aAAa,GAAG,IAAI,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAC9D,CAAC;IACD,UAAU,CAAC,aAAa,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAEjE,4FAA4F;IAC5F,kEAAkE;IAClE,kEAAkE;IAClE,0EAA0E;IAC1E,qDAAqD;IACrD,2DAA2D;IAC3D,IAAI,cAAc,GAAuB,IAAI,kBAAkB,EAAE,CAAC;IAClE,IAAI,kBAAkB,EAAE,CAAC;QACvB,cAAc,GAAG,IAAI,0BAA0B,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC;IACD,UAAU,CAAC,YAAY,GAAG,IAAI,6BAA6B,CAAC;QAC1D,QAAQ,EAAE,cAAc;KACzB,CAAC,CAAC;IAEH,sFAAsF;IACtF,+DAA+D;IAC/D,+DAA+D;IAC/D,sEAAsE;IACtE,IAAI,WAAW,GAAsB,IAAI,eAAe,EAAE,CAAC;IAC3D,IAAI,kBAAkB,EAAE,CAAC;QACvB,WAAW,GAAG,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IACD,UAAU,CAAC,kBAAkB,GAAG,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEzE,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -14,5 +14,9 @@
14
14
  */
15
15
  export { SdkStatsDistroFeature, SDKSTATS_DISABLED_ENV, APPLICATIONINSIGHTS_STATSBEAT_DISABLED_ALL, isSdkStatsEnabled, setSdkStatsFeature, getSdkStatsFeatureFlags, setSdkStatsInstrumentation, getSdkStatsInstrumentationFlags, setSdkStatsShutdown, getSdkStatsShutdown, } from "./state.js";
16
16
  export { SdkStatsMetrics, FEATURE_TYPE_FEATURE, FEATURE_TYPE_INSTRUMENTATION } from "./metrics.js";
17
+ export type { SdkStatsMetricsOptions } from "./metrics.js";
17
18
  export { SdkStatsManager } from "./manager.js";
19
+ export { REQUEST_SUCCESS_NAME, NETWORK_METRIC_NAMES, recordSuccess, drain, shortHost, _resetAllForTest as _resetNetworkStatsForTest, } from "./networkStats.js";
20
+ export type { NetworkMetricName, NetworkKey } from "./networkStats.js";
21
+ export { NetworkStatsSpanExporter, NetworkStatsMetricExporter, NetworkStatsLogExporter, } from "./otlpWrapper.js";
18
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0CAA0C,EAC1C,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0CAA0C,EAC1C,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AACnG,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,SAAS,EACT,gBAAgB,IAAI,yBAAyB,GAC9C,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
@@ -17,4 +17,6 @@
17
17
  export { SdkStatsDistroFeature, SDKSTATS_DISABLED_ENV, APPLICATIONINSIGHTS_STATSBEAT_DISABLED_ALL, isSdkStatsEnabled, setSdkStatsFeature, getSdkStatsFeatureFlags, setSdkStatsInstrumentation, getSdkStatsInstrumentationFlags, setSdkStatsShutdown, getSdkStatsShutdown, } from "./state.js";
18
18
  export { SdkStatsMetrics, FEATURE_TYPE_FEATURE, FEATURE_TYPE_INSTRUMENTATION } from "./metrics.js";
19
19
  export { SdkStatsManager } from "./manager.js";
20
+ export { REQUEST_SUCCESS_NAME, NETWORK_METRIC_NAMES, recordSuccess, drain, shortHost, _resetAllForTest as _resetNetworkStatsForTest, } from "./networkStats.js";
21
+ export { NetworkStatsSpanExporter, NetworkStatsMetricExporter, NetworkStatsLogExporter, } from "./otlpWrapper.js";
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sdkstats/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0CAA0C,EAC1C,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sdkstats/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0CAA0C,EAC1C,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAGnG,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,SAAS,EACT,gBAAgB,IAAI,yBAAyB,GAC9C,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
@@ -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"}
@@ -2,11 +2,11 @@
2
2
  // Licensed under the MIT License.
3
3
  /**
4
4
  * SDKStats manager — sends SDK self-telemetry to the Application Insights
5
- * statsbeat ingestion endpoint, independent of the customer's telemetry
5
+ * SDKStats ingestion endpoint, independent of the customer's telemetry
6
6
  * pipeline.
7
7
  *
8
8
  * When the full Azure Monitor pipeline is enabled, the exporter package's
9
- * own statsbeat machinery handles SDKStats emission and the distro just
9
+ * own SDKStats machinery handles SDKStats emission and the distro just
10
10
  * publishes its bits via the `AZURE_MONITOR_STATSBEAT_FEATURES` env var
11
11
  * for the exporter to read. For A365-only, OTLP-only, or Console-only
12
12
  * customers this manager spins up a standalone `MeterProvider` →
@@ -38,6 +38,32 @@ const DEFAULT_LONG_EXPORT_INTERVAL_MS = 24 * 60 * 60 * 1000;
38
38
  * @internal
39
39
  */
40
40
  const SDKSTATS_LONG_EXPORT_INTERVAL_ENV = "APPLICATIONINSIGHTS_STATS_LONG_EXPORT_INTERVAL";
41
+ /**
42
+ * Default short export interval (15 minutes) for network SDKStats
43
+ * counters. Matches the Application Insights SDKStats short-interval
44
+ * cadence used by the Python distro (`_get_stats_short_export_interval()`
45
+ * in `azure.monitor.opentelemetry.exporter.statsbeat._utils`).
46
+ *
47
+ * @internal
48
+ */
49
+ const DEFAULT_SHORT_EXPORT_INTERVAL_MS = 15 * 60 * 1000;
50
+ /**
51
+ * Override env var: short (network) export interval in seconds.
52
+ * Matches the Python distro env var name.
53
+ *
54
+ * @internal
55
+ */
56
+ const SDKSTATS_SHORT_EXPORT_INTERVAL_ENV = "APPLICATIONINSIGHTS_STATS_SHORT_EXPORT_INTERVAL";
57
+ /**
58
+ * Override env var: redirect SDKStats envelopes to a custom App
59
+ * Insights connection string. When unset, SDKStats flow to the
60
+ * Microsoft-owned SDKStats resource (`NON_EU_CONNECTION_STRING` in
61
+ * the AzMon exporter package). Primarily useful for testing.
62
+ * Matches the Python distro env var name.
63
+ *
64
+ * @internal
65
+ */
66
+ const SDKSTATS_CONNECTION_STRING_ENV = "APPLICATIONINSIGHTS_STATS_CONNECTION_STRING";
41
67
  /**
42
68
  * Initial-export delay (15 seconds) before the first long-interval flush.
43
69
  *
@@ -56,7 +82,8 @@ const INITIAL_EXPORT_DELAY_MS = 15 * 1000;
56
82
  */
57
83
  export class SdkStatsManager {
58
84
  static _instance;
59
- _meterProvider;
85
+ _longMeterProvider;
86
+ _shortMeterProvider;
60
87
  _metrics;
61
88
  _initialized = false;
62
89
  _initialExportTimer;
@@ -70,13 +97,13 @@ export class SdkStatsManager {
70
97
  return this._initialized;
71
98
  }
72
99
  /**
73
- * Set up SDKStats export via the Azure Monitor statsbeat endpoint.
100
+ * Set up SDKStats export via the Azure Monitor SDKStats endpoint.
74
101
  *
75
102
  * Returns `true` if the standalone pipeline was initialized (or was
76
103
  * already initialized), `false` if SDKStats are disabled via env var
77
104
  * or initialization failed.
78
105
  */
79
- async initialize() {
106
+ async initialize(options = {}) {
80
107
  if (!isSdkStatsEnabled()) {
81
108
  return false;
82
109
  }
@@ -87,33 +114,62 @@ export class SdkStatsManager {
87
114
  // The exporter package's `exports` map blocks subpath imports, so
88
115
  // we resolve the package's own package.json to find its install
89
116
  // location on disk and require the internal modules by absolute
90
- // path. The statsbeat exporter is the correct vehicle for SDKStats
91
- // — it tags envelopes with the statsbeat ikey/endpoint and avoids
92
- // recursive statsbeat-of-statsbeat reporting via its
117
+ // path. The AzureMonitorStatsbeatExporter is the correct vehicle for
118
+ // SDKStats — it tags envelopes with the SDKStats ikey/endpoint and
119
+ // avoids recursive SDKStats-of-SDKStats reporting via its
93
120
  // `isStatsbeatExporter` flag.
94
121
  const baseUrl = getModuleParentURL() ?? pathToFileURL(process.cwd() + "/").href;
95
122
  const requireFromHere = createRequire(baseUrl);
96
123
  const exporterPackageJsonPath = requireFromHere.resolve("@azure/monitor-opentelemetry-exporter/package.json");
97
124
  const exporterPackageDir = dirname(exporterPackageJsonPath);
98
125
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
- const statsbeatExporterModule = requireFromHere(join(exporterPackageDir, "dist", "esm", "export", "statsbeat", "statsbeatExporter.js"));
126
+ const sdkStatsExporterModule = requireFromHere(join(exporterPackageDir, "dist", "esm", "export", "statsbeat", "statsbeatExporter.js"));
100
127
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- const statsbeatTypesModule = requireFromHere(join(exporterPackageDir, "dist", "esm", "export", "statsbeat", "types.js"));
102
- const AzureMonitorStatsbeatExporter = statsbeatExporterModule.AzureMonitorStatsbeatExporter;
103
- const NON_EU_CONNECTION_STRING = statsbeatTypesModule.NON_EU_CONNECTION_STRING;
104
- const exporter = new AzureMonitorStatsbeatExporter({
105
- connectionString: NON_EU_CONNECTION_STRING,
128
+ const sdkStatsTypesModule = requireFromHere(join(exporterPackageDir, "dist", "esm", "export", "statsbeat", "types.js"));
129
+ const AzureMonitorStatsbeatExporter = sdkStatsExporterModule.AzureMonitorStatsbeatExporter;
130
+ const NON_EU_CONNECTION_STRING = sdkStatsTypesModule.NON_EU_CONNECTION_STRING;
131
+ // Allow overriding the SDKStats ingestion target via env var,
132
+ // matching the Python distro's APPLICATIONINSIGHTS_STATS_CONNECTION_STRING
133
+ // hook. Primarily useful for testing — production should leave
134
+ // this unset so SDKStats flows to the Microsoft-owned SDKStats
135
+ // resource (NON_EU_CONNECTION_STRING).
136
+ const connectionString = process.env[SDKSTATS_CONNECTION_STRING_ENV] ?? NON_EU_CONNECTION_STRING;
137
+ const emptyResource = resourceFromAttributes({});
138
+ // Long-interval pipeline (24h) — Feature / Feature.instrumentations.
139
+ // Skipped when `networkOnly` is true (AzMon exporter owns those).
140
+ if (!options.networkOnly) {
141
+ const longExporter = new AzureMonitorStatsbeatExporter({
142
+ connectionString,
143
+ disableOfflineStorage: true,
144
+ });
145
+ const longReader = new PeriodicExportingMetricReader({
146
+ exporter: longExporter,
147
+ exportIntervalMillis: resolveLongExportInterval(),
148
+ });
149
+ this._longMeterProvider = new MeterProvider({
150
+ readers: [longReader],
151
+ resource: emptyResource,
152
+ });
153
+ }
154
+ // Short-interval pipeline (15 min) — network SDKStats gauges.
155
+ const shortExporter = new AzureMonitorStatsbeatExporter({
156
+ connectionString,
106
157
  disableOfflineStorage: true,
107
158
  });
108
- const reader = new PeriodicExportingMetricReader({
109
- exporter,
110
- exportIntervalMillis: resolveExportInterval(),
159
+ const shortReader = new PeriodicExportingMetricReader({
160
+ exporter: shortExporter,
161
+ exportIntervalMillis: resolveShortExportInterval(),
162
+ });
163
+ this._shortMeterProvider = new MeterProvider({
164
+ readers: [shortReader],
165
+ resource: emptyResource,
111
166
  });
112
- this._meterProvider = new MeterProvider({
113
- readers: [reader],
114
- resource: resourceFromAttributes({}),
167
+ this._metrics = new SdkStatsMetrics({
168
+ longMeterProvider: this._longMeterProvider,
169
+ shortMeterProvider: this._shortMeterProvider,
170
+ networkOnly: options.networkOnly,
171
+ cikey: options.cikey,
115
172
  });
116
- this._metrics = new SdkStatsMetrics(this._meterProvider);
117
173
  this._initialized = true;
118
174
  setSdkStatsShutdown(false);
119
175
  // Spec: long-interval SDKStats should perform an initial export
@@ -122,7 +178,10 @@ export class SdkStatsManager {
122
178
  // excess startup traffic. `unref()` so the timer never blocks
123
179
  // process shutdown.
124
180
  this._initialExportTimer = setTimeout(() => {
125
- this._meterProvider?.forceFlush().catch((err) => {
181
+ Promise.all([
182
+ this._longMeterProvider?.forceFlush(),
183
+ this._shortMeterProvider?.forceFlush(),
184
+ ]).catch((err) => {
126
185
  Logger.getInstance().debug("[SDKStats] Initial forceFlush failed.", err);
127
186
  });
128
187
  }, INITIAL_EXPORT_DELAY_MS);
@@ -145,7 +204,10 @@ export class SdkStatsManager {
145
204
  this._initialExportTimer = undefined;
146
205
  }
147
206
  try {
148
- await this._meterProvider?.shutdown();
207
+ await Promise.all([
208
+ this._longMeterProvider?.shutdown(),
209
+ this._shortMeterProvider?.shutdown(),
210
+ ]);
149
211
  }
150
212
  catch (error) {
151
213
  Logger.getInstance().debug("[SDKStats] Error shutting down standalone pipeline.", error);
@@ -157,7 +219,8 @@ export class SdkStatsManager {
157
219
  return true;
158
220
  }
159
221
  _cleanup() {
160
- this._meterProvider = undefined;
222
+ this._longMeterProvider = undefined;
223
+ this._shortMeterProvider = undefined;
161
224
  this._metrics = undefined;
162
225
  this._initialized = false;
163
226
  if (this._initialExportTimer) {
@@ -173,7 +236,7 @@ export class SdkStatsManager {
173
236
  SdkStatsManager._instance = undefined;
174
237
  }
175
238
  }
176
- function resolveExportInterval() {
239
+ function resolveLongExportInterval() {
177
240
  const raw = process.env[SDKSTATS_LONG_EXPORT_INTERVAL_ENV];
178
241
  if (!raw)
179
242
  return DEFAULT_LONG_EXPORT_INTERVAL_MS;
@@ -183,4 +246,14 @@ function resolveExportInterval() {
183
246
  }
184
247
  return Math.floor(seconds * 1000);
185
248
  }
249
+ function resolveShortExportInterval() {
250
+ const raw = process.env[SDKSTATS_SHORT_EXPORT_INTERVAL_ENV];
251
+ if (!raw)
252
+ return DEFAULT_SHORT_EXPORT_INTERVAL_MS;
253
+ const seconds = Number(raw);
254
+ if (!Number.isFinite(seconds) || seconds <= 0) {
255
+ return DEFAULT_SHORT_EXPORT_INTERVAL_MS;
256
+ }
257
+ return Math.floor(seconds * 1000);
258
+ }
186
259
  //# 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;AAOhE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAuB9C;;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;CAY5B"}
@@ -13,6 +13,7 @@
13
13
  import os from "node:os";
14
14
  import { MICROSOFT_OPENTELEMETRY_VERSION } from "../types.js";
15
15
  import { getSdkStatsFeatureFlags, getSdkStatsInstrumentationFlags } from "./state.js";
16
+ import { REQUEST_SUCCESS_NAME, drain } from "./networkStats.js";
16
17
  /**
17
18
  * Feature SDKStats `type` dimension values, per the Application Insights
18
19
  * SDKStats specification.
@@ -23,29 +24,85 @@ export const FEATURE_TYPE_FEATURE = 0;
23
24
  export const FEATURE_TYPE_INSTRUMENTATION = 1;
24
25
  const FEATURE_METRIC_NAME = "Feature";
25
26
  const INSTRUMENTATION_METRIC_NAME = "Feature.instrumentations";
26
- const STATSBEAT_LANGUAGE = "node";
27
+ const SDKSTATS_LANGUAGE = "node";
28
+ const NETWORK_GAUGE_SPECS = [
29
+ {
30
+ metric: REQUEST_SUCCESS_NAME,
31
+ unit: "count",
32
+ description: "Number of successful HTTP exports per endpoint",
33
+ },
34
+ ];
27
35
  /**
28
36
  * Registers observable gauges that emit feature/instrumentation data
29
- * derived from the global SDKStats state.
37
+ * derived from the global SDKStats state, plus per-export network
38
+ * SDKStats counters drained from {@link ./networkStats.js}.
30
39
  */
31
40
  export class SdkStatsMetrics {
32
41
  commonAttributes;
33
- constructor(meterProvider, distroVersion) {
34
- const meter = meterProvider.getMeter("microsoft.opentelemetry.sdkstats");
42
+ constructor(providerOrOptions, legacyOptions) {
43
+ let longMeterProvider;
44
+ let shortMeterProvider;
45
+ let distroVersion;
46
+ let networkOnly;
47
+ let cikey;
48
+ if ("shortMeterProvider" in providerOrOptions) {
49
+ // New options-object overload
50
+ longMeterProvider = providerOrOptions.longMeterProvider;
51
+ shortMeterProvider = providerOrOptions.shortMeterProvider;
52
+ distroVersion = providerOrOptions.distroVersion;
53
+ networkOnly = providerOrOptions.networkOnly ?? false;
54
+ cikey = providerOrOptions.cikey;
55
+ }
56
+ else {
57
+ // Legacy single-provider overload (used by tests)
58
+ longMeterProvider = providerOrOptions;
59
+ shortMeterProvider = providerOrOptions;
60
+ distroVersion = legacyOptions?.distroVersion;
61
+ networkOnly = legacyOptions?.networkOnly ?? false;
62
+ cikey = legacyOptions?.cikey;
63
+ }
64
+ // Per spec/sdkstats.md the required customDimensions on every
65
+ // SDKStats observation are: rp, attach, runtimeVersion, os,
66
+ // language, version, cikey (plus endpoint/host on network gauges and
67
+ // statusCode/exceptionType where applicable). `cikey` falls back to
68
+ // "N/A" when unset.
35
69
  this.commonAttributes = {
70
+ rp: "unknown",
71
+ attach: "Manual",
36
72
  runtimeVersion: process.version,
37
73
  os: os.type(),
38
- language: STATSBEAT_LANGUAGE,
74
+ language: SDKSTATS_LANGUAGE,
39
75
  version: distroVersion || MICROSOFT_OPENTELEMETRY_VERSION,
76
+ cikey: cikey || "N/A",
40
77
  };
41
- const featureGauge = meter.createObservableGauge(FEATURE_METRIC_NAME, {
42
- description: "SDKStats metric tracking enabled features",
43
- });
44
- featureGauge.addCallback(this.observeFeatures);
45
- const instrumentationGauge = meter.createObservableGauge(INSTRUMENTATION_METRIC_NAME, {
46
- description: "SDKStats metric tracking enabled instrumentations",
47
- });
48
- instrumentationGauge.addCallback(this.observeInstrumentations);
78
+ // Feature / instrumentation bitmask gauges are skipped when running
79
+ // alongside the Azure Monitor exporter's own SDKStats — that pipeline
80
+ // already emits them (with our distro bits bridged in via
81
+ // `_bridge_sdkstats_to_azure_monitor`) and would collide with these.
82
+ // These gauges are registered on the long-interval MeterProvider.
83
+ if (!networkOnly && longMeterProvider) {
84
+ const longMeter = longMeterProvider.getMeter("microsoft.opentelemetry.sdkstats");
85
+ const featureGauge = longMeter.createObservableGauge(FEATURE_METRIC_NAME, {
86
+ description: "SDKStats metric tracking enabled features",
87
+ });
88
+ featureGauge.addCallback(this.observeFeatures);
89
+ const instrumentationGauge = longMeter.createObservableGauge(INSTRUMENTATION_METRIC_NAME, {
90
+ description: "SDKStats metric tracking enabled instrumentations",
91
+ });
92
+ instrumentationGauge.addCallback(this.observeInstrumentations);
93
+ }
94
+ // Network SDKStats gauges — always registered on the short-interval
95
+ // MeterProvider. Each callback drains the counts accumulated by
96
+ // exporters between observations and emits one Observation per
97
+ // (endpoint, host) tuple.
98
+ const shortMeter = shortMeterProvider.getMeter("microsoft.opentelemetry.sdkstats.network");
99
+ for (const spec of NETWORK_GAUGE_SPECS) {
100
+ const gauge = shortMeter.createObservableGauge(spec.metric, {
101
+ unit: spec.unit,
102
+ description: spec.description,
103
+ });
104
+ gauge.addCallback(this.makeNetworkCallback(spec));
105
+ }
49
106
  }
50
107
  observeFeatures = (result) => {
51
108
  const featureBits = getSdkStatsFeatureFlags();
@@ -73,5 +130,17 @@ export class SdkStatsMetrics {
73
130
  type: FEATURE_TYPE_INSTRUMENTATION,
74
131
  });
75
132
  };
133
+ makeNetworkCallback(spec) {
134
+ return (result) => {
135
+ for (const [key, value] of drain(spec.metric)) {
136
+ const attrs = {
137
+ ...this.commonAttributes,
138
+ endpoint: key[0],
139
+ host: key[1],
140
+ };
141
+ result.observe(value, attrs);
142
+ }
143
+ };
144
+ }
76
145
  }
77
146
  //# 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,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,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,MAAM,OAAO,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,EAAE,CAAC,IAAI,EAAE;YACb,QAAQ,EAAE,kBAAkB;YAC5B,OAAO,EAAE,aAAa,IAAI,+BAA+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,uBAAuB,EAAE,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,oBAAoB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,uBAAuB,GAAG,CAAC,MAAwB,EAAQ,EAAE;QACnE,MAAM,SAAS,GAAG,+BAA+B,EAAE,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,4BAA4B;SACnC,CAAC,CAAC;IACL,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Network SDKStats accumulator for SDK self-telemetry.
3
+ *
4
+ * Per-export success counts for telemetry exporters. Exporters call
5
+ * {@link recordSuccess} after each successful transmit; the
6
+ * {@link SdkStatsMetrics} observable-gauge callbacks drain the
7
+ * accumulated counts on each export interval.
8
+ *
9
+ * Mirrors `src/microsoft/opentelemetry/_sdkstats/_utils.py` from the Python
10
+ * distro (microsoft/opentelemetry-distro-python#144).
11
+ */
12
+ export declare const REQUEST_SUCCESS_NAME = "Request_Success_Count";
13
+ /**
14
+ * Names of registered network SDKStats metrics, in registration order.
15
+ *
16
+ * @internal
17
+ */
18
+ export declare const NETWORK_METRIC_NAMES: readonly ["Request_Success_Count"];
19
+ export type NetworkMetricName = (typeof NETWORK_METRIC_NAMES)[number];
20
+ /**
21
+ * Composite key for an aggregated network SDKStats counter.
22
+ *
23
+ * Per the Application Insights SDKStats spec the per-key dimensions are
24
+ * `endpoint` (category, e.g. "otlp", "a365") and `host` (stamp-specific
25
+ * region or hostname).
26
+ *
27
+ * @internal
28
+ */
29
+ export type NetworkKey = readonly [string, string];
30
+ export declare function recordSuccess(endpoint: string, host: string): void;
31
+ /**
32
+ * Compute the stamp-specific short host for the SDKStats `host` dimension.
33
+ *
34
+ * Mirrors `getShortHost` in the AzMon exporter's `NetworkStatsbeatMetrics` class
35
+ * but additionally strips any trailing port (`:4318`) so localhost-style
36
+ * URLs report a clean `localhost` instead of `localhost:4318`. Examples:
37
+ * `https://westus2-1.in.applicationinsights.azure.com` → `westus2`
38
+ * `http://localhost:4318/v1/traces` → `localhost`
39
+ * `https://collector.example.com:8080` → `collector`
40
+ * `https://my-otlp-collector.example.com` → `my-otlp-collector`
41
+ * For non-URL inputs, returns the hostname or the raw input on failure.
42
+ *
43
+ * @internal
44
+ */
45
+ export declare function shortHost(input: string): string;
46
+ /**
47
+ * Atomically return and reset the counts for `metric`.
48
+ *
49
+ * Used by the observable-gauge callbacks so each observation reports only
50
+ * the delta accumulated during the export interval.
51
+ */
52
+ export declare function drain(metric: NetworkMetricName): Map<NetworkKey, number>;
53
+ /**
54
+ * @internal Test-only: clear all network SDKStats counters.
55
+ */
56
+ export declare function _resetAllForTest(): void;
57
+ //# sourceMappingURL=networkStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkStats.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/networkStats.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AASH,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,oCAAkC,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA4BnD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwB/C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAQxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}