@dxos/observability 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7

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 (343) hide show
  1. package/README.md +14 -11
  2. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  3. package/dist/lib/browser/chunk-K4VFBKST.mjs +13 -0
  4. package/dist/lib/browser/chunk-K4VFBKST.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +920 -275
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/log-processor-FDLTDQEM.mjs +45 -0
  8. package/dist/lib/browser/log-processor-FDLTDQEM.mjs.map +7 -0
  9. package/dist/lib/browser/logs-ATTRIUTL.mjs +113 -0
  10. package/dist/lib/browser/logs-ATTRIUTL.mjs.map +7 -0
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/metrics-PKTV6IGF.mjs +130 -0
  13. package/dist/lib/browser/metrics-PKTV6IGF.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-VL6LVQPU.mjs → traces-browser-5DQUYGQ7.mjs} +23 -24
  15. package/dist/lib/browser/traces-browser-5DQUYGQ7.mjs.map +7 -0
  16. package/dist/lib/node-esm/chunk-FEVP3MK4.mjs +15 -0
  17. package/dist/lib/node-esm/chunk-FEVP3MK4.mjs.map +7 -0
  18. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  19. package/dist/lib/node-esm/index.mjs +941 -293
  20. package/dist/lib/node-esm/index.mjs.map +4 -4
  21. package/dist/lib/node-esm/log-processor-TKJVJJSJ.mjs +46 -0
  22. package/dist/lib/node-esm/log-processor-TKJVJJSJ.mjs.map +7 -0
  23. package/dist/lib/node-esm/logs-7J45KLM7.mjs +114 -0
  24. package/dist/lib/node-esm/logs-7J45KLM7.mjs.map +7 -0
  25. package/dist/lib/node-esm/meta.json +1 -1
  26. package/dist/lib/node-esm/metrics-H7DDLYSG.mjs +131 -0
  27. package/dist/lib/node-esm/metrics-H7DDLYSG.mjs.map +7 -0
  28. package/dist/lib/node-esm/{chunk-WAGGA7IT.mjs → traces-KMTHMYFX.mjs} +8 -16
  29. package/dist/lib/node-esm/traces-KMTHMYFX.mjs.map +7 -0
  30. package/dist/types/src/cli-observability-secrets.json +3 -4
  31. package/dist/types/src/extensions/index.d.ts +3 -0
  32. package/dist/types/src/extensions/index.d.ts.map +1 -0
  33. package/dist/types/src/extensions/index.js +6 -0
  34. package/dist/types/src/extensions/index.js.map +1 -0
  35. package/dist/types/src/extensions/otel/extension.d.ts +23 -0
  36. package/dist/types/src/extensions/otel/extension.d.ts.map +1 -0
  37. package/dist/types/src/extensions/otel/extension.js +124 -0
  38. package/dist/types/src/extensions/otel/extension.js.map +1 -0
  39. package/dist/types/src/extensions/otel/index.d.ts +2 -0
  40. package/dist/types/src/extensions/otel/index.d.ts.map +1 -0
  41. package/dist/types/src/extensions/otel/index.js +5 -0
  42. package/dist/types/src/extensions/otel/index.js.map +1 -0
  43. package/dist/types/src/{otel → extensions/otel}/logs.d.ts +4 -3
  44. package/dist/types/src/extensions/otel/logs.d.ts.map +1 -0
  45. package/dist/types/src/{otel → extensions/otel}/logs.js +48 -18
  46. package/dist/types/src/extensions/otel/logs.js.map +1 -0
  47. package/dist/types/src/extensions/otel/metrics.d.ts.map +1 -0
  48. package/dist/types/src/{otel → extensions/otel}/metrics.js +2 -10
  49. package/dist/types/src/extensions/otel/metrics.js.map +1 -0
  50. package/dist/types/src/{otel → extensions/otel}/otel.d.ts +3 -3
  51. package/dist/types/src/extensions/otel/otel.d.ts.map +1 -0
  52. package/dist/types/src/extensions/otel/otel.js.map +1 -0
  53. package/dist/types/src/extensions/otel/traces-browser.d.ts.map +1 -0
  54. package/dist/types/src/{otel → extensions/otel}/traces-browser.js +13 -16
  55. package/dist/types/src/extensions/otel/traces-browser.js.map +1 -0
  56. package/dist/types/src/extensions/otel/traces.d.ts.map +1 -0
  57. package/dist/types/src/{otel → extensions/otel}/traces.js +5 -13
  58. package/dist/types/src/extensions/otel/traces.js.map +1 -0
  59. package/dist/types/src/extensions/posthog/extension.d.ts +18 -0
  60. package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -0
  61. package/dist/types/src/extensions/posthog/extension.js +142 -0
  62. package/dist/types/src/extensions/posthog/extension.js.map +1 -0
  63. package/dist/types/src/extensions/posthog/index.d.ts +2 -0
  64. package/dist/types/src/extensions/posthog/index.d.ts.map +1 -0
  65. package/dist/types/src/extensions/posthog/index.js +5 -0
  66. package/dist/types/src/extensions/posthog/index.js.map +1 -0
  67. package/dist/types/src/extensions/posthog/log-processor.d.ts +3 -0
  68. package/dist/types/src/extensions/posthog/log-processor.d.ts.map +1 -0
  69. package/dist/types/src/extensions/posthog/log-processor.js +45 -0
  70. package/dist/types/src/extensions/posthog/log-processor.js.map +1 -0
  71. package/dist/types/src/extensions/posthog/log-processor.test.d.ts +2 -0
  72. package/dist/types/src/extensions/posthog/log-processor.test.d.ts.map +1 -0
  73. package/dist/types/src/extensions/posthog/log-processor.test.js +146 -0
  74. package/dist/types/src/extensions/posthog/log-processor.test.js.map +1 -0
  75. package/dist/types/src/extensions/stub.d.ts +3 -0
  76. package/dist/types/src/extensions/stub.d.ts.map +1 -0
  77. package/dist/types/src/extensions/stub.js +16 -0
  78. package/dist/types/src/extensions/stub.js.map +1 -0
  79. package/dist/types/src/index.d.ts +3 -2
  80. package/dist/types/src/index.d.ts.map +1 -1
  81. package/dist/types/src/index.js +4 -3
  82. package/dist/types/src/index.js.map +1 -1
  83. package/dist/types/src/observability-extension.d.ts +74 -0
  84. package/dist/types/src/observability-extension.d.ts.map +1 -0
  85. package/dist/types/src/observability-extension.js +5 -0
  86. package/dist/types/src/observability-extension.js.map +1 -0
  87. package/dist/types/src/observability.d.ts +32 -110
  88. package/dist/types/src/observability.d.ts.map +1 -1
  89. package/dist/types/src/observability.js +177 -465
  90. package/dist/types/src/observability.js.map +1 -1
  91. package/dist/types/src/observability.test.d.ts +2 -0
  92. package/dist/types/src/observability.test.d.ts.map +1 -0
  93. package/dist/types/src/observability.test.js +312 -0
  94. package/dist/types/src/observability.test.js.map +1 -0
  95. package/dist/types/src/providers/client-observability.d.ts +11 -0
  96. package/dist/types/src/providers/client-observability.d.ts.map +1 -0
  97. package/dist/types/src/providers/client-observability.js +200 -0
  98. package/dist/types/src/providers/client-observability.js.map +1 -0
  99. package/dist/types/src/providers/index.d.ts +4 -0
  100. package/dist/types/src/providers/index.d.ts.map +1 -0
  101. package/dist/types/src/providers/index.js +7 -0
  102. package/dist/types/src/providers/index.js.map +1 -0
  103. package/dist/types/src/providers/ip-data.d.ts +5 -0
  104. package/dist/types/src/providers/ip-data.d.ts.map +1 -0
  105. package/dist/types/src/providers/ip-data.js +57 -0
  106. package/dist/types/src/providers/ip-data.js.map +1 -0
  107. package/dist/types/src/providers/storage.d.ts +3 -0
  108. package/dist/types/src/providers/storage.d.ts.map +1 -0
  109. package/dist/types/src/providers/storage.js +19 -0
  110. package/dist/types/src/providers/storage.js.map +1 -0
  111. package/dist/types/src/storage/browser.d.ts +19 -0
  112. package/dist/types/src/storage/browser.d.ts.map +1 -0
  113. package/dist/types/src/storage/browser.js +58 -0
  114. package/dist/types/src/storage/browser.js.map +1 -0
  115. package/dist/types/src/storage/index.d.ts +2 -0
  116. package/dist/types/src/storage/index.d.ts.map +1 -0
  117. package/dist/types/src/storage/index.js.map +1 -0
  118. package/dist/types/src/storage/node.d.ts +26 -0
  119. package/dist/types/src/storage/node.d.ts.map +1 -0
  120. package/dist/types/src/{helpers/node-observability.js → storage/node.js} +37 -42
  121. package/dist/types/src/storage/node.js.map +1 -0
  122. package/dist/types/src/storage/node.test.d.ts +2 -0
  123. package/dist/types/src/storage/node.test.d.ts.map +1 -0
  124. package/dist/types/src/storage/node.test.js +103 -0
  125. package/dist/types/src/storage/node.test.js.map +1 -0
  126. package/dist/types/tsconfig.tsbuildinfo +1 -1
  127. package/package.json +24 -49
  128. package/src/cli-observability-secrets.json +3 -4
  129. package/src/extensions/index.ts +6 -0
  130. package/src/extensions/otel/extension.ts +178 -0
  131. package/src/extensions/otel/index.ts +5 -0
  132. package/src/{otel → extensions/otel}/logs.ts +55 -23
  133. package/src/{otel → extensions/otel}/metrics.ts +2 -12
  134. package/src/{otel → extensions/otel}/otel.ts +3 -3
  135. package/src/{otel → extensions/otel}/traces-browser.ts +20 -19
  136. package/src/{otel → extensions/otel}/traces.ts +10 -21
  137. package/src/extensions/posthog/extension.ts +174 -0
  138. package/src/extensions/posthog/index.ts +5 -0
  139. package/src/extensions/posthog/log-processor.test.ts +185 -0
  140. package/src/extensions/posthog/log-processor.ts +54 -0
  141. package/src/extensions/stub.ts +19 -0
  142. package/src/index.ts +4 -3
  143. package/src/observability-extension.ts +94 -0
  144. package/src/observability.test.ts +531 -0
  145. package/src/observability.ts +236 -577
  146. package/src/providers/client-observability.ts +253 -0
  147. package/src/providers/index.ts +7 -0
  148. package/src/providers/ip-data.ts +91 -0
  149. package/src/providers/storage.ts +23 -0
  150. package/src/storage/browser.ts +61 -0
  151. package/src/{segment → storage}/index.ts +0 -1
  152. package/src/storage/node.test.ts +130 -0
  153. package/src/{helpers/node-observability.ts → storage/node.ts} +40 -69
  154. package/dist/lib/browser/chunk-5ICT2XF2.mjs +0 -1
  155. package/dist/lib/browser/chunk-5LN7D6GM.mjs +0 -148
  156. package/dist/lib/browser/chunk-5LN7D6GM.mjs.map +0 -7
  157. package/dist/lib/browser/chunk-JJQT5TQH.mjs +0 -672
  158. package/dist/lib/browser/chunk-JJQT5TQH.mjs.map +0 -7
  159. package/dist/lib/browser/chunk-O4BG5MRL.mjs +0 -164
  160. package/dist/lib/browser/chunk-O4BG5MRL.mjs.map +0 -7
  161. package/dist/lib/browser/chunk-U6JWT3E2.mjs +0 -1
  162. package/dist/lib/browser/chunk-VL6LVQPU.mjs.map +0 -7
  163. package/dist/lib/browser/observability-XK652NZG.mjs +0 -11
  164. package/dist/lib/browser/observability-XK652NZG.mjs.map +0 -7
  165. package/dist/lib/browser/otel/traces-browser.mjs +0 -7
  166. package/dist/lib/browser/otel/traces-browser.mjs.map +0 -7
  167. package/dist/lib/browser/otel/traces.mjs +0 -7
  168. package/dist/lib/browser/otel/traces.mjs.map +0 -7
  169. package/dist/lib/browser/otel-DI4ASU7Y.mjs +0 -226
  170. package/dist/lib/browser/otel-DI4ASU7Y.mjs.map +0 -7
  171. package/dist/lib/browser/segment/browser.mjs +0 -9
  172. package/dist/lib/browser/segment/browser.mjs.map +0 -7
  173. package/dist/lib/browser/segment/index.mjs +0 -12
  174. package/dist/lib/browser/segment/index.mjs.map +0 -7
  175. package/dist/lib/browser/segment/node.mjs +0 -9
  176. package/dist/lib/browser/segment/node.mjs.map +0 -7
  177. package/dist/lib/browser/sentry/browser.mjs +0 -23
  178. package/dist/lib/browser/sentry/browser.mjs.map +0 -7
  179. package/dist/lib/browser/sentry/index.mjs +0 -24
  180. package/dist/lib/browser/sentry/index.mjs.map +0 -7
  181. package/dist/lib/browser/sentry/node.mjs +0 -23
  182. package/dist/lib/browser/sentry/node.mjs.map +0 -7
  183. package/dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs +0 -146
  184. package/dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-KKNY7TRV.mjs +0 -673
  186. package/dist/lib/node-esm/chunk-KKNY7TRV.mjs.map +0 -7
  187. package/dist/lib/node-esm/chunk-KLJGCUYA.mjs +0 -2
  188. package/dist/lib/node-esm/chunk-KLJGCUYA.mjs.map +0 -7
  189. package/dist/lib/node-esm/chunk-KVJTNW3F.mjs +0 -147
  190. package/dist/lib/node-esm/chunk-KVJTNW3F.mjs.map +0 -7
  191. package/dist/lib/node-esm/chunk-M4627SMT.mjs +0 -135
  192. package/dist/lib/node-esm/chunk-M4627SMT.mjs.map +0 -7
  193. package/dist/lib/node-esm/chunk-QUZL7LKE.mjs +0 -2
  194. package/dist/lib/node-esm/chunk-QUZL7LKE.mjs.map +0 -7
  195. package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs +0 -62
  196. package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs.map +0 -7
  197. package/dist/lib/node-esm/chunk-WAGGA7IT.mjs.map +0 -7
  198. package/dist/lib/node-esm/observability-CXQ3CZGB.mjs +0 -13
  199. package/dist/lib/node-esm/observability-CXQ3CZGB.mjs.map +0 -7
  200. package/dist/lib/node-esm/otel/traces-browser.mjs +0 -70
  201. package/dist/lib/node-esm/otel/traces-browser.mjs.map +0 -7
  202. package/dist/lib/node-esm/otel/traces.mjs +0 -8
  203. package/dist/lib/node-esm/otel/traces.mjs.map +0 -7
  204. package/dist/lib/node-esm/otel-JFXO22WD.mjs +0 -227
  205. package/dist/lib/node-esm/otel-JFXO22WD.mjs.map +0 -7
  206. package/dist/lib/node-esm/segment/browser.mjs +0 -92
  207. package/dist/lib/node-esm/segment/browser.mjs.map +0 -7
  208. package/dist/lib/node-esm/segment/index.mjs +0 -15
  209. package/dist/lib/node-esm/segment/index.mjs.map +0 -7
  210. package/dist/lib/node-esm/segment/node.mjs +0 -11
  211. package/dist/lib/node-esm/segment/node.mjs.map +0 -7
  212. package/dist/lib/node-esm/sentry/browser.mjs +0 -165
  213. package/dist/lib/node-esm/sentry/browser.mjs.map +0 -7
  214. package/dist/lib/node-esm/sentry/index.mjs +0 -25
  215. package/dist/lib/node-esm/sentry/index.mjs.map +0 -7
  216. package/dist/lib/node-esm/sentry/node.mjs +0 -24
  217. package/dist/lib/node-esm/sentry/node.mjs.map +0 -7
  218. package/dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs +0 -147
  219. package/dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs.map +0 -7
  220. package/dist/types/src/helpers/browser-observability.d.ts +0 -17
  221. package/dist/types/src/helpers/browser-observability.d.ts.map +0 -1
  222. package/dist/types/src/helpers/browser-observability.js +0 -138
  223. package/dist/types/src/helpers/browser-observability.js.map +0 -1
  224. package/dist/types/src/helpers/common.d.ts +0 -12
  225. package/dist/types/src/helpers/common.d.ts.map +0 -1
  226. package/dist/types/src/helpers/common.js +0 -23
  227. package/dist/types/src/helpers/common.js.map +0 -1
  228. package/dist/types/src/helpers/index.d.ts +0 -6
  229. package/dist/types/src/helpers/index.d.ts.map +0 -1
  230. package/dist/types/src/helpers/index.js +0 -9
  231. package/dist/types/src/helpers/index.js.map +0 -1
  232. package/dist/types/src/helpers/map-spaces.d.ts +0 -18
  233. package/dist/types/src/helpers/map-spaces.d.ts.map +0 -1
  234. package/dist/types/src/helpers/map-spaces.js +0 -36
  235. package/dist/types/src/helpers/map-spaces.js.map +0 -1
  236. package/dist/types/src/helpers/node-observability.d.ts +0 -24
  237. package/dist/types/src/helpers/node-observability.d.ts.map +0 -1
  238. package/dist/types/src/helpers/node-observability.js.map +0 -1
  239. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts +0 -4
  240. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +0 -1
  241. package/dist/types/src/helpers/setup-telemetry-listeners.js +0 -94
  242. package/dist/types/src/helpers/setup-telemetry-listeners.js.map +0 -1
  243. package/dist/types/src/otel/index.d.ts +0 -5
  244. package/dist/types/src/otel/index.d.ts.map +0 -1
  245. package/dist/types/src/otel/index.js +0 -8
  246. package/dist/types/src/otel/index.js.map +0 -1
  247. package/dist/types/src/otel/logs.d.ts.map +0 -1
  248. package/dist/types/src/otel/logs.js.map +0 -1
  249. package/dist/types/src/otel/metrics.d.ts.map +0 -1
  250. package/dist/types/src/otel/metrics.js.map +0 -1
  251. package/dist/types/src/otel/otel.d.ts.map +0 -1
  252. package/dist/types/src/otel/otel.js.map +0 -1
  253. package/dist/types/src/otel/traces-browser.d.ts.map +0 -1
  254. package/dist/types/src/otel/traces-browser.js.map +0 -1
  255. package/dist/types/src/otel/traces.d.ts.map +0 -1
  256. package/dist/types/src/otel/traces.js.map +0 -1
  257. package/dist/types/src/segment/base.d.ts +0 -15
  258. package/dist/types/src/segment/base.d.ts.map +0 -1
  259. package/dist/types/src/segment/base.js +0 -51
  260. package/dist/types/src/segment/base.js.map +0 -1
  261. package/dist/types/src/segment/browser.d.ts +0 -15
  262. package/dist/types/src/segment/browser.d.ts.map +0 -1
  263. package/dist/types/src/segment/browser.js +0 -63
  264. package/dist/types/src/segment/browser.js.map +0 -1
  265. package/dist/types/src/segment/index.d.ts +0 -3
  266. package/dist/types/src/segment/index.d.ts.map +0 -1
  267. package/dist/types/src/segment/index.js +0 -6
  268. package/dist/types/src/segment/index.js.map +0 -1
  269. package/dist/types/src/segment/node.d.ts +0 -16
  270. package/dist/types/src/segment/node.d.ts.map +0 -1
  271. package/dist/types/src/segment/node.js +0 -84
  272. package/dist/types/src/segment/node.js.map +0 -1
  273. package/dist/types/src/segment/types.d.ts +0 -52
  274. package/dist/types/src/segment/types.d.ts.map +0 -1
  275. package/dist/types/src/segment/types.js +0 -18
  276. package/dist/types/src/segment/types.js.map +0 -1
  277. package/dist/types/src/sentry/browser.d.ts +0 -32
  278. package/dist/types/src/sentry/browser.d.ts.map +0 -1
  279. package/dist/types/src/sentry/browser.js +0 -110
  280. package/dist/types/src/sentry/browser.js.map +0 -1
  281. package/dist/types/src/sentry/index.d.ts +0 -3
  282. package/dist/types/src/sentry/index.d.ts.map +0 -1
  283. package/dist/types/src/sentry/index.js.map +0 -1
  284. package/dist/types/src/sentry/node.d.ts +0 -32
  285. package/dist/types/src/sentry/node.d.ts.map +0 -1
  286. package/dist/types/src/sentry/node.js +0 -106
  287. package/dist/types/src/sentry/node.js.map +0 -1
  288. package/dist/types/src/sentry/node.node.test.d.ts +0 -2
  289. package/dist/types/src/sentry/node.node.test.d.ts.map +0 -1
  290. package/dist/types/src/sentry/node.node.test.js +0 -32
  291. package/dist/types/src/sentry/node.node.test.js.map +0 -1
  292. package/dist/types/src/sentry/sentry-log-processor.d.ts +0 -9
  293. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +0 -1
  294. package/dist/types/src/sentry/sentry-log-processor.js +0 -144
  295. package/dist/types/src/sentry/sentry-log-processor.js.map +0 -1
  296. package/dist/types/src/sentry/sentry.node.test.d.ts +0 -2
  297. package/dist/types/src/sentry/sentry.node.test.d.ts.map +0 -1
  298. package/dist/types/src/sentry/sentry.node.test.js +0 -28
  299. package/dist/types/src/sentry/sentry.node.test.js.map +0 -1
  300. package/dist/types/src/sentry/types.d.ts +0 -18
  301. package/dist/types/src/sentry/types.d.ts.map +0 -1
  302. package/dist/types/src/sentry/types.js +0 -4
  303. package/dist/types/src/sentry/types.js.map +0 -1
  304. package/dist/types/src/testing/index.d.ts +0 -2
  305. package/dist/types/src/testing/index.d.ts.map +0 -1
  306. package/dist/types/src/testing/index.js +0 -5
  307. package/dist/types/src/testing/index.js.map +0 -1
  308. package/dist/types/src/testing/testkit/browser.d.ts +0 -2
  309. package/dist/types/src/testing/testkit/browser.d.ts.map +0 -1
  310. package/dist/types/src/testing/testkit/browser.js +0 -7
  311. package/dist/types/src/testing/testkit/browser.js.map +0 -1
  312. package/dist/types/src/testing/testkit/index.d.ts +0 -2
  313. package/dist/types/src/testing/testkit/index.d.ts.map +0 -1
  314. package/dist/types/src/testing/testkit/index.js +0 -6
  315. package/dist/types/src/testing/testkit/index.js.map +0 -1
  316. package/src/helpers/browser-observability.ts +0 -178
  317. package/src/helpers/common.ts +0 -38
  318. package/src/helpers/index.ts +0 -9
  319. package/src/helpers/map-spaces.ts +0 -48
  320. package/src/helpers/setup-telemetry-listeners.ts +0 -109
  321. package/src/otel/index.ts +0 -8
  322. package/src/segment/base.ts +0 -69
  323. package/src/segment/browser.ts +0 -69
  324. package/src/segment/node.ts +0 -95
  325. package/src/segment/types.ts +0 -57
  326. package/src/sentry/browser.ts +0 -133
  327. package/src/sentry/index.ts +0 -6
  328. package/src/sentry/node.node.test.ts +0 -40
  329. package/src/sentry/node.ts +0 -126
  330. package/src/sentry/sentry-log-processor.ts +0 -176
  331. package/src/sentry/sentry.node.test.ts +0 -35
  332. package/src/sentry/types.ts +0 -22
  333. package/src/testing/index.ts +0 -5
  334. package/src/testing/testkit/browser.ts +0 -8
  335. package/src/testing/testkit/index.ts +0 -7
  336. package/src/testing/testkit/shims.d.ts +0 -5
  337. /package/dist/lib/browser/{chunk-5ICT2XF2.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  338. /package/dist/lib/{browser/chunk-U6JWT3E2.mjs.map → node-esm/chunk-HSLMI22Q.mjs.map} +0 -0
  339. /package/dist/types/src/{otel → extensions/otel}/metrics.d.ts +0 -0
  340. /package/dist/types/src/{otel → extensions/otel}/otel.js +0 -0
  341. /package/dist/types/src/{otel → extensions/otel}/traces-browser.d.ts +0 -0
  342. /package/dist/types/src/{otel → extensions/otel}/traces.d.ts +0 -0
  343. /package/dist/types/src/{sentry → storage}/index.js +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/observability.ts", "../../../src/cli-observability-secrets.json", "../../../src/helpers/common.ts", "../../../src/helpers/map-spaces.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Event, scheduleTaskInterval } from '@dxos/async';\nimport { type Client, type Config, PublicKey } from '@dxos/client';\nimport { type ClientServices, type Space } from '@dxos/client-protocol';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { LogLevel, log } from '@dxos/log';\nimport { ConnectionState } from '@dxos/network-manager';\nimport { DeviceKind, type NetworkStatus, Platform } from '@dxos/protocols/proto/dxos/client/services';\nimport { isNode } from '@dxos/util';\n\nimport buildSecrets from './cli-observability-secrets.json';\nimport { type IPData, getTelemetryIdentity, mapSpaces } from './helpers';\nimport { type OtelLogs, type OtelMetrics, type OtelTraces } from './otel';\nimport { type PageOptions, type SegmentTelemetry, TelemetryEvent, type TrackOptions } from './segment';\nimport { type InitOptions, type captureException as SentryCaptureException } from './sentry';\nimport { type SentryLogProcessor } from './sentry/sentry-log-processor';\n\nconst SPACE_METRICS_MIN_INTERVAL = 1000 * 60; // 1 minute\nconst SPACE_TELEMETRY_MIN_INTERVAL = 1000 * 60 * 60; // 1 hour\nconst NETWORK_METRICS_MIN_INTERVAL = 1000 * 60 * 5; // 5 minutes\n\n// Secrets? EnvironmentConfig?\n\nexport type ObservabilitySecrets = {\n DX_ENVIRONMENT: string | null;\n DX_RELEASE: string | null;\n SENTRY_DESTINATION: string | null;\n TELEMETRY_API_KEY: string | null;\n IPDATA_API_KEY: string | null;\n OTEL_ENDPOINT: string | null;\n OTEL_AUTHORIZATION: string | null;\n};\n\nexport type TagScope = 'errors' | 'telemetry' | 'metrics' | 'all';\n\n/** Gathering mode. */\nexport type Mode = 'basic' | 'full' | 'disabled';\n\nexport type ObservabilityOptions = {\n mode: Mode;\n\n /** Environment. */\n environment?: string;\n\n /** Application namespace. */\n namespace: string;\n\n /** Application release. */\n release?: string;\n\n /** User group. */\n group?: string;\n\n config?: Config;\n secrets?: Record<string, string>;\n\n telemetry?: {\n batchSize?: number;\n };\n\n errorLog?: {\n sentryInitOptions?: InitOptions;\n };\n};\n\n/*\n * Observability provides a common interface for error logging, metrics, and telemetry.\n * It currently provides these capabilities using Sentry, OpenTelemetry, and Segment.\n *\n * Segment:\n * https://app.segment.com/dxos/sources/composer-app/debugger\n * https://app.segment.com/dxos/sources/composer-app/settings/keys\n *\n * NOTE:\n * - Segment maintains a set of admin creates Source (e.g., \"composer-app\").\n * - Each source has at least one API_KEY, which is used by the client.\n *\n * Testing:\n * https://app.segment.com/dxos/sources/composer-app/settings/keys\n * - DX_TELEMETRY_API_KEY\n * - DX_SENTRY_DESTINATION\n *\n * Sentry:\n * https://sentry.io/organizations/dxos/issues\n *\n * OpenTelemetry:\n * https://dxosorg.grafana.net/explore\n */\nexport class Observability {\n private _mode: Mode;\n private readonly _namespace: string;\n private readonly _config?: Config;\n private readonly _group?: string;\n private readonly _secrets: ObservabilitySecrets;\n private readonly _tags = new Map<string, { value: string; scope: TagScope }>();\n\n // TODO(wittjosiah): Generic metrics interface.\n private _otelMetrics?: OtelMetrics;\n private _otelTraces?: OtelTraces;\n // TODO(wittjosiah): Generic telemetry interface.\n private _telemetryBatchSize: number;\n private _telemetry?: SegmentTelemetry;\n // TODO(wittjosiah): Generic error logging interface.\n private _sentryLogProcessor?: SentryLogProcessor;\n private _otelLogs?: OtelLogs;\n private _errorReportingOptions?: InitOptions;\n private _captureException?: typeof SentryCaptureException;\n private _captureUserFeedback?: (message: string) => Promise<void>;\n private _lastNetworkStatus?: NetworkStatus;\n\n private _ctx = new Context();\n\n // TODO(nf): make platform a required extension?\n constructor({\n mode,\n namespace,\n environment,\n release,\n config,\n group,\n secrets,\n telemetry,\n errorLog,\n }: ObservabilityOptions) {\n this._mode = mode;\n this._namespace = namespace;\n this._config = config;\n this._group = group;\n this._secrets = this._loadSecrets(config, secrets);\n\n this._telemetryBatchSize = telemetry?.batchSize ?? 30;\n this._errorReportingOptions = errorLog?.sentryInitOptions;\n\n // Tags.\n this.setTag('mode', this._mode);\n this.setTag('namespace', this._namespace);\n this.setTag('environment', environment);\n this.setTag('release', release);\n this.setTag('session', PublicKey.random().toHex());\n this.setTag('group', this._group);\n }\n\n get mode() {\n return this._mode;\n }\n\n get group() {\n return this._group;\n }\n\n get enabled() {\n return this._mode !== 'disabled';\n }\n\n private _loadSecrets(config: Config | undefined, secrets?: Record<string, string>) {\n if (isNode()) {\n const mergedSecrets = {\n ...(buildSecrets as ObservabilitySecrets),\n ...secrets,\n };\n\n process.env.DX_ENVIRONMENT && (mergedSecrets.DX_ENVIRONMENT = process.env.DX_ENVIRONMENT);\n process.env.DX_RELEASE && (mergedSecrets.DX_RELEASE = process.env.DX_RELEASE);\n process.env.SENTRY_DESTINATION && (mergedSecrets.SENTRY_DESTINATION = process.env.SENTRY_DESTINATION);\n process.env.TELEMETRY_API_KEY && (mergedSecrets.TELEMETRY_API_KEY = process.env.TELEMETRY_API_KEY);\n process.env.IPDATA_API_KEY && (mergedSecrets.IPDATA_API_KEY = process.env.IPDATA_API_KEY);\n process.env.DX_OTEL_ENDPOINT && (mergedSecrets.OTEL_ENDPOINT = process.env.DX_OTEL_ENDPOINT);\n process.env.DX_OTEL_AUTHORIZATION && (mergedSecrets.OTEL_AUTHORIZATION = process.env.DX_OTEL_AUTHORIZATION);\n\n return mergedSecrets;\n } else {\n log('config', { rtc: this._secrets, config });\n return {\n DX_ENVIRONMENT: config?.get('runtime.app.env.DX_ENVIRONMENT'),\n DX_RELEASE: config?.get('runtime.app.env.DX_RELEASE'),\n SENTRY_DESTINATION: config?.get('runtime.app.env.DX_SENTRY_DESTINATION'),\n TELEMETRY_API_KEY: config?.get('runtime.app.env.DX_TELEMETRY_API_KEY'),\n IPDATA_API_KEY: config?.get('runtime.app.env.DX_IPDATA_API_KEY'),\n OTEL_ENDPOINT: config?.get('runtime.app.env.DX_OTEL_ENDPOINT'),\n OTEL_AUTHORIZATION: config?.get('runtime.app.env.DX_OTEL_AUTHORIZATION'),\n ...secrets,\n };\n }\n }\n\n async initialize(): Promise<void> {\n log('initializing...');\n await this._initLogs();\n await this._initMetrics();\n await this._initTelemetry();\n await this._initErrorLogs();\n await this._initTraces();\n }\n\n async close(): Promise<void> {\n log('closing...');\n const closes: Promise<void>[] = [];\n this._telemetry && closes.push(this._telemetry.close());\n this._otelMetrics && closes.push(this._otelMetrics.close());\n this._otelLogs && closes.push(this._otelLogs.close());\n\n await Promise.all(closes);\n await this._ctx.dispose();\n }\n\n setMode(mode: Mode): void {\n this._mode = mode;\n }\n\n //\n // Tags\n //\n\n /** Callback (e.g., to share tags with Sentry.) */\n private _setTag?: (key: string, value: string) => void;\n\n /**\n * camelCase keys are converted to snake_case in Segment.\n */\n setTag(key: string, value: string | undefined, scope?: TagScope): void {\n if (value === undefined) {\n return;\n }\n if (this.enabled && (scope === undefined || scope === 'all' || scope === 'errors')) {\n this._setTag?.(key, value);\n }\n if (!scope) {\n scope = 'all';\n }\n\n this._tags.set(key, { value, scope });\n }\n\n getTag(key: string) {\n return this._tags.get(key);\n }\n\n // TODO(wittjosiah): Improve privacy of telemetry identifiers. See `getTelemetryIdentifier`.\n async setIdentityTags(clientServices: Partial<ClientServices>): Promise<void> {\n if (clientServices.IdentityService) {\n clientServices.IdentityService.queryIdentity().subscribe((idqr) => {\n if (!idqr?.identity?.did) {\n log('empty response from identity service', { idqr });\n return;\n }\n\n this.setTag('did', idqr.identity.did);\n this._telemetry?.identify({ userId: idqr.identity.did });\n });\n }\n\n if (clientServices.DevicesService) {\n clientServices.DevicesService.queryDevices().subscribe((dqr) => {\n if (!dqr || !dqr.devices || dqr.devices.length === 0) {\n log('empty response from device service', { device: dqr });\n return;\n }\n\n invariant(dqr, 'empty response from device service');\n const thisDevice = dqr.devices.find((device) => device.kind === DeviceKind.CURRENT);\n if (!thisDevice) {\n log('no current device', { device: dqr });\n return;\n }\n\n this.setTag('deviceKey', thisDevice.deviceKey.truncate());\n if (thisDevice.profile?.label) {\n this.setTag('deviceProfile', thisDevice.profile.label);\n }\n });\n }\n }\n\n setIPDataTelemetryTags = (ipData: IPData) => {\n this.setTag('city', ipData.city, 'telemetry');\n this.setTag('region', ipData.region, 'telemetry');\n this.setTag('country', ipData.country, 'telemetry');\n ipData.latitude && this.setTag('latitude', ipData.latitude.toString(), 'telemetry');\n ipData.longitude && this.setTag('longitude', ipData.longitude.toString(), 'telemetry');\n };\n\n //\n // Logs\n //\n\n private async _initLogs(): Promise<void> {\n if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== 'disabled') {\n const { OtelLogs } = await import('./otel');\n this._otelLogs = new OtelLogs({\n endpoint: this._secrets.OTEL_ENDPOINT,\n authorizationHeader: this._secrets.OTEL_AUTHORIZATION,\n serviceName: this._namespace,\n serviceVersion: this.getTag('release')?.value ?? '0.0.0',\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'errors';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n logLevel: LogLevel.VERBOSE,\n includeSharedWorkerLogs: false,\n });\n this._otelLogs && log.runtimeConfig.processors.push(this._otelLogs.logProcessor);\n log('otel logs enabled', { namespace: this._namespace });\n } else {\n log('otel logs disabled');\n }\n }\n\n //\n // Metrics\n //\n\n private async _initMetrics(): Promise<void> {\n if (this.enabled && this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION) {\n const { OtelMetrics } = await import('./otel');\n this._otelMetrics = new OtelMetrics({\n endpoint: this._secrets.OTEL_ENDPOINT,\n authorizationHeader: this._secrets.OTEL_AUTHORIZATION,\n serviceName: this._namespace,\n serviceVersion: this.getTag('release')?.value ?? '0.0.0',\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'metrics';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n });\n log('otel metrics enabled');\n } else {\n log('otel metrics disabled');\n }\n }\n\n /**\n * Gauge metric.\n *\n * The default implementation uses OpenTelemetry\n */\n gauge(name: string, value: number | any, extraTags?: any): void {\n this._otelMetrics?.gauge(name, value, extraTags);\n }\n\n // TODO(nf): Refactor into ObservabilityExtensions.\n\n startNetworkMetrics(clientServices: Partial<ClientServices>): void {\n if (!clientServices.NetworkService) {\n return;\n }\n // TODO(nf): support type in debounce()\n const updateSignalMetrics = new Event<NetworkStatus>().debounce(NETWORK_METRICS_MIN_INTERVAL);\n updateSignalMetrics.on(this._ctx, async () => {\n log('send signal metrics');\n (this._lastNetworkStatus?.signaling as NetworkStatus.Signal[])?.forEach(({ server, state }) => {\n this.gauge('dxos.client.network.signal.connectionState', state, { server });\n });\n\n let swarmCount = 0;\n const connectionStates = new Map<string, number>();\n for (const state in ConnectionState) {\n connectionStates.set(state, 0);\n }\n\n let totalReadBufferSize = 0;\n let totalWriteBufferSize = 0;\n let totalChannelBufferSize = 0;\n\n this._lastNetworkStatus?.connectionInfo?.forEach((connectionInfo) => {\n swarmCount++;\n\n for (const conn of connectionInfo.connections ?? []) {\n connectionStates.set(conn.state, (connectionStates.get(conn.state) ?? 0) + 1);\n totalReadBufferSize += conn.readBufferSize ?? 0;\n totalWriteBufferSize += conn.writeBufferSize ?? 0;\n for (const stream of conn.streams ?? []) {\n totalChannelBufferSize += stream.writeBufferSize ?? 0;\n }\n }\n\n this.gauge('dxos.client.network.swarm.count', swarmCount);\n for (const state in ConnectionState) {\n this.gauge('dxos.client.network.connection.count', connectionStates.get(state) ?? 0, { state });\n }\n this.gauge('dxos.client.network.totalReadBufferSize', totalReadBufferSize);\n this.gauge('dxos.client.network.totalWriteBufferSize', totalWriteBufferSize);\n this.gauge('dxos.client.network.totalChannelBufferSize', totalChannelBufferSize);\n });\n });\n\n clientServices.NetworkService.queryStatus().subscribe((networkStatus) => {\n this._lastNetworkStatus = networkStatus;\n updateSignalMetrics.emit();\n });\n\n scheduleTaskInterval(this._ctx, async () => updateSignalMetrics.emit(), NETWORK_METRICS_MIN_INTERVAL);\n }\n\n startSpacesMetrics(client: Client, namespace: string): void {\n // TODO(nf): update subscription on new spaces\n const spaces = client.spaces.get();\n const subscriptions = new Map<string, { unsubscribe: () => void }>();\n this._ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));\n\n const updateSpaceMetrics = new Event<Space>().debounce(SPACE_METRICS_MIN_INTERVAL);\n updateSpaceMetrics.on(this._ctx, async () => {\n log('send space metrics');\n for (const data of mapSpaces(spaces, { truncateKeys: true })) {\n this.gauge('dxos.client.space.members', data.members, { key: data.key });\n this.gauge('dxos.client.space.objects', data.objects, { key: data.key });\n this.gauge('dxos.client.space.epoch', data.epoch, { key: data.key });\n this.gauge('dxos.client.space.currentDataMutations', data.currentDataMutations, { key: data.key });\n }\n });\n\n const updateSpaceTelemetry = new Event<Space>().debounce(SPACE_TELEMETRY_MIN_INTERVAL);\n updateSpaceTelemetry.on(this._ctx, async () => {\n log('send space telemetry');\n for (const data of mapSpaces(spaces, { truncateKeys: true })) {\n this.track({\n ...getTelemetryIdentity(client),\n event: TelemetryEvent.METRICS,\n action: 'space.update',\n properties: data,\n });\n }\n });\n\n const subscribeToSpaceUpdate = (space: Space) =>\n space.pipeline.subscribe({\n next: () => {\n updateSpaceMetrics.emit();\n updateSpaceTelemetry.emit();\n },\n });\n\n spaces.forEach((space) => {\n subscriptions.set(space.id, subscribeToSpaceUpdate(space));\n });\n\n client.spaces.subscribe({\n next: async (spaces) => {\n spaces\n .filter((space) => !subscriptions.has(space.id))\n .forEach((space) => {\n subscriptions.set(space.id, subscribeToSpaceUpdate(space));\n });\n },\n });\n\n scheduleTaskInterval(this._ctx, async () => updateSpaceMetrics.emit(), NETWORK_METRICS_MIN_INTERVAL);\n }\n\n async startRuntimeMetrics(client: Client, frequency: number = NETWORK_METRICS_MIN_INTERVAL): Promise<void> {\n const platform = await client.services.services.SystemService?.getPlatform();\n invariant(platform, 'platform is required');\n\n this.setTag('platformType', Platform.PLATFORM_TYPE[platform.type as number].toLowerCase());\n if (this._mode === 'full') {\n if (platform.platform) {\n this.setTag('platform', platform.platform);\n }\n if (platform.arch) {\n this.setTag('arch', platform.arch);\n }\n if (platform.runtime) {\n this.setTag('runtime', platform.runtime);\n }\n }\n\n scheduleTaskInterval(\n this._ctx,\n async () => {\n if (client.services.constructor.name === 'WorkerClientServices') {\n const memory = (window.performance as any).memory;\n if (memory) {\n this.gauge('dxos.client.runtime.heapTotal', memory.totalJSHeapSize);\n this.gauge('dxos.client.runtime.heapUsed', memory.usedJSHeapSize);\n this.gauge('dxos.client.runtime.heapSizeLimit', memory.jsHeapSizeLimit);\n }\n }\n client.services.services.SystemService?.getPlatform()\n .then((platform) => {\n if (platform.memory) {\n this.gauge('dxos.client.services.runtime.rss', platform.memory.rss);\n this.gauge('dxos.client.services.runtime.heapTotal', platform.memory.heapTotal);\n this.gauge('dxos.client.services.runtime.heapUsed', platform.memory.heapUsed);\n }\n })\n .catch((error) => log('platform error', { error }));\n },\n frequency,\n );\n }\n\n //\n // Telemetry\n //\n\n private async _initTelemetry(): Promise<void> {\n if (this._secrets.TELEMETRY_API_KEY && this._mode !== 'disabled' && typeof document !== 'undefined') {\n const { SegmentTelemetry } = await import('./segment');\n this._telemetry = new SegmentTelemetry({\n apiKey: this._secrets.TELEMETRY_API_KEY,\n batchSize: this._telemetryBatchSize,\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'telemetry';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n });\n } else {\n log('segment disabled');\n }\n }\n\n /**\n * Submit telemetry page view.\n * The default implementation uses Segment.\n */\n page(options: PageOptions): void {\n this._telemetry?.page(options);\n }\n\n /**\n * Submit telemetry user action.\n * The default implementation uses Segment.\n */\n track(options: TrackOptions): void {\n this._telemetry?.track(options);\n }\n\n //\n // Error Logs\n //\n\n private async _initErrorLogs(): Promise<void> {\n if (this._secrets.SENTRY_DESTINATION && this._mode !== 'disabled') {\n const { captureException, captureUserFeedback, init, setTag } = await import('./sentry');\n const { SentryLogProcessor } = await import('./sentry/sentry-log-processor');\n this._captureException = captureException;\n this._captureUserFeedback = captureUserFeedback;\n this._setTag = setTag;\n\n // TODO(nf): Refactor package into this one?\n log.info('Initializing Sentry', {\n dest: this._secrets.SENTRY_DESTINATION,\n options: this._errorReportingOptions,\n });\n this._sentryLogProcessor = new SentryLogProcessor();\n init({\n ...this._errorReportingOptions,\n destination: this._secrets.SENTRY_DESTINATION,\n scrubFilenames: this._mode !== 'full',\n onError: (event) => this._sentryLogProcessor!.addLogBreadcrumbsTo(event),\n });\n\n // TODO(nf): Set platform at instantiation? needed for node.\n // TODO(nf): Is this different than passing as properties in options?\n this._tags.forEach((v, k) => {\n if (v.scope === 'all' || v.scope === 'errors') {\n setTag(k, v.value);\n }\n });\n } else {\n log('sentry disabled');\n }\n }\n\n startErrorLogs(): void {\n this._sentryLogProcessor && log.runtimeConfig.processors.push(this._sentryLogProcessor.logProcessor);\n }\n\n startTraces(): void {\n this._otelTraces && this._otelTraces.start();\n }\n\n // TODO(nf): Refactor init based on providers and their capabilities.\n private async _initTraces(): Promise<void> {\n if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== 'disabled') {\n const { OtelTraces } = await import('./otel');\n this._otelTraces = new OtelTraces({\n endpoint: this._secrets.OTEL_ENDPOINT,\n authorizationHeader: this._secrets.OTEL_AUTHORIZATION,\n serviceName: this._namespace,\n serviceVersion: this.getTag('release')?.value ?? '0.0.0',\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'metrics';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n });\n }\n }\n\n /**\n * Manually capture an exception.\n * The default implementation uses Sentry.\n */\n captureException(err: any): void {\n if (this.enabled) {\n this._captureException?.(err);\n }\n }\n\n /**\n * Manually capture user feedback.\n * The default implementation uses Sentry.\n */\n captureUserFeedback(message: string): void {\n if (!this._secrets.SENTRY_DESTINATION) {\n log.info('Feedback submitted without Sentry destination', { message });\n return;\n }\n\n // TODO(Zan): Should this respect telemetry mode? Sending feedback is explicitly user-initiated.\n // - Maybe if telemetry is disable we shouldn't enable replay.\n // - (Check the browser.ts implementation for reference).\n void this._captureUserFeedback?.(message);\n }\n}\n", "{\n \"SENTRY_DESTINATION\": \"https://2647916221e643869965e78469479aa4@o4504012000067584.ingest.sentry.io/4504012027265029\",\n \"TELEMETRY_API_KEY\": \"B00QG6PtJJrJ0VVFe0H5a6bcUUShKyZM\",\n \"IPDATA_API_KEY\": \"73dfdecdf979c18f07d50cf841bbdd9e589f237256326ac8cca23786\",\n \"OTEL_ENDPOINT\": \"https://otlp-proxy.dxos.workers.dev\",\n \"OTEL_AUTHORIZATION\": \"Basic OTA3MzIzOmdsY19leUp2SWpvaU1URXdNVEl6TnlJc0ltNGlPaUp6ZEdGamF5MDVNRGN6TWpNdGFXNTBaV2R5WVhScGIyNHRZMnh2ZFdSbWJHRnlaUzF2ZEd4d0xYQnliM2g1SWl3aWF5STZJalZ2Tkd4cFYydE5iRmszTlRNMGJUVXpTemRTVjNBeVNpSXNJbTBpT25zaWNpSTZJbkJ5YjJRdGRYTXRaV0Z6ZEMwd0luMTk=\"\n}", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\n\nimport { type IdentityOptions } from '../segment';\n\nexport type IPData = {\n city: string;\n region: string;\n country: string;\n latitude: number;\n longitude: number;\n};\n\n// TODO(wittjosiah): Improve privacy of telemetry identifiers.\n// - Identifier should be generated client-side with no attachment to identity.\n// - Identifier can then be reset by user.\n// - Identifier can be synced via HALO to allow for correlation of events bewteen devices.\n// - Identifier should also be stored outside of HALO such that it is available immediately on startup.\nexport const getTelemetryIdentifier = (client: Client): string | undefined => {\n if (!client?.initialized) {\n return undefined;\n }\n\n const identity = client.halo.identity.get();\n if (identity) {\n return identity.did;\n }\n\n return undefined;\n};\n\nexport const getTelemetryIdentity = (client: Client): IdentityOptions => {\n const did = getTelemetryIdentifier(client);\n return { did };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type { Space } from '@dxos/client-protocol';\n\nexport type MapSpacesOptions = {\n verbose?: boolean;\n truncateKeys?: boolean;\n};\n\nexport const mapSpaces = (spaces: Space[], options: MapSpacesOptions = { verbose: false, truncateKeys: false }) => {\n return spaces.map((space) => {\n // TODO(burdon): Factor out.\n // TODO(burdon): Agent needs to restart before `ready` is available.\n const { open, ready } = space.internal.data.metrics ?? {};\n const startup = open && ready && ready.getTime() - open.getTime();\n\n // TODO(burdon): Get feeds from client-services if verbose (factor out from devtools/diagnostics).\n // const host = client.services.services.DevtoolsHost!;\n const pipeline = space.internal.data.pipeline;\n const startDataMutations = pipeline?.currentEpoch?.subject.assertion.timeframe.totalMessages() ?? 0;\n const epoch = pipeline?.currentEpoch?.subject.assertion.number;\n // const appliedEpoch = pipeline?.appliedEpoch?.subject.assertion.number;\n const currentDataMutations = pipeline?.currentDataTimeframe?.totalMessages() ?? 0;\n const totalDataMutations = pipeline?.targetDataTimeframe?.totalMessages() ?? 0;\n\n return {\n // TODO(nf): truncate keys for DD?\n key: space.key.truncate(),\n open: space.isOpen,\n members: space.members.get().length,\n objects: space.internal.db.coreDatabase.getAllObjectIds().length,\n startup,\n epoch,\n // appliedEpoch,\n startDataMutations,\n currentDataMutations,\n totalDataMutations,\n\n // TODO(burdon): Negative?\n progress: (\n Math.min(Math.abs((currentDataMutations - startDataMutations) / (totalDataMutations - startDataMutations)), 1) *\n 100\n ).toFixed(0),\n };\n });\n};\n"],
5
- "mappings": "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",
6
- "names": ["Event", "scheduleTaskInterval", "PublicKey", "Context", "invariant", "LogLevel", "log", "ConnectionState", "DeviceKind", "Platform", "isNode", "getTelemetryIdentifier", "client", "initialized", "undefined", "identity", "halo", "get", "did", "getTelemetryIdentity", "mapSpaces", "spaces", "options", "verbose", "truncateKeys", "map", "space", "open", "ready", "internal", "data", "metrics", "startup", "getTime", "pipeline", "startDataMutations", "currentEpoch", "subject", "assertion", "timeframe", "totalMessages", "epoch", "number", "currentDataMutations", "currentDataTimeframe", "totalDataMutations", "targetDataTimeframe", "key", "truncate", "isOpen", "members", "get", "length", "objects", "db", "coreDatabase", "getAllObjectIds", "progress", "Math", "min", "abs", "toFixed", "SPACE_METRICS_MIN_INTERVAL", "SPACE_TELEMETRY_MIN_INTERVAL", "NETWORK_METRICS_MIN_INTERVAL", "Observability", "_mode", "_namespace", "_config", "_group", "_secrets", "_tags", "Map", "_otelMetrics", "_otelTraces", "_telemetryBatchSize", "_telemetry", "_sentryLogProcessor", "_otelLogs", "_errorReportingOptions", "_captureException", "_captureUserFeedback", "_lastNetworkStatus", "_ctx", "Context", "mode", "namespace", "environment", "release", "config", "group", "secrets", "telemetry", "errorLog", "_loadSecrets", "batchSize", "sentryInitOptions", "setTag", "PublicKey", "random", "toHex", "enabled", "isNode", "mergedSecrets", "buildSecrets", "process", "env", "DX_ENVIRONMENT", "DX_RELEASE", "SENTRY_DESTINATION", "TELEMETRY_API_KEY", "IPDATA_API_KEY", "DX_OTEL_ENDPOINT", "OTEL_ENDPOINT", "DX_OTEL_AUTHORIZATION", "OTEL_AUTHORIZATION", "log", "rtc", "get", "initialize", "_initLogs", "_initMetrics", "_initTelemetry", "_initErrorLogs", "_initTraces", "close", "closes", "push", "Promise", "all", "dispose", "setMode", "_setTag", "key", "value", "scope", "undefined", "set", "getTag", "setIdentityTags", "clientServices", "IdentityService", "queryIdentity", "subscribe", "idqr", "identity", "did", "identify", "userId", "DevicesService", "queryDevices", "dqr", "devices", "length", "device", "invariant", "thisDevice", "find", "kind", "DeviceKind", "CURRENT", "deviceKey", "truncate", "profile", "label", "setIPDataTelemetryTags", "ipData", "city", "region", "country", "latitude", "toString", "longitude", "OtelLogs", "endpoint", "authorizationHeader", "serviceName", "serviceVersion", "getTags", "Object", "fromEntries", "Array", "from", "filter", "map", "logLevel", "LogLevel", "VERBOSE", "includeSharedWorkerLogs", "runtimeConfig", "processors", "logProcessor", "OtelMetrics", "gauge", "name", "extraTags", "startNetworkMetrics", "NetworkService", "updateSignalMetrics", "Event", "debounce", "on", "signaling", "forEach", "server", "state", "swarmCount", "connectionStates", "ConnectionState", "totalReadBufferSize", "totalWriteBufferSize", "totalChannelBufferSize", "connectionInfo", "conn", "connections", "readBufferSize", "writeBufferSize", "stream", "streams", "queryStatus", "networkStatus", "emit", "scheduleTaskInterval", "startSpacesMetrics", "client", "spaces", "subscriptions", "onDispose", "subscription", "unsubscribe", "updateSpaceMetrics", "data", "mapSpaces", "truncateKeys", "members", "objects", "epoch", "currentDataMutations", "updateSpaceTelemetry", "track", "getTelemetryIdentity", "event", "TelemetryEvent", "METRICS", "action", "properties", "subscribeToSpaceUpdate", "space", "pipeline", "next", "id", "has", "startRuntimeMetrics", "frequency", "platform", "services", "SystemService", "getPlatform", "Platform", "PLATFORM_TYPE", "type", "toLowerCase", "arch", "runtime", "memory", "window", "performance", "totalJSHeapSize", "usedJSHeapSize", "jsHeapSizeLimit", "then", "rss", "heapTotal", "heapUsed", "catch", "error", "document", "SegmentTelemetry", "apiKey", "page", "options", "captureException", "captureUserFeedback", "init", "SentryLogProcessor", "info", "dest", "destination", "scrubFilenames", "onError", "addLogBreadcrumbsTo", "v", "k", "startErrorLogs", "startTraces", "start", "OtelTraces", "err", "message"]
7
- }
@@ -1,164 +0,0 @@
1
- // src/sentry/browser.ts
2
- import { breadcrumbsIntegration, browserTracingIntegration, feedbackIntegration, httpClientIntegration, metrics, addBreadcrumb as naturalAddBreadcrumb, captureException as naturalCaptureException, captureMessage as naturalCaptureMessage, init as naturalInit, sendFeedback as naturalSendFeedback, withScope as naturalWithScope, replayIntegration, setTag, startInactiveSpan } from "@sentry/browser";
3
- import { log } from "@dxos/log";
4
- import { TRACE_PROCESSOR } from "@dxos/tracing";
5
- import { setTag as setTag2, setTags, setUser } from "@sentry/browser";
6
- var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/sentry/browser.ts";
7
- var init = (options) => {
8
- try {
9
- log("sentry init", options, {
10
- F: __dxlog_file,
11
- L: 38,
12
- S: void 0,
13
- C: (f, a) => f(...a)
14
- });
15
- naturalInit({
16
- enabled: options.enable ?? true,
17
- dsn: options.destination,
18
- release: options.release,
19
- environment: options.environment,
20
- integrations: [
21
- breadcrumbsIntegration({
22
- console: false,
23
- fetch: false
24
- }),
25
- httpClientIntegration({
26
- failedRequestStatusCodes: [
27
- // 401 errors are omitted as they happen as a part of the EDGE authentication flow.
28
- [
29
- 400,
30
- 400
31
- ],
32
- [
33
- 402,
34
- 599
35
- ]
36
- ]
37
- }),
38
- feedbackIntegration({
39
- autoInject: false
40
- }),
41
- ...options.tracing ? [
42
- browserTracingIntegration()
43
- ] : [],
44
- ...options.replay ? [
45
- replayIntegration({
46
- blockAllMedia: true,
47
- maskAllText: true
48
- })
49
- ] : []
50
- ],
51
- replaysSessionSampleRate: options.replaySampleRate,
52
- replaysOnErrorSampleRate: options.replaySampleRateOnError,
53
- tracesSampleRate: options.sampleRate,
54
- transport: options.transport,
55
- beforeSend: (event) => {
56
- options.onError?.(event);
57
- return event;
58
- }
59
- });
60
- if (options.tracing) {
61
- TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
62
- TRACE_PROCESSOR.remoteTracing.registerProcessor({
63
- startSpan: startInactiveSpan
64
- });
65
- }
66
- Object.entries(options.properties ?? {}).forEach(([key, value]) => {
67
- setTag(key, value);
68
- });
69
- } catch (err) {
70
- log.catch("Failed to initialize sentry", err, {
71
- F: __dxlog_file,
72
- L: 78,
73
- S: void 0,
74
- C: (f, a) => f(...a)
75
- });
76
- }
77
- };
78
- var addBreadcrumb = (breadcrumb) => {
79
- try {
80
- naturalAddBreadcrumb(breadcrumb);
81
- log("add breadcrumb", breadcrumb, {
82
- F: __dxlog_file,
83
- L: 94,
84
- S: void 0,
85
- C: (f, a) => f(...a)
86
- });
87
- } catch (err) {
88
- log.catch("Failed to add breadcrumb", err, {
89
- F: __dxlog_file,
90
- L: 96,
91
- S: void 0,
92
- C: (f, a) => f(...a)
93
- });
94
- }
95
- };
96
- var captureException = (exception, captureContext) => {
97
- try {
98
- const eventId = naturalCaptureException(exception, captureContext);
99
- log("capture exception", {
100
- exception,
101
- eventId,
102
- ...captureContext
103
- }, {
104
- F: __dxlog_file,
105
- L: 110,
106
- S: void 0,
107
- C: (f, a) => f(...a)
108
- });
109
- return eventId;
110
- } catch (err) {
111
- log.catch("Failed to capture exception", err, {
112
- F: __dxlog_file,
113
- L: 113,
114
- S: void 0,
115
- C: (f, a) => f(...a)
116
- });
117
- return "unknown";
118
- }
119
- };
120
- var captureMessage = (exception, captureContext) => {
121
- try {
122
- const eventId = naturalCaptureMessage(exception, captureContext);
123
- log("capture message", {
124
- exception,
125
- eventId,
126
- captureContext
127
- }, {
128
- F: __dxlog_file,
129
- L: 121,
130
- S: void 0,
131
- C: (f, a) => f(...a)
132
- });
133
- return eventId;
134
- } catch (err) {
135
- log.catch("Failed to capture message", err, {
136
- F: __dxlog_file,
137
- L: 124,
138
- S: void 0,
139
- C: (f, a) => f(...a)
140
- });
141
- return "unknown";
142
- }
143
- };
144
- var captureUserFeedback = (message) => {
145
- return naturalSendFeedback({
146
- message
147
- }, {
148
- includeReplay: true
149
- });
150
- };
151
- var withScope = naturalWithScope;
152
-
153
- export {
154
- init,
155
- addBreadcrumb,
156
- captureException,
157
- captureMessage,
158
- captureUserFeedback,
159
- withScope,
160
- setTag2 as setTag,
161
- setTags,
162
- setUser
163
- };
164
- //# sourceMappingURL=chunk-O4BG5MRL.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/sentry/browser.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport {\n breadcrumbsIntegration,\n browserTracingIntegration,\n feedbackIntegration,\n httpClientIntegration,\n metrics,\n addBreadcrumb as naturalAddBreadcrumb,\n captureException as naturalCaptureException,\n captureMessage as naturalCaptureMessage,\n init as naturalInit,\n sendFeedback as naturalSendFeedback,\n withScope as naturalWithScope,\n replayIntegration,\n setTag,\n startInactiveSpan,\n} from '@sentry/browser';\n\nimport { log } from '@dxos/log';\nimport { TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type InitOptions } from './types';\n\n// Polyfill export.\nexport { setTag, setTags, setUser } from '@sentry/browser';\n\n/**\n * To use this SDK, call the init function as early as possible when loading the web page.\n * To set context information or send manual events, use the provided methods.\n *\n * @param options {InitOptions}\n */\nexport const init = (options: InitOptions) => {\n try {\n log('sentry init', options);\n naturalInit({\n enabled: options.enable ?? true,\n dsn: options.destination,\n release: options.release,\n environment: options.environment,\n integrations: [\n breadcrumbsIntegration({ console: false, fetch: false }),\n httpClientIntegration({\n failedRequestStatusCodes: [\n // 401 errors are omitted as they happen as a part of the EDGE authentication flow.\n [400, 400],\n [402, 599],\n ],\n }),\n feedbackIntegration({ autoInject: false }),\n ...(options.tracing ? [browserTracingIntegration()] : []),\n ...(options.replay ? [replayIntegration({ blockAllMedia: true, maskAllText: true })] : []),\n ],\n replaysSessionSampleRate: options.replaySampleRate,\n replaysOnErrorSampleRate: options.replaySampleRateOnError,\n tracesSampleRate: options.sampleRate,\n transport: options.transport as any, // TODO(dmaretskyi): Fix\n beforeSend: (event) => {\n options.onError?.(event);\n return event;\n },\n });\n\n if (options.tracing) {\n TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);\n TRACE_PROCESSOR.remoteTracing.registerProcessor({\n startSpan: startInactiveSpan,\n });\n }\n\n Object.entries(options.properties ?? {}).forEach(([key, value]) => {\n setTag(key, value);\n });\n } catch (err) {\n log.catch('Failed to initialize sentry', err);\n }\n};\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on user's actions prior to an error or crash.\n *\n * https://docs.sentry.io/platforms/javascript/enriching-events/breadcrumbs/\n *\n * @param breadcrumb — The breadcrumb to record.\n */\nexport const addBreadcrumb: typeof naturalAddBreadcrumb = (breadcrumb) => {\n try {\n naturalAddBreadcrumb(breadcrumb);\n log('add breadcrumb', breadcrumb);\n } catch (err) {\n log.catch('Failed to add breadcrumb', err);\n }\n};\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception — An exception-like object.\n * @param captureContext — Additional scope data to apply to exception event.\n * @returns — The generated eventId.\n */\nexport const captureException: typeof naturalCaptureException = (exception, captureContext) => {\n try {\n const eventId = naturalCaptureException(exception, captureContext);\n log('capture exception', { exception, eventId, ...captureContext });\n return eventId;\n } catch (err) {\n log.catch('Failed to capture exception', err);\n return 'unknown';\n }\n};\n\nexport const captureMessage: typeof naturalCaptureMessage = (exception, captureContext) => {\n try {\n const eventId = naturalCaptureMessage(exception, captureContext);\n log('capture message', { exception, eventId, captureContext });\n return eventId;\n } catch (err) {\n log.catch('Failed to capture message', err);\n return 'unknown';\n }\n};\n\nexport const captureUserFeedback = (message: string) => {\n return naturalSendFeedback({ message }, { includeReplay: true });\n};\n\nexport const withScope = naturalWithScope;\n"],
5
- "mappings": ";AAIA,SACEA,wBACAC,2BACAC,qBACAC,uBACAC,SACAC,iBAAiBC,sBACjBC,oBAAoBC,yBACpBC,kBAAkBC,uBAClBC,QAAQC,aACRC,gBAAgBC,qBAChBC,aAAaC,kBACbC,mBACAC,QACAC,yBACK;AAEP,SAASC,WAAW;AACpB,SAASC,uBAAuB;AAKhC,SAASH,UAAAA,SAAQI,SAASC,eAAe;;AAQlC,IAAMZ,OAAO,CAACa,YAAAA;AACnB,MAAI;AACFJ,QAAI,eAAeI,SAAAA;;;;;;AACnBZ,gBAAY;MACVa,SAASD,QAAQE,UAAU;MAC3BC,KAAKH,QAAQI;MACbC,SAASL,QAAQK;MACjBC,aAAaN,QAAQM;MACrBC,cAAc;QACZ/B,uBAAuB;UAAEgC,SAAS;UAAOC,OAAO;QAAM,CAAA;QACtD9B,sBAAsB;UACpB+B,0BAA0B;;YAExB;cAAC;cAAK;;YACN;cAAC;cAAK;;;QAEV,CAAA;QACAhC,oBAAoB;UAAEiC,YAAY;QAAM,CAAA;WACpCX,QAAQY,UAAU;UAACnC,0BAAAA;YAA+B,CAAA;WAClDuB,QAAQa,SAAS;UAACpB,kBAAkB;YAAEqB,eAAe;YAAMC,aAAa;UAAK,CAAA;YAAM,CAAA;;MAEzFC,0BAA0BhB,QAAQiB;MAClCC,0BAA0BlB,QAAQmB;MAClCC,kBAAkBpB,QAAQqB;MAC1BC,WAAWtB,QAAQsB;MACnBC,YAAY,CAACC,UAAAA;AACXxB,gBAAQyB,UAAUD,KAAAA;AAClB,eAAOA;MACT;IACF,CAAA;AAEA,QAAIxB,QAAQY,SAAS;AACnBf,sBAAgB6B,cAAcC,kBAAkB/C,OAAAA;AAChDiB,sBAAgB+B,cAAcD,kBAAkB;QAC9CE,WAAWlC;MACb,CAAA;IACF;AAEAmC,WAAOC,QAAQ/B,QAAQgC,cAAc,CAAC,CAAA,EAAGC,QAAQ,CAAC,CAACC,KAAKC,KAAAA,MAAM;AAC5DzC,aAAOwC,KAAKC,KAAAA;IACd,CAAA;EACF,SAASC,KAAK;AACZxC,QAAIyC,MAAM,+BAA+BD,KAAAA;;;;;;EAC3C;AACF;AAWO,IAAMvD,gBAA6C,CAACyD,eAAAA;AACzD,MAAI;AACFxD,yBAAqBwD,UAAAA;AACrB1C,QAAI,kBAAkB0C,YAAAA;;;;;;EACxB,SAASF,KAAK;AACZxC,QAAIyC,MAAM,4BAA4BD,KAAAA;;;;;;EACxC;AACF;AASO,IAAMrD,mBAAmD,CAACwD,WAAWC,mBAAAA;AAC1E,MAAI;AACF,UAAMC,UAAUzD,wBAAwBuD,WAAWC,cAAAA;AACnD5C,QAAI,qBAAqB;MAAE2C;MAAWE;MAAS,GAAGD;IAAe,GAAA;;;;;;AACjE,WAAOC;EACT,SAASL,KAAK;AACZxC,QAAIyC,MAAM,+BAA+BD,KAAAA;;;;;;AACzC,WAAO;EACT;AACF;AAEO,IAAMnD,iBAA+C,CAACsD,WAAWC,mBAAAA;AACtE,MAAI;AACF,UAAMC,UAAUvD,sBAAsBqD,WAAWC,cAAAA;AACjD5C,QAAI,mBAAmB;MAAE2C;MAAWE;MAASD;IAAe,GAAA;;;;;;AAC5D,WAAOC;EACT,SAASL,KAAK;AACZxC,QAAIyC,MAAM,6BAA6BD,KAAAA;;;;;;AACvC,WAAO;EACT;AACF;AAEO,IAAMM,sBAAsB,CAACC,YAAAA;AAClC,SAAOrD,oBAAoB;IAAEqD;EAAQ,GAAG;IAAEC,eAAe;EAAK,CAAA;AAChE;AAEO,IAAMrD,YAAYC;",
6
- "names": ["breadcrumbsIntegration", "browserTracingIntegration", "feedbackIntegration", "httpClientIntegration", "metrics", "addBreadcrumb", "naturalAddBreadcrumb", "captureException", "naturalCaptureException", "captureMessage", "naturalCaptureMessage", "init", "naturalInit", "sendFeedback", "naturalSendFeedback", "withScope", "naturalWithScope", "replayIntegration", "setTag", "startInactiveSpan", "log", "TRACE_PROCESSOR", "setTags", "setUser", "options", "enabled", "enable", "dsn", "destination", "release", "environment", "integrations", "console", "fetch", "failedRequestStatusCodes", "autoInject", "tracing", "replay", "blockAllMedia", "maskAllText", "replaysSessionSampleRate", "replaySampleRate", "replaysOnErrorSampleRate", "replaySampleRateOnError", "tracesSampleRate", "sampleRate", "transport", "beforeSend", "event", "onError", "remoteMetrics", "registerProcessor", "remoteTracing", "startSpan", "Object", "entries", "properties", "forEach", "key", "value", "err", "catch", "breadcrumb", "exception", "captureContext", "eventId", "captureUserFeedback", "message", "includeReplay"]
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-U6JWT3E2.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/otel/traces-browser.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Tracer, trace } from '@opentelemetry/api';\nimport { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { BatchSpanProcessor, ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type StartSpanOptions, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type OtelOptions } from './otel';\n\nexport class OtelTraces {\n private _tracer: Tracer;\n constructor(private readonly options: OtelOptions) {\n const resource = defaultResource().merge(\n resourceFromAttributes({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const tracerProvider = new WebTracerProvider({\n resource,\n spanProcessors: [\n new SimpleSpanProcessor(new ConsoleSpanExporter()),\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: this.options.endpoint + '/v1/traces',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n }),\n ),\n ],\n });\n\n // TODO(nf): ContextManager? Propogator?\n trace.setGlobalTracerProvider(tracerProvider);\n this._tracer = trace.getTracer('dxos-observability', this.options.serviceVersion);\n }\n\n public start(): void {\n registerInstrumentations({\n instrumentations: [getWebAutoInstrumentations()],\n });\n log('trace processor registered');\n TRACE_PROCESSOR.remoteTracing.registerProcessor({\n startSpan: (options: StartSpanOptions) => {\n log('begin otel trace', { options });\n return this._tracer.startSpan(options.name, options);\n },\n });\n }\n}\n"],
5
- "mappings": ";AAIA,SAAsBA,aAAa;AACnC,SAASC,kCAAkC;AAC3C,SAASC,yBAAyB;AAClC,SAASC,gCAAgC;AACzC,SAASC,iBAAiBC,8BAA8B;AACxD,SAASC,oBAAoBC,qBAAqBC,2BAA2B;AAC7E,SAASC,yBAAyB;AAClC,SAASC,0BAA0BC,mCAAmC;AAEtE,SAASC,WAAW;AACpB,SAAgCC,uBAAuB;;AAIhD,IAAMC,aAAN,MAAMA;;EACHC;EACR,YAA6BC,SAAsB;SAAtBA,UAAAA;AAC3B,UAAMC,WAAWb,gBAAAA,EAAkBc,MACjCb,uBAAuB;MACrB,CAACK,wBAAAA,GAA2B,KAAKM,QAAQG;MACzC,CAACR,2BAAAA,GAA8B,KAAKK,QAAQI;IAC9C,CAAA,CAAA;AAGF,UAAMC,iBAAiB,IAAIZ,kBAAkB;MAC3CQ;MACAK,gBAAgB;QACd,IAAId,oBAAoB,IAAID,oBAAAA,CAAAA;QAC5B,IAAID,mBACF,IAAIJ,kBAAkB;UACpBqB,KAAK,KAAKP,QAAQQ,WAAW;UAC7BC,SAAS;YACPC,eAAe,KAAKV,QAAQW;UAC9B;UACAC,kBAAkB;QACpB,CAAA,CAAA;;IAGN,CAAA;AAGA5B,UAAM6B,wBAAwBR,cAAAA;AAC9B,SAAKN,UAAUf,MAAM8B,UAAU,sBAAsB,KAAKd,QAAQI,cAAc;EAClF;EAEOW,QAAc;AACnB5B,6BAAyB;MACvB6B,kBAAkB;QAAC/B,2BAAAA;;IACrB,CAAA;AACAW,QAAI,8BAAA,QAAA;;;;;;AACJC,oBAAgBoB,cAAcC,kBAAkB;MAC9CC,WAAW,CAACnB,YAAAA;AACVJ,YAAI,oBAAoB;UAAEI;QAAQ,GAAA;;;;;;AAClC,eAAO,KAAKD,QAAQoB,UAAUnB,QAAQoB,MAAMpB,OAAAA;MAC9C;IACF,CAAA;EACF;AACF;",
6
- "names": ["trace", "getWebAutoInstrumentations", "OTLPTraceExporter", "registerInstrumentations", "defaultResource", "resourceFromAttributes", "BatchSpanProcessor", "ConsoleSpanExporter", "SimpleSpanProcessor", "WebTracerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "OtelTraces", "_tracer", "options", "resource", "merge", "serviceName", "serviceVersion", "tracerProvider", "spanProcessors", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "setGlobalTracerProvider", "getTracer", "start", "instrumentations", "remoteTracing", "registerProcessor", "startSpan", "name"]
7
- }
@@ -1,11 +0,0 @@
1
- import {
2
- Observability
3
- } from "./chunk-JJQT5TQH.mjs";
4
- import "./chunk-U6JWT3E2.mjs";
5
- import "./chunk-5LN7D6GM.mjs";
6
- import "./chunk-5ICT2XF2.mjs";
7
- import "./chunk-O4BG5MRL.mjs";
8
- export {
9
- Observability
10
- };
11
- //# sourceMappingURL=observability-XK652NZG.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- import {
2
- OtelTraces
3
- } from "../chunk-VL6LVQPU.mjs";
4
- export {
5
- OtelTraces
6
- };
7
- //# sourceMappingURL=traces-browser.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- import {
2
- OtelTraces
3
- } from "../chunk-VL6LVQPU.mjs";
4
- export {
5
- OtelTraces
6
- };
7
- //# sourceMappingURL=traces.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,226 +0,0 @@
1
- import {
2
- OtelTraces
3
- } from "./chunk-VL6LVQPU.mjs";
4
-
5
- // src/otel/otel.ts
6
- import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
7
- var setDiagLogger = (level) => {
8
- const logLevel = DiagLogLevel[level];
9
- if (logLevel) {
10
- diag.setLogger(new DiagConsoleLogger(), logLevel);
11
- }
12
- };
13
-
14
- // src/otel/logs.ts
15
- import { SeverityNumber } from "@opentelemetry/api-logs";
16
- import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
17
- import { defaultResource, resourceFromAttributes } from "@opentelemetry/resources";
18
- import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
19
- import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
20
- import { LogLevel, getContextFromEntry, getRelativeFilename } from "@dxos/log";
21
- import { jsonlogify } from "@dxos/util";
22
- var OtelLogs = class {
23
- options;
24
- _loggerProvider;
25
- constructor(options) {
26
- this.options = options;
27
- setDiagLogger(options.consoleDiagLogLevel);
28
- const resource = defaultResource().merge(resourceFromAttributes({
29
- [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
30
- [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion
31
- }));
32
- const logExporter = new OTLPLogExporter({
33
- url: this.options.endpoint + "/v1/logs",
34
- headers: {
35
- Authorization: this.options.authorizationHeader
36
- },
37
- concurrencyLimit: 10
38
- });
39
- this._loggerProvider = new LoggerProvider({
40
- resource,
41
- processors: [
42
- new BatchLogRecordProcessor(logExporter)
43
- ]
44
- });
45
- }
46
- logProcessor = (config, entry) => {
47
- const logger = this._loggerProvider.getLogger("dxos-observability", this.options.serviceVersion);
48
- if (entry.level < this.options.logLevel || !this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId) {
49
- return;
50
- }
51
- const record = {
52
- ...entry,
53
- ...entry.meta ? {
54
- meta: {
55
- file: getRelativeFilename(entry.meta.F),
56
- line: entry.meta.L
57
- }
58
- } : {},
59
- context: jsonlogify(getContextFromEntry(entry))
60
- };
61
- logger.emit({
62
- severityNumber: convertLevel(entry.level),
63
- body: JSON.stringify(record),
64
- attributes: this.options.getTags()
65
- });
66
- };
67
- flush() {
68
- return this._loggerProvider.forceFlush();
69
- }
70
- close() {
71
- return this._loggerProvider.shutdown();
72
- }
73
- };
74
- var convertLevel = (level) => {
75
- switch (level) {
76
- case LogLevel.DEBUG:
77
- return SeverityNumber.DEBUG;
78
- case LogLevel.VERBOSE:
79
- return SeverityNumber.INFO;
80
- case LogLevel.INFO:
81
- return SeverityNumber.INFO;
82
- case LogLevel.WARN:
83
- return SeverityNumber.WARN;
84
- case LogLevel.ERROR:
85
- return SeverityNumber.ERROR;
86
- default:
87
- return SeverityNumber.ERROR;
88
- }
89
- };
90
-
91
- // src/otel/metrics.ts
92
- import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
93
- import { defaultResource as defaultResource2, resourceFromAttributes as resourceFromAttributes2 } from "@opentelemetry/resources";
94
- import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
95
- import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME2, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION2 } from "@opentelemetry/semantic-conventions";
96
- import { log } from "@dxos/log";
97
- import { TRACE_PROCESSOR } from "@dxos/tracing";
98
- var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/otel/metrics.ts";
99
- var EXPORT_INTERVAL = 60 * 1e3;
100
- var OtelMetrics = class {
101
- options;
102
- _meterProvider;
103
- _meter;
104
- constructor(options) {
105
- this.options = options;
106
- setDiagLogger(options.consoleDiagLogLevel);
107
- const resource = defaultResource2().merge(resourceFromAttributes2({
108
- [SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
109
- [SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
110
- }));
111
- const grafanaMetricReader = new PeriodicExportingMetricReader({
112
- exporter: new OTLPMetricExporter({
113
- url: this.options.endpoint + "/v1/metrics",
114
- headers: {
115
- Authorization: this.options.authorizationHeader
116
- }
117
- }),
118
- exportIntervalMillis: EXPORT_INTERVAL
119
- });
120
- this._meterProvider = new MeterProvider({
121
- resource,
122
- readers: [
123
- grafanaMetricReader
124
- ]
125
- });
126
- this._meter = this._meterProvider.getMeter("dxos-observability");
127
- const metrics = {
128
- // TODO: update metrics names and remove prefix?
129
- increment: (name, value, data) => {
130
- this.increment(name, value, convertTags(data));
131
- },
132
- distribution: (name, value, data) => {
133
- this.distribution(name, value, convertTags(data));
134
- },
135
- set: (name, value, data) => {
136
- },
137
- gauge: (name, value, data) => {
138
- this.gauge(name, value, convertTags(data));
139
- }
140
- };
141
- TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
142
- }
143
- gauge(name, value, tags) {
144
- const gauge = this._meter.createGauge(name);
145
- log("otel gauge", {
146
- name,
147
- value,
148
- tags: {
149
- ...this.options.getTags(),
150
- ...tags
151
- }
152
- }, {
153
- F: __dxlog_file,
154
- L: 70,
155
- S: this,
156
- C: (f, a) => f(...a)
157
- });
158
- gauge.record(value, {
159
- ...this.options.getTags(),
160
- ...tags
161
- });
162
- }
163
- increment(name, value, tags) {
164
- const counter = this._meter.createCounter(name);
165
- log("otel counter", {
166
- name,
167
- value,
168
- tags: {
169
- ...this.options.getTags(),
170
- ...tags
171
- }
172
- }, {
173
- F: __dxlog_file,
174
- L: 76,
175
- S: this,
176
- C: (f, a) => f(...a)
177
- });
178
- counter.add(value ?? 1, {
179
- ...this.options.getTags(),
180
- ...tags
181
- });
182
- }
183
- distribution(name, value, tags) {
184
- const distribution = this._meter.createHistogram(name);
185
- log("otel distribution", {
186
- name,
187
- value,
188
- tags: {
189
- ...this.options.getTags(),
190
- ...tags
191
- }
192
- }, {
193
- F: __dxlog_file,
194
- L: 82,
195
- S: this,
196
- C: (f, a) => f(...a)
197
- });
198
- distribution.record(value, {
199
- ...this.options.getTags(),
200
- ...tags
201
- });
202
- }
203
- flush() {
204
- return this._meterProvider.forceFlush();
205
- }
206
- close() {
207
- return this._meterProvider.shutdown();
208
- }
209
- };
210
- var convertTags = (data) => {
211
- if (data && data.tags) {
212
- return Object.entries(data.tags).reduce((obj, [key, value]) => {
213
- obj[key] = value;
214
- return obj;
215
- }, {});
216
- } else {
217
- return {};
218
- }
219
- };
220
- export {
221
- OtelLogs,
222
- OtelMetrics,
223
- OtelTraces,
224
- setDiagLogger
225
- };
226
- //# sourceMappingURL=otel-DI4ASU7Y.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/otel/otel.ts", "../../../src/otel/logs.ts", "../../../src/otel/metrics.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\n\nexport type OtelOptions = {\n endpoint: string;\n authorizationHeader: string;\n serviceName: string; // For the Otel API, the name of the entity for which signals (metrics or trace) are collected.\n serviceVersion: string; // For the Otel API, The name of the entity for which signals (metrics or trace) are collected.\n getTags: () => { [key: string]: string };\n consoleDiagLogLevel?: string;\n};\n\nexport const setDiagLogger = (level?: string) => {\n const logLevel = DiagLogLevel[level as keyof typeof DiagLogLevel];\n if (logLevel) {\n diag.setLogger(new DiagConsoleLogger(), logLevel);\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { BatchLogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport {\n type LogConfig,\n type LogEntry,\n LogLevel,\n type LogProcessor,\n getContextFromEntry,\n getRelativeFilename,\n} from '@dxos/log';\nimport { jsonlogify } from '@dxos/util';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nexport type OtelLogOptions = OtelOptions & {\n logLevel: LogLevel;\n /**\n * Set `true` to capture logs sent through LoggingService from shared worker.\n * Better to set to `false` because shared worker is initializing its own logger.\n */\n includeSharedWorkerLogs: boolean;\n};\n\nexport class OtelLogs {\n private _loggerProvider: LoggerProvider;\n constructor(private readonly options: OtelLogOptions) {\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = defaultResource().merge(\n resourceFromAttributes({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n const logExporter = new OTLPLogExporter({\n url: this.options.endpoint + '/v1/logs',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n });\n this._loggerProvider = new LoggerProvider({\n resource,\n processors: [new BatchLogRecordProcessor(logExporter)],\n });\n }\n\n public readonly logProcessor: LogProcessor = (config: LogConfig, entry: LogEntry) => {\n const logger = this._loggerProvider.getLogger('dxos-observability', this.options.serviceVersion);\n\n if (\n entry.level < this.options.logLevel ||\n (!this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId)\n ) {\n return;\n }\n\n const record = {\n ...entry,\n ...(entry.meta ? { meta: { file: getRelativeFilename(entry.meta.F), line: entry.meta.L } } : {}),\n context: jsonlogify(getContextFromEntry(entry)),\n };\n\n logger.emit({\n severityNumber: convertLevel(entry.level),\n body: JSON.stringify(record),\n attributes: this.options.getTags(),\n });\n };\n\n flush(): Promise<void> {\n return this._loggerProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._loggerProvider.shutdown();\n }\n}\n\nconst convertLevel = (level: LogLevel): SeverityNumber => {\n switch (level) {\n case LogLevel.DEBUG:\n return SeverityNumber.DEBUG;\n case LogLevel.VERBOSE:\n return SeverityNumber.INFO;\n case LogLevel.INFO:\n return SeverityNumber.INFO;\n case LogLevel.WARN:\n return SeverityNumber.WARN;\n case LogLevel.ERROR:\n return SeverityNumber.ERROR;\n default:\n return SeverityNumber.ERROR;\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Meter } from '@opentelemetry/api';\nimport { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type MetricData, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nconst EXPORT_INTERVAL = 60 * 1000;\n\nexport class OtelMetrics {\n private _meterProvider: MeterProvider;\n private _meter: Meter;\n\n constructor(private readonly options: OtelOptions) {\n // TODO: improve error handling/logging\n // https://github.com/open-telemetry/opentelemetry-js/issues/4823\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = defaultResource().merge(\n resourceFromAttributes({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const grafanaMetricReader = new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({\n url: this.options.endpoint + '/v1/metrics',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n }),\n exportIntervalMillis: EXPORT_INTERVAL,\n });\n\n this._meterProvider = new MeterProvider({\n resource,\n readers: [grafanaMetricReader],\n });\n this._meter = this._meterProvider.getMeter('dxos-observability');\n\n const metrics = {\n // TODO: update metrics names and remove prefix?\n increment: (name: string, value?: number, data?: MetricData) => {\n this.increment(name, value, convertTags(data));\n },\n distribution: (name: string, value: number, data?: MetricData) => {\n this.distribution(name, value, convertTags(data));\n },\n set: (name: string, value: number | string, data?: MetricData) => {\n // Not implemented, not part of Otel spec.\n },\n gauge: (name: string, value: number, data?: MetricData) => {\n this.gauge(name, value, convertTags(data));\n },\n };\n\n TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);\n }\n\n gauge(name: string, value: number, tags?: any): void {\n const gauge = this._meter.createGauge(name);\n log('otel gauge', { name, value, tags: { ...this.options.getTags(), ...tags } });\n gauge.record(value, { ...this.options.getTags(), ...tags });\n }\n\n increment(name: string, value?: number, tags?: any): void {\n const counter = this._meter.createCounter(name);\n log('otel counter', { name, value, tags: { ...this.options.getTags(), ...tags } });\n counter.add(value ?? 1, { ...this.options.getTags(), ...tags });\n }\n\n distribution(name: string, value: number, tags?: any): void {\n const distribution = this._meter.createHistogram(name);\n log('otel distribution', { name, value, tags: { ...this.options.getTags(), ...tags } });\n distribution.record(value, { ...this.options.getTags(), ...tags });\n }\n\n flush(): Promise<void> {\n return this._meterProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._meterProvider.shutdown();\n }\n}\n\nconst convertTags = (data?: MetricData) => {\n if (data && data.tags) {\n return Object.entries(data.tags).reduce<{ [key: string]: any }>((obj, [key, value]) => {\n obj[key] = value;\n return obj;\n }, {});\n } else {\n return {};\n }\n};\n"],
5
- "mappings": "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",
6
- "names": ["DiagConsoleLogger", "DiagLogLevel", "diag", "setDiagLogger", "level", "logLevel", "DiagLogLevel", "diag", "setLogger", "DiagConsoleLogger", "SeverityNumber", "OTLPLogExporter", "defaultResource", "resourceFromAttributes", "BatchLogRecordProcessor", "LoggerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "LogLevel", "getContextFromEntry", "getRelativeFilename", "jsonlogify", "OtelLogs", "_loggerProvider", "options", "setDiagLogger", "consoleDiagLogLevel", "resource", "defaultResource", "merge", "resourceFromAttributes", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "serviceVersion", "logExporter", "OTLPLogExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "LoggerProvider", "processors", "BatchLogRecordProcessor", "logProcessor", "config", "entry", "logger", "getLogger", "level", "logLevel", "includeSharedWorkerLogs", "meta", "S", "remoteSessionId", "record", "file", "getRelativeFilename", "F", "line", "L", "context", "jsonlogify", "getContextFromEntry", "emit", "severityNumber", "convertLevel", "body", "JSON", "stringify", "attributes", "getTags", "flush", "forceFlush", "close", "shutdown", "LogLevel", "DEBUG", "SeverityNumber", "VERBOSE", "INFO", "WARN", "ERROR", "OTLPMetricExporter", "defaultResource", "resourceFromAttributes", "MeterProvider", "PeriodicExportingMetricReader", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "EXPORT_INTERVAL", "OtelMetrics", "_meterProvider", "_meter", "options", "setDiagLogger", "consoleDiagLogLevel", "resource", "defaultResource", "merge", "resourceFromAttributes", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "serviceVersion", "grafanaMetricReader", "PeriodicExportingMetricReader", "exporter", "OTLPMetricExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "exportIntervalMillis", "MeterProvider", "readers", "getMeter", "metrics", "increment", "name", "value", "data", "convertTags", "distribution", "set", "gauge", "TRACE_PROCESSOR", "remoteMetrics", "registerProcessor", "tags", "createGauge", "log", "getTags", "record", "counter", "createCounter", "add", "createHistogram", "flush", "forceFlush", "close", "shutdown", "Object", "entries", "reduce", "obj", "key"]
7
- }
@@ -1,9 +0,0 @@
1
- import {
2
- SegmentTelemetry
3
- } from "../chunk-5LN7D6GM.mjs";
4
- import "../chunk-5ICT2XF2.mjs";
5
- import "../chunk-O4BG5MRL.mjs";
6
- export {
7
- SegmentTelemetry
8
- };
9
- //# sourceMappingURL=browser.mjs.map