@dxos/observability 0.8.4-main.fffef41 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +14 -11
  3. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  4. package/dist/lib/browser/chunk-PSFTIG54.mjs +20 -0
  5. package/dist/lib/browser/chunk-PSFTIG54.mjs.map +7 -0
  6. package/dist/lib/browser/index.mjs +1011 -34
  7. package/dist/lib/browser/index.mjs.map +4 -4
  8. package/dist/lib/browser/log-processor-MZCTEVJC.mjs +46 -0
  9. package/dist/lib/browser/log-processor-MZCTEVJC.mjs.map +7 -0
  10. package/dist/lib/browser/logs-UTNIFYHF.mjs +116 -0
  11. package/dist/lib/browser/logs-UTNIFYHF.mjs.map +7 -0
  12. package/dist/lib/browser/meta.json +1 -1
  13. package/dist/lib/browser/metrics-PRGSYAZJ.mjs +116 -0
  14. package/dist/lib/browser/metrics-PRGSYAZJ.mjs.map +7 -0
  15. package/dist/lib/browser/traces-browser-XRINKQUA.mjs +154 -0
  16. package/dist/lib/browser/traces-browser-XRINKQUA.mjs.map +7 -0
  17. package/dist/lib/node-esm/chunk-EDDZWPYV.mjs +22 -0
  18. package/dist/lib/node-esm/chunk-EDDZWPYV.mjs.map +7 -0
  19. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  20. package/dist/lib/node-esm/index.mjs +1016 -34
  21. package/dist/lib/node-esm/index.mjs.map +4 -4
  22. package/dist/lib/node-esm/log-processor-GA24XTJF.mjs +47 -0
  23. package/dist/lib/node-esm/log-processor-GA24XTJF.mjs.map +7 -0
  24. package/dist/lib/node-esm/logs-ARJUVN3T.mjs +117 -0
  25. package/dist/lib/node-esm/logs-ARJUVN3T.mjs.map +7 -0
  26. package/dist/lib/node-esm/meta.json +1 -1
  27. package/dist/lib/node-esm/metrics-DREJOOAC.mjs +117 -0
  28. package/dist/lib/node-esm/metrics-DREJOOAC.mjs.map +7 -0
  29. package/dist/lib/node-esm/traces-74F7JUKF.mjs +125 -0
  30. package/dist/lib/node-esm/traces-74F7JUKF.mjs.map +7 -0
  31. package/dist/types/src/cli-observability-secrets.json +3 -4
  32. package/dist/types/src/extensions/index.d.ts +3 -0
  33. package/dist/types/src/extensions/index.d.ts.map +1 -0
  34. package/dist/types/src/extensions/index.js +6 -0
  35. package/dist/types/src/extensions/index.js.map +1 -0
  36. package/dist/types/src/extensions/otel/extension.d.ts +23 -0
  37. package/dist/types/src/extensions/otel/extension.d.ts.map +1 -0
  38. package/dist/types/src/extensions/otel/extension.js +222 -0
  39. package/dist/types/src/extensions/otel/extension.js.map +1 -0
  40. package/dist/types/src/extensions/otel/index.d.ts +2 -0
  41. package/dist/types/src/extensions/otel/index.d.ts.map +1 -0
  42. package/dist/types/src/extensions/otel/index.js +5 -0
  43. package/dist/types/src/extensions/otel/index.js.map +1 -0
  44. package/dist/types/src/{otel → extensions/otel}/logs.d.ts +4 -3
  45. package/dist/types/src/extensions/otel/logs.d.ts.map +1 -0
  46. package/dist/types/src/extensions/otel/logs.js +107 -0
  47. package/dist/types/src/extensions/otel/logs.js.map +1 -0
  48. package/dist/types/src/extensions/otel/metrics.d.ts.map +1 -0
  49. package/dist/types/src/{otel → extensions/otel}/metrics.js +4 -12
  50. package/dist/types/src/extensions/otel/metrics.js.map +1 -0
  51. package/dist/types/src/extensions/otel/otel.d.ts +19 -0
  52. package/dist/types/src/extensions/otel/otel.d.ts.map +1 -0
  53. package/dist/types/src/extensions/otel/otel.js +23 -0
  54. package/dist/types/src/extensions/otel/otel.js.map +1 -0
  55. package/dist/types/src/extensions/otel/span-processors.d.ts +25 -0
  56. package/dist/types/src/extensions/otel/span-processors.d.ts.map +1 -0
  57. package/dist/types/src/extensions/otel/span-processors.js +41 -0
  58. package/dist/types/src/extensions/otel/span-processors.js.map +1 -0
  59. package/dist/types/src/extensions/otel/traces-browser.d.ts +25 -0
  60. package/dist/types/src/extensions/otel/traces-browser.d.ts.map +1 -0
  61. package/dist/types/src/extensions/otel/traces-browser.js +105 -0
  62. package/dist/types/src/extensions/otel/traces-browser.js.map +1 -0
  63. package/dist/types/src/extensions/otel/traces.d.ts +25 -0
  64. package/dist/types/src/extensions/otel/traces.d.ts.map +1 -0
  65. package/dist/types/src/extensions/otel/traces.js +88 -0
  66. package/dist/types/src/extensions/otel/traces.js.map +1 -0
  67. package/dist/types/src/extensions/posthog/extension.d.ts +28 -0
  68. package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -0
  69. package/dist/types/src/extensions/posthog/extension.js +156 -0
  70. package/dist/types/src/extensions/posthog/extension.js.map +1 -0
  71. package/dist/types/src/extensions/posthog/index.d.ts +2 -0
  72. package/dist/types/src/extensions/posthog/index.d.ts.map +1 -0
  73. package/dist/types/src/extensions/posthog/index.js +5 -0
  74. package/dist/types/src/extensions/posthog/index.js.map +1 -0
  75. package/dist/types/src/extensions/posthog/log-processor.d.ts +3 -0
  76. package/dist/types/src/extensions/posthog/log-processor.d.ts.map +1 -0
  77. package/dist/types/src/extensions/posthog/log-processor.js +45 -0
  78. package/dist/types/src/extensions/posthog/log-processor.js.map +1 -0
  79. package/dist/types/src/extensions/posthog/log-processor.test.d.ts +2 -0
  80. package/dist/types/src/extensions/posthog/log-processor.test.d.ts.map +1 -0
  81. package/dist/types/src/extensions/posthog/log-processor.test.js +146 -0
  82. package/dist/types/src/extensions/posthog/log-processor.test.js.map +1 -0
  83. package/dist/types/src/extensions/stub.d.ts +3 -0
  84. package/dist/types/src/extensions/stub.d.ts.map +1 -0
  85. package/dist/types/src/extensions/stub.js +16 -0
  86. package/dist/types/src/extensions/stub.js.map +1 -0
  87. package/dist/types/src/index.d.ts +3 -2
  88. package/dist/types/src/index.d.ts.map +1 -1
  89. package/dist/types/src/index.js +4 -3
  90. package/dist/types/src/index.js.map +1 -1
  91. package/dist/types/src/observability-extension.d.ts +74 -0
  92. package/dist/types/src/observability-extension.d.ts.map +1 -0
  93. package/dist/types/src/observability-extension.js +5 -0
  94. package/dist/types/src/observability-extension.js.map +1 -0
  95. package/dist/types/src/observability.d.ts +32 -110
  96. package/dist/types/src/observability.d.ts.map +1 -1
  97. package/dist/types/src/observability.js +179 -465
  98. package/dist/types/src/observability.js.map +1 -1
  99. package/dist/types/src/observability.test.d.ts +2 -0
  100. package/dist/types/src/observability.test.d.ts.map +1 -0
  101. package/dist/types/src/observability.test.js +312 -0
  102. package/dist/types/src/observability.test.js.map +1 -0
  103. package/dist/types/src/providers/client-observability.d.ts +11 -0
  104. package/dist/types/src/providers/client-observability.d.ts.map +1 -0
  105. package/dist/types/src/providers/client-observability.js +202 -0
  106. package/dist/types/src/providers/client-observability.js.map +1 -0
  107. package/dist/types/src/providers/index.d.ts +4 -0
  108. package/dist/types/src/providers/index.d.ts.map +1 -0
  109. package/dist/types/src/providers/index.js +7 -0
  110. package/dist/types/src/providers/index.js.map +1 -0
  111. package/dist/types/src/providers/ip-data.d.ts +5 -0
  112. package/dist/types/src/providers/ip-data.d.ts.map +1 -0
  113. package/dist/types/src/providers/ip-data.js +65 -0
  114. package/dist/types/src/providers/ip-data.js.map +1 -0
  115. package/dist/types/src/providers/storage.d.ts +3 -0
  116. package/dist/types/src/providers/storage.d.ts.map +1 -0
  117. package/dist/types/src/providers/storage.js +19 -0
  118. package/dist/types/src/providers/storage.js.map +1 -0
  119. package/dist/types/src/storage/browser.d.ts +27 -0
  120. package/dist/types/src/storage/browser.d.ts.map +1 -0
  121. package/dist/types/src/storage/browser.js +98 -0
  122. package/dist/types/src/storage/browser.js.map +1 -0
  123. package/dist/types/src/storage/index.d.ts +2 -0
  124. package/dist/types/src/storage/index.d.ts.map +1 -0
  125. package/dist/types/src/storage/index.js.map +1 -0
  126. package/dist/types/src/storage/node.d.ts +30 -0
  127. package/dist/types/src/storage/node.d.ts.map +1 -0
  128. package/dist/types/src/storage/node.js +96 -0
  129. package/dist/types/src/storage/node.js.map +1 -0
  130. package/dist/types/src/storage/node.test.d.ts +2 -0
  131. package/dist/types/src/storage/node.test.d.ts.map +1 -0
  132. package/dist/types/src/storage/node.test.js +103 -0
  133. package/dist/types/src/storage/node.test.js.map +1 -0
  134. package/dist/types/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +46 -66
  136. package/src/cli-observability-secrets.json +3 -4
  137. package/src/extensions/index.ts +6 -0
  138. package/src/extensions/otel/extension.ts +282 -0
  139. package/src/extensions/otel/index.ts +5 -0
  140. package/src/extensions/otel/logs.ts +137 -0
  141. package/src/{otel → extensions/otel}/metrics.ts +4 -14
  142. package/src/extensions/otel/otel.ts +34 -0
  143. package/src/extensions/otel/span-processors.ts +45 -0
  144. package/src/extensions/otel/traces-browser.ts +139 -0
  145. package/src/extensions/otel/traces.ts +113 -0
  146. package/src/extensions/posthog/extension.ts +199 -0
  147. package/src/extensions/posthog/index.ts +5 -0
  148. package/src/extensions/posthog/log-processor.test.ts +186 -0
  149. package/src/extensions/posthog/log-processor.ts +53 -0
  150. package/src/extensions/stub.ts +19 -0
  151. package/src/index.ts +4 -3
  152. package/src/observability-extension.ts +94 -0
  153. package/src/observability.test.ts +531 -0
  154. package/src/observability.ts +238 -577
  155. package/src/providers/client-observability.ts +255 -0
  156. package/src/providers/index.ts +7 -0
  157. package/src/providers/ip-data.ts +100 -0
  158. package/src/providers/storage.ts +23 -0
  159. package/src/storage/browser.ts +99 -0
  160. package/src/{segment → storage}/index.ts +0 -1
  161. package/src/storage/node.test.ts +129 -0
  162. package/src/{helpers/node-observability.ts → storage/node.ts} +47 -71
  163. package/src/vite-import-meta.d.ts +14 -0
  164. package/dist/lib/browser/chunk-5ICT2XF2.mjs +0 -1
  165. package/dist/lib/browser/chunk-VIGEEYDR.mjs +0 -1019
  166. package/dist/lib/browser/chunk-VIGEEYDR.mjs.map +0 -7
  167. package/dist/lib/browser/chunk-XNAF22QM.mjs +0 -148
  168. package/dist/lib/browser/chunk-XNAF22QM.mjs.map +0 -7
  169. package/dist/lib/browser/chunk-ZI3ZS3PA.mjs +0 -164
  170. package/dist/lib/browser/chunk-ZI3ZS3PA.mjs.map +0 -7
  171. package/dist/lib/browser/observability-I65SW7NE.mjs +0 -10
  172. package/dist/lib/browser/otel-UH7ZRWC2.mjs +0 -287
  173. package/dist/lib/browser/otel-UH7ZRWC2.mjs.map +0 -7
  174. package/dist/lib/browser/segment/index.mjs +0 -11
  175. package/dist/lib/browser/segment/index.mjs.map +0 -7
  176. package/dist/lib/browser/sentry/index.mjs +0 -24
  177. package/dist/lib/browser/sentry/index.mjs.map +0 -7
  178. package/dist/lib/browser/sentry-log-processor-5VGDTKZN.mjs +0 -146
  179. package/dist/lib/browser/sentry-log-processor-5VGDTKZN.mjs.map +0 -7
  180. package/dist/lib/node-esm/chunk-MTKIPRBH.mjs +0 -1020
  181. package/dist/lib/node-esm/chunk-MTKIPRBH.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-OJV247NY.mjs +0 -204
  183. package/dist/lib/node-esm/chunk-OJV247NY.mjs.map +0 -7
  184. package/dist/lib/node-esm/chunk-QK5IUYVA.mjs +0 -135
  185. package/dist/lib/node-esm/chunk-QK5IUYVA.mjs.map +0 -7
  186. package/dist/lib/node-esm/chunk-QUZL7LKE.mjs +0 -2
  187. package/dist/lib/node-esm/chunk-QUZL7LKE.mjs.map +0 -7
  188. package/dist/lib/node-esm/observability-5KKD7B6J.mjs +0 -11
  189. package/dist/lib/node-esm/observability-5KKD7B6J.mjs.map +0 -7
  190. package/dist/lib/node-esm/otel-7PUCFSTY.mjs +0 -270
  191. package/dist/lib/node-esm/otel-7PUCFSTY.mjs.map +0 -7
  192. package/dist/lib/node-esm/segment/index.mjs +0 -12
  193. package/dist/lib/node-esm/segment/index.mjs.map +0 -7
  194. package/dist/lib/node-esm/sentry/index.mjs +0 -25
  195. package/dist/lib/node-esm/sentry/index.mjs.map +0 -7
  196. package/dist/lib/node-esm/sentry-log-processor-A2EV7P3Y.mjs +0 -147
  197. package/dist/lib/node-esm/sentry-log-processor-A2EV7P3Y.mjs.map +0 -7
  198. package/dist/types/src/helpers/browser-observability.d.ts +0 -17
  199. package/dist/types/src/helpers/browser-observability.d.ts.map +0 -1
  200. package/dist/types/src/helpers/browser-observability.js +0 -138
  201. package/dist/types/src/helpers/browser-observability.js.map +0 -1
  202. package/dist/types/src/helpers/common.d.ts +0 -12
  203. package/dist/types/src/helpers/common.d.ts.map +0 -1
  204. package/dist/types/src/helpers/common.js +0 -23
  205. package/dist/types/src/helpers/common.js.map +0 -1
  206. package/dist/types/src/helpers/index.d.ts +0 -6
  207. package/dist/types/src/helpers/index.d.ts.map +0 -1
  208. package/dist/types/src/helpers/index.js +0 -9
  209. package/dist/types/src/helpers/index.js.map +0 -1
  210. package/dist/types/src/helpers/map-spaces.d.ts +0 -18
  211. package/dist/types/src/helpers/map-spaces.d.ts.map +0 -1
  212. package/dist/types/src/helpers/map-spaces.js +0 -36
  213. package/dist/types/src/helpers/map-spaces.js.map +0 -1
  214. package/dist/types/src/helpers/node-observability.d.ts +0 -24
  215. package/dist/types/src/helpers/node-observability.d.ts.map +0 -1
  216. package/dist/types/src/helpers/node-observability.js +0 -97
  217. package/dist/types/src/helpers/node-observability.js.map +0 -1
  218. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts +0 -4
  219. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +0 -1
  220. package/dist/types/src/helpers/setup-telemetry-listeners.js +0 -94
  221. package/dist/types/src/helpers/setup-telemetry-listeners.js.map +0 -1
  222. package/dist/types/src/otel/index.d.ts +0 -5
  223. package/dist/types/src/otel/index.d.ts.map +0 -1
  224. package/dist/types/src/otel/index.js +0 -8
  225. package/dist/types/src/otel/index.js.map +0 -1
  226. package/dist/types/src/otel/logs.d.ts.map +0 -1
  227. package/dist/types/src/otel/logs.js +0 -74
  228. package/dist/types/src/otel/logs.js.map +0 -1
  229. package/dist/types/src/otel/metrics.d.ts.map +0 -1
  230. package/dist/types/src/otel/metrics.js.map +0 -1
  231. package/dist/types/src/otel/otel.d.ts +0 -12
  232. package/dist/types/src/otel/otel.d.ts.map +0 -1
  233. package/dist/types/src/otel/otel.js +0 -11
  234. package/dist/types/src/otel/otel.js.map +0 -1
  235. package/dist/types/src/otel/traces-browser.d.ts +0 -8
  236. package/dist/types/src/otel/traces-browser.d.ts.map +0 -1
  237. package/dist/types/src/otel/traces-browser.js +0 -53
  238. package/dist/types/src/otel/traces-browser.js.map +0 -1
  239. package/dist/types/src/otel/traces.d.ts +0 -8
  240. package/dist/types/src/otel/traces.d.ts.map +0 -1
  241. package/dist/types/src/otel/traces.js +0 -46
  242. package/dist/types/src/otel/traces.js.map +0 -1
  243. package/dist/types/src/segment/base.d.ts +0 -15
  244. package/dist/types/src/segment/base.d.ts.map +0 -1
  245. package/dist/types/src/segment/base.js +0 -51
  246. package/dist/types/src/segment/base.js.map +0 -1
  247. package/dist/types/src/segment/browser.d.ts +0 -15
  248. package/dist/types/src/segment/browser.d.ts.map +0 -1
  249. package/dist/types/src/segment/browser.js +0 -63
  250. package/dist/types/src/segment/browser.js.map +0 -1
  251. package/dist/types/src/segment/index.d.ts +0 -3
  252. package/dist/types/src/segment/index.d.ts.map +0 -1
  253. package/dist/types/src/segment/index.js +0 -6
  254. package/dist/types/src/segment/index.js.map +0 -1
  255. package/dist/types/src/segment/node.d.ts +0 -16
  256. package/dist/types/src/segment/node.d.ts.map +0 -1
  257. package/dist/types/src/segment/node.js +0 -84
  258. package/dist/types/src/segment/node.js.map +0 -1
  259. package/dist/types/src/segment/types.d.ts +0 -52
  260. package/dist/types/src/segment/types.d.ts.map +0 -1
  261. package/dist/types/src/segment/types.js +0 -18
  262. package/dist/types/src/segment/types.js.map +0 -1
  263. package/dist/types/src/sentry/browser.d.ts +0 -32
  264. package/dist/types/src/sentry/browser.d.ts.map +0 -1
  265. package/dist/types/src/sentry/browser.js +0 -110
  266. package/dist/types/src/sentry/browser.js.map +0 -1
  267. package/dist/types/src/sentry/index.d.ts +0 -3
  268. package/dist/types/src/sentry/index.d.ts.map +0 -1
  269. package/dist/types/src/sentry/index.js.map +0 -1
  270. package/dist/types/src/sentry/node.d.ts +0 -32
  271. package/dist/types/src/sentry/node.d.ts.map +0 -1
  272. package/dist/types/src/sentry/node.js +0 -106
  273. package/dist/types/src/sentry/node.js.map +0 -1
  274. package/dist/types/src/sentry/node.node.test.d.ts +0 -2
  275. package/dist/types/src/sentry/node.node.test.d.ts.map +0 -1
  276. package/dist/types/src/sentry/node.node.test.js +0 -32
  277. package/dist/types/src/sentry/node.node.test.js.map +0 -1
  278. package/dist/types/src/sentry/sentry-log-processor.d.ts +0 -9
  279. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +0 -1
  280. package/dist/types/src/sentry/sentry-log-processor.js +0 -144
  281. package/dist/types/src/sentry/sentry-log-processor.js.map +0 -1
  282. package/dist/types/src/sentry/sentry.node.test.d.ts +0 -2
  283. package/dist/types/src/sentry/sentry.node.test.d.ts.map +0 -1
  284. package/dist/types/src/sentry/sentry.node.test.js +0 -28
  285. package/dist/types/src/sentry/sentry.node.test.js.map +0 -1
  286. package/dist/types/src/sentry/types.d.ts +0 -18
  287. package/dist/types/src/sentry/types.d.ts.map +0 -1
  288. package/dist/types/src/sentry/types.js +0 -4
  289. package/dist/types/src/sentry/types.js.map +0 -1
  290. package/dist/types/src/testing/index.d.ts +0 -2
  291. package/dist/types/src/testing/index.d.ts.map +0 -1
  292. package/dist/types/src/testing/index.js +0 -5
  293. package/dist/types/src/testing/index.js.map +0 -1
  294. package/dist/types/src/testing/testkit/browser.d.ts +0 -2
  295. package/dist/types/src/testing/testkit/browser.d.ts.map +0 -1
  296. package/dist/types/src/testing/testkit/browser.js +0 -7
  297. package/dist/types/src/testing/testkit/browser.js.map +0 -1
  298. package/dist/types/src/testing/testkit/index.d.ts +0 -2
  299. package/dist/types/src/testing/testkit/index.d.ts.map +0 -1
  300. package/dist/types/src/testing/testkit/index.js +0 -6
  301. package/dist/types/src/testing/testkit/index.js.map +0 -1
  302. package/src/helpers/browser-observability.ts +0 -178
  303. package/src/helpers/common.ts +0 -38
  304. package/src/helpers/index.ts +0 -9
  305. package/src/helpers/map-spaces.ts +0 -48
  306. package/src/helpers/setup-telemetry-listeners.ts +0 -109
  307. package/src/otel/index.ts +0 -8
  308. package/src/otel/logs.ts +0 -102
  309. package/src/otel/otel.ts +0 -21
  310. package/src/otel/traces-browser.ts +0 -62
  311. package/src/otel/traces.ts +0 -60
  312. package/src/segment/base.ts +0 -69
  313. package/src/segment/browser.ts +0 -69
  314. package/src/segment/node.ts +0 -95
  315. package/src/segment/types.ts +0 -57
  316. package/src/sentry/browser.ts +0 -133
  317. package/src/sentry/index.ts +0 -6
  318. package/src/sentry/node.node.test.ts +0 -40
  319. package/src/sentry/node.ts +0 -126
  320. package/src/sentry/sentry-log-processor.ts +0 -176
  321. package/src/sentry/sentry.node.test.ts +0 -35
  322. package/src/sentry/types.ts +0 -22
  323. package/src/testing/index.ts +0 -5
  324. package/src/testing/testkit/browser.ts +0 -8
  325. package/src/testing/testkit/index.ts +0 -7
  326. package/src/testing/testkit/shims.d.ts +0 -5
  327. /package/dist/lib/browser/{chunk-5ICT2XF2.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  328. /package/dist/lib/{browser/observability-I65SW7NE.mjs.map → node-esm/chunk-HSLMI22Q.mjs.map} +0 -0
  329. /package/dist/types/src/{otel → extensions/otel}/metrics.d.ts +0 -0
  330. /package/dist/types/src/{sentry → storage}/index.js +0 -0
@@ -1,138 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
- // NOTE: localStorage is not available in web workers.
5
- import * as localForage from 'localforage';
6
- import { log } from '@dxos/log';
7
- export const OBSERVABILITY_DISABLED_KEY = 'observability-disabled';
8
- export const OBSERVABILITY_GROUP_KEY = 'observability-group';
9
- export const isObservabilityDisabled = async (namespace) => {
10
- try {
11
- return (await localForage.getItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`)) === 'true';
12
- }
13
- catch (err) {
14
- log.catch('Failed to check if observability is disabled, assuming it is', err);
15
- return true;
16
- }
17
- };
18
- export const storeObservabilityDisabled = async (namespace, value) => {
19
- try {
20
- await localForage.setItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`, String(value));
21
- }
22
- catch (err) {
23
- log.catch('Failed to store observability disabled', err);
24
- }
25
- };
26
- export const getObservabilityGroup = async (namespace) => {
27
- try {
28
- return (await localForage.getItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`)) ?? undefined;
29
- }
30
- catch (err) {
31
- log.catch('Failed to get observability group', err);
32
- }
33
- };
34
- export const storeObservabilityGroup = async (namespace, value) => {
35
- try {
36
- await localForage.setItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`, value);
37
- }
38
- catch (err) {
39
- log.catch('Failed to store observability group', err);
40
- }
41
- };
42
- // TODO(wittjosiah): Store preference for disabling observability.
43
- // At minimum should be stored locally (i.e., localstorage), possibly in halo preference.
44
- // Needs to be hooked up to settings page for user visibility.
45
- export const initializeAppObservability = async ({ namespace, config,
46
- // TODO(nf): Configure mode.
47
- mode = 'basic', tracingEnable = false, replayEnable = false, }) => {
48
- log('initializeAppObservability', { config });
49
- // const platform = (await client.services.services.SystemService?.getPlatform()) as Platform;
50
- // if (!platform) {
51
- // log.error('failed to get platform, could not initialize observability');
52
- // return undefined;
53
- // }
54
- const group = (await getObservabilityGroup(namespace)) ?? undefined;
55
- const release = `${namespace}@${config.get('runtime.app.build.version')}`;
56
- const environment = config.get('runtime.app.env.DX_ENVIRONMENT');
57
- const { Observability } = await import('../observability');
58
- const observability = new Observability({
59
- namespace,
60
- release,
61
- environment,
62
- group,
63
- mode,
64
- config,
65
- errorLog: {
66
- sentryInitOptions: {
67
- environment,
68
- release,
69
- tracing: tracingEnable,
70
- replay: replayEnable,
71
- // TODO(wittjosiah): Configure these.
72
- // Consider using a sampling function to dynamically configure these values.
73
- // https://docs.sentry.io/platforms/javascript/configuration/sampling/#setting-a-sampling-function
74
- sampleRate: 1.0,
75
- replaySampleRate: 1.0,
76
- replaySampleRateOnError: 1.0,
77
- },
78
- },
79
- });
80
- // Global kill switch.
81
- const observabilityDisabled = await isObservabilityDisabled(namespace);
82
- if (observabilityDisabled) {
83
- observability.setMode('disabled');
84
- log.info('observability disabled');
85
- return observability;
86
- }
87
- try {
88
- const getIPData = async (config) => {
89
- const IP_DATA_CACHE_TIMEOUT = 6 * 60 * 60 * 1000; // 6 hours
90
- // Check cache first.
91
- const cachedData = await localForage.getItem('dxos:observability:ipdata');
92
- if (cachedData && cachedData.timestamp > Date.now() - IP_DATA_CACHE_TIMEOUT) {
93
- return cachedData.data;
94
- }
95
- // Fetch data if not cached.
96
- const IPDATA_API_KEY = config.get('runtime.app.env.DX_IPDATA_API_KEY');
97
- if (IPDATA_API_KEY) {
98
- return fetch(`https://api.ipdata.co?api-key=${IPDATA_API_KEY}`)
99
- .then((res) => res.json())
100
- .then((data) => {
101
- // Cache data.
102
- localForage
103
- .setItem('dxos:observability:ipdata', {
104
- data,
105
- timestamp: Date.now(),
106
- })
107
- .catch((err) => observability.captureException(err));
108
- return data;
109
- })
110
- .catch((err) => observability.captureException(err));
111
- }
112
- };
113
- // TODO(nf): plugin state?
114
- // TODO(nf): should provide capability to init Sentry earlier in booting process to capture errors during initialization.
115
- await observability.initialize();
116
- observability.startErrorLogs();
117
- const ipData = await getIPData(config);
118
- ipData && observability.setIPDataTelemetryTags(ipData);
119
- if (typeof navigator !== 'undefined' && navigator.storage?.estimate) {
120
- // TODO(burdon): Need to close.
121
- setInterval(async () => {
122
- try {
123
- const storageEstimate = await navigator.storage.estimate();
124
- storageEstimate.usage && observability.setTag('storageUsage', storageEstimate.usage.toString(), 'telemetry');
125
- storageEstimate.quota && observability.setTag('storageQuota', storageEstimate.quota.toString(), 'telemetry');
126
- }
127
- catch (error) {
128
- log.warn('Failed to run estimate()', error);
129
- }
130
- }, 10_000);
131
- }
132
- }
133
- catch (err) {
134
- log.error('Failed to initialize app observability', err);
135
- }
136
- return observability;
137
- };
138
- //# sourceMappingURL=browser-observability.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-observability.js","sourceRoot":"","sources":["../../../../src/helpers/browser-observability.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { Client } from '@dxos/client';
2
- import { type IdentityOptions } from '../segment';
3
- export type IPData = {
4
- city: string;
5
- region: string;
6
- country: string;
7
- latitude: number;
8
- longitude: number;
9
- };
10
- export declare const getTelemetryIdentifier: (client: Client) => string | undefined;
11
- export declare const getTelemetryIdentity: (client: Client) => IdentityOptions;
12
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/helpers/common.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAOF,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAWhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,eAGrD,CAAC"}
@@ -1,23 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
- // TODO(wittjosiah): Improve privacy of telemetry identifiers.
5
- // - Identifier should be generated client-side with no attachment to identity.
6
- // - Identifier can then be reset by user.
7
- // - Identifier can be synced via HALO to allow for correlation of events bewteen devices.
8
- // - Identifier should also be stored outside of HALO such that it is available immediately on startup.
9
- export const getTelemetryIdentifier = (client) => {
10
- if (!client?.initialized) {
11
- return undefined;
12
- }
13
- const identity = client.halo.identity.get();
14
- if (identity) {
15
- return identity.did;
16
- }
17
- return undefined;
18
- };
19
- export const getTelemetryIdentity = (client) => {
20
- const did = getTelemetryIdentifier(client);
21
- return { did };
22
- };
23
- //# sourceMappingURL=common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/helpers/common.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAcF,8DAA8D;AAC9D,gFAAgF;AAChF,2CAA2C;AAC3C,2FAA2F;AAC3F,wGAAwG;AACxG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAsB,EAAE;IAC3E,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAmB,EAAE;IACtE,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- export * from './browser-observability';
2
- export * from './common';
3
- export * from './node-observability';
4
- export * from './map-spaces';
5
- export * from './setup-telemetry-listeners';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/helpers/index.ts"],"names":[],"mappings":"AAIA,cAAc,yBAAyB,CAAC;AACxC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC"}
@@ -1,9 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
- export * from './browser-observability';
5
- export * from './common';
6
- export * from './node-observability';
7
- export * from './map-spaces';
8
- export * from './setup-telemetry-listeners';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,yBAAyB,CAAC;AACxC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC"}
@@ -1,18 +0,0 @@
1
- import type { Space } from '@dxos/client-protocol';
2
- export type MapSpacesOptions = {
3
- verbose?: boolean;
4
- truncateKeys?: boolean;
5
- };
6
- export declare const mapSpaces: (spaces: Space[], options?: MapSpacesOptions) => {
7
- key: string;
8
- open: boolean;
9
- members: number;
10
- objects: number;
11
- startup: number | undefined;
12
- epoch: any;
13
- startDataMutations: any;
14
- currentDataMutations: number;
15
- totalDataMutations: number;
16
- progress: string;
17
- }[];
18
- //# sourceMappingURL=map-spaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map-spaces.d.ts","sourceRoot":"","sources":["../../../../src/helpers/map-spaces.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,QAAQ,KAAK,EAAE,EAAE,UAAS,gBAA0D;;;;;;;;;;;GAoC7G,CAAC"}
@@ -1,36 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
- export const mapSpaces = (spaces, options = { verbose: false, truncateKeys: false }) => {
5
- return spaces.map((space) => {
6
- // TODO(burdon): Factor out.
7
- // TODO(burdon): Agent needs to restart before `ready` is available.
8
- const { open, ready } = space.internal.data.metrics ?? {};
9
- const startup = open && ready && ready.getTime() - open.getTime();
10
- // TODO(burdon): Get feeds from client-services if verbose (factor out from devtools/diagnostics).
11
- // const host = client.services.services.DevtoolsHost!;
12
- const pipeline = space.internal.data.pipeline;
13
- const startDataMutations = pipeline?.currentEpoch?.subject.assertion.timeframe.totalMessages() ?? 0;
14
- const epoch = pipeline?.currentEpoch?.subject.assertion.number;
15
- // const appliedEpoch = pipeline?.appliedEpoch?.subject.assertion.number;
16
- const currentDataMutations = pipeline?.currentDataTimeframe?.totalMessages() ?? 0;
17
- const totalDataMutations = pipeline?.targetDataTimeframe?.totalMessages() ?? 0;
18
- return {
19
- // TODO(nf): truncate keys for DD?
20
- key: space.key.truncate(),
21
- open: space.isOpen,
22
- members: space.members.get().length,
23
- objects: space.db.coreDatabase.getAllObjectIds().length,
24
- startup,
25
- epoch,
26
- // appliedEpoch,
27
- startDataMutations,
28
- currentDataMutations,
29
- totalDataMutations,
30
- // TODO(burdon): Negative?
31
- progress: (Math.min(Math.abs((currentDataMutations - startDataMutations) / (totalDataMutations - startDataMutations)), 1) *
32
- 100).toFixed(0),
33
- };
34
- });
35
- };
36
- //# sourceMappingURL=map-spaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map-spaces.js","sourceRoot":"","sources":["../../../../src/helpers/map-spaces.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AASF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAe,EAAE,UAA4B,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;IAChH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,4BAA4B;QAC5B,oEAAoE;QACpE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAElE,kGAAkG;QAClG,uDAAuD;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9C,MAAM,kBAAkB,GAAG,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/D,yEAAyE;QACzE,MAAM,oBAAoB,GAAG,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAClF,MAAM,kBAAkB,GAAG,QAAQ,EAAE,mBAAmB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAE/E,OAAO;YACL,kCAAkC;YAClC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACzB,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM;YACnC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,MAAM;YACvD,OAAO;YACP,KAAK;YACL,gBAAgB;YAChB,kBAAkB;YAClB,oBAAoB;YACpB,kBAAkB;YAElB,0BAA0B;YAC1B,QAAQ,EAAE,CACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9G,GAAG,CACJ,CAAC,OAAO,CAAC,CAAC,CAAC;SACb,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,24 +0,0 @@
1
- import type { Config } from '@dxos/client';
2
- import { type Mode, Observability } from '../observability';
3
- /**
4
- * Print observability banner once per installation.
5
- */
6
- export declare const showObservabilityBanner: (configDir: string, bannercb: (input: string) => void) => Promise<void>;
7
- export declare const getObservabilityState: (configDir: string) => Promise<PersistentObservabilityState>;
8
- export type PersistentObservabilityState = {
9
- installationId: string;
10
- group?: string;
11
- mode: Mode;
12
- };
13
- export type NodeObservabilityOptions = {
14
- installationId: string;
15
- group?: string;
16
- namespace: string;
17
- version: string;
18
- config: Config;
19
- mode?: Mode;
20
- tracingEnable?: boolean;
21
- replayEnable?: boolean;
22
- };
23
- export declare const initializeNodeObservability: ({ namespace, version, config, installationId, group, mode, tracingEnable, replayEnable, }: NodeObservabilityOptions) => Promise<Observability>;
24
- //# sourceMappingURL=node-observability.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-observability.d.ts","sourceRoot":"","sources":["../../../../src/helpers/node-observability.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,KAAK,IAAI,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAU,WAAW,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,kBAcjG,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,4BAA4B,CAkBnG,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AA8BF,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CAExB,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAU,2FAS/C,wBAAwB,KAAG,OAAO,CAAC,aAAa,CAoClD,CAAC"}
@@ -1,97 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
- import { existsSync, statSync } from 'node:fs';
5
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
6
- import { join } from 'node:path';
7
- import yaml from 'js-yaml';
8
- import { v4 as uuid, validate as validateUuid } from 'uuid';
9
- import { log } from '@dxos/log';
10
- import { Observability } from '../observability';
11
- /**
12
- * Print observability banner once per installation.
13
- */
14
- export const showObservabilityBanner = async (configDir, bannercb) => {
15
- const path = join(configDir, '.observability-banner-printed');
16
- if (existsSync(path)) {
17
- return;
18
- }
19
- bannercb(
20
- // eslint-disable-next-line no-multi-str
21
- 'Basic observability data will be sent to the DXOS team in order to improve the product. This includes \
22
- performance metrics, error logs, and usage data. No personally identifiable information, other than your \
23
- public key, is included with this data and no private data ever leaves your devices. To disable sending \
24
- observability data, set the environment variable DX_DISABLE_OBSERVABILITY=true.');
25
- await writeFile(path, '', 'utf-8');
26
- };
27
- export const getObservabilityState = async (configDir) => {
28
- // check whether configDir exists and if it's a directory
29
- if (existsSync(configDir)) {
30
- if (!statSync(configDir).isDirectory()) {
31
- throw new Error(`Config directory ${configDir} exists but is not a directory`);
32
- }
33
- }
34
- else {
35
- await mkdir(configDir, { recursive: true });
36
- }
37
- const idPath = join(configDir, 'observability.yml');
38
- if (existsSync(idPath)) {
39
- const context = await readFile(idPath, 'utf-8');
40
- return validate(context) ?? initializeState(idPath);
41
- }
42
- return initializeState(idPath);
43
- };
44
- // create initial state and write to file, using environment variables to override defaults.
45
- const initializeState = async (idPath) => {
46
- // TODO(nf): read initial values from config or seed file
47
- const observabilityState = {
48
- installationId: uuid(),
49
- group: process.env.DX_OBSERVABILITY_GROUP ?? undefined,
50
- mode: (process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : (process.env.DX_OBSERVABILITY_MODE ?? 'basic')),
51
- };
52
- await writeFile(idPath, '# This file is automatically generated by the @dxos/cli.\n' + yaml.dump(observabilityState), 'utf-8');
53
- return observabilityState;
54
- };
55
- const validate = (contextString) => {
56
- const context = yaml.load(contextString);
57
- if (Boolean(context.installationId) && validateUuid(context.installationId)) {
58
- return {
59
- ...context,
60
- mode: process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : (context.mode ?? 'basic'),
61
- };
62
- }
63
- };
64
- export const initializeNodeObservability = async ({ namespace, version, config, installationId, group, mode = 'basic', tracingEnable = true, replayEnable = true, }) => {
65
- log('initializeCliObservability', { config });
66
- // TODO(nf): make CLI build populate runtime.app.build config?
67
- const release = `${namespace}@${version}`;
68
- const environment = process.env.DX_ENVIRONMENT ?? 'unknown';
69
- const observability = new Observability({
70
- mode,
71
- namespace,
72
- release,
73
- environment,
74
- group,
75
- errorLog: {
76
- sentryInitOptions: {
77
- environment,
78
- release,
79
- // TODO(wittjosiah): Configure this.
80
- sampleRate: 1.0,
81
- },
82
- },
83
- });
84
- observability.setTag('installationId', installationId);
85
- // TODO(nf): cache ipdata to avoid repeated requests
86
- const IPDATA_API_KEY = config.get('runtime.app.env.DX_IPDATA_API_KEY');
87
- try {
88
- const res = await fetch(`https://api.ipdata.co/?api-key=${IPDATA_API_KEY}`);
89
- const ipData = await res.json();
90
- ipData && observability.setIPDataTelemetryTags(ipData);
91
- }
92
- catch (err) {
93
- observability?.captureException(err);
94
- }
95
- return observability;
96
- };
97
- //# sourceMappingURL=node-observability.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-observability.js","sourceRoot":"","sources":["../../../../src/helpers/node-observability.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { Client } from '@dxos/client';
2
- import { type Observability } from '../observability';
3
- export declare const setupTelemetryListeners: (namespace: string, client: Client, observability: Observability) => () => void;
4
- //# sourceMappingURL=setup-telemetry-listeners.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-telemetry-listeners.d.ts","sourceRoot":"","sources":["../../../../src/helpers/setup-telemetry-listeners.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,EAAE,QAAQ,MAAM,EAAE,eAAe,aAAa,eA+FtG,CAAC"}
@@ -1,94 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
- import { getTelemetryIdentity } from './common';
5
- let lastFocusEvent = new Date();
6
- let totalTime = 0;
7
- export const setupTelemetryListeners = (namespace, client, observability) => {
8
- const clickCallback = (event) => {
9
- const id = event.target?.id;
10
- if (!id) {
11
- return;
12
- }
13
- setTimeout(() => {
14
- observability.track({
15
- ...getTelemetryIdentity(client),
16
- action: 'window.click',
17
- properties: {
18
- id: event.target?.id,
19
- path: event.composedPath()
20
- .filter((el) => Boolean(el.tagName))
21
- .map((el) => `${el.tagName.toLowerCase()}${el.id ? `#${el.id}` : ''}`)
22
- .reverse()
23
- .join('>'),
24
- },
25
- });
26
- });
27
- };
28
- const focusCallback = () => {
29
- const now = new Date();
30
- setTimeout(() => {
31
- observability.track({
32
- ...getTelemetryIdentity(client),
33
- action: 'window.focus',
34
- properties: {
35
- timeAway: now.getTime() - lastFocusEvent.getTime(),
36
- },
37
- });
38
- });
39
- lastFocusEvent = now;
40
- };
41
- const blurCallback = () => {
42
- const now = new Date();
43
- const duration = now.getTime() - lastFocusEvent.getTime();
44
- setTimeout(() => {
45
- observability.track({
46
- ...getTelemetryIdentity(client),
47
- action: 'window.blur',
48
- properties: {
49
- duration,
50
- },
51
- });
52
- });
53
- lastFocusEvent = now;
54
- totalTime = totalTime + duration;
55
- };
56
- const unloadCallback = () => {
57
- setTimeout(() => {
58
- observability.track({
59
- ...getTelemetryIdentity(client),
60
- action: 'page.unload',
61
- properties: {
62
- duration: totalTime,
63
- },
64
- });
65
- });
66
- };
67
- const errorCallback = (event) => {
68
- setTimeout(() => {
69
- observability.track({
70
- ...getTelemetryIdentity(client),
71
- action: 'window.error',
72
- properties: {
73
- message: event.message,
74
- filename: event.filename,
75
- stack: event.error?.stack,
76
- cause: event.error?.cause,
77
- },
78
- });
79
- });
80
- };
81
- window.addEventListener('click', clickCallback, true);
82
- window.addEventListener('focus', focusCallback);
83
- window.addEventListener('blur', blurCallback);
84
- window.addEventListener('beforeunload', unloadCallback);
85
- window.addEventListener('error', errorCallback);
86
- return () => {
87
- window.removeEventListener('click', clickCallback, true);
88
- window.removeEventListener('focus', focusCallback);
89
- window.removeEventListener('blur', blurCallback);
90
- window.removeEventListener('beforeunload', unloadCallback);
91
- window.removeEventListener('error', errorCallback);
92
- };
93
- };
94
- //# sourceMappingURL=setup-telemetry-listeners.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-telemetry-listeners.js","sourceRoot":"","sources":["../../../../src/helpers/setup-telemetry-listeners.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export * from './otel';
2
- export * from './logs';
3
- export * from './metrics';
4
- export * from './traces';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/otel/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -1,8 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
- export * from './otel';
5
- export * from './logs';
6
- export * from './metrics';
7
- export * from './traces';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/otel/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../src/otel/logs.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,QAAQ,EACR,KAAK,YAAY,EAGlB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,QAAQ,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACzC,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;OAGG;IACH,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,qBAAa,QAAQ;IAEP,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,eAAe,CAAiB;gBACX,OAAO,EAAE,cAAc;IAqBpD,SAAgB,YAAY,EAAE,YAAY,CAqBxC;IAEF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
@@ -1,74 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
- import { SeverityNumber } from '@opentelemetry/api-logs';
5
- import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
6
- import { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';
7
- import { BatchLogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';
8
- import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
9
- import { LogLevel, getContextFromEntry, getRelativeFilename, } from '@dxos/log';
10
- import { jsonlogify } from '@dxos/util';
11
- import { setDiagLogger } from './otel';
12
- export class OtelLogs {
13
- options;
14
- _loggerProvider;
15
- constructor(options) {
16
- this.options = options;
17
- setDiagLogger(options.consoleDiagLogLevel);
18
- const resource = defaultResource().merge(resourceFromAttributes({
19
- [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
20
- [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,
21
- }));
22
- const logExporter = new OTLPLogExporter({
23
- url: this.options.endpoint + '/v1/logs',
24
- headers: {
25
- Authorization: this.options.authorizationHeader,
26
- },
27
- concurrencyLimit: 10, // an optional limit on pending requests
28
- });
29
- this._loggerProvider = new LoggerProvider({
30
- resource,
31
- processors: [new BatchLogRecordProcessor(logExporter)],
32
- });
33
- }
34
- logProcessor = (config, entry) => {
35
- const logger = this._loggerProvider.getLogger('dxos-observability', this.options.serviceVersion);
36
- if (entry.level < this.options.logLevel ||
37
- (!this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId)) {
38
- return;
39
- }
40
- const record = {
41
- ...entry,
42
- ...(entry.meta ? { meta: { file: getRelativeFilename(entry.meta.F), line: entry.meta.L } } : {}),
43
- context: jsonlogify(getContextFromEntry(entry)),
44
- };
45
- logger.emit({
46
- severityNumber: convertLevel(entry.level),
47
- body: JSON.stringify(record),
48
- attributes: this.options.getTags(),
49
- });
50
- };
51
- flush() {
52
- return this._loggerProvider.forceFlush();
53
- }
54
- close() {
55
- return this._loggerProvider.shutdown();
56
- }
57
- }
58
- const convertLevel = (level) => {
59
- switch (level) {
60
- case LogLevel.DEBUG:
61
- return SeverityNumber.DEBUG;
62
- case LogLevel.VERBOSE:
63
- return SeverityNumber.INFO;
64
- case LogLevel.INFO:
65
- return SeverityNumber.INFO;
66
- case LogLevel.WARN:
67
- return SeverityNumber.WARN;
68
- case LogLevel.ERROR:
69
- return SeverityNumber.ERROR;
70
- default:
71
- return SeverityNumber.ERROR;
72
- }
73
- };
74
- //# sourceMappingURL=logs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/otel/logs.ts"],"names":[],"mappings":"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"}