@openclaw/diagnostics-otel 2026.6.8 → 2026.6.9-beta.1

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 (819) hide show
  1. package/dist/index.js +98 -0
  2. package/node_modules/@opentelemetry/api-logs/build/esm/NoopLogger.d.ts +4 -0
  3. package/node_modules/@opentelemetry/api-logs/build/esm/NoopLogger.js +6 -0
  4. package/node_modules/@opentelemetry/api-logs/build/esm/NoopLogger.js.map +1 -1
  5. package/node_modules/@opentelemetry/api-logs/build/esm/api/logs.d.ts +10 -2
  6. package/node_modules/@opentelemetry/api-logs/build/esm/api/logs.js +10 -2
  7. package/node_modules/@opentelemetry/api-logs/build/esm/api/logs.js.map +1 -1
  8. package/node_modules/@opentelemetry/api-logs/build/esm/index.d.ts +1 -1
  9. package/node_modules/@opentelemetry/api-logs/build/esm/index.js +1 -1
  10. package/node_modules/@opentelemetry/api-logs/build/esm/index.js.map +1 -1
  11. package/node_modules/@opentelemetry/api-logs/build/esm/types/LoggerOptions.d.ts +3 -2
  12. package/node_modules/@opentelemetry/api-logs/build/esm/types/LoggerOptions.js.map +1 -1
  13. package/node_modules/@opentelemetry/api-logs/build/esm/types/LoggerProvider.d.ts +7 -3
  14. package/node_modules/@opentelemetry/api-logs/build/esm/types/LoggerProvider.js.map +1 -1
  15. package/node_modules/@opentelemetry/api-logs/build/esm/version.d.ts +1 -1
  16. package/node_modules/@opentelemetry/api-logs/build/esm/version.js +1 -1
  17. package/node_modules/@opentelemetry/api-logs/build/esm/version.js.map +1 -1
  18. package/node_modules/@opentelemetry/api-logs/build/esnext/NoopLogger.d.ts +4 -0
  19. package/node_modules/@opentelemetry/api-logs/build/esnext/NoopLogger.js +6 -0
  20. package/node_modules/@opentelemetry/api-logs/build/esnext/NoopLogger.js.map +1 -1
  21. package/node_modules/@opentelemetry/api-logs/build/esnext/api/logs.d.ts +10 -2
  22. package/node_modules/@opentelemetry/api-logs/build/esnext/api/logs.js +10 -2
  23. package/node_modules/@opentelemetry/api-logs/build/esnext/api/logs.js.map +1 -1
  24. package/node_modules/@opentelemetry/api-logs/build/esnext/index.d.ts +1 -1
  25. package/node_modules/@opentelemetry/api-logs/build/esnext/index.js +1 -1
  26. package/node_modules/@opentelemetry/api-logs/build/esnext/index.js.map +1 -1
  27. package/node_modules/@opentelemetry/api-logs/build/esnext/types/LoggerOptions.d.ts +3 -2
  28. package/node_modules/@opentelemetry/api-logs/build/esnext/types/LoggerOptions.js.map +1 -1
  29. package/node_modules/@opentelemetry/api-logs/build/esnext/types/LoggerProvider.d.ts +7 -3
  30. package/node_modules/@opentelemetry/api-logs/build/esnext/types/LoggerProvider.js.map +1 -1
  31. package/node_modules/@opentelemetry/api-logs/build/esnext/version.d.ts +1 -1
  32. package/node_modules/@opentelemetry/api-logs/build/esnext/version.js +1 -1
  33. package/node_modules/@opentelemetry/api-logs/build/esnext/version.js.map +1 -1
  34. package/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.d.ts +4 -0
  35. package/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js +8 -1
  36. package/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js.map +1 -1
  37. package/node_modules/@opentelemetry/api-logs/build/src/api/logs.d.ts +10 -2
  38. package/node_modules/@opentelemetry/api-logs/build/src/api/logs.js +10 -2
  39. package/node_modules/@opentelemetry/api-logs/build/src/api/logs.js.map +1 -1
  40. package/node_modules/@opentelemetry/api-logs/build/src/index.d.ts +1 -1
  41. package/node_modules/@opentelemetry/api-logs/build/src/index.js +2 -3
  42. package/node_modules/@opentelemetry/api-logs/build/src/index.js.map +1 -1
  43. package/node_modules/@opentelemetry/api-logs/build/src/types/LoggerOptions.d.ts +3 -2
  44. package/node_modules/@opentelemetry/api-logs/build/src/types/LoggerOptions.js.map +1 -1
  45. package/node_modules/@opentelemetry/api-logs/build/src/types/LoggerProvider.d.ts +7 -3
  46. package/node_modules/@opentelemetry/api-logs/build/src/types/LoggerProvider.js.map +1 -1
  47. package/node_modules/@opentelemetry/api-logs/build/src/version.d.ts +1 -1
  48. package/node_modules/@opentelemetry/api-logs/build/src/version.js +1 -1
  49. package/node_modules/@opentelemetry/api-logs/build/src/version.js.map +1 -1
  50. package/node_modules/@opentelemetry/api-logs/package.json +5 -5
  51. package/node_modules/@opentelemetry/configuration/build/src/EnvironmentConfigFactory.js +23 -26
  52. package/node_modules/@opentelemetry/configuration/build/src/EnvironmentConfigFactory.js.map +1 -1
  53. package/node_modules/@opentelemetry/configuration/build/src/FileConfigFactory.js +3 -155
  54. package/node_modules/@opentelemetry/configuration/build/src/FileConfigFactory.js.map +1 -1
  55. package/node_modules/@opentelemetry/configuration/build/src/generated/types.d.ts +596 -614
  56. package/node_modules/@opentelemetry/configuration/build/src/generated/types.js.map +1 -1
  57. package/node_modules/@opentelemetry/configuration/build/src/index.d.ts +1 -1
  58. package/node_modules/@opentelemetry/configuration/build/src/index.js.map +1 -1
  59. package/node_modules/@opentelemetry/configuration/build/src/utils.d.ts +12 -1
  60. package/node_modules/@opentelemetry/configuration/build/src/utils.js +93 -19
  61. package/node_modules/@opentelemetry/configuration/build/src/utils.js.map +1 -1
  62. package/node_modules/@opentelemetry/configuration/build/src/version.d.ts +1 -1
  63. package/node_modules/@opentelemetry/configuration/build/src/version.js +1 -1
  64. package/node_modules/@opentelemetry/configuration/build/src/version.js.map +1 -1
  65. package/node_modules/@opentelemetry/configuration/package.json +6 -6
  66. package/node_modules/@opentelemetry/context-async-hooks/build/src/version.d.ts +1 -1
  67. package/node_modules/@opentelemetry/context-async-hooks/build/src/version.js +1 -1
  68. package/node_modules/@opentelemetry/context-async-hooks/build/src/version.js.map +1 -1
  69. package/node_modules/@opentelemetry/context-async-hooks/package.json +4 -4
  70. package/node_modules/@opentelemetry/core/build/esm/baggage/propagation/W3CBaggagePropagator.js +14 -20
  71. package/node_modules/@opentelemetry/core/build/esm/baggage/propagation/W3CBaggagePropagator.js.map +1 -1
  72. package/node_modules/@opentelemetry/core/build/esm/baggage/utils.d.ts +7 -1
  73. package/node_modules/@opentelemetry/core/build/esm/baggage/utils.js +32 -1
  74. package/node_modules/@opentelemetry/core/build/esm/baggage/utils.js.map +1 -1
  75. package/node_modules/@opentelemetry/core/build/esm/common/time.d.ts +7 -2
  76. package/node_modules/@opentelemetry/core/build/esm/common/time.js +10 -3
  77. package/node_modules/@opentelemetry/core/build/esm/common/time.js.map +1 -1
  78. package/node_modules/@opentelemetry/core/build/esm/index.d.ts +1 -1
  79. package/node_modules/@opentelemetry/core/build/esm/index.js +1 -1
  80. package/node_modules/@opentelemetry/core/build/esm/index.js.map +1 -1
  81. package/node_modules/@opentelemetry/core/build/esm/version.d.ts +1 -1
  82. package/node_modules/@opentelemetry/core/build/esm/version.js +1 -1
  83. package/node_modules/@opentelemetry/core/build/esm/version.js.map +1 -1
  84. package/node_modules/@opentelemetry/core/build/esnext/baggage/propagation/W3CBaggagePropagator.js +14 -20
  85. package/node_modules/@opentelemetry/core/build/esnext/baggage/propagation/W3CBaggagePropagator.js.map +1 -1
  86. package/node_modules/@opentelemetry/core/build/esnext/baggage/utils.d.ts +7 -1
  87. package/node_modules/@opentelemetry/core/build/esnext/baggage/utils.js +32 -1
  88. package/node_modules/@opentelemetry/core/build/esnext/baggage/utils.js.map +1 -1
  89. package/node_modules/@opentelemetry/core/build/esnext/common/time.d.ts +7 -2
  90. package/node_modules/@opentelemetry/core/build/esnext/common/time.js +10 -3
  91. package/node_modules/@opentelemetry/core/build/esnext/common/time.js.map +1 -1
  92. package/node_modules/@opentelemetry/core/build/esnext/index.d.ts +1 -1
  93. package/node_modules/@opentelemetry/core/build/esnext/index.js +1 -1
  94. package/node_modules/@opentelemetry/core/build/esnext/index.js.map +1 -1
  95. package/node_modules/@opentelemetry/core/build/esnext/version.d.ts +1 -1
  96. package/node_modules/@opentelemetry/core/build/esnext/version.js +1 -1
  97. package/node_modules/@opentelemetry/core/build/esnext/version.js.map +1 -1
  98. package/node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js +12 -18
  99. package/node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js.map +1 -1
  100. package/node_modules/@opentelemetry/core/build/src/baggage/utils.d.ts +7 -1
  101. package/node_modules/@opentelemetry/core/build/src/baggage/utils.js +33 -1
  102. package/node_modules/@opentelemetry/core/build/src/baggage/utils.js.map +1 -1
  103. package/node_modules/@opentelemetry/core/build/src/common/time.d.ts +7 -2
  104. package/node_modules/@opentelemetry/core/build/src/common/time.js +13 -5
  105. package/node_modules/@opentelemetry/core/build/src/common/time.js.map +1 -1
  106. package/node_modules/@opentelemetry/core/build/src/index.d.ts +1 -1
  107. package/node_modules/@opentelemetry/core/build/src/index.js +3 -1
  108. package/node_modules/@opentelemetry/core/build/src/index.js.map +1 -1
  109. package/node_modules/@opentelemetry/core/build/src/version.d.ts +1 -1
  110. package/node_modules/@opentelemetry/core/build/src/version.js +1 -1
  111. package/node_modules/@opentelemetry/core/build/src/version.js.map +1 -1
  112. package/node_modules/@opentelemetry/core/package.json +6 -6
  113. package/node_modules/@opentelemetry/exporter-logs-otlp-grpc/build/src/version.d.ts +1 -1
  114. package/node_modules/@opentelemetry/exporter-logs-otlp-grpc/build/src/version.js +1 -1
  115. package/node_modules/@opentelemetry/exporter-logs-otlp-grpc/build/src/version.js.map +1 -1
  116. package/node_modules/@opentelemetry/exporter-logs-otlp-grpc/package.json +13 -13
  117. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/esm/version.d.ts +1 -1
  118. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/esm/version.js +1 -1
  119. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/esm/version.js.map +1 -1
  120. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/esnext/version.d.ts +1 -1
  121. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/esnext/version.js +1 -1
  122. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/esnext/version.js.map +1 -1
  123. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/src/version.d.ts +1 -1
  124. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/src/version.js +1 -1
  125. package/node_modules/@opentelemetry/exporter-logs-otlp-http/build/src/version.js.map +1 -1
  126. package/node_modules/@opentelemetry/exporter-logs-otlp-http/package.json +13 -13
  127. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/esm/version.d.ts +1 -1
  128. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/esm/version.js +1 -1
  129. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/esm/version.js.map +1 -1
  130. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/esnext/version.d.ts +1 -1
  131. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/esnext/version.js +1 -1
  132. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/esnext/version.js.map +1 -1
  133. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/src/version.d.ts +1 -1
  134. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/src/version.js +1 -1
  135. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/build/src/version.js.map +1 -1
  136. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/package.json +14 -14
  137. package/node_modules/@opentelemetry/exporter-metrics-otlp-grpc/build/src/version.d.ts +1 -1
  138. package/node_modules/@opentelemetry/exporter-metrics-otlp-grpc/build/src/version.js +1 -1
  139. package/node_modules/@opentelemetry/exporter-metrics-otlp-grpc/build/src/version.js.map +1 -1
  140. package/node_modules/@opentelemetry/exporter-metrics-otlp-grpc/package.json +13 -13
  141. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/esm/version.d.ts +1 -1
  142. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/esm/version.js +1 -1
  143. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/esm/version.js.map +1 -1
  144. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/esnext/version.d.ts +1 -1
  145. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/esnext/version.js +1 -1
  146. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/esnext/version.js.map +1 -1
  147. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/src/version.d.ts +1 -1
  148. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/src/version.js +1 -1
  149. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/build/src/version.js.map +1 -1
  150. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/package.json +12 -12
  151. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/esm/version.d.ts +1 -1
  152. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/esm/version.js +1 -1
  153. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/esm/version.js.map +1 -1
  154. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/esnext/version.d.ts +1 -1
  155. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/esnext/version.js +1 -1
  156. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/esnext/version.js.map +1 -1
  157. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/src/version.d.ts +1 -1
  158. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/src/version.js +1 -1
  159. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/build/src/version.js.map +1 -1
  160. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/package.json +13 -13
  161. package/node_modules/@opentelemetry/exporter-prometheus/build/src/PrometheusExporter.js +2 -0
  162. package/node_modules/@opentelemetry/exporter-prometheus/build/src/PrometheusExporter.js.map +1 -1
  163. package/node_modules/@opentelemetry/exporter-prometheus/build/src/PrometheusSerializer.js +15 -1
  164. package/node_modules/@opentelemetry/exporter-prometheus/build/src/PrometheusSerializer.js.map +1 -1
  165. package/node_modules/@opentelemetry/exporter-prometheus/build/src/semconv.d.ts +9 -0
  166. package/node_modules/@opentelemetry/exporter-prometheus/build/src/semconv.js +21 -0
  167. package/node_modules/@opentelemetry/exporter-prometheus/build/src/semconv.js.map +1 -0
  168. package/node_modules/@opentelemetry/exporter-prometheus/build/src/version.d.ts +1 -1
  169. package/node_modules/@opentelemetry/exporter-prometheus/build/src/version.js +1 -1
  170. package/node_modules/@opentelemetry/exporter-prometheus/build/src/version.js.map +1 -1
  171. package/node_modules/@opentelemetry/exporter-prometheus/package.json +7 -7
  172. package/node_modules/@opentelemetry/exporter-trace-otlp-grpc/README.md +1 -1
  173. package/node_modules/@opentelemetry/exporter-trace-otlp-grpc/build/src/version.d.ts +1 -1
  174. package/node_modules/@opentelemetry/exporter-trace-otlp-grpc/build/src/version.js +1 -1
  175. package/node_modules/@opentelemetry/exporter-trace-otlp-grpc/build/src/version.js.map +1 -1
  176. package/node_modules/@opentelemetry/exporter-trace-otlp-grpc/package.json +12 -12
  177. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esm/version.d.ts +1 -1
  178. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esm/version.js +1 -1
  179. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esm/version.js.map +1 -1
  180. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esnext/version.d.ts +1 -1
  181. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esnext/version.js +1 -1
  182. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esnext/version.js.map +1 -1
  183. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/src/version.d.ts +1 -1
  184. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/src/version.js +1 -1
  185. package/node_modules/@opentelemetry/exporter-trace-otlp-http/build/src/version.js.map +1 -1
  186. package/node_modules/@opentelemetry/exporter-trace-otlp-http/package.json +12 -12
  187. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/esm/version.d.ts +1 -1
  188. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/esm/version.js +1 -1
  189. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/esm/version.js.map +1 -1
  190. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/esnext/version.d.ts +1 -1
  191. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/esnext/version.js +1 -1
  192. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/esnext/version.js.map +1 -1
  193. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/src/version.d.ts +1 -1
  194. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/src/version.js +1 -1
  195. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/build/src/version.js.map +1 -1
  196. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/package.json +12 -12
  197. package/node_modules/@opentelemetry/exporter-zipkin/build/esm/version.d.ts +1 -1
  198. package/node_modules/@opentelemetry/exporter-zipkin/build/esm/version.js +1 -1
  199. package/node_modules/@opentelemetry/exporter-zipkin/build/esm/version.js.map +1 -1
  200. package/node_modules/@opentelemetry/exporter-zipkin/build/esnext/version.d.ts +1 -1
  201. package/node_modules/@opentelemetry/exporter-zipkin/build/esnext/version.js +1 -1
  202. package/node_modules/@opentelemetry/exporter-zipkin/build/esnext/version.js.map +1 -1
  203. package/node_modules/@opentelemetry/exporter-zipkin/build/src/version.d.ts +1 -1
  204. package/node_modules/@opentelemetry/exporter-zipkin/build/src/version.js +1 -1
  205. package/node_modules/@opentelemetry/exporter-zipkin/build/src/version.js.map +1 -1
  206. package/node_modules/@opentelemetry/exporter-zipkin/package.json +11 -11
  207. package/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js +1 -1
  208. package/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js.map +1 -1
  209. package/node_modules/@opentelemetry/instrumentation/build/esm/semver.js +2 -2
  210. package/node_modules/@opentelemetry/instrumentation/build/esm/semver.js.map +1 -1
  211. package/node_modules/@opentelemetry/instrumentation/build/esm/version.d.ts +1 -1
  212. package/node_modules/@opentelemetry/instrumentation/build/esm/version.js +1 -1
  213. package/node_modules/@opentelemetry/instrumentation/build/esm/version.js.map +1 -1
  214. package/node_modules/@opentelemetry/instrumentation/build/esnext/instrumentation.js +1 -1
  215. package/node_modules/@opentelemetry/instrumentation/build/esnext/instrumentation.js.map +1 -1
  216. package/node_modules/@opentelemetry/instrumentation/build/esnext/semver.js +2 -2
  217. package/node_modules/@opentelemetry/instrumentation/build/esnext/semver.js.map +1 -1
  218. package/node_modules/@opentelemetry/instrumentation/build/esnext/version.d.ts +1 -1
  219. package/node_modules/@opentelemetry/instrumentation/build/esnext/version.js +1 -1
  220. package/node_modules/@opentelemetry/instrumentation/build/esnext/version.js.map +1 -1
  221. package/node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js +1 -1
  222. package/node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js.map +1 -1
  223. package/node_modules/@opentelemetry/instrumentation/build/src/semver.js +2 -2
  224. package/node_modules/@opentelemetry/instrumentation/build/src/semver.js.map +1 -1
  225. package/node_modules/@opentelemetry/instrumentation/build/src/version.d.ts +1 -1
  226. package/node_modules/@opentelemetry/instrumentation/build/src/version.js +1 -1
  227. package/node_modules/@opentelemetry/instrumentation/build/src/version.js.map +1 -1
  228. package/node_modules/@opentelemetry/instrumentation/hook.mjs +3 -14
  229. package/node_modules/@opentelemetry/instrumentation/package.json +9 -9
  230. package/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.d.ts +1 -1
  231. package/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.js +1 -1
  232. package/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.js.map +1 -1
  233. package/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.d.ts +1 -1
  234. package/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.js +1 -1
  235. package/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.js.map +1 -1
  236. package/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.d.ts +1 -1
  237. package/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.js +1 -1
  238. package/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.js.map +1 -1
  239. package/node_modules/@opentelemetry/otlp-exporter-base/package.json +9 -9
  240. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/configuration/otlp-grpc-env-configuration.js +2 -2
  241. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/configuration/otlp-grpc-env-configuration.js.map +1 -1
  242. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/grpc-exporter-transport.d.ts +1 -0
  243. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/grpc-exporter-transport.js +17 -0
  244. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/grpc-exporter-transport.js.map +1 -1
  245. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/index.d.ts +1 -0
  246. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/index.js +5 -1
  247. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/index.js.map +1 -1
  248. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/version.d.ts +1 -1
  249. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/version.js +1 -1
  250. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/version.js.map +1 -1
  251. package/node_modules/@opentelemetry/otlp-grpc-exporter-base/package.json +10 -10
  252. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/internal.d.ts +6 -3
  253. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/internal.js +7 -2
  254. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/internal.js.map +1 -1
  255. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/protobuf/common-serializer.d.ts +10 -1
  256. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/protobuf/common-serializer.js +9 -0
  257. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/protobuf/common-serializer.js.map +1 -1
  258. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/protobuf/protobuf-reader.d.ts +5 -1
  259. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/protobuf/protobuf-reader.js +5 -21
  260. package/node_modules/@opentelemetry/otlp-transformer/build/esm/common/protobuf/protobuf-reader.js.map +1 -1
  261. package/node_modules/@opentelemetry/otlp-transformer/build/esm/logs/internal.d.ts +0 -3
  262. package/node_modules/@opentelemetry/otlp-transformer/build/esm/logs/internal.js +6 -10
  263. package/node_modules/@opentelemetry/otlp-transformer/build/esm/logs/internal.js.map +1 -1
  264. package/node_modules/@opentelemetry/otlp-transformer/build/esm/metrics/internal.js +1 -1
  265. package/node_modules/@opentelemetry/otlp-transformer/build/esm/metrics/internal.js.map +1 -1
  266. package/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js +1 -1
  267. package/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js.map +1 -1
  268. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/internal.d.ts +6 -3
  269. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/internal.js +7 -2
  270. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/internal.js.map +1 -1
  271. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/protobuf/common-serializer.d.ts +10 -1
  272. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/protobuf/common-serializer.js +9 -0
  273. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/protobuf/common-serializer.js.map +1 -1
  274. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/protobuf/protobuf-reader.d.ts +5 -1
  275. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/protobuf/protobuf-reader.js +5 -21
  276. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/common/protobuf/protobuf-reader.js.map +1 -1
  277. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/logs/internal.d.ts +0 -3
  278. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/logs/internal.js +6 -10
  279. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/logs/internal.js.map +1 -1
  280. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/metrics/internal.js +1 -1
  281. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/metrics/internal.js.map +1 -1
  282. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/trace/internal.js +1 -1
  283. package/node_modules/@opentelemetry/otlp-transformer/build/esnext/trace/internal.js.map +1 -1
  284. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/internal.d.ts +6 -3
  285. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/internal.js +7 -2
  286. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/internal.js.map +1 -1
  287. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/common-serializer.d.ts +10 -1
  288. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/common-serializer.js +9 -0
  289. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/common-serializer.js.map +1 -1
  290. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-reader.d.ts +5 -1
  291. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-reader.js +5 -21
  292. package/node_modules/@opentelemetry/otlp-transformer/build/src/common/protobuf/protobuf-reader.js.map +1 -1
  293. package/node_modules/@opentelemetry/otlp-transformer/build/src/logs/internal.d.ts +0 -3
  294. package/node_modules/@opentelemetry/otlp-transformer/build/src/logs/internal.js +6 -11
  295. package/node_modules/@opentelemetry/otlp-transformer/build/src/logs/internal.js.map +1 -1
  296. package/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/internal.js +1 -1
  297. package/node_modules/@opentelemetry/otlp-transformer/build/src/metrics/internal.js.map +1 -1
  298. package/node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal.js +1 -1
  299. package/node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal.js.map +1 -1
  300. package/node_modules/@opentelemetry/otlp-transformer/package.json +13 -13
  301. package/node_modules/@opentelemetry/propagator-b3/build/esm/version.d.ts +1 -1
  302. package/node_modules/@opentelemetry/propagator-b3/build/esm/version.js +1 -1
  303. package/node_modules/@opentelemetry/propagator-b3/build/esm/version.js.map +1 -1
  304. package/node_modules/@opentelemetry/propagator-b3/build/esnext/version.d.ts +1 -1
  305. package/node_modules/@opentelemetry/propagator-b3/build/esnext/version.js +1 -1
  306. package/node_modules/@opentelemetry/propagator-b3/build/esnext/version.js.map +1 -1
  307. package/node_modules/@opentelemetry/propagator-b3/build/src/version.d.ts +1 -1
  308. package/node_modules/@opentelemetry/propagator-b3/build/src/version.js +1 -1
  309. package/node_modules/@opentelemetry/propagator-b3/build/src/version.js.map +1 -1
  310. package/node_modules/@opentelemetry/propagator-b3/package.json +6 -6
  311. package/node_modules/@opentelemetry/propagator-jaeger/build/esm/version.d.ts +1 -1
  312. package/node_modules/@opentelemetry/propagator-jaeger/build/esm/version.js +1 -1
  313. package/node_modules/@opentelemetry/propagator-jaeger/build/esm/version.js.map +1 -1
  314. package/node_modules/@opentelemetry/propagator-jaeger/build/esnext/version.d.ts +1 -1
  315. package/node_modules/@opentelemetry/propagator-jaeger/build/esnext/version.js +1 -1
  316. package/node_modules/@opentelemetry/propagator-jaeger/build/esnext/version.js.map +1 -1
  317. package/node_modules/@opentelemetry/propagator-jaeger/build/src/version.d.ts +1 -1
  318. package/node_modules/@opentelemetry/propagator-jaeger/build/src/version.js +1 -1
  319. package/node_modules/@opentelemetry/propagator-jaeger/build/src/version.js.map +1 -1
  320. package/node_modules/@opentelemetry/propagator-jaeger/package.json +7 -7
  321. package/node_modules/@opentelemetry/resources/build/esm/detectors/EnvDetector.js +2 -2
  322. package/node_modules/@opentelemetry/resources/build/esm/detectors/EnvDetector.js.map +1 -1
  323. package/node_modules/@opentelemetry/resources/build/esm/version.d.ts +1 -1
  324. package/node_modules/@opentelemetry/resources/build/esm/version.js +1 -1
  325. package/node_modules/@opentelemetry/resources/build/esm/version.js.map +1 -1
  326. package/node_modules/@opentelemetry/resources/build/esnext/detectors/EnvDetector.js +2 -2
  327. package/node_modules/@opentelemetry/resources/build/esnext/detectors/EnvDetector.js.map +1 -1
  328. package/node_modules/@opentelemetry/resources/build/esnext/version.d.ts +1 -1
  329. package/node_modules/@opentelemetry/resources/build/esnext/version.js +1 -1
  330. package/node_modules/@opentelemetry/resources/build/esnext/version.js.map +1 -1
  331. package/node_modules/@opentelemetry/resources/build/src/detectors/EnvDetector.js +2 -2
  332. package/node_modules/@opentelemetry/resources/build/src/detectors/EnvDetector.js.map +1 -1
  333. package/node_modules/@opentelemetry/resources/build/src/version.d.ts +1 -1
  334. package/node_modules/@opentelemetry/resources/build/src/version.js +1 -1
  335. package/node_modules/@opentelemetry/resources/build/src/version.js.map +1 -1
  336. package/node_modules/@opentelemetry/resources/package.json +5 -5
  337. package/node_modules/@opentelemetry/sdk-logs/README.md +3 -0
  338. package/node_modules/@opentelemetry/sdk-logs/build/esm/LogRecordImpl.d.ts +4 -3
  339. package/node_modules/@opentelemetry/sdk-logs/build/esm/LogRecordImpl.js +5 -57
  340. package/node_modules/@opentelemetry/sdk-logs/build/esm/LogRecordImpl.js.map +1 -1
  341. package/node_modules/@opentelemetry/sdk-logs/build/esm/Logger.d.ts +4 -4
  342. package/node_modules/@opentelemetry/sdk-logs/build/esm/Logger.js +5 -5
  343. package/node_modules/@opentelemetry/sdk-logs/build/esm/Logger.js.map +1 -1
  344. package/node_modules/@opentelemetry/sdk-logs/build/esm/LoggerProvider.js +12 -5
  345. package/node_modules/@opentelemetry/sdk-logs/build/esm/LoggerProvider.js.map +1 -1
  346. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/BatchLogRecordProcessorBase.js +6 -3
  347. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/BatchLogRecordProcessorBase.js.map +1 -1
  348. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/ReadableLogRecord.d.ts +4 -1
  349. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/ReadableLogRecord.js.map +1 -1
  350. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/SdkLogRecord.d.ts +7 -0
  351. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/SdkLogRecord.js.map +1 -1
  352. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/SimpleLogRecordProcessor.js +0 -1
  353. package/node_modules/@opentelemetry/sdk-logs/build/esm/export/SimpleLogRecordProcessor.js.map +1 -1
  354. package/node_modules/@opentelemetry/sdk-logs/build/esm/internal/utils.d.ts +6 -1
  355. package/node_modules/@opentelemetry/sdk-logs/build/esm/internal/utils.js +62 -1
  356. package/node_modules/@opentelemetry/sdk-logs/build/esm/internal/utils.js.map +1 -1
  357. package/node_modules/@opentelemetry/sdk-logs/build/esm/utils/validation.d.ts +21 -2
  358. package/node_modules/@opentelemetry/sdk-logs/build/esm/utils/validation.js +112 -3
  359. package/node_modules/@opentelemetry/sdk-logs/build/esm/utils/validation.js.map +1 -1
  360. package/node_modules/@opentelemetry/sdk-logs/build/esm/version.d.ts +1 -1
  361. package/node_modules/@opentelemetry/sdk-logs/build/esm/version.js +1 -1
  362. package/node_modules/@opentelemetry/sdk-logs/build/esm/version.js.map +1 -1
  363. package/node_modules/@opentelemetry/sdk-logs/build/esnext/LogRecordImpl.d.ts +4 -3
  364. package/node_modules/@opentelemetry/sdk-logs/build/esnext/LogRecordImpl.js +5 -57
  365. package/node_modules/@opentelemetry/sdk-logs/build/esnext/LogRecordImpl.js.map +1 -1
  366. package/node_modules/@opentelemetry/sdk-logs/build/esnext/Logger.d.ts +4 -4
  367. package/node_modules/@opentelemetry/sdk-logs/build/esnext/Logger.js +5 -5
  368. package/node_modules/@opentelemetry/sdk-logs/build/esnext/Logger.js.map +1 -1
  369. package/node_modules/@opentelemetry/sdk-logs/build/esnext/LoggerProvider.js +12 -5
  370. package/node_modules/@opentelemetry/sdk-logs/build/esnext/LoggerProvider.js.map +1 -1
  371. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/BatchLogRecordProcessorBase.js +6 -3
  372. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/BatchLogRecordProcessorBase.js.map +1 -1
  373. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/ReadableLogRecord.d.ts +4 -1
  374. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/ReadableLogRecord.js.map +1 -1
  375. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/SdkLogRecord.d.ts +7 -0
  376. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/SdkLogRecord.js.map +1 -1
  377. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/SimpleLogRecordProcessor.js +0 -1
  378. package/node_modules/@opentelemetry/sdk-logs/build/esnext/export/SimpleLogRecordProcessor.js.map +1 -1
  379. package/node_modules/@opentelemetry/sdk-logs/build/esnext/internal/utils.d.ts +6 -1
  380. package/node_modules/@opentelemetry/sdk-logs/build/esnext/internal/utils.js +62 -1
  381. package/node_modules/@opentelemetry/sdk-logs/build/esnext/internal/utils.js.map +1 -1
  382. package/node_modules/@opentelemetry/sdk-logs/build/esnext/utils/validation.d.ts +21 -2
  383. package/node_modules/@opentelemetry/sdk-logs/build/esnext/utils/validation.js +112 -3
  384. package/node_modules/@opentelemetry/sdk-logs/build/esnext/utils/validation.js.map +1 -1
  385. package/node_modules/@opentelemetry/sdk-logs/build/esnext/version.d.ts +1 -1
  386. package/node_modules/@opentelemetry/sdk-logs/build/esnext/version.js +1 -1
  387. package/node_modules/@opentelemetry/sdk-logs/build/esnext/version.js.map +1 -1
  388. package/node_modules/@opentelemetry/sdk-logs/build/src/LogRecordImpl.d.ts +4 -3
  389. package/node_modules/@opentelemetry/sdk-logs/build/src/LogRecordImpl.js +4 -56
  390. package/node_modules/@opentelemetry/sdk-logs/build/src/LogRecordImpl.js.map +1 -1
  391. package/node_modules/@opentelemetry/sdk-logs/build/src/Logger.d.ts +4 -4
  392. package/node_modules/@opentelemetry/sdk-logs/build/src/Logger.js +5 -5
  393. package/node_modules/@opentelemetry/sdk-logs/build/src/Logger.js.map +1 -1
  394. package/node_modules/@opentelemetry/sdk-logs/build/src/LoggerProvider.js +11 -4
  395. package/node_modules/@opentelemetry/sdk-logs/build/src/LoggerProvider.js.map +1 -1
  396. package/node_modules/@opentelemetry/sdk-logs/build/src/export/BatchLogRecordProcessorBase.js +6 -3
  397. package/node_modules/@opentelemetry/sdk-logs/build/src/export/BatchLogRecordProcessorBase.js.map +1 -1
  398. package/node_modules/@opentelemetry/sdk-logs/build/src/export/ReadableLogRecord.d.ts +4 -1
  399. package/node_modules/@opentelemetry/sdk-logs/build/src/export/ReadableLogRecord.js.map +1 -1
  400. package/node_modules/@opentelemetry/sdk-logs/build/src/export/SdkLogRecord.d.ts +7 -0
  401. package/node_modules/@opentelemetry/sdk-logs/build/src/export/SdkLogRecord.js.map +1 -1
  402. package/node_modules/@opentelemetry/sdk-logs/build/src/export/SimpleLogRecordProcessor.js +0 -1
  403. package/node_modules/@opentelemetry/sdk-logs/build/src/export/SimpleLogRecordProcessor.js.map +1 -1
  404. package/node_modules/@opentelemetry/sdk-logs/build/src/internal/utils.d.ts +6 -1
  405. package/node_modules/@opentelemetry/sdk-logs/build/src/internal/utils.js +62 -1
  406. package/node_modules/@opentelemetry/sdk-logs/build/src/internal/utils.js.map +1 -1
  407. package/node_modules/@opentelemetry/sdk-logs/build/src/utils/validation.d.ts +21 -2
  408. package/node_modules/@opentelemetry/sdk-logs/build/src/utils/validation.js +115 -4
  409. package/node_modules/@opentelemetry/sdk-logs/build/src/utils/validation.js.map +1 -1
  410. package/node_modules/@opentelemetry/sdk-logs/build/src/version.d.ts +1 -1
  411. package/node_modules/@opentelemetry/sdk-logs/build/src/version.js +1 -1
  412. package/node_modules/@opentelemetry/sdk-logs/build/src/version.js.map +1 -1
  413. package/node_modules/@opentelemetry/sdk-logs/package.json +11 -11
  414. package/node_modules/@opentelemetry/sdk-metrics/build/esm/MeterProvider.d.ts +6 -1
  415. package/node_modules/@opentelemetry/sdk-metrics/build/esm/MeterProvider.js +4 -0
  416. package/node_modules/@opentelemetry/sdk-metrics/build/esm/MeterProvider.js.map +1 -1
  417. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReader.d.ts +9 -0
  418. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReader.js +19 -0
  419. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReader.js.map +1 -1
  420. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReaderMetrics.d.ts +12 -0
  421. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReaderMetrics.js +36 -0
  422. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReaderMetrics.js.map +1 -0
  423. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/PeriodicExportingMetricReader.js +2 -0
  424. package/node_modules/@opentelemetry/sdk-metrics/build/esm/export/PeriodicExportingMetricReader.js.map +1 -1
  425. package/node_modules/@opentelemetry/sdk-metrics/build/esm/semconv.d.ts +82 -0
  426. package/node_modules/@opentelemetry/sdk-metrics/build/esm/semconv.js +91 -0
  427. package/node_modules/@opentelemetry/sdk-metrics/build/esm/semconv.js.map +1 -0
  428. package/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.js +0 -3
  429. package/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.js.map +1 -1
  430. package/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.js +0 -1
  431. package/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.js.map +1 -1
  432. package/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.js +0 -2
  433. package/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.js.map +1 -1
  434. package/node_modules/@opentelemetry/sdk-metrics/build/esm/version.d.ts +1 -1
  435. package/node_modules/@opentelemetry/sdk-metrics/build/esm/version.js +1 -1
  436. package/node_modules/@opentelemetry/sdk-metrics/build/esm/version.js.map +1 -1
  437. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/MeterProvider.d.ts +6 -1
  438. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/MeterProvider.js +4 -0
  439. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/MeterProvider.js.map +1 -1
  440. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReader.d.ts +9 -0
  441. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReader.js +19 -0
  442. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReader.js.map +1 -1
  443. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReaderMetrics.d.ts +12 -0
  444. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReaderMetrics.js +36 -0
  445. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReaderMetrics.js.map +1 -0
  446. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/PeriodicExportingMetricReader.js +2 -0
  447. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/PeriodicExportingMetricReader.js.map +1 -1
  448. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/semconv.d.ts +82 -0
  449. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/semconv.js +91 -0
  450. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/semconv.js.map +1 -0
  451. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.js +0 -3
  452. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.js.map +1 -1
  453. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.js +0 -1
  454. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.js.map +1 -1
  455. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.js +0 -2
  456. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.js.map +1 -1
  457. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.d.ts +1 -1
  458. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.js +1 -1
  459. package/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.js.map +1 -1
  460. package/node_modules/@opentelemetry/sdk-metrics/build/src/MeterProvider.d.ts +6 -1
  461. package/node_modules/@opentelemetry/sdk-metrics/build/src/MeterProvider.js +4 -0
  462. package/node_modules/@opentelemetry/sdk-metrics/build/src/MeterProvider.js.map +1 -1
  463. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.d.ts +9 -0
  464. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.js +19 -0
  465. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.js.map +1 -1
  466. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReaderMetrics.d.ts +12 -0
  467. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReaderMetrics.js +40 -0
  468. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReaderMetrics.js.map +1 -0
  469. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.js +2 -0
  470. package/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.js.map +1 -1
  471. package/node_modules/@opentelemetry/sdk-metrics/build/src/semconv.d.ts +82 -0
  472. package/node_modules/@opentelemetry/sdk-metrics/build/src/semconv.js +94 -0
  473. package/node_modules/@opentelemetry/sdk-metrics/build/src/semconv.js.map +1 -0
  474. package/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.js +0 -3
  475. package/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.js.map +1 -1
  476. package/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.js +0 -1
  477. package/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.js.map +1 -1
  478. package/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.js +0 -2
  479. package/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.js.map +1 -1
  480. package/node_modules/@opentelemetry/sdk-metrics/build/src/version.d.ts +1 -1
  481. package/node_modules/@opentelemetry/sdk-metrics/build/src/version.js +1 -1
  482. package/node_modules/@opentelemetry/sdk-metrics/build/src/version.js.map +1 -1
  483. package/node_modules/@opentelemetry/sdk-metrics/package.json +10 -10
  484. package/node_modules/@opentelemetry/sdk-node/README.md +1 -0
  485. package/node_modules/@opentelemetry/sdk-node/build/src/index.d.ts +0 -1
  486. package/node_modules/@opentelemetry/sdk-node/build/src/index.js +1 -3
  487. package/node_modules/@opentelemetry/sdk-node/build/src/index.js.map +1 -1
  488. package/node_modules/@opentelemetry/sdk-node/build/src/sdk.js +3 -3
  489. package/node_modules/@opentelemetry/sdk-node/build/src/sdk.js.map +1 -1
  490. package/node_modules/@opentelemetry/sdk-node/build/src/start.js +2 -2
  491. package/node_modules/@opentelemetry/sdk-node/build/src/start.js.map +1 -1
  492. package/node_modules/@opentelemetry/sdk-node/build/src/utils.d.ts +1 -1
  493. package/node_modules/@opentelemetry/sdk-node/build/src/utils.js +175 -103
  494. package/node_modules/@opentelemetry/sdk-node/build/src/utils.js.map +1 -1
  495. package/node_modules/@opentelemetry/sdk-node/build/src/version.d.ts +1 -1
  496. package/node_modules/@opentelemetry/sdk-node/build/src/version.js +1 -1
  497. package/node_modules/@opentelemetry/sdk-node/build/src/version.js.map +1 -1
  498. package/node_modules/@opentelemetry/sdk-node/package.json +30 -29
  499. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/BasicTracerProvider.d.ts +3 -0
  500. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/BasicTracerProvider.js +10 -1
  501. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/BasicTracerProvider.js.map +1 -1
  502. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/Span.d.ts +3 -0
  503. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/Span.js +23 -0
  504. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/Span.js.map +1 -1
  505. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.d.ts +8 -0
  506. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.js +10 -0
  507. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.js.map +1 -1
  508. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/inspect.d.ts +32 -0
  509. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/inspect.js +53 -0
  510. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/inspect.js.map +1 -0
  511. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.d.ts +1 -1
  512. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.js +1 -1
  513. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.js.map +1 -1
  514. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/BasicTracerProvider.d.ts +3 -0
  515. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/BasicTracerProvider.js +10 -1
  516. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/BasicTracerProvider.js.map +1 -1
  517. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/Span.d.ts +3 -0
  518. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/Span.js +23 -0
  519. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/Span.js.map +1 -1
  520. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/Tracer.d.ts +8 -0
  521. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/Tracer.js +10 -0
  522. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/Tracer.js.map +1 -1
  523. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/inspect.d.ts +32 -0
  524. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/inspect.js +53 -0
  525. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/inspect.js.map +1 -0
  526. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/version.d.ts +1 -1
  527. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/version.js +1 -1
  528. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/version.js.map +1 -1
  529. package/node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.d.ts +3 -0
  530. package/node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.js +10 -1
  531. package/node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.js.map +1 -1
  532. package/node_modules/@opentelemetry/sdk-trace-base/build/src/Span.d.ts +3 -0
  533. package/node_modules/@opentelemetry/sdk-trace-base/build/src/Span.js +23 -0
  534. package/node_modules/@opentelemetry/sdk-trace-base/build/src/Span.js.map +1 -1
  535. package/node_modules/@opentelemetry/sdk-trace-base/build/src/Tracer.d.ts +8 -0
  536. package/node_modules/@opentelemetry/sdk-trace-base/build/src/Tracer.js +10 -0
  537. package/node_modules/@opentelemetry/sdk-trace-base/build/src/Tracer.js.map +1 -1
  538. package/node_modules/@opentelemetry/sdk-trace-base/build/src/inspect.d.ts +32 -0
  539. package/node_modules/@opentelemetry/sdk-trace-base/build/src/inspect.js +58 -0
  540. package/node_modules/@opentelemetry/sdk-trace-base/build/src/inspect.js.map +1 -0
  541. package/node_modules/@opentelemetry/sdk-trace-base/build/src/version.d.ts +1 -1
  542. package/node_modules/@opentelemetry/sdk-trace-base/build/src/version.js +1 -1
  543. package/node_modules/@opentelemetry/sdk-trace-base/build/src/version.js.map +1 -1
  544. package/node_modules/@opentelemetry/sdk-trace-base/package.json +9 -9
  545. package/node_modules/@opentelemetry/sdk-trace-node/build/src/version.d.ts +1 -1
  546. package/node_modules/@opentelemetry/sdk-trace-node/build/src/version.js +1 -1
  547. package/node_modules/@opentelemetry/sdk-trace-node/build/src/version.js.map +1 -1
  548. package/node_modules/@opentelemetry/sdk-trace-node/package.json +8 -8
  549. package/node_modules/@protobufjs/aspromise/LICENSE +26 -0
  550. package/node_modules/@protobufjs/aspromise/README.md +13 -0
  551. package/node_modules/{protobufjs/src/util/aspromise.d.ts → @protobufjs/aspromise/index.d.ts} +13 -13
  552. package/node_modules/{protobufjs/src/util/aspromise.js → @protobufjs/aspromise/index.js} +52 -52
  553. package/node_modules/@protobufjs/aspromise/package.json +21 -0
  554. package/node_modules/@protobufjs/aspromise/tests/index.js +130 -0
  555. package/node_modules/@protobufjs/base64/LICENSE +26 -0
  556. package/node_modules/@protobufjs/base64/README.md +19 -0
  557. package/node_modules/{protobufjs/src/util/base64.d.ts → @protobufjs/base64/index.d.ts} +32 -32
  558. package/node_modules/{protobufjs/src/util/base64.js → @protobufjs/base64/index.js} +139 -146
  559. package/node_modules/@protobufjs/base64/package.json +21 -0
  560. package/node_modules/@protobufjs/base64/tests/index.js +46 -0
  561. package/node_modules/@protobufjs/codegen/LICENSE +26 -0
  562. package/node_modules/@protobufjs/codegen/README.md +49 -0
  563. package/node_modules/{protobufjs/src/util/codegen.d.ts → @protobufjs/codegen/index.d.ts} +31 -31
  564. package/node_modules/{protobufjs/src/util/codegen.js → @protobufjs/codegen/index.js} +112 -113
  565. package/node_modules/@protobufjs/codegen/package.json +13 -0
  566. package/node_modules/@protobufjs/codegen/tests/index.js +13 -0
  567. package/node_modules/@protobufjs/eventemitter/CHANGELOG.md +8 -0
  568. package/node_modules/@protobufjs/eventemitter/LICENSE +26 -0
  569. package/node_modules/@protobufjs/eventemitter/README.md +22 -0
  570. package/node_modules/{protobufjs/src/util/eventemitter.d.ts → @protobufjs/eventemitter/index.d.ts} +45 -45
  571. package/node_modules/{protobufjs/src/util/eventemitter.js → @protobufjs/eventemitter/index.js} +86 -86
  572. package/node_modules/@protobufjs/eventemitter/package.json +21 -0
  573. package/node_modules/@protobufjs/eventemitter/tests/index.js +83 -0
  574. package/node_modules/@protobufjs/fetch/CHANGELOG.md +8 -0
  575. package/node_modules/@protobufjs/fetch/LICENSE +26 -0
  576. package/node_modules/@protobufjs/fetch/README.md +13 -0
  577. package/node_modules/{protobufjs/src/util/fetch.d.ts → @protobufjs/fetch/index.d.ts} +56 -56
  578. package/node_modules/{protobufjs/src/util/fetch.js → @protobufjs/fetch/index.js} +112 -112
  579. package/node_modules/@protobufjs/fetch/package.json +27 -0
  580. package/node_modules/@protobufjs/fetch/tests/data/file.txt +1 -0
  581. package/node_modules/@protobufjs/fetch/tests/index.js +158 -0
  582. package/node_modules/@protobufjs/fetch/util/fs.js +11 -0
  583. package/node_modules/@protobufjs/float/LICENSE +26 -0
  584. package/node_modules/@protobufjs/float/README.md +102 -0
  585. package/node_modules/@protobufjs/float/bench/index.js +87 -0
  586. package/node_modules/@protobufjs/float/bench/suite.js +46 -0
  587. package/node_modules/{protobufjs/src/util/float.js → @protobufjs/float/index.js} +335 -335
  588. package/node_modules/@protobufjs/float/package.json +26 -0
  589. package/node_modules/@protobufjs/float/tests/index.js +100 -0
  590. package/node_modules/@protobufjs/inquire/CHANGELOG.md +8 -0
  591. package/node_modules/@protobufjs/inquire/LICENSE +26 -0
  592. package/node_modules/@protobufjs/inquire/README.md +13 -0
  593. package/node_modules/{protobufjs/src/util/inquire.d.ts → @protobufjs/inquire/index.d.ts} +10 -10
  594. package/node_modules/{protobufjs/src/util/inquire.js → @protobufjs/inquire/index.js} +38 -38
  595. package/node_modules/@protobufjs/inquire/package.json +21 -0
  596. package/node_modules/@protobufjs/inquire/tests/data/array.js +1 -0
  597. package/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +1 -0
  598. package/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +1 -0
  599. package/node_modules/@protobufjs/inquire/tests/data/object.js +1 -0
  600. package/node_modules/@protobufjs/inquire/tests/index.js +20 -0
  601. package/node_modules/@protobufjs/path/LICENSE +26 -0
  602. package/node_modules/@protobufjs/path/README.md +19 -0
  603. package/node_modules/{protobufjs/src/util/path.d.ts → @protobufjs/path/index.d.ts} +22 -22
  604. package/node_modules/{protobufjs/src/util/path.js → @protobufjs/path/index.js} +65 -72
  605. package/node_modules/@protobufjs/path/package.json +21 -0
  606. package/node_modules/@protobufjs/path/tests/index.js +60 -0
  607. package/node_modules/@protobufjs/pool/.npmignore +3 -0
  608. package/node_modules/@protobufjs/pool/LICENSE +26 -0
  609. package/node_modules/@protobufjs/pool/README.md +13 -0
  610. package/node_modules/{protobufjs/src/util/pool.d.ts → @protobufjs/pool/index.d.ts} +32 -32
  611. package/node_modules/{protobufjs/src/util/pool.js → @protobufjs/pool/index.js} +48 -48
  612. package/node_modules/@protobufjs/pool/package.json +21 -0
  613. package/node_modules/@protobufjs/pool/tests/index.js +33 -0
  614. package/node_modules/@protobufjs/utf8/LICENSE +26 -0
  615. package/node_modules/@protobufjs/utf8/README.md +20 -0
  616. package/node_modules/{protobufjs/src/util/utf8.d.ts → @protobufjs/utf8/index.d.ts} +24 -24
  617. package/node_modules/{protobufjs/src/util/utf8.js → @protobufjs/utf8/index.js} +104 -130
  618. package/node_modules/@protobufjs/utf8/package.json +21 -0
  619. package/node_modules/@protobufjs/utf8/tests/data/surrogate_pair_bug.txt +207 -0
  620. package/node_modules/@protobufjs/utf8/tests/data/utf8.txt +216 -0
  621. package/node_modules/@protobufjs/utf8/tests/index.js +74 -0
  622. package/node_modules/@types/node/LICENSE +21 -0
  623. package/node_modules/@types/node/README.md +15 -0
  624. package/node_modules/@types/node/assert/strict.d.ts +59 -0
  625. package/node_modules/@types/node/assert.d.ts +950 -0
  626. package/node_modules/@types/node/async_hooks.d.ts +711 -0
  627. package/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  628. package/node_modules/@types/node/buffer.d.ts +1765 -0
  629. package/node_modules/@types/node/child_process.d.ts +1366 -0
  630. package/node_modules/@types/node/cluster.d.ts +432 -0
  631. package/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  632. package/node_modules/@types/node/console.d.ts +93 -0
  633. package/node_modules/@types/node/constants.d.ts +14 -0
  634. package/node_modules/@types/node/crypto.d.ts +4058 -0
  635. package/node_modules/@types/node/dgram.d.ts +537 -0
  636. package/node_modules/@types/node/diagnostics_channel.d.ts +552 -0
  637. package/node_modules/@types/node/dns/promises.d.ts +497 -0
  638. package/node_modules/@types/node/dns.d.ts +876 -0
  639. package/node_modules/@types/node/domain.d.ts +150 -0
  640. package/node_modules/@types/node/events.d.ts +1008 -0
  641. package/node_modules/@types/node/fs/promises.d.ts +1468 -0
  642. package/node_modules/@types/node/fs.d.ts +4780 -0
  643. package/node_modules/@types/node/globals.d.ts +150 -0
  644. package/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  645. package/node_modules/@types/node/http.d.ts +2147 -0
  646. package/node_modules/@types/node/http2.d.ts +2485 -0
  647. package/node_modules/@types/node/https.d.ts +400 -0
  648. package/node_modules/@types/node/index.d.ts +117 -0
  649. package/node_modules/@types/node/inspector/promises.d.ts +35 -0
  650. package/node_modules/@types/node/inspector.d.ts +264 -0
  651. package/node_modules/@types/node/inspector.generated.d.ts +4406 -0
  652. package/node_modules/@types/node/module.d.ts +755 -0
  653. package/node_modules/@types/node/net.d.ts +970 -0
  654. package/node_modules/@types/node/os.d.ts +498 -0
  655. package/node_modules/@types/node/package.json +155 -0
  656. package/node_modules/@types/node/path/posix.d.ts +8 -0
  657. package/node_modules/@types/node/path/win32.d.ts +8 -0
  658. package/node_modules/@types/node/path.d.ts +178 -0
  659. package/node_modules/@types/node/perf_hooks.d.ts +612 -0
  660. package/node_modules/@types/node/process.d.ts +2204 -0
  661. package/node_modules/@types/node/punycode.d.ts +89 -0
  662. package/node_modules/@types/node/querystring.d.ts +139 -0
  663. package/node_modules/@types/node/quic.d.ts +897 -0
  664. package/node_modules/@types/node/readline/promises.d.ts +158 -0
  665. package/node_modules/@types/node/readline.d.ts +507 -0
  666. package/node_modules/@types/node/repl.d.ts +420 -0
  667. package/node_modules/@types/node/sea.d.ts +47 -0
  668. package/node_modules/@types/node/sqlite.d.ts +1068 -0
  669. package/node_modules/@types/node/stream/consumers.d.ts +114 -0
  670. package/node_modules/@types/node/stream/iter.d.ts +301 -0
  671. package/node_modules/@types/node/stream/promises.d.ts +211 -0
  672. package/node_modules/@types/node/stream/web.d.ts +300 -0
  673. package/node_modules/@types/node/stream.d.ts +1774 -0
  674. package/node_modules/@types/node/string_decoder.d.ts +27 -0
  675. package/node_modules/@types/node/test/reporters.d.ts +59 -0
  676. package/node_modules/@types/node/test.d.ts +2279 -0
  677. package/node_modules/@types/node/timers/promises.d.ts +93 -0
  678. package/node_modules/@types/node/timers.d.ts +149 -0
  679. package/node_modules/@types/node/tls.d.ts +1193 -0
  680. package/node_modules/@types/node/trace_events.d.ts +103 -0
  681. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  682. package/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  683. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  684. package/node_modules/@types/node/ts5.6/index.d.ts +119 -0
  685. package/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  686. package/node_modules/@types/node/ts5.7/index.d.ts +119 -0
  687. package/node_modules/@types/node/tty.d.ts +225 -0
  688. package/node_modules/@types/node/url.d.ts +556 -0
  689. package/node_modules/@types/node/util/types.d.ts +558 -0
  690. package/node_modules/@types/node/util.d.ts +1677 -0
  691. package/node_modules/@types/node/v8.d.ts +980 -0
  692. package/node_modules/@types/node/vm.d.ts +1136 -0
  693. package/node_modules/@types/node/wasi.d.ts +131 -0
  694. package/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  695. package/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  696. package/node_modules/@types/node/web-globals/console.d.ts +9 -0
  697. package/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  698. package/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  699. package/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  700. package/node_modules/@types/node/web-globals/events.d.ts +106 -0
  701. package/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  702. package/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  703. package/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  704. package/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  705. package/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  706. package/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  707. package/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  708. package/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  709. package/node_modules/@types/node/web-globals/url.d.ts +24 -0
  710. package/node_modules/@types/node/worker_threads.d.ts +671 -0
  711. package/node_modules/@types/node/zlib/iter.d.ts +131 -0
  712. package/node_modules/@types/node/zlib.d.ts +589 -0
  713. package/node_modules/protobufjs/README.md +556 -263
  714. package/node_modules/protobufjs/dist/light/protobuf.js +1569 -1919
  715. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  716. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  717. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  718. package/node_modules/protobufjs/dist/minimal/protobuf.js +906 -1132
  719. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  720. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  721. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  722. package/node_modules/protobufjs/dist/protobuf.js +1576 -1993
  723. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  724. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  725. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  726. package/node_modules/protobufjs/ext/descriptor/README.md +70 -3
  727. package/node_modules/protobufjs/ext/descriptor/index.d.ts +193 -0
  728. package/node_modules/protobufjs/ext/descriptor/index.js +1185 -1
  729. package/node_modules/protobufjs/ext/descriptor/test.js +54 -0
  730. package/node_modules/protobufjs/index.d.ts +720 -834
  731. package/node_modules/protobufjs/package.json +44 -20
  732. package/node_modules/protobufjs/src/converter.js +36 -60
  733. package/node_modules/protobufjs/src/decoder.js +53 -124
  734. package/node_modules/protobufjs/src/encoder.js +2 -10
  735. package/node_modules/protobufjs/src/enum.js +3 -8
  736. package/node_modules/protobufjs/src/field.js +11 -13
  737. package/node_modules/protobufjs/src/index-light.js +1 -1
  738. package/node_modules/protobufjs/src/mapfield.js +0 -1
  739. package/node_modules/protobufjs/src/message.js +11 -5
  740. package/node_modules/protobufjs/src/method.js +4 -5
  741. package/node_modules/protobufjs/src/namespace.js +3 -10
  742. package/node_modules/protobufjs/src/object.js +20 -20
  743. package/node_modules/protobufjs/src/oneof.js +0 -3
  744. package/node_modules/protobufjs/src/parse.js +16 -78
  745. package/node_modules/protobufjs/src/reader.js +31 -136
  746. package/node_modules/protobufjs/src/reader_buffer.js +3 -24
  747. package/node_modules/protobufjs/src/root.js +3 -7
  748. package/node_modules/protobufjs/src/roots.js +1 -1
  749. package/node_modules/protobufjs/src/service.js +6 -13
  750. package/node_modules/protobufjs/src/tokenize.js +1 -6
  751. package/node_modules/protobufjs/src/type.js +30 -44
  752. package/node_modules/protobufjs/src/typescript.jsdoc +15 -0
  753. package/node_modules/protobufjs/src/util/minimal.js +12 -36
  754. package/node_modules/protobufjs/src/util.js +17 -6
  755. package/node_modules/protobufjs/src/verifier.js +6 -6
  756. package/node_modules/protobufjs/src/wrappers.js +1 -0
  757. package/node_modules/protobufjs/src/writer.js +16 -42
  758. package/node_modules/protobufjs/src/writer_buffer.js +1 -18
  759. package/node_modules/protobufjs/tsconfig.json +5 -3
  760. package/node_modules/undici-types/LICENSE +21 -0
  761. package/node_modules/undici-types/README.md +6 -0
  762. package/node_modules/undici-types/agent.d.ts +32 -0
  763. package/node_modules/undici-types/api.d.ts +43 -0
  764. package/node_modules/undici-types/balanced-pool.d.ts +30 -0
  765. package/node_modules/undici-types/cache-interceptor.d.ts +179 -0
  766. package/node_modules/undici-types/cache.d.ts +36 -0
  767. package/node_modules/undici-types/client-stats.d.ts +15 -0
  768. package/node_modules/undici-types/client.d.ts +123 -0
  769. package/node_modules/undici-types/connector.d.ts +36 -0
  770. package/node_modules/undici-types/content-type.d.ts +21 -0
  771. package/node_modules/undici-types/cookies.d.ts +30 -0
  772. package/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  773. package/node_modules/undici-types/dispatcher.d.ts +279 -0
  774. package/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  775. package/node_modules/undici-types/errors.d.ts +177 -0
  776. package/node_modules/undici-types/eventsource.d.ts +66 -0
  777. package/node_modules/undici-types/fetch.d.ts +211 -0
  778. package/node_modules/undici-types/formdata.d.ts +108 -0
  779. package/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  780. package/node_modules/undici-types/global-origin.d.ts +7 -0
  781. package/node_modules/undici-types/h2c-client.d.ts +73 -0
  782. package/node_modules/undici-types/handlers.d.ts +15 -0
  783. package/node_modules/undici-types/header.d.ts +160 -0
  784. package/node_modules/undici-types/index.d.ts +91 -0
  785. package/node_modules/undici-types/interceptors.d.ts +80 -0
  786. package/node_modules/undici-types/mock-agent.d.ts +68 -0
  787. package/node_modules/undici-types/mock-call-history.d.ts +111 -0
  788. package/node_modules/undici-types/mock-client.d.ts +27 -0
  789. package/node_modules/undici-types/mock-errors.d.ts +12 -0
  790. package/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  791. package/node_modules/undici-types/mock-pool.d.ts +27 -0
  792. package/node_modules/undici-types/package.json +55 -0
  793. package/node_modules/undici-types/patch.d.ts +29 -0
  794. package/node_modules/undici-types/pool-stats.d.ts +19 -0
  795. package/node_modules/undici-types/pool.d.ts +41 -0
  796. package/node_modules/undici-types/proxy-agent.d.ts +29 -0
  797. package/node_modules/undici-types/readable.d.ts +68 -0
  798. package/node_modules/undici-types/retry-agent.d.ts +8 -0
  799. package/node_modules/undici-types/retry-handler.d.ts +125 -0
  800. package/node_modules/undici-types/round-robin-pool.d.ts +41 -0
  801. package/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  802. package/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  803. package/node_modules/undici-types/util.d.ts +18 -0
  804. package/node_modules/undici-types/utility.d.ts +7 -0
  805. package/node_modules/undici-types/webidl.d.ts +347 -0
  806. package/node_modules/undici-types/websocket.d.ts +188 -0
  807. package/npm-shrinkwrap.json +294 -204
  808. package/package.json +13 -13
  809. package/node_modules/protobufjs/ext/README.md +0 -81
  810. package/node_modules/protobufjs/ext/descriptor.d.ts +0 -86
  811. package/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -409
  812. package/node_modules/protobufjs/ext/descriptor.js +0 -1266
  813. package/node_modules/protobufjs/ext/textformat.d.ts +0 -19
  814. package/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -11
  815. package/node_modules/protobufjs/ext/textformat.js +0 -1235
  816. package/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
  817. package/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
  818. package/node_modules/protobufjs/src/typescript.js +0 -25
  819. /package/node_modules/{protobufjs/src/util/float.d.ts → @protobufjs/float/index.d.ts} +0 -0
@@ -9,7 +9,10 @@ export declare class LogRecordImpl implements ReadableLogRecord {
9
9
  readonly hrTimeObserved: api.HrTime;
10
10
  readonly spanContext?: api.SpanContext;
11
11
  readonly resource: Resource;
12
- readonly instrumentationScope: InstrumentationScope;
12
+ readonly instrumentationScope: InstrumentationScope & {
13
+ attributes?: LogAttributes;
14
+ droppedAttributesCount?: number;
15
+ };
13
16
  readonly attributes: LogAttributes;
14
17
  private _severityText?;
15
18
  private _severityNumber?;
@@ -41,9 +44,7 @@ export declare class LogRecordImpl implements ReadableLogRecord {
41
44
  * If logRecord is needed after OnEmit returns (i.e. for asynchronous processing) only reads are permitted.
42
45
  */
43
46
  _makeReadonly(): void;
44
- private _truncateToSize;
45
47
  private _setException;
46
- private _truncateToLimitUtil;
47
48
  private _isLogRecordReadonly;
48
49
  }
49
50
  //# sourceMappingURL=LogRecordImpl.d.ts.map
@@ -5,7 +5,7 @@
5
5
  import * as api from '@opentelemetry/api';
6
6
  import { timeInputToHrTime } from '@opentelemetry/core';
7
7
  import { ATTR_EXCEPTION_MESSAGE, ATTR_EXCEPTION_STACKTRACE, ATTR_EXCEPTION_TYPE, } from '@opentelemetry/semantic-conventions';
8
- import { isLogAttributeValue } from './utils/validation';
8
+ import { addAttribute, AddAttributeDecision } from './utils/validation';
9
9
  export class LogRecordImpl {
10
10
  hrTime;
11
11
  hrTimeObserved;
@@ -87,26 +87,15 @@ export class LogRecordImpl {
87
87
  if (this._isLogRecordReadonly()) {
88
88
  return this;
89
89
  }
90
- if (key.length === 0) {
91
- api.diag.warn(`Invalid attribute key: ${key}`);
92
- return this;
93
- }
94
- if (!isLogAttributeValue(value)) {
95
- api.diag.warn(`Invalid attribute value set for key: ${key}`);
96
- return this;
97
- }
98
- const isNewKey = !Object.prototype.hasOwnProperty.call(this.attributes, key);
99
- if (isNewKey &&
100
- this._attributesCount >= this._logRecordLimits.attributeCountLimit) {
90
+ const decision = addAttribute(this.attributes, this._logRecordLimits, this._attributesCount, key, value);
91
+ if (decision === AddAttributeDecision.DROP_LIMIT_REACHED) {
101
92
  this._droppedAttributesCount++;
102
- // Only warn once per LogRecord to avoid log spam
103
93
  if (this._droppedAttributesCount === 1) {
94
+ // Only warn once per LogRecord to avoid log spam
104
95
  api.diag.warn('Dropping extra attributes.');
105
96
  }
106
- return this;
107
97
  }
108
- this.attributes[key] = this._truncateToSize(value);
109
- if (isNewKey) {
98
+ else if (decision === AddAttributeDecision.ADD_NEW) {
110
99
  this._attributesCount++;
111
100
  }
112
101
  return this;
@@ -141,41 +130,6 @@ export class LogRecordImpl {
141
130
  _makeReadonly() {
142
131
  this._isReadonly = true;
143
132
  }
144
- _truncateToSize(value) {
145
- const limit = this._logRecordLimits.attributeValueLengthLimit;
146
- // Check limit
147
- if (limit <= 0) {
148
- // Negative values are invalid, so do not truncate
149
- api.diag.warn(`Attribute value limit must be positive, got ${limit}`);
150
- return value;
151
- }
152
- // null/undefined - no truncation needed
153
- if (value == null) {
154
- return value;
155
- }
156
- // String
157
- if (typeof value === 'string') {
158
- return this._truncateToLimitUtil(value, limit);
159
- }
160
- // Byte arrays - no truncation needed
161
- if (value instanceof Uint8Array) {
162
- return value;
163
- }
164
- // Arrays (can contain any AnyValue types)
165
- if (Array.isArray(value)) {
166
- return value.map(val => this._truncateToSize(val));
167
- }
168
- // Objects/Maps - recursively truncate nested values
169
- if (typeof value === 'object') {
170
- const truncatedObj = {};
171
- for (const [k, v] of Object.entries(value)) {
172
- truncatedObj[k] = this._truncateToSize(v);
173
- }
174
- return truncatedObj;
175
- }
176
- // Other types (number, boolean), no need to apply value length limit
177
- return value;
178
- }
179
133
  _setException(exception) {
180
134
  let hasMinimumAttributes = false;
181
135
  if (typeof exception === 'string' || typeof exception === 'number') {
@@ -215,12 +169,6 @@ export class LogRecordImpl {
215
169
  api.diag.warn(`Failed to record an exception ${exception}`);
216
170
  }
217
171
  }
218
- _truncateToLimitUtil(value, limit) {
219
- if (value.length <= limit) {
220
- return value;
221
- }
222
- return value.substring(0, limit);
223
- }
224
172
  _isLogRecordReadonly() {
225
173
  if (this._isReadonly) {
226
174
  api.diag.warn('Can not execute the operation on emitted log record');
@@ -1 +1 @@
1
- {"version":3,"file":"LogRecordImpl.js","sourceRoot":"","sources":["../../src/LogRecordImpl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AnyValue,\n LogAttributes,\n LogBody,\n LogRecord,\n SeverityNumber,\n} from '@opentelemetry/api-logs';\nimport * as api from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport { timeInputToHrTime } from '@opentelemetry/core';\nimport type { Resource } from '@opentelemetry/resources';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { ReadableLogRecord } from './export/ReadableLogRecord';\nimport type { LogRecordLimits } from './types';\nimport { isLogAttributeValue } from './utils/validation';\nimport type { LoggerProviderSharedState } from './internal/LoggerProviderSharedState';\n\nexport class LogRecordImpl implements ReadableLogRecord {\n readonly hrTime: api.HrTime;\n readonly hrTimeObserved: api.HrTime;\n readonly spanContext?: api.SpanContext;\n readonly resource: Resource;\n readonly instrumentationScope: InstrumentationScope;\n readonly attributes: LogAttributes = {};\n private _severityText?: string;\n private _severityNumber?: SeverityNumber;\n private _body?: LogBody;\n private _eventName?: string;\n private _attributesCount: number = 0;\n private _droppedAttributesCount: number = 0;\n\n private _isReadonly: boolean = false;\n private readonly _logRecordLimits: Required<LogRecordLimits>;\n\n set severityText(severityText: string | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._severityText = severityText;\n }\n get severityText(): string | undefined {\n return this._severityText;\n }\n\n set severityNumber(severityNumber: SeverityNumber | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._severityNumber = severityNumber;\n }\n get severityNumber(): SeverityNumber | undefined {\n return this._severityNumber;\n }\n\n set body(body: LogBody | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._body = body;\n }\n get body(): LogBody | undefined {\n return this._body;\n }\n\n get eventName(): string | undefined {\n return this._eventName;\n }\n set eventName(eventName: string | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._eventName = eventName;\n }\n\n get droppedAttributesCount(): number {\n return this._droppedAttributesCount;\n }\n\n constructor(\n _sharedState: LoggerProviderSharedState,\n instrumentationScope: InstrumentationScope,\n logRecord: LogRecord\n ) {\n const {\n timestamp,\n observedTimestamp,\n eventName,\n severityNumber,\n severityText,\n body,\n attributes = {},\n exception,\n context,\n } = logRecord;\n\n const now = Date.now();\n this.hrTime = timeInputToHrTime(timestamp ?? now);\n this.hrTimeObserved = timeInputToHrTime(observedTimestamp ?? now);\n\n if (context) {\n const spanContext = api.trace.getSpanContext(context);\n if (spanContext && api.isSpanContextValid(spanContext)) {\n this.spanContext = spanContext;\n }\n }\n this.severityNumber = severityNumber;\n this.severityText = severityText;\n this.body = body;\n this.resource = _sharedState.resource;\n this.instrumentationScope = instrumentationScope;\n this._logRecordLimits = _sharedState.logRecordLimits;\n this._eventName = eventName;\n this.setAttributes(attributes);\n if (exception != null) {\n this._setException(exception);\n }\n }\n\n public setAttribute(key: string, value?: AnyValue) {\n if (this._isLogRecordReadonly()) {\n return this;\n }\n if (key.length === 0) {\n api.diag.warn(`Invalid attribute key: ${key}`);\n return this;\n }\n if (!isLogAttributeValue(value)) {\n api.diag.warn(`Invalid attribute value set for key: ${key}`);\n return this;\n }\n const isNewKey = !Object.prototype.hasOwnProperty.call(\n this.attributes,\n key\n );\n if (\n isNewKey &&\n this._attributesCount >= this._logRecordLimits.attributeCountLimit\n ) {\n this._droppedAttributesCount++;\n // Only warn once per LogRecord to avoid log spam\n if (this._droppedAttributesCount === 1) {\n api.diag.warn('Dropping extra attributes.');\n }\n return this;\n }\n this.attributes[key] = this._truncateToSize(value);\n if (isNewKey) {\n this._attributesCount++;\n }\n return this;\n }\n\n public setAttributes(attributes: LogAttributes) {\n for (const [k, v] of Object.entries(attributes)) {\n this.setAttribute(k, v);\n }\n return this;\n }\n\n public setBody(body: LogBody) {\n this.body = body;\n return this;\n }\n\n public setEventName(eventName: string) {\n this.eventName = eventName;\n return this;\n }\n\n public setSeverityNumber(severityNumber: SeverityNumber) {\n this.severityNumber = severityNumber;\n return this;\n }\n\n public setSeverityText(severityText: string) {\n this.severityText = severityText;\n return this;\n }\n\n /**\n * @internal\n * A LogRecordProcessor may freely modify logRecord for the duration of the OnEmit call.\n * If logRecord is needed after OnEmit returns (i.e. for asynchronous processing) only reads are permitted.\n */\n _makeReadonly() {\n this._isReadonly = true;\n }\n\n private _truncateToSize(value: AnyValue): AnyValue {\n const limit = this._logRecordLimits.attributeValueLengthLimit;\n // Check limit\n if (limit <= 0) {\n // Negative values are invalid, so do not truncate\n api.diag.warn(`Attribute value limit must be positive, got ${limit}`);\n return value;\n }\n\n // null/undefined - no truncation needed\n if (value == null) {\n return value;\n }\n\n // String\n if (typeof value === 'string') {\n return this._truncateToLimitUtil(value, limit);\n }\n\n // Byte arrays - no truncation needed\n if (value instanceof Uint8Array) {\n return value;\n }\n\n // Arrays (can contain any AnyValue types)\n if (Array.isArray(value)) {\n return value.map(val => this._truncateToSize(val));\n }\n\n // Objects/Maps - recursively truncate nested values\n if (typeof value === 'object') {\n const truncatedObj: Record<string, AnyValue> = {};\n for (const [k, v] of Object.entries(value as Record<string, AnyValue>)) {\n truncatedObj[k] = this._truncateToSize(v);\n }\n return truncatedObj;\n }\n\n // Other types (number, boolean), no need to apply value length limit\n return value;\n }\n\n private _setException(exception: unknown): void {\n let hasMinimumAttributes = false;\n\n if (typeof exception === 'string' || typeof exception === 'number') {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_MESSAGE)) {\n this.setAttribute(ATTR_EXCEPTION_MESSAGE, String(exception));\n }\n hasMinimumAttributes = true;\n } else if (exception && typeof exception === 'object') {\n const exceptionObj = exception as {\n code?: string | number;\n name?: string;\n message?: string;\n stack?: string;\n };\n\n if (exceptionObj.code) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_TYPE)) {\n this.setAttribute(ATTR_EXCEPTION_TYPE, exceptionObj.code.toString());\n }\n hasMinimumAttributes = true;\n } else if (exceptionObj.name) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_TYPE)) {\n this.setAttribute(ATTR_EXCEPTION_TYPE, exceptionObj.name);\n }\n hasMinimumAttributes = true;\n }\n\n if (exceptionObj.message) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_MESSAGE)) {\n this.setAttribute(ATTR_EXCEPTION_MESSAGE, exceptionObj.message);\n }\n hasMinimumAttributes = true;\n }\n\n if (exceptionObj.stack) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_STACKTRACE)) {\n this.setAttribute(ATTR_EXCEPTION_STACKTRACE, exceptionObj.stack);\n }\n hasMinimumAttributes = true;\n }\n }\n\n if (!hasMinimumAttributes) {\n api.diag.warn(`Failed to record an exception ${exception}`);\n }\n }\n\n private _truncateToLimitUtil(value: string, limit: number): string {\n if (value.length <= limit) {\n return value;\n }\n return value.substring(0, limit);\n }\n\n private _isLogRecordReadonly(): boolean {\n if (this._isReadonly) {\n api.diag.warn('Can not execute the operation on emitted log record');\n }\n return this._isReadonly;\n }\n}\n"]}
1
+ {"version":3,"file":"LogRecordImpl.js","sourceRoot":"","sources":["../../src/LogRecordImpl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AnyValue,\n LogAttributes,\n LogBody,\n LogRecord,\n SeverityNumber,\n} from '@opentelemetry/api-logs';\nimport * as api from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport { timeInputToHrTime } from '@opentelemetry/core';\nimport type { Resource } from '@opentelemetry/resources';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { ReadableLogRecord } from './export/ReadableLogRecord';\nimport type { LogRecordLimits } from './types';\nimport type { LoggerProviderSharedState } from './internal/LoggerProviderSharedState';\nimport { addAttribute, AddAttributeDecision } from './utils/validation';\n\nexport class LogRecordImpl implements ReadableLogRecord {\n readonly hrTime: api.HrTime;\n readonly hrTimeObserved: api.HrTime;\n readonly spanContext?: api.SpanContext;\n readonly resource: Resource;\n readonly instrumentationScope: InstrumentationScope & {\n attributes?: LogAttributes;\n droppedAttributesCount?: number;\n };\n readonly attributes: LogAttributes = {};\n private _severityText?: string;\n private _severityNumber?: SeverityNumber;\n private _body?: LogBody;\n private _eventName?: string;\n private _attributesCount: number = 0;\n private _droppedAttributesCount: number = 0;\n\n private _isReadonly: boolean = false;\n private readonly _logRecordLimits: Required<LogRecordLimits>;\n\n set severityText(severityText: string | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._severityText = severityText;\n }\n get severityText(): string | undefined {\n return this._severityText;\n }\n\n set severityNumber(severityNumber: SeverityNumber | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._severityNumber = severityNumber;\n }\n get severityNumber(): SeverityNumber | undefined {\n return this._severityNumber;\n }\n\n set body(body: LogBody | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._body = body;\n }\n get body(): LogBody | undefined {\n return this._body;\n }\n\n get eventName(): string | undefined {\n return this._eventName;\n }\n set eventName(eventName: string | undefined) {\n if (this._isLogRecordReadonly()) {\n return;\n }\n this._eventName = eventName;\n }\n\n get droppedAttributesCount(): number {\n return this._droppedAttributesCount;\n }\n\n constructor(\n _sharedState: LoggerProviderSharedState,\n instrumentationScope: InstrumentationScope,\n logRecord: LogRecord\n ) {\n const {\n timestamp,\n observedTimestamp,\n eventName,\n severityNumber,\n severityText,\n body,\n attributes = {},\n exception,\n context,\n } = logRecord;\n\n const now = Date.now();\n this.hrTime = timeInputToHrTime(timestamp ?? now);\n this.hrTimeObserved = timeInputToHrTime(observedTimestamp ?? now);\n\n if (context) {\n const spanContext = api.trace.getSpanContext(context);\n if (spanContext && api.isSpanContextValid(spanContext)) {\n this.spanContext = spanContext;\n }\n }\n this.severityNumber = severityNumber;\n this.severityText = severityText;\n this.body = body;\n this.resource = _sharedState.resource;\n this.instrumentationScope = instrumentationScope;\n this._logRecordLimits = _sharedState.logRecordLimits;\n this._eventName = eventName;\n this.setAttributes(attributes);\n if (exception != null) {\n this._setException(exception);\n }\n }\n\n public setAttribute(key: string, value?: AnyValue) {\n if (this._isLogRecordReadonly()) {\n return this;\n }\n\n const decision = addAttribute(\n this.attributes,\n this._logRecordLimits,\n this._attributesCount,\n key,\n value\n );\n\n if (decision === AddAttributeDecision.DROP_LIMIT_REACHED) {\n this._droppedAttributesCount++;\n if (this._droppedAttributesCount === 1) {\n // Only warn once per LogRecord to avoid log spam\n api.diag.warn('Dropping extra attributes.');\n }\n } else if (decision === AddAttributeDecision.ADD_NEW) {\n this._attributesCount++;\n }\n\n return this;\n }\n\n public setAttributes(attributes: LogAttributes) {\n for (const [k, v] of Object.entries(attributes)) {\n this.setAttribute(k, v);\n }\n return this;\n }\n\n public setBody(body: LogBody) {\n this.body = body;\n return this;\n }\n\n public setEventName(eventName: string) {\n this.eventName = eventName;\n return this;\n }\n\n public setSeverityNumber(severityNumber: SeverityNumber) {\n this.severityNumber = severityNumber;\n return this;\n }\n\n public setSeverityText(severityText: string) {\n this.severityText = severityText;\n return this;\n }\n\n /**\n * @internal\n * A LogRecordProcessor may freely modify logRecord for the duration of the OnEmit call.\n * If logRecord is needed after OnEmit returns (i.e. for asynchronous processing) only reads are permitted.\n */\n _makeReadonly() {\n this._isReadonly = true;\n }\n\n private _setException(exception: unknown): void {\n let hasMinimumAttributes = false;\n\n if (typeof exception === 'string' || typeof exception === 'number') {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_MESSAGE)) {\n this.setAttribute(ATTR_EXCEPTION_MESSAGE, String(exception));\n }\n hasMinimumAttributes = true;\n } else if (exception && typeof exception === 'object') {\n const exceptionObj = exception as {\n code?: string | number;\n name?: string;\n message?: string;\n stack?: string;\n };\n\n if (exceptionObj.code) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_TYPE)) {\n this.setAttribute(ATTR_EXCEPTION_TYPE, exceptionObj.code.toString());\n }\n hasMinimumAttributes = true;\n } else if (exceptionObj.name) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_TYPE)) {\n this.setAttribute(ATTR_EXCEPTION_TYPE, exceptionObj.name);\n }\n hasMinimumAttributes = true;\n }\n\n if (exceptionObj.message) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_MESSAGE)) {\n this.setAttribute(ATTR_EXCEPTION_MESSAGE, exceptionObj.message);\n }\n hasMinimumAttributes = true;\n }\n\n if (exceptionObj.stack) {\n if (!Object.hasOwn(this.attributes, ATTR_EXCEPTION_STACKTRACE)) {\n this.setAttribute(ATTR_EXCEPTION_STACKTRACE, exceptionObj.stack);\n }\n hasMinimumAttributes = true;\n }\n }\n\n if (!hasMinimumAttributes) {\n api.diag.warn(`Failed to record an exception ${exception}`);\n }\n }\n\n private _isLogRecordReadonly(): boolean {\n if (this._isReadonly) {\n api.diag.warn('Can not execute the operation on emitted log record');\n }\n return this._isReadonly;\n }\n}\n"]}
@@ -1,13 +1,13 @@
1
1
  import type { Logger as ILogger, LogRecord } from '@opentelemetry/api-logs';
2
2
  import { SeverityNumber } from '@opentelemetry/api-logs';
3
- import type { InstrumentationScope } from '@opentelemetry/core';
4
3
  import type { Context } from '@opentelemetry/api';
5
4
  import type { LoggerProviderSharedState } from './internal/LoggerProviderSharedState';
5
+ import type { LogInstrumentationScope } from './internal/utils';
6
6
  export declare class Logger implements ILogger {
7
- readonly instrumentationScope: InstrumentationScope;
8
- private _sharedState;
7
+ private readonly _instrumentationScope;
8
+ private readonly _sharedState;
9
9
  private readonly _loggerConfig;
10
- constructor(instrumentationScope: InstrumentationScope, sharedState: LoggerProviderSharedState);
10
+ constructor(instrumentationScope: LogInstrumentationScope, sharedState: LoggerProviderSharedState);
11
11
  emit(logRecord: LogRecord): void;
12
12
  enabled(options?: {
13
13
  context?: Context;
@@ -6,16 +6,16 @@ import { SeverityNumber } from '@opentelemetry/api-logs';
6
6
  import { context, trace, TraceFlags, isSpanContextValid, } from '@opentelemetry/api';
7
7
  import { LogRecordImpl } from './LogRecordImpl';
8
8
  export class Logger {
9
- instrumentationScope;
9
+ _instrumentationScope;
10
10
  _sharedState;
11
11
  _loggerConfig;
12
12
  constructor(instrumentationScope, sharedState) {
13
- this.instrumentationScope = instrumentationScope;
13
+ this._instrumentationScope = instrumentationScope;
14
14
  this._sharedState = sharedState;
15
15
  // Cache the logger configuration at construction time
16
16
  // Since we don't support re-configuration, this avoids map lookups
17
17
  // and string allocations on each emit() call
18
- this._loggerConfig = this._sharedState.getLoggerConfig(this.instrumentationScope);
18
+ this._loggerConfig = this._sharedState.getLoggerConfig(this._instrumentationScope);
19
19
  }
20
20
  emit(logRecord) {
21
21
  const currentContext = logRecord.context || context.active();
@@ -27,7 +27,7 @@ export class Logger {
27
27
  * the LogRecords it emits MUST automatically include the Trace Context from the active Context,
28
28
  * if Context has not been explicitly set.
29
29
  */
30
- const logRecordInstance = new LogRecordImpl(this._sharedState, this.instrumentationScope, {
30
+ const logRecordInstance = new LogRecordImpl(this._sharedState, this._instrumentationScope, {
31
31
  context: currentContext,
32
32
  ...logRecord,
33
33
  });
@@ -69,7 +69,7 @@ export class Logger {
69
69
  // Lastly check if there is any enabled processor
70
70
  const enabledOpts = {
71
71
  context: currentContext,
72
- instrumentationScope: this.instrumentationScope,
72
+ instrumentationScope: this._instrumentationScope,
73
73
  severityNumber: options?.severityNumber,
74
74
  eventName: options?.eventName,
75
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EACL,OAAO,EACP,KAAK,EACL,UAAU,EACV,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,OAAO,MAAM;IACD,oBAAoB,CAAuB;IACnD,YAAY,CAA4B;IAC/B,aAAa,CAAyB;IAEvD,YACE,oBAA0C,EAC1C,WAAsC;QAEtC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,sDAAsD;QACtD,mEAAmE;QACnE,6CAA6C;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CACpD,IAAI,CAAC,oBAAoB,CAC1B,CAAC;IACJ,CAAC;IAEM,IAAI,CAAC,SAAoB;QAC9B,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5B,OAAO;SACR;QAED;;;;WAIG;QACH,MAAM,iBAAiB,GAAG,IAAI,aAAa,CACzC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,oBAAoB,EACzB;YACE,OAAO,EAAE,cAAc;YACvB,GAAG,SAAS;SACb,CACF,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1C;;;WAGG;QACH,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAC5E;;;WAGG;QACH,iBAAiB,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAEM,OAAO,CAAC,OAId;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QAExC,IAAI,YAAY,CAAC,QAAQ,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAED,0DAA0D;QAC1D,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,CAAC;QAC/C,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,cAAc,KAAK,cAAc,CAAC,WAAW;YAC7C,cAAc,GAAG,YAAY,CAAC,eAAe,EAC7C;YACA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,cAAc,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5D,sEAAsE;QACtE,IAAI,YAAY,CAAC,UAAU,EAAE;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,WAAW,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE;gBAClD,MAAM,SAAS,GACb,CAAC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC;gBACvE,IAAI,CAAC,SAAS,EAAE;oBACd,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,cAAc;YACvB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,cAAc,EAAE,OAAO,EAAE,cAAc;YACvC,SAAS,EAAE,OAAO,EAAE,SAAS;SAC9B,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YACpD,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACxD,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Logger as ILogger, LogRecord } from '@opentelemetry/api-logs';\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport type { Context } from '@opentelemetry/api';\nimport {\n context,\n trace,\n TraceFlags,\n isSpanContextValid,\n} from '@opentelemetry/api';\n\nimport { LogRecordImpl } from './LogRecordImpl';\nimport type { LoggerProviderSharedState } from './internal/LoggerProviderSharedState';\nimport type { LoggerConfig } from './types';\n\nexport class Logger implements ILogger {\n public readonly instrumentationScope: InstrumentationScope;\n private _sharedState: LoggerProviderSharedState;\n private readonly _loggerConfig: Required<LoggerConfig>;\n\n constructor(\n instrumentationScope: InstrumentationScope,\n sharedState: LoggerProviderSharedState\n ) {\n this.instrumentationScope = instrumentationScope;\n this._sharedState = sharedState;\n // Cache the logger configuration at construction time\n // Since we don't support re-configuration, this avoids map lookups\n // and string allocations on each emit() call\n this._loggerConfig = this._sharedState.getLoggerConfig(\n this.instrumentationScope\n );\n }\n\n public emit(logRecord: LogRecord): void {\n const currentContext = logRecord.context || context.active();\n if (!this.enabled(logRecord)) {\n return;\n }\n\n /**\n * If a Logger was obtained with include_trace_context=true,\n * the LogRecords it emits MUST automatically include the Trace Context from the active Context,\n * if Context has not been explicitly set.\n */\n const logRecordInstance = new LogRecordImpl(\n this._sharedState,\n this.instrumentationScope,\n {\n context: currentContext,\n ...logRecord,\n }\n );\n this._sharedState.loggerMetrics.emitLog();\n /**\n * the explicitly passed Context,\n * the current Context, or an empty Context if the Logger was obtained with include_trace_context=false\n */\n this._sharedState.activeProcessor.onEmit(logRecordInstance, currentContext);\n /**\n * A LogRecordProcessor may freely modify logRecord for the duration of the OnEmit call.\n * If logRecord is needed after OnEmit returns (i.e. for asynchronous processing) only reads are permitted.\n */\n logRecordInstance._makeReadonly();\n }\n\n public enabled(options?: {\n context?: Context;\n severityNumber?: SeverityNumber;\n eventName?: string;\n }): boolean {\n const loggerConfig = this._loggerConfig;\n\n if (loggerConfig.disabled) {\n return false;\n }\n\n // Severity number given and lower than the min configured\n const severityNumber = options?.severityNumber;\n if (\n typeof severityNumber === 'number' &&\n severityNumber !== SeverityNumber.UNSPECIFIED &&\n severityNumber < loggerConfig.minimumSeverity\n ) {\n return false;\n }\n\n const currentContext = options?.context || context.active();\n // Trace based: the context (given or the active) has a unsampled Span\n if (loggerConfig.traceBased) {\n const spanContext = trace.getSpanContext(currentContext);\n if (spanContext && isSpanContextValid(spanContext)) {\n const isSampled =\n (spanContext.traceFlags & TraceFlags.SAMPLED) === TraceFlags.SAMPLED;\n if (!isSampled) {\n return false;\n }\n }\n }\n\n // Lastly check if there is any enabled processor\n const enabledOpts = {\n context: currentContext,\n instrumentationScope: this.instrumentationScope,\n severityNumber: options?.severityNumber,\n eventName: options?.eventName,\n };\n for (const processor of this._sharedState.processors) {\n if (!processor.enabled || processor.enabled(enabledOpts)) {\n return true;\n }\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,OAAO,EACP,KAAK,EACL,UAAU,EACV,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,MAAM,OAAO,MAAM;IACA,qBAAqB,CAA0B;IAC/C,YAAY,CAA4B;IACxC,aAAa,CAAyB;IAEvD,YACE,oBAA6C,EAC7C,WAAsC;QAEtC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,sDAAsD;QACtD,mEAAmE;QACnE,6CAA6C;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CACpD,IAAI,CAAC,qBAAqB,CAC3B,CAAC;IACJ,CAAC;IAEM,IAAI,CAAC,SAAoB;QAC9B,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5B,OAAO;SACR;QAED;;;;WAIG;QACH,MAAM,iBAAiB,GAAG,IAAI,aAAa,CACzC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,qBAAqB,EAC1B;YACE,OAAO,EAAE,cAAc;YACvB,GAAG,SAAS;SACb,CACF,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1C;;;WAGG;QACH,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAC5E;;;WAGG;QACH,iBAAiB,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAEM,OAAO,CAAC,OAId;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QAExC,IAAI,YAAY,CAAC,QAAQ,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAED,0DAA0D;QAC1D,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,CAAC;QAC/C,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,cAAc,KAAK,cAAc,CAAC,WAAW;YAC7C,cAAc,GAAG,YAAY,CAAC,eAAe,EAC7C;YACA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,cAAc,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5D,sEAAsE;QACtE,IAAI,YAAY,CAAC,UAAU,EAAE;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,WAAW,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE;gBAClD,MAAM,SAAS,GACb,CAAC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC;gBACvE,IAAI,CAAC,SAAS,EAAE;oBACd,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,cAAc;YACvB,oBAAoB,EAAE,IAAI,CAAC,qBAAqB;YAChD,cAAc,EAAE,OAAO,EAAE,cAAc;YACvC,SAAS,EAAE,OAAO,EAAE,SAAS;SAC9B,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YACpD,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACxD,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Logger as ILogger, LogRecord } from '@opentelemetry/api-logs';\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport type { Context } from '@opentelemetry/api';\nimport {\n context,\n trace,\n TraceFlags,\n isSpanContextValid,\n} from '@opentelemetry/api';\n\nimport { LogRecordImpl } from './LogRecordImpl';\nimport type { LoggerProviderSharedState } from './internal/LoggerProviderSharedState';\nimport type { LoggerConfig } from './types';\nimport type { LogInstrumentationScope } from './internal/utils';\n\nexport class Logger implements ILogger {\n private readonly _instrumentationScope: LogInstrumentationScope;\n private readonly _sharedState: LoggerProviderSharedState;\n private readonly _loggerConfig: Required<LoggerConfig>;\n\n constructor(\n instrumentationScope: LogInstrumentationScope,\n sharedState: LoggerProviderSharedState\n ) {\n this._instrumentationScope = instrumentationScope;\n this._sharedState = sharedState;\n // Cache the logger configuration at construction time\n // Since we don't support re-configuration, this avoids map lookups\n // and string allocations on each emit() call\n this._loggerConfig = this._sharedState.getLoggerConfig(\n this._instrumentationScope\n );\n }\n\n public emit(logRecord: LogRecord): void {\n const currentContext = logRecord.context || context.active();\n if (!this.enabled(logRecord)) {\n return;\n }\n\n /**\n * If a Logger was obtained with include_trace_context=true,\n * the LogRecords it emits MUST automatically include the Trace Context from the active Context,\n * if Context has not been explicitly set.\n */\n const logRecordInstance = new LogRecordImpl(\n this._sharedState,\n this._instrumentationScope,\n {\n context: currentContext,\n ...logRecord,\n }\n );\n this._sharedState.loggerMetrics.emitLog();\n /**\n * the explicitly passed Context,\n * the current Context, or an empty Context if the Logger was obtained with include_trace_context=false\n */\n this._sharedState.activeProcessor.onEmit(logRecordInstance, currentContext);\n /**\n * A LogRecordProcessor may freely modify logRecord for the duration of the OnEmit call.\n * If logRecord is needed after OnEmit returns (i.e. for asynchronous processing) only reads are permitted.\n */\n logRecordInstance._makeReadonly();\n }\n\n public enabled(options?: {\n context?: Context;\n severityNumber?: SeverityNumber;\n eventName?: string;\n }): boolean {\n const loggerConfig = this._loggerConfig;\n\n if (loggerConfig.disabled) {\n return false;\n }\n\n // Severity number given and lower than the min configured\n const severityNumber = options?.severityNumber;\n if (\n typeof severityNumber === 'number' &&\n severityNumber !== SeverityNumber.UNSPECIFIED &&\n severityNumber < loggerConfig.minimumSeverity\n ) {\n return false;\n }\n\n const currentContext = options?.context || context.active();\n // Trace based: the context (given or the active) has a unsampled Span\n if (loggerConfig.traceBased) {\n const spanContext = trace.getSpanContext(currentContext);\n if (spanContext && isSpanContextValid(spanContext)) {\n const isSampled =\n (spanContext.traceFlags & TraceFlags.SAMPLED) === TraceFlags.SAMPLED;\n if (!isSampled) {\n return false;\n }\n }\n }\n\n // Lastly check if there is any enabled processor\n const enabledOpts = {\n context: currentContext,\n instrumentationScope: this._instrumentationScope,\n severityNumber: options?.severityNumber,\n eventName: options?.eventName,\n };\n for (const processor of this._sharedState.processors) {\n if (!processor.enabled || processor.enabled(enabledOpts)) {\n return true;\n }\n }\n return false;\n }\n}\n"]}
@@ -3,11 +3,13 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { diag } from '@opentelemetry/api';
6
- import { NOOP_LOGGER } from '@opentelemetry/api-logs';
6
+ import { createNoopLogger } from '@opentelemetry/api-logs';
7
7
  import { defaultResource } from '@opentelemetry/resources';
8
8
  import { BindOnceFuture } from '@opentelemetry/core';
9
9
  import { Logger } from './Logger';
10
10
  import { DEFAULT_LOGGER_CONFIGURATOR, LoggerProviderSharedState, } from './internal/LoggerProviderSharedState';
11
+ import { getInstrumentationScopeKey, } from './internal/utils';
12
+ import { normalizeScopeAttributes } from './utils/validation';
11
13
  export const DEFAULT_LOGGER_NAME = 'unknown';
12
14
  export class LoggerProvider {
13
15
  _shutdownOnce;
@@ -33,17 +35,22 @@ export class LoggerProvider {
33
35
  getLogger(name, version, options) {
34
36
  if (this._shutdownOnce.isCalled) {
35
37
  diag.warn('A shutdown LoggerProvider cannot provide a Logger');
36
- return NOOP_LOGGER;
38
+ return createNoopLogger();
37
39
  }
38
40
  if (!name) {
39
41
  diag.warn('Logger requested without instrumentation scope name.');
40
42
  }
41
43
  const loggerName = name || DEFAULT_LOGGER_NAME;
42
- const key = `${loggerName}@${version || ''}:${options?.schemaUrl || ''}`;
44
+ const instrumentationScope = {
45
+ name: loggerName,
46
+ version,
47
+ schemaUrl: options?.schemaUrl,
48
+ ...normalizeScopeAttributes(this._sharedState.logRecordLimits, options?.attributes),
49
+ };
50
+ const key = getInstrumentationScopeKey(instrumentationScope);
43
51
  if (!this._sharedState.loggers.has(key)) {
44
- this._sharedState.loggers.set(key, new Logger({ name: loggerName, version, schemaUrl: options?.schemaUrl }, this._sharedState));
52
+ this._sharedState.loggers.set(key, new Logger(instrumentationScope, this._sharedState));
45
53
  }
46
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
47
54
  return this._sharedState.loggers.get(key);
48
55
  }
49
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"LoggerProvider.js","sourceRoot":"","sources":["../../src/LoggerProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { diag } from '@opentelemetry/api';\nimport type {\n LoggerProvider as ILoggerProvider,\n LoggerOptions as ILoggerOptions,\n Logger as ILogger,\n} from '@opentelemetry/api-logs';\nimport { NOOP_LOGGER } from '@opentelemetry/api-logs';\nimport { defaultResource } from '@opentelemetry/resources';\nimport { BindOnceFuture } from '@opentelemetry/core';\n\nimport type { LoggerProviderOptions } from './types';\nimport { Logger } from './Logger';\nimport {\n DEFAULT_LOGGER_CONFIGURATOR,\n LoggerProviderSharedState,\n} from './internal/LoggerProviderSharedState';\n\nexport const DEFAULT_LOGGER_NAME = 'unknown';\n\nexport class LoggerProvider implements ILoggerProvider {\n private _shutdownOnce: BindOnceFuture<void>;\n private readonly _sharedState: LoggerProviderSharedState;\n\n constructor(config: LoggerProviderOptions = {}) {\n const mergedConfig = {\n resource: config.resource ?? defaultResource(),\n forceFlushTimeoutMillis: config.forceFlushTimeoutMillis ?? 30000,\n logRecordLimits: {\n attributeCountLimit: config.logRecordLimits?.attributeCountLimit ?? 128,\n attributeValueLengthLimit:\n config.logRecordLimits?.attributeValueLengthLimit ?? Infinity,\n },\n loggerConfigurator:\n config.loggerConfigurator ?? DEFAULT_LOGGER_CONFIGURATOR,\n processors: config.processors ?? [],\n meterProvider: config.meterProvider,\n };\n this._sharedState = new LoggerProviderSharedState(\n mergedConfig.resource,\n mergedConfig.forceFlushTimeoutMillis,\n mergedConfig.logRecordLimits,\n mergedConfig.processors,\n mergedConfig.loggerConfigurator,\n mergedConfig.meterProvider\n );\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n }\n\n /**\n * Get a logger with the configuration of the LoggerProvider.\n */\n public getLogger(\n name: string,\n version?: string,\n options?: ILoggerOptions\n ): ILogger {\n if (this._shutdownOnce.isCalled) {\n diag.warn('A shutdown LoggerProvider cannot provide a Logger');\n return NOOP_LOGGER;\n }\n\n if (!name) {\n diag.warn('Logger requested without instrumentation scope name.');\n }\n const loggerName = name || DEFAULT_LOGGER_NAME;\n const key = `${loggerName}@${version || ''}:${options?.schemaUrl || ''}`;\n if (!this._sharedState.loggers.has(key)) {\n this._sharedState.loggers.set(\n key,\n new Logger(\n { name: loggerName, version, schemaUrl: options?.schemaUrl },\n this._sharedState\n )\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._sharedState.loggers.get(key)!;\n }\n\n /**\n * Notifies all registered LogRecordProcessor to flush any buffered data.\n *\n * Returns a promise which is resolved when all flushes are complete.\n */\n public forceFlush(): Promise<void> {\n // do not flush after shutdown\n if (this._shutdownOnce.isCalled) {\n diag.warn('invalid attempt to force flush after LoggerProvider shutdown');\n return this._shutdownOnce.promise;\n }\n return this._sharedState.activeProcessor.forceFlush();\n }\n\n /**\n * Flush all buffered data and shut down the LoggerProvider and all registered\n * LogRecordProcessor.\n *\n * Returns a promise which is resolved when all flushes are complete.\n */\n public shutdown(): Promise<void> {\n if (this._shutdownOnce.isCalled) {\n diag.warn('shutdown may only be called once per LoggerProvider');\n return this._shutdownOnce.promise;\n }\n return this._shutdownOnce.call();\n }\n\n private _shutdown(): Promise<void> {\n return this._sharedState.activeProcessor.shutdown();\n }\n}\n"]}
1
+ {"version":3,"file":"LoggerProvider.js","sourceRoot":"","sources":["../../src/LoggerProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { diag } from '@opentelemetry/api';\nimport type {\n LoggerProvider as ILoggerProvider,\n LoggerOptions as ILoggerOptions,\n Logger as ILogger,\n} from '@opentelemetry/api-logs';\nimport { createNoopLogger } from '@opentelemetry/api-logs';\nimport { defaultResource } from '@opentelemetry/resources';\nimport { BindOnceFuture } from '@opentelemetry/core';\n\nimport type { LoggerProviderOptions } from './types';\nimport { Logger } from './Logger';\nimport {\n DEFAULT_LOGGER_CONFIGURATOR,\n LoggerProviderSharedState,\n} from './internal/LoggerProviderSharedState';\nimport {\n getInstrumentationScopeKey,\n type LogInstrumentationScope,\n} from './internal/utils';\nimport { normalizeScopeAttributes } from './utils/validation';\n\nexport const DEFAULT_LOGGER_NAME = 'unknown';\n\nexport class LoggerProvider implements ILoggerProvider {\n private _shutdownOnce: BindOnceFuture<void>;\n private readonly _sharedState: LoggerProviderSharedState;\n\n constructor(config: LoggerProviderOptions = {}) {\n const mergedConfig = {\n resource: config.resource ?? defaultResource(),\n forceFlushTimeoutMillis: config.forceFlushTimeoutMillis ?? 30000,\n logRecordLimits: {\n attributeCountLimit: config.logRecordLimits?.attributeCountLimit ?? 128,\n attributeValueLengthLimit:\n config.logRecordLimits?.attributeValueLengthLimit ?? Infinity,\n },\n loggerConfigurator:\n config.loggerConfigurator ?? DEFAULT_LOGGER_CONFIGURATOR,\n processors: config.processors ?? [],\n meterProvider: config.meterProvider,\n };\n this._sharedState = new LoggerProviderSharedState(\n mergedConfig.resource,\n mergedConfig.forceFlushTimeoutMillis,\n mergedConfig.logRecordLimits,\n mergedConfig.processors,\n mergedConfig.loggerConfigurator,\n mergedConfig.meterProvider\n );\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n }\n\n /**\n * Get a logger with the configuration of the LoggerProvider.\n */\n public getLogger(\n name: string,\n version?: string,\n options?: ILoggerOptions\n ): ILogger {\n if (this._shutdownOnce.isCalled) {\n diag.warn('A shutdown LoggerProvider cannot provide a Logger');\n return createNoopLogger();\n }\n\n if (!name) {\n diag.warn('Logger requested without instrumentation scope name.');\n }\n const loggerName = name || DEFAULT_LOGGER_NAME;\n const instrumentationScope: LogInstrumentationScope = {\n name: loggerName,\n version,\n schemaUrl: options?.schemaUrl,\n ...normalizeScopeAttributes(\n this._sharedState.logRecordLimits,\n options?.attributes\n ),\n };\n const key = getInstrumentationScopeKey(instrumentationScope);\n if (!this._sharedState.loggers.has(key)) {\n this._sharedState.loggers.set(\n key,\n new Logger(instrumentationScope, this._sharedState)\n );\n }\n\n return this._sharedState.loggers.get(key)!;\n }\n\n /**\n * Notifies all registered LogRecordProcessor to flush any buffered data.\n *\n * Returns a promise which is resolved when all flushes are complete.\n */\n public forceFlush(): Promise<void> {\n // do not flush after shutdown\n if (this._shutdownOnce.isCalled) {\n diag.warn('invalid attempt to force flush after LoggerProvider shutdown');\n return this._shutdownOnce.promise;\n }\n return this._sharedState.activeProcessor.forceFlush();\n }\n\n /**\n * Flush all buffered data and shut down the LoggerProvider and all registered\n * LogRecordProcessor.\n *\n * Returns a promise which is resolved when all flushes are complete.\n */\n public shutdown(): Promise<void> {\n if (this._shutdownOnce.isCalled) {\n diag.warn('shutdown may only be called once per LoggerProvider');\n return this._shutdownOnce.promise;\n }\n return this._shutdownOnce.call();\n }\n\n private _shutdown(): Promise<void> {\n return this._sharedState.activeProcessor.shutdown();\n }\n}\n"]}
@@ -147,11 +147,14 @@ export class BatchLogRecordProcessorBase {
147
147
  this._finishedLogRecords = [];
148
148
  // Clear timer to prevent concurrent exports
149
149
  this._clearTimer();
150
- // Wait for any in-progress export to complete
151
- if (this._currentExport !== null) {
150
+ // Wait for any in-progress export to complete. Capture the reference
151
+ // into a local because `_exportOneBatch` may null out `this._currentExport`
152
+ // from its completion handler while we are awaiting below.
153
+ const inFlight = this._currentExport;
154
+ if (inFlight !== null) {
152
155
  // speed up execution for current export
153
156
  await this._exporter.forceFlush();
154
- await this._currentExport.exportCompleted;
157
+ await inFlight.exportCompleted;
155
158
  this._currentExport = null;
156
159
  }
157
160
  // Now flush all batches sequentially to avoid race conditions
@@ -1 +1 @@
1
- {"version":3,"file":"BatchLogRecordProcessorBase.js","sourceRoot":"","sources":["../../../src/export/BatchLogRecordProcessorBase.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { context, diag } from '@opentelemetry/api';\nimport {\n ExportResultCode,\n globalErrorHandler,\n BindOnceFuture,\n suppressTracing,\n} from '@opentelemetry/core';\n\nimport type { BufferConfig } from '../types';\nimport type { SdkLogRecord } from './SdkLogRecord';\nimport type { LogRecordExporter } from './LogRecordExporter';\nimport type { LogRecordProcessor } from '../LogRecordProcessor';\n\n/**\n * Waits for all pending async resources in the log records to be resolved.\n */\nasync function waitForResources(logRecords: SdkLogRecord[]): Promise<void> {\n const pendingResources: Array<Promise<void>> = [];\n for (let i = 0, len = logRecords.length; i < len; i++) {\n const logRecord = logRecords[i];\n if (\n logRecord.resource.asyncAttributesPending &&\n logRecord.resource.waitForAsyncAttributes\n ) {\n pendingResources.push(logRecord.resource.waitForAsyncAttributes());\n }\n }\n\n if (pendingResources != null && pendingResources.length > 0) {\n await Promise.all(pendingResources);\n }\n}\n\n/**\n * Represents an export operation that handles the entire export workflow.\n */\nclass ExportOperation {\n private readonly _exportCompleted: Promise<void>;\n private readonly _exportScheduledPromise: Promise<void>;\n private _exportScheduledResolve!: () => void;\n\n constructor(\n exporter: LogRecordExporter,\n logRecords: SdkLogRecord[],\n exportTimeoutMillis: number\n ) {\n this._exportScheduledPromise = new Promise<void>(resolve => {\n this._exportScheduledResolve = resolve;\n });\n this._exportCompleted = this._executeExport(\n exporter,\n logRecords,\n exportTimeoutMillis\n );\n }\n\n /** Get the promise that resolves when the export completes */\n get exportCompleted(): Promise<void> {\n return this._exportCompleted;\n }\n\n /** Get the promise that resolves when exporter.export() has been called */\n get exportScheduled(): Promise<void> {\n return this._exportScheduledPromise;\n }\n\n private async _executeExport(\n exporter: LogRecordExporter,\n logRecords: SdkLogRecord[],\n exportTimeoutMillis: number\n ): Promise<void> {\n try {\n // Wait for all pending resources before exporting\n await waitForResources(logRecords);\n\n // Export with timeout, wrapped in suppressTracing context\n await context.with(suppressTracing(context.active()), async () => {\n return this._exportWithTimeout(\n exporter,\n logRecords,\n exportTimeoutMillis\n );\n });\n } catch (e) {\n // ensure we never reject here, as we may call await after it has already resolved.\n globalErrorHandler(e);\n // resolve, as the error may have occurred before export was scheduled\n this._exportScheduledResolve();\n }\n }\n\n private async _exportWithTimeout(\n exporter: LogRecordExporter,\n logRecords: SdkLogRecord[],\n exportTimeoutMillis: number\n ): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(new Error('Timeout'));\n }, exportTimeoutMillis);\n\n // Call exporter.export() and immediately resolve exportScheduled\n exporter.export(logRecords, result => {\n clearTimeout(timer);\n if (result.code === ExportResultCode.SUCCESS) {\n resolve();\n } else {\n reject(\n result.error ??\n new Error('BatchLogRecordProcessor: log record export failed')\n );\n }\n });\n\n // Resolve exportScheduled immediately after calling exporter.export()\n this._exportScheduledResolve();\n });\n }\n}\n\nexport abstract class BatchLogRecordProcessorBase<T extends BufferConfig>\n implements LogRecordProcessor\n{\n private readonly _maxExportBatchSize: number;\n private readonly _maxQueueSize: number;\n private readonly _scheduledDelayMillis: number;\n private readonly _exportTimeoutMillis: number;\n private readonly _exporter: LogRecordExporter;\n\n private _currentExport: ExportOperation | null = null;\n private _finishedLogRecords: SdkLogRecord[] = [];\n private _timer: NodeJS.Timeout | number | undefined;\n private _shutdownOnce: BindOnceFuture<void>;\n private _flushing: boolean = false;\n\n constructor(exporter: LogRecordExporter, config?: T) {\n this._exporter = exporter;\n this._maxExportBatchSize = config?.maxExportBatchSize ?? 512;\n this._maxQueueSize = config?.maxQueueSize ?? 2048;\n this._scheduledDelayMillis = config?.scheduledDelayMillis ?? 5000;\n this._exportTimeoutMillis = config?.exportTimeoutMillis ?? 30000;\n\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n\n if (this._maxExportBatchSize > this._maxQueueSize) {\n diag.warn(\n 'BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize'\n );\n this._maxExportBatchSize = this._maxQueueSize;\n }\n }\n\n public onEmit(logRecord: SdkLogRecord): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n this._addToBuffer(logRecord);\n }\n\n public forceFlush(): Promise<void> {\n if (this._shutdownOnce.isCalled) {\n return this._shutdownOnce.promise;\n }\n return this._flushAll();\n }\n\n /** Add a LogRecord in the buffer. */\n private _addToBuffer(logRecord: SdkLogRecord) {\n if (this._finishedLogRecords.length >= this._maxQueueSize) {\n return;\n }\n this._finishedLogRecords.push(logRecord);\n this._maybeStartTimer();\n }\n\n public shutdown(): Promise<void> {\n return this._shutdownOnce.call();\n }\n\n private async _shutdown(): Promise<void> {\n this.onShutdown();\n await this._flushAll();\n await this._exporter.shutdown();\n }\n\n /**\n * Send all LogRecords to the exporter respecting the batch size limit\n * This function is used only on forceFlush or shutdown,\n * for all other cases _exportOneBatch should be used\n * */\n private async _flushAll(): Promise<void> {\n // Guard against concurrent flushes. Concurrent .forceFlush() calls will\n // return without waiting for the in-progress flush to finish.\n if (this._flushing) {\n return;\n }\n this._flushing = true;\n\n // Grab the current set of finished log records, because the spec says:\n // > ... for which the LogRecordProcessor had already received events prior to the call to ForceFlush ...\n let toFlush = this._finishedLogRecords;\n this._finishedLogRecords = [];\n\n // Clear timer to prevent concurrent exports\n this._clearTimer();\n\n // Wait for any in-progress export to complete\n if (this._currentExport !== null) {\n // speed up execution for current export\n await this._exporter.forceFlush();\n await this._currentExport.exportCompleted;\n this._currentExport = null;\n }\n\n // Now flush all batches sequentially to avoid race conditions\n while (toFlush.length > 0) {\n let batch;\n if (toFlush.length <= this._maxExportBatchSize) {\n batch = toFlush;\n toFlush = [];\n } else {\n batch = toFlush.splice(0, this._maxExportBatchSize);\n }\n\n const exportOp = new ExportOperation(\n this._exporter,\n batch,\n this._exportTimeoutMillis\n );\n this._currentExport = exportOp;\n\n // await export scheduled, then force flush exporter to speed up export\n try {\n await exportOp.exportScheduled;\n await this._exporter.forceFlush();\n await exportOp.exportCompleted;\n } catch (e) {\n globalErrorHandler(e);\n } finally {\n this._currentExport = null;\n }\n }\n\n this._flushing = false;\n this._maybeStartTimer();\n }\n\n /**\n * Extracts one batch from the buffer.\n * Returns null if buffer is empty.\n */\n private _extractBatch(): SdkLogRecord[] | null {\n if (this._finishedLogRecords.length === 0) {\n return null;\n }\n\n if (this._finishedLogRecords.length <= this._maxExportBatchSize) {\n const batch = this._finishedLogRecords;\n this._finishedLogRecords = [];\n return batch;\n } else {\n return this._finishedLogRecords.splice(0, this._maxExportBatchSize);\n }\n }\n\n private _exportOneBatch(): void {\n this._clearTimer();\n\n const logRecords = this._extractBatch();\n if (logRecords === null) {\n return;\n }\n\n const exportOp = new ExportOperation(\n this._exporter,\n logRecords,\n this._exportTimeoutMillis\n );\n this._currentExport = exportOp;\n\n // Handle completion asynchronously\n exportOp.exportCompleted\n .then(() => {\n this._currentExport = null;\n this._maybeStartTimer();\n })\n .catch(error => {\n this._currentExport = null;\n globalErrorHandler(error);\n this._maybeStartTimer();\n });\n }\n\n private _maybeStartTimer() {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n if (this._flushing) {\n return;\n }\n\n if (this._finishedLogRecords.length === 0) {\n return;\n }\n\n if (this._currentExport !== null) {\n return;\n }\n\n // If batch is full, export immediately\n if (this._finishedLogRecords.length >= this._maxExportBatchSize) {\n this._exportOneBatch();\n return;\n }\n\n // If timer is already set, don't set another one\n if (this._timer !== undefined) {\n return;\n }\n\n // Set timer for scheduled export\n this._timer = setTimeout(() => {\n this._timer = undefined;\n this._exportOneBatch();\n }, this._scheduledDelayMillis);\n\n // Unref timer so it doesn't keep process alive\n if (typeof this._timer !== 'number') {\n this._timer.unref();\n }\n }\n\n private _clearTimer() {\n if (this._timer !== undefined) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n }\n\n protected abstract onShutdown(): void;\n}\n"]}
1
+ {"version":3,"file":"BatchLogRecordProcessorBase.js","sourceRoot":"","sources":["../../../src/export/BatchLogRecordProcessorBase.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { context, diag } from '@opentelemetry/api';\nimport {\n ExportResultCode,\n globalErrorHandler,\n BindOnceFuture,\n suppressTracing,\n} from '@opentelemetry/core';\n\nimport type { BufferConfig } from '../types';\nimport type { SdkLogRecord } from './SdkLogRecord';\nimport type { LogRecordExporter } from './LogRecordExporter';\nimport type { LogRecordProcessor } from '../LogRecordProcessor';\n\n/**\n * Waits for all pending async resources in the log records to be resolved.\n */\nasync function waitForResources(logRecords: SdkLogRecord[]): Promise<void> {\n const pendingResources: Array<Promise<void>> = [];\n for (let i = 0, len = logRecords.length; i < len; i++) {\n const logRecord = logRecords[i];\n if (\n logRecord.resource.asyncAttributesPending &&\n logRecord.resource.waitForAsyncAttributes\n ) {\n pendingResources.push(logRecord.resource.waitForAsyncAttributes());\n }\n }\n\n if (pendingResources != null && pendingResources.length > 0) {\n await Promise.all(pendingResources);\n }\n}\n\n/**\n * Represents an export operation that handles the entire export workflow.\n */\nclass ExportOperation {\n private readonly _exportCompleted: Promise<void>;\n private readonly _exportScheduledPromise: Promise<void>;\n private _exportScheduledResolve!: () => void;\n\n constructor(\n exporter: LogRecordExporter,\n logRecords: SdkLogRecord[],\n exportTimeoutMillis: number\n ) {\n this._exportScheduledPromise = new Promise<void>(resolve => {\n this._exportScheduledResolve = resolve;\n });\n this._exportCompleted = this._executeExport(\n exporter,\n logRecords,\n exportTimeoutMillis\n );\n }\n\n /** Get the promise that resolves when the export completes */\n get exportCompleted(): Promise<void> {\n return this._exportCompleted;\n }\n\n /** Get the promise that resolves when exporter.export() has been called */\n get exportScheduled(): Promise<void> {\n return this._exportScheduledPromise;\n }\n\n private async _executeExport(\n exporter: LogRecordExporter,\n logRecords: SdkLogRecord[],\n exportTimeoutMillis: number\n ): Promise<void> {\n try {\n // Wait for all pending resources before exporting\n await waitForResources(logRecords);\n\n // Export with timeout, wrapped in suppressTracing context\n await context.with(suppressTracing(context.active()), async () => {\n return this._exportWithTimeout(\n exporter,\n logRecords,\n exportTimeoutMillis\n );\n });\n } catch (e) {\n // ensure we never reject here, as we may call await after it has already resolved.\n globalErrorHandler(e);\n // resolve, as the error may have occurred before export was scheduled\n this._exportScheduledResolve();\n }\n }\n\n private async _exportWithTimeout(\n exporter: LogRecordExporter,\n logRecords: SdkLogRecord[],\n exportTimeoutMillis: number\n ): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(new Error('Timeout'));\n }, exportTimeoutMillis);\n\n // Call exporter.export() and immediately resolve exportScheduled\n exporter.export(logRecords, result => {\n clearTimeout(timer);\n if (result.code === ExportResultCode.SUCCESS) {\n resolve();\n } else {\n reject(\n result.error ??\n new Error('BatchLogRecordProcessor: log record export failed')\n );\n }\n });\n\n // Resolve exportScheduled immediately after calling exporter.export()\n this._exportScheduledResolve();\n });\n }\n}\n\nexport abstract class BatchLogRecordProcessorBase<T extends BufferConfig>\n implements LogRecordProcessor\n{\n private readonly _maxExportBatchSize: number;\n private readonly _maxQueueSize: number;\n private readonly _scheduledDelayMillis: number;\n private readonly _exportTimeoutMillis: number;\n private readonly _exporter: LogRecordExporter;\n\n private _currentExport: ExportOperation | null = null;\n private _finishedLogRecords: SdkLogRecord[] = [];\n private _timer: NodeJS.Timeout | number | undefined;\n private _shutdownOnce: BindOnceFuture<void>;\n private _flushing: boolean = false;\n\n constructor(exporter: LogRecordExporter, config?: T) {\n this._exporter = exporter;\n this._maxExportBatchSize = config?.maxExportBatchSize ?? 512;\n this._maxQueueSize = config?.maxQueueSize ?? 2048;\n this._scheduledDelayMillis = config?.scheduledDelayMillis ?? 5000;\n this._exportTimeoutMillis = config?.exportTimeoutMillis ?? 30000;\n\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n\n if (this._maxExportBatchSize > this._maxQueueSize) {\n diag.warn(\n 'BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize'\n );\n this._maxExportBatchSize = this._maxQueueSize;\n }\n }\n\n public onEmit(logRecord: SdkLogRecord): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n this._addToBuffer(logRecord);\n }\n\n public forceFlush(): Promise<void> {\n if (this._shutdownOnce.isCalled) {\n return this._shutdownOnce.promise;\n }\n return this._flushAll();\n }\n\n /** Add a LogRecord in the buffer. */\n private _addToBuffer(logRecord: SdkLogRecord) {\n if (this._finishedLogRecords.length >= this._maxQueueSize) {\n return;\n }\n this._finishedLogRecords.push(logRecord);\n this._maybeStartTimer();\n }\n\n public shutdown(): Promise<void> {\n return this._shutdownOnce.call();\n }\n\n private async _shutdown(): Promise<void> {\n this.onShutdown();\n await this._flushAll();\n await this._exporter.shutdown();\n }\n\n /**\n * Send all LogRecords to the exporter respecting the batch size limit\n * This function is used only on forceFlush or shutdown,\n * for all other cases _exportOneBatch should be used\n * */\n private async _flushAll(): Promise<void> {\n // Guard against concurrent flushes. Concurrent .forceFlush() calls will\n // return without waiting for the in-progress flush to finish.\n if (this._flushing) {\n return;\n }\n this._flushing = true;\n\n // Grab the current set of finished log records, because the spec says:\n // > ... for which the LogRecordProcessor had already received events prior to the call to ForceFlush ...\n let toFlush = this._finishedLogRecords;\n this._finishedLogRecords = [];\n\n // Clear timer to prevent concurrent exports\n this._clearTimer();\n\n // Wait for any in-progress export to complete. Capture the reference\n // into a local because `_exportOneBatch` may null out `this._currentExport`\n // from its completion handler while we are awaiting below.\n const inFlight = this._currentExport;\n if (inFlight !== null) {\n // speed up execution for current export\n await this._exporter.forceFlush();\n await inFlight.exportCompleted;\n this._currentExport = null;\n }\n\n // Now flush all batches sequentially to avoid race conditions\n while (toFlush.length > 0) {\n let batch;\n if (toFlush.length <= this._maxExportBatchSize) {\n batch = toFlush;\n toFlush = [];\n } else {\n batch = toFlush.splice(0, this._maxExportBatchSize);\n }\n\n const exportOp = new ExportOperation(\n this._exporter,\n batch,\n this._exportTimeoutMillis\n );\n this._currentExport = exportOp;\n\n // await export scheduled, then force flush exporter to speed up export\n try {\n await exportOp.exportScheduled;\n await this._exporter.forceFlush();\n await exportOp.exportCompleted;\n } catch (e) {\n globalErrorHandler(e);\n } finally {\n this._currentExport = null;\n }\n }\n\n this._flushing = false;\n this._maybeStartTimer();\n }\n\n /**\n * Extracts one batch from the buffer.\n * Returns null if buffer is empty.\n */\n private _extractBatch(): SdkLogRecord[] | null {\n if (this._finishedLogRecords.length === 0) {\n return null;\n }\n\n if (this._finishedLogRecords.length <= this._maxExportBatchSize) {\n const batch = this._finishedLogRecords;\n this._finishedLogRecords = [];\n return batch;\n } else {\n return this._finishedLogRecords.splice(0, this._maxExportBatchSize);\n }\n }\n\n private _exportOneBatch(): void {\n this._clearTimer();\n\n const logRecords = this._extractBatch();\n if (logRecords === null) {\n return;\n }\n\n const exportOp = new ExportOperation(\n this._exporter,\n logRecords,\n this._exportTimeoutMillis\n );\n this._currentExport = exportOp;\n\n // Handle completion asynchronously\n exportOp.exportCompleted\n .then(() => {\n this._currentExport = null;\n this._maybeStartTimer();\n })\n .catch(error => {\n this._currentExport = null;\n globalErrorHandler(error);\n this._maybeStartTimer();\n });\n }\n\n private _maybeStartTimer() {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n if (this._flushing) {\n return;\n }\n\n if (this._finishedLogRecords.length === 0) {\n return;\n }\n\n if (this._currentExport !== null) {\n return;\n }\n\n // If batch is full, export immediately\n if (this._finishedLogRecords.length >= this._maxExportBatchSize) {\n this._exportOneBatch();\n return;\n }\n\n // If timer is already set, don't set another one\n if (this._timer !== undefined) {\n return;\n }\n\n // Set timer for scheduled export\n this._timer = setTimeout(() => {\n this._timer = undefined;\n this._exportOneBatch();\n }, this._scheduledDelayMillis);\n\n // Unref timer so it doesn't keep process alive\n if (typeof this._timer !== 'number') {\n this._timer.unref();\n }\n }\n\n private _clearTimer() {\n if (this._timer !== undefined) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n }\n\n protected abstract onShutdown(): void;\n}\n"]}
@@ -16,7 +16,10 @@ export interface ReadableLogRecord {
16
16
  * MUST be stable across identical scopes, as it is intended be used for efficient scope-based
17
17
  * filtering and grouping.
18
18
  */
19
- readonly instrumentationScope: InstrumentationScope;
19
+ readonly instrumentationScope: InstrumentationScope & {
20
+ attributes?: LogAttributes;
21
+ droppedAttributesCount?: number;
22
+ };
20
23
  readonly attributes: LogAttributes;
21
24
  readonly droppedAttributesCount: number;
22
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReadableLogRecord.js","sourceRoot":"","sources":["../../../src/export/ReadableLogRecord.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Resource } from '@opentelemetry/resources';\nimport type { HrTime, SpanContext } from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport type {\n LogBody,\n LogAttributes,\n SeverityNumber,\n} from '@opentelemetry/api-logs';\n\nexport interface ReadableLogRecord {\n readonly hrTime: HrTime;\n readonly hrTimeObserved: HrTime;\n readonly spanContext?: SpanContext;\n readonly severityText?: string;\n readonly severityNumber?: SeverityNumber;\n readonly body?: LogBody;\n readonly eventName?: string;\n readonly resource: Resource;\n /**\n * The instrumentation scope associated with this log record. Identity of this object\n * MUST be stable across identical scopes, as it is intended be used for efficient scope-based\n * filtering and grouping.\n */\n readonly instrumentationScope: InstrumentationScope;\n readonly attributes: LogAttributes;\n readonly droppedAttributesCount: number;\n}\n"]}
1
+ {"version":3,"file":"ReadableLogRecord.js","sourceRoot":"","sources":["../../../src/export/ReadableLogRecord.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Resource } from '@opentelemetry/resources';\nimport type { HrTime, SpanContext } from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport type {\n LogBody,\n LogAttributes,\n SeverityNumber,\n} from '@opentelemetry/api-logs';\n\nexport interface ReadableLogRecord {\n readonly hrTime: HrTime;\n readonly hrTimeObserved: HrTime;\n readonly spanContext?: SpanContext;\n readonly severityText?: string;\n readonly severityNumber?: SeverityNumber;\n readonly body?: LogBody;\n readonly eventName?: string;\n readonly resource: Resource;\n /**\n * The instrumentation scope associated with this log record. Identity of this object\n * MUST be stable across identical scopes, as it is intended be used for efficient scope-based\n * filtering and grouping.\n */\n readonly instrumentationScope: InstrumentationScope & {\n attributes?: LogAttributes;\n droppedAttributesCount?: number;\n };\n readonly attributes: LogAttributes;\n readonly droppedAttributesCount: number;\n}\n"]}
@@ -16,6 +16,13 @@ export interface SdkLogRecord {
16
16
  readonly hrTimeObserved: HrTime;
17
17
  readonly spanContext?: SpanContext;
18
18
  readonly resource: Resource;
19
+ /**
20
+ * The instrumentation scope associated with the log record.
21
+ *
22
+ * Downstream consumers may group exported records by the identity of this
23
+ * object. If a distinct grouping is required, construct a new scope object
24
+ * instead of reusing an existing one.
25
+ */
19
26
  readonly instrumentationScope: InstrumentationScope;
20
27
  readonly attributes: LogAttributes;
21
28
  severityText?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SdkLogRecord.js","sourceRoot":"","sources":["../../../src/export/SdkLogRecord.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { HrTime, SpanContext } from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport type {\n AnyValue,\n LogBody,\n LogAttributes,\n SeverityNumber,\n} from '@opentelemetry/api-logs';\nimport type { Resource } from '@opentelemetry/resources';\n\n/**\n * A recording of an event. Typically, the record includes a timestamp indicating when the\n * event happened as well as other data that describes what happened, where it happened, etc.\n *\n * @remarks\n * This interface is **not intended to be implemented by users**.\n * To produce logs, use {@link Logger#emit}. To consume logs, implement {@link LogRecordProcessor#onEmit}.\n * SdkLogRecord instances are created and managed by the SDK.\n */\nexport interface SdkLogRecord {\n readonly hrTime: HrTime;\n readonly hrTimeObserved: HrTime;\n readonly spanContext?: SpanContext;\n readonly resource: Resource;\n readonly instrumentationScope: InstrumentationScope;\n readonly attributes: LogAttributes;\n severityText?: string;\n severityNumber?: SeverityNumber;\n body?: LogBody;\n eventName?: string;\n droppedAttributesCount: number;\n\n /**\n * Sets a single attribute on the log record.\n * @param key The attribute key.\n * @param value The attribute value.\n * @returns The updated SdkLogRecord.\n */\n setAttribute(key: string, value?: AnyValue): SdkLogRecord;\n\n /**\n * Sets multiple attributes on the log record.\n * @param attributes The attributes to set.\n * @returns The updated SdkLogRecord.\n */\n setAttributes(attributes: LogAttributes): SdkLogRecord;\n\n /**\n * Sets the body of the log record.\n * @param body The log body.\n * @returns The updated SdkLogRecord.\n */\n setBody(body: LogBody): SdkLogRecord;\n\n /**\n * Sets the event name for the log record.\n * @param eventName The event name.\n * @returns The updated SdkLogRecord.\n */\n setEventName(eventName: string): SdkLogRecord;\n\n /**\n * Sets the severity number for the log record.\n * @param severityNumber The severity number.\n * @returns The updated SdkLogRecord.\n */\n setSeverityNumber(severityNumber: SeverityNumber): SdkLogRecord;\n\n /**\n * Sets the severity text (log level) for the log record.\n * @param severityText The severity text.\n * @returns The updated SdkLogRecord.\n */\n setSeverityText(severityText: string): SdkLogRecord;\n}\n"]}
1
+ {"version":3,"file":"SdkLogRecord.js","sourceRoot":"","sources":["../../../src/export/SdkLogRecord.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { HrTime, SpanContext } from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport type {\n AnyValue,\n LogBody,\n LogAttributes,\n SeverityNumber,\n} from '@opentelemetry/api-logs';\nimport type { Resource } from '@opentelemetry/resources';\n\n/**\n * A recording of an event. Typically, the record includes a timestamp indicating when the\n * event happened as well as other data that describes what happened, where it happened, etc.\n *\n * @remarks\n * This interface is **not intended to be implemented by users**.\n * To produce logs, use {@link Logger#emit}. To consume logs, implement {@link LogRecordProcessor#onEmit}.\n * SdkLogRecord instances are created and managed by the SDK.\n */\nexport interface SdkLogRecord {\n readonly hrTime: HrTime;\n readonly hrTimeObserved: HrTime;\n readonly spanContext?: SpanContext;\n readonly resource: Resource;\n /**\n * The instrumentation scope associated with the log record.\n *\n * Downstream consumers may group exported records by the identity of this\n * object. If a distinct grouping is required, construct a new scope object\n * instead of reusing an existing one.\n */\n readonly instrumentationScope: InstrumentationScope;\n readonly attributes: LogAttributes;\n severityText?: string;\n severityNumber?: SeverityNumber;\n body?: LogBody;\n eventName?: string;\n droppedAttributesCount: number;\n\n /**\n * Sets a single attribute on the log record.\n * @param key The attribute key.\n * @param value The attribute value.\n * @returns The updated SdkLogRecord.\n */\n setAttribute(key: string, value?: AnyValue): SdkLogRecord;\n\n /**\n * Sets multiple attributes on the log record.\n * @param attributes The attributes to set.\n * @returns The updated SdkLogRecord.\n */\n setAttributes(attributes: LogAttributes): SdkLogRecord;\n\n /**\n * Sets the body of the log record.\n * @param body The log body.\n * @returns The updated SdkLogRecord.\n */\n setBody(body: LogBody): SdkLogRecord;\n\n /**\n * Sets the event name for the log record.\n * @param eventName The event name.\n * @returns The updated SdkLogRecord.\n */\n setEventName(eventName: string): SdkLogRecord;\n\n /**\n * Sets the severity number for the log record.\n * @param severityNumber The severity number.\n * @returns The updated SdkLogRecord.\n */\n setSeverityNumber(severityNumber: SeverityNumber): SdkLogRecord;\n\n /**\n * Sets the severity text (log level) for the log record.\n * @param severityText The severity text.\n * @returns The updated SdkLogRecord.\n */\n setSeverityText(severityText: string): SdkLogRecord;\n}\n"]}
@@ -41,7 +41,6 @@ export class SimpleLogRecordProcessor {
41
41
  .then(() => {
42
42
  // Using TS Non-null assertion operator because exportPromise could not be null in here
43
43
  // if waitForAsyncAttributes is not present this code will never be reached
44
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
45
44
  this._unresolvedExports.delete(exportPromise);
46
45
  return doExport();
47
46
  }, globalErrorHandler);
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleLogRecordProcessor.js","sourceRoot":"","sources":["../../../src/export/SimpleLogRecordProcessor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAM7B;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAClB,SAAS,CAAoB;IACtC,aAAa,CAAuB;IACpC,kBAAkB,CAAqB;IAE/C,YAAY,QAA2B;QACrC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,SAAuB,EAAE,QAAkB;QACvD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC/B,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,QAAQ;aACL,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;aACpC,IAAI,CAAC,CAAC,MAAoB,EAAE,EAAE;YAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,OAAO,EAAE;gBAC5C,kBAAkB,CAChB,MAAM,CAAC,KAAK;oBACV,IAAI,KAAK,CACP,8DAA8D,MAAM,GAAG,CACxE,CACJ,CAAC;aACH;QACH,CAAC,CAAC;aACD,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAE/B,sFAAsF;QACtF,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE;YAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ;iBACrC,sBAAsB,EAAE,EAAE;iBAC1B,IAAI,CAAC,GAAG,EAAE;gBACT,uFAAuF;gBACvF,2EAA2E;gBAC3E,oEAAoE;gBACpE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC;gBAC/C,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEzB,+BAA+B;YAC/B,IAAI,aAAa,IAAI,IAAI,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;aAC5C;SACF;aAAM;YACL,KAAK,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,8CAA8C;QAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ExportResult } from '@opentelemetry/core';\nimport {\n BindOnceFuture,\n ExportResultCode,\n globalErrorHandler,\n internal,\n} from '@opentelemetry/core';\nimport type { LogRecordExporter } from './LogRecordExporter';\nimport type { LogRecordProcessor } from '../LogRecordProcessor';\nimport type { SdkLogRecord } from './SdkLogRecord';\nimport type { Context } from '@opentelemetry/api';\n\n/**\n * An implementation of the {@link LogRecordProcessor} interface that exports\n * each {@link LogRecord} as it is emitted.\n *\n * NOTE: This {@link LogRecordProcessor} exports every {@link LogRecord}\n * individually instead of batching them together, which can cause significant\n * performance overhead with most exporters. For production use, please consider\n * using the {@link BatchLogRecordProcessor} instead.\n */\nexport class SimpleLogRecordProcessor implements LogRecordProcessor {\n private readonly _exporter: LogRecordExporter;\n private _shutdownOnce: BindOnceFuture<void>;\n private _unresolvedExports: Set<Promise<void>>;\n\n constructor(exporter: LogRecordExporter) {\n this._exporter = exporter;\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n this._unresolvedExports = new Set<Promise<void>>();\n }\n\n public onEmit(logRecord: SdkLogRecord, _context?: Context): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n const doExport = () =>\n internal\n ._export(this._exporter, [logRecord])\n .then((result: ExportResult) => {\n if (result.code !== ExportResultCode.SUCCESS) {\n globalErrorHandler(\n result.error ??\n new Error(\n `SimpleLogRecordProcessor: log record export failed (status ${result})`\n )\n );\n }\n })\n .catch(globalErrorHandler);\n\n // Avoid scheduling a promise to make the behavior more predictable and easier to test\n if (logRecord.resource.asyncAttributesPending) {\n const exportPromise = logRecord.resource\n .waitForAsyncAttributes?.()\n .then(() => {\n // Using TS Non-null assertion operator because exportPromise could not be null in here\n // if waitForAsyncAttributes is not present this code will never be reached\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._unresolvedExports.delete(exportPromise!);\n return doExport();\n }, globalErrorHandler);\n\n // store the unresolved exports\n if (exportPromise != null) {\n this._unresolvedExports.add(exportPromise);\n }\n } else {\n void doExport();\n }\n }\n\n public async forceFlush(): Promise<void> {\n // await unresolved resources before resolving\n await Promise.all(Array.from(this._unresolvedExports));\n }\n\n public shutdown(): Promise<void> {\n return this._shutdownOnce.call();\n }\n\n private _shutdown(): Promise<void> {\n return this._exporter.shutdown();\n }\n}\n"]}
1
+ {"version":3,"file":"SimpleLogRecordProcessor.js","sourceRoot":"","sources":["../../../src/export/SimpleLogRecordProcessor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAM7B;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAClB,SAAS,CAAoB;IACtC,aAAa,CAAuB;IACpC,kBAAkB,CAAqB;IAE/C,YAAY,QAA2B;QACrC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,SAAuB,EAAE,QAAkB;QACvD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC/B,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,QAAQ;aACL,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;aACpC,IAAI,CAAC,CAAC,MAAoB,EAAE,EAAE;YAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,OAAO,EAAE;gBAC5C,kBAAkB,CAChB,MAAM,CAAC,KAAK;oBACV,IAAI,KAAK,CACP,8DAA8D,MAAM,GAAG,CACxE,CACJ,CAAC;aACH;QACH,CAAC,CAAC;aACD,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAE/B,sFAAsF;QACtF,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE;YAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ;iBACrC,sBAAsB,EAAE,EAAE;iBAC1B,IAAI,CAAC,GAAG,EAAE;gBACT,uFAAuF;gBACvF,2EAA2E;gBAC3E,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC;gBAC/C,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEzB,+BAA+B;YAC/B,IAAI,aAAa,IAAI,IAAI,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;aAC5C;SACF;aAAM;YACL,KAAK,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,8CAA8C;QAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ExportResult } from '@opentelemetry/core';\nimport {\n BindOnceFuture,\n ExportResultCode,\n globalErrorHandler,\n internal,\n} from '@opentelemetry/core';\nimport type { LogRecordExporter } from './LogRecordExporter';\nimport type { LogRecordProcessor } from '../LogRecordProcessor';\nimport type { SdkLogRecord } from './SdkLogRecord';\nimport type { Context } from '@opentelemetry/api';\n\n/**\n * An implementation of the {@link LogRecordProcessor} interface that exports\n * each {@link LogRecord} as it is emitted.\n *\n * NOTE: This {@link LogRecordProcessor} exports every {@link LogRecord}\n * individually instead of batching them together, which can cause significant\n * performance overhead with most exporters. For production use, please consider\n * using the {@link BatchLogRecordProcessor} instead.\n */\nexport class SimpleLogRecordProcessor implements LogRecordProcessor {\n private readonly _exporter: LogRecordExporter;\n private _shutdownOnce: BindOnceFuture<void>;\n private _unresolvedExports: Set<Promise<void>>;\n\n constructor(exporter: LogRecordExporter) {\n this._exporter = exporter;\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n this._unresolvedExports = new Set<Promise<void>>();\n }\n\n public onEmit(logRecord: SdkLogRecord, _context?: Context): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n const doExport = () =>\n internal\n ._export(this._exporter, [logRecord])\n .then((result: ExportResult) => {\n if (result.code !== ExportResultCode.SUCCESS) {\n globalErrorHandler(\n result.error ??\n new Error(\n `SimpleLogRecordProcessor: log record export failed (status ${result})`\n )\n );\n }\n })\n .catch(globalErrorHandler);\n\n // Avoid scheduling a promise to make the behavior more predictable and easier to test\n if (logRecord.resource.asyncAttributesPending) {\n const exportPromise = logRecord.resource\n .waitForAsyncAttributes?.()\n .then(() => {\n // Using TS Non-null assertion operator because exportPromise could not be null in here\n // if waitForAsyncAttributes is not present this code will never be reached\n this._unresolvedExports.delete(exportPromise!);\n return doExport();\n }, globalErrorHandler);\n\n // store the unresolved exports\n if (exportPromise != null) {\n this._unresolvedExports.add(exportPromise);\n }\n } else {\n void doExport();\n }\n }\n\n public async forceFlush(): Promise<void> {\n // await unresolved resources before resolving\n await Promise.all(Array.from(this._unresolvedExports));\n }\n\n public shutdown(): Promise<void> {\n return this._shutdownOnce.call();\n }\n\n private _shutdown(): Promise<void> {\n return this._exporter.shutdown();\n }\n}\n"]}
@@ -1,8 +1,13 @@
1
+ import type { LogAttributes } from '@opentelemetry/api-logs';
1
2
  import type { InstrumentationScope } from '@opentelemetry/core';
3
+ export type LogInstrumentationScope = InstrumentationScope & {
4
+ readonly attributes?: LogAttributes;
5
+ readonly droppedAttributesCount?: number;
6
+ };
2
7
  /**
3
8
  * Converting the instrumentation scope object to a unique identifier string.
4
9
  * @param scope - The instrumentation scope to convert
5
10
  * @returns A unique string identifier for the scope
6
11
  */
7
- export declare function getInstrumentationScopeKey(scope: InstrumentationScope): string;
12
+ export declare function getInstrumentationScopeKey(scope: LogInstrumentationScope): string;
8
13
  //# sourceMappingURL=utils.d.ts.map