@dxos/observability 0.8.4-main.b97322e → 0.8.4-main.bc674ce

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 (158) hide show
  1. package/dist/lib/browser/{chunk-MWTIKIBZ.mjs → chunk-5LN7D6GM.mjs} +14 -13
  2. package/dist/lib/browser/chunk-5LN7D6GM.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-UG3VTDOH.mjs → chunk-JJQT5TQH.mjs} +85 -409
  4. package/dist/lib/browser/chunk-JJQT5TQH.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-YEPQFAES.mjs → chunk-O4BG5MRL.mjs} +2 -2
  6. package/dist/lib/browser/chunk-O4BG5MRL.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-U6JWT3E2.mjs +1 -0
  8. package/dist/lib/browser/chunk-VL6LVQPU.mjs +69 -0
  9. package/dist/lib/browser/chunk-VL6LVQPU.mjs.map +7 -0
  10. package/dist/lib/browser/index.mjs +341 -15
  11. package/dist/lib/browser/index.mjs.map +4 -4
  12. package/dist/lib/browser/meta.json +1 -1
  13. package/dist/lib/browser/observability-XK652NZG.mjs +11 -0
  14. package/dist/lib/browser/otel/traces-browser.mjs +7 -0
  15. package/dist/lib/browser/otel/traces-browser.mjs.map +7 -0
  16. package/dist/lib/browser/otel/traces.mjs +7 -0
  17. package/dist/lib/browser/otel/traces.mjs.map +7 -0
  18. package/dist/lib/browser/{otel-IRDZ7PES.mjs → otel-DI4ASU7Y.mjs} +44 -95
  19. package/dist/lib/browser/otel-DI4ASU7Y.mjs.map +7 -0
  20. package/dist/lib/browser/segment/browser.mjs +9 -0
  21. package/dist/lib/browser/segment/browser.mjs.map +7 -0
  22. package/dist/lib/browser/segment/index.mjs +3 -2
  23. package/dist/lib/browser/segment/node.mjs +9 -0
  24. package/dist/lib/browser/segment/node.mjs.map +7 -0
  25. package/dist/lib/browser/sentry/browser.mjs +23 -0
  26. package/dist/lib/browser/sentry/browser.mjs.map +7 -0
  27. package/dist/lib/browser/sentry/index.mjs +1 -1
  28. package/dist/lib/browser/sentry/node.mjs +23 -0
  29. package/dist/lib/browser/sentry/node.mjs.map +7 -0
  30. package/dist/lib/browser/{sentry-log-processor-N3QNOQ2O.mjs → sentry-log-processor-W7LI6WXA.mjs} +50 -52
  31. package/dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs.map +7 -0
  32. package/dist/lib/node-esm/{chunk-WLRNZ2S2.mjs → chunk-KKNY7TRV.mjs} +85 -409
  33. package/dist/lib/node-esm/chunk-KKNY7TRV.mjs.map +7 -0
  34. package/dist/lib/node-esm/chunk-KLJGCUYA.mjs +2 -0
  35. package/dist/lib/node-esm/chunk-KLJGCUYA.mjs.map +7 -0
  36. package/dist/lib/node-esm/chunk-KVJTNW3F.mjs +147 -0
  37. package/dist/lib/node-esm/chunk-KVJTNW3F.mjs.map +7 -0
  38. package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs → chunk-M4627SMT.mjs} +2 -2
  39. package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs.map → chunk-M4627SMT.mjs.map} +3 -3
  40. package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs +62 -0
  41. package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs.map +7 -0
  42. package/dist/lib/node-esm/chunk-WAGGA7IT.mjs +52 -0
  43. package/dist/lib/node-esm/chunk-WAGGA7IT.mjs.map +7 -0
  44. package/dist/lib/node-esm/index.mjs +342 -15
  45. package/dist/lib/node-esm/index.mjs.map +4 -4
  46. package/dist/lib/node-esm/meta.json +1 -1
  47. package/dist/lib/node-esm/observability-CXQ3CZGB.mjs +13 -0
  48. package/dist/lib/node-esm/observability-CXQ3CZGB.mjs.map +7 -0
  49. package/dist/lib/node-esm/otel/traces-browser.mjs +70 -0
  50. package/dist/lib/node-esm/otel/traces-browser.mjs.map +7 -0
  51. package/dist/lib/node-esm/otel/traces.mjs +8 -0
  52. package/dist/lib/node-esm/otel/traces.mjs.map +7 -0
  53. package/dist/lib/node-esm/{otel-62HYJETM.mjs → otel-JFXO22WD.mjs} +43 -76
  54. package/dist/lib/node-esm/otel-JFXO22WD.mjs.map +7 -0
  55. package/dist/lib/node-esm/segment/browser.mjs +92 -0
  56. package/dist/lib/node-esm/segment/browser.mjs.map +7 -0
  57. package/dist/lib/node-esm/segment/index.mjs +6 -3
  58. package/dist/lib/node-esm/segment/node.mjs +11 -0
  59. package/dist/lib/node-esm/segment/node.mjs.map +7 -0
  60. package/dist/lib/node-esm/sentry/browser.mjs +165 -0
  61. package/dist/lib/node-esm/sentry/browser.mjs.map +7 -0
  62. package/dist/lib/node-esm/sentry/index.mjs +1 -1
  63. package/dist/lib/node-esm/sentry/node.mjs +24 -0
  64. package/dist/lib/node-esm/sentry/node.mjs.map +7 -0
  65. package/dist/lib/node-esm/{sentry-log-processor-FN6Y5TNI.mjs → sentry-log-processor-W3SG4RQL.mjs} +50 -52
  66. package/dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs.map +7 -0
  67. package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
  68. package/dist/types/src/helpers/browser-observability.js +4 -6
  69. package/dist/types/src/helpers/browser-observability.js.map +1 -1
  70. package/dist/types/src/helpers/common.js +1 -1
  71. package/dist/types/src/helpers/common.js.map +1 -1
  72. package/dist/types/src/helpers/map-spaces.js +6 -7
  73. package/dist/types/src/helpers/map-spaces.js.map +1 -1
  74. package/dist/types/src/helpers/node-observability.d.ts +1 -1
  75. package/dist/types/src/helpers/node-observability.d.ts.map +1 -1
  76. package/dist/types/src/helpers/node-observability.js +7 -11
  77. package/dist/types/src/helpers/node-observability.js.map +1 -1
  78. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +1 -1
  79. package/dist/types/src/helpers/setup-telemetry-listeners.js +4 -7
  80. package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
  81. package/dist/types/src/observability.d.ts +1 -1
  82. package/dist/types/src/observability.d.ts.map +1 -1
  83. package/dist/types/src/observability.js +68 -59
  84. package/dist/types/src/observability.js.map +1 -1
  85. package/dist/types/src/otel/logs.d.ts.map +1 -1
  86. package/dist/types/src/otel/logs.js +26 -23
  87. package/dist/types/src/otel/logs.js.map +1 -1
  88. package/dist/types/src/otel/metrics.d.ts +0 -1
  89. package/dist/types/src/otel/metrics.d.ts.map +1 -1
  90. package/dist/types/src/otel/metrics.js +6 -4
  91. package/dist/types/src/otel/metrics.js.map +1 -1
  92. package/dist/types/src/otel/otel.js +1 -1
  93. package/dist/types/src/otel/otel.js.map +1 -1
  94. package/dist/types/src/otel/traces-browser.d.ts.map +1 -1
  95. package/dist/types/src/otel/traces-browser.js +19 -13
  96. package/dist/types/src/otel/traces-browser.js.map +1 -1
  97. package/dist/types/src/otel/traces.d.ts.map +1 -1
  98. package/dist/types/src/otel/traces.js +18 -12
  99. package/dist/types/src/otel/traces.js.map +1 -1
  100. package/dist/types/src/segment/base.d.ts +3 -3
  101. package/dist/types/src/segment/base.d.ts.map +1 -1
  102. package/dist/types/src/segment/base.js +4 -3
  103. package/dist/types/src/segment/base.js.map +1 -1
  104. package/dist/types/src/segment/browser.d.ts +1 -1
  105. package/dist/types/src/segment/browser.d.ts.map +1 -1
  106. package/dist/types/src/segment/browser.js +8 -12
  107. package/dist/types/src/segment/browser.js.map +1 -1
  108. package/dist/types/src/segment/node.d.ts +1 -1
  109. package/dist/types/src/segment/node.d.ts.map +1 -1
  110. package/dist/types/src/segment/node.js +4 -3
  111. package/dist/types/src/segment/node.js.map +1 -1
  112. package/dist/types/src/sentry/browser.d.ts.map +1 -1
  113. package/dist/types/src/sentry/browser.js +5 -7
  114. package/dist/types/src/sentry/browser.js.map +1 -1
  115. package/dist/types/src/sentry/node.d.ts.map +1 -1
  116. package/dist/types/src/sentry/node.js +8 -13
  117. package/dist/types/src/sentry/node.js.map +1 -1
  118. package/dist/types/src/sentry/node.node.test.js +3 -5
  119. package/dist/types/src/sentry/node.node.test.js.map +1 -1
  120. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
  121. package/dist/types/src/sentry/sentry-log-processor.js +56 -63
  122. package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
  123. package/dist/types/src/sentry/sentry.node.test.js +1 -1
  124. package/dist/types/src/sentry/sentry.node.test.js.map +1 -1
  125. package/dist/types/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +35 -34
  127. package/src/helpers/browser-observability.ts +2 -1
  128. package/src/helpers/map-spaces.ts +1 -1
  129. package/src/helpers/node-observability.ts +3 -2
  130. package/src/helpers/setup-telemetry-listeners.ts +2 -1
  131. package/src/observability.ts +4 -4
  132. package/src/otel/logs.ts +9 -7
  133. package/src/otel/metrics.ts +5 -12
  134. package/src/otel/otel.ts +1 -1
  135. package/src/otel/traces-browser.ts +23 -20
  136. package/src/otel/traces.ts +22 -19
  137. package/src/segment/base.ts +3 -3
  138. package/src/segment/browser.ts +5 -4
  139. package/src/segment/node.ts +5 -4
  140. package/src/sentry/browser.ts +8 -8
  141. package/src/sentry/node.node.test.ts +2 -1
  142. package/src/sentry/node.ts +3 -3
  143. package/src/sentry/sentry-log-processor.ts +4 -2
  144. package/src/sentry/sentry.node.test.ts +2 -1
  145. package/dist/lib/browser/chunk-MWTIKIBZ.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-UG3VTDOH.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-YEPQFAES.mjs.map +0 -7
  148. package/dist/lib/browser/observability-7LFMAZBF.mjs +0 -10
  149. package/dist/lib/browser/otel-IRDZ7PES.mjs.map +0 -7
  150. package/dist/lib/browser/sentry-log-processor-N3QNOQ2O.mjs.map +0 -7
  151. package/dist/lib/node-esm/chunk-552KLA6Z.mjs +0 -202
  152. package/dist/lib/node-esm/chunk-552KLA6Z.mjs.map +0 -7
  153. package/dist/lib/node-esm/chunk-WLRNZ2S2.mjs.map +0 -7
  154. package/dist/lib/node-esm/observability-F2NNZIF6.mjs +0 -11
  155. package/dist/lib/node-esm/otel-62HYJETM.mjs.map +0 -7
  156. package/dist/lib/node-esm/sentry-log-processor-FN6Y5TNI.mjs.map +0 -7
  157. /package/dist/lib/browser/{observability-7LFMAZBF.mjs.map → chunk-U6JWT3E2.mjs.map} +0 -0
  158. /package/dist/lib/{node-esm/observability-F2NNZIF6.mjs.map → browser/observability-XK652NZG.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
3
+ "sources": ["../../../src/helpers/browser-observability.ts", "../../../src/helpers/node-observability.ts", "../../../src/helpers/setup-telemetry-listeners.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\n// NOTE: localStorage is not available in web workers.\nimport * as localForage from 'localforage';\n\n// import { type Platform } from '@dxos/client-services';\n// import { type InitOptions as TelemetryInitOptions } from '@dxos/telemetry';\n\nimport type { Config } from '@dxos/client';\nimport { log } from '@dxos/log';\n\nimport type { Mode, Observability } from '../observability';\n\nimport type { IPData } from './common';\n\nexport const OBSERVABILITY_DISABLED_KEY = 'observability-disabled';\nexport const OBSERVABILITY_GROUP_KEY = 'observability-group';\n\nexport const isObservabilityDisabled = async (namespace: string): Promise<boolean> => {\n try {\n return (await localForage.getItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`)) === 'true';\n } catch (err) {\n log.catch('Failed to check if observability is disabled, assuming it is', err);\n return true;\n }\n};\n\nexport const storeObservabilityDisabled = async (namespace: string, value: boolean) => {\n try {\n await localForage.setItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`, String(value));\n } catch (err) {\n log.catch('Failed to store observability disabled', err);\n }\n};\n\nexport const getObservabilityGroup = async (namespace: string): Promise<string | undefined> => {\n try {\n return (await localForage.getItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`)) ?? undefined;\n } catch (err) {\n log.catch('Failed to get observability group', err);\n }\n};\n\nexport const storeObservabilityGroup = async (namespace: string, value: string) => {\n try {\n await localForage.setItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`, value);\n } catch (err) {\n log.catch('Failed to store observability group', err);\n }\n};\n\nexport type AppObservabilityOptions = {\n namespace: string;\n config: Config;\n mode?: Mode;\n tracingEnable?: boolean;\n replayEnable?: boolean;\n // TODO(nf): options for providers?\n};\n\n// TODO(wittjosiah): Store preference for disabling observability.\n// At minimum should be stored locally (i.e., localstorage), possibly in halo preference.\n// Needs to be hooked up to settings page for user visibility.\nexport const initializeAppObservability = async ({\n namespace,\n config,\n // TODO(nf): Configure mode.\n mode = 'basic',\n tracingEnable = false,\n replayEnable = false,\n}: AppObservabilityOptions): Promise<Observability> => {\n log('initializeAppObservability', { config });\n\n // const platform = (await client.services.services.SystemService?.getPlatform()) as Platform;\n // if (!platform) {\n // log.error('failed to get platform, could not initialize observability');\n // return undefined;\n // }\n\n const group = (await getObservabilityGroup(namespace)) ?? undefined;\n const release = `${namespace}@${config.get('runtime.app.build.version')}`;\n const environment = config.get('runtime.app.env.DX_ENVIRONMENT');\n\n const { Observability } = await import('../observability');\n const observability = new Observability({\n namespace,\n release,\n environment,\n group,\n mode,\n config,\n errorLog: {\n sentryInitOptions: {\n environment,\n release,\n tracing: tracingEnable,\n replay: replayEnable,\n // TODO(wittjosiah): Configure these.\n // Consider using a sampling function to dynamically configure these values.\n // https://docs.sentry.io/platforms/javascript/configuration/sampling/#setting-a-sampling-function\n sampleRate: 1.0,\n replaySampleRate: 1.0,\n replaySampleRateOnError: 1.0,\n },\n },\n });\n\n // Global kill switch.\n const observabilityDisabled = await isObservabilityDisabled(namespace);\n if (observabilityDisabled) {\n observability.setMode('disabled');\n log.info('observability disabled');\n return observability;\n }\n\n try {\n const getIPData = async (config: Config): Promise<IPData | void> => {\n const IP_DATA_CACHE_TIMEOUT = 6 * 60 * 60 * 1000; // 6 hours\n type CachedIPData = {\n data: IPData;\n timestamp: number;\n };\n\n // Check cache first.\n const cachedData: null | CachedIPData = await localForage.getItem('dxos:observability:ipdata');\n if (cachedData && cachedData.timestamp > Date.now() - IP_DATA_CACHE_TIMEOUT) {\n return cachedData.data;\n }\n\n // Fetch data if not cached.\n const IPDATA_API_KEY = config.get('runtime.app.env.DX_IPDATA_API_KEY');\n if (IPDATA_API_KEY) {\n return fetch(`https://api.ipdata.co?api-key=${IPDATA_API_KEY}`)\n .then((res) => res.json())\n .then((data) => {\n // Cache data.\n localForage\n .setItem('dxos:observability:ipdata', {\n data,\n timestamp: Date.now(),\n })\n .catch((err) => observability.captureException(err));\n\n return data;\n })\n .catch((err) => observability.captureException(err));\n }\n };\n\n // TODO(nf): plugin state?\n // TODO(nf): should provide capability to init Sentry earlier in booting process to capture errors during initialization.\n\n await observability.initialize();\n observability.startErrorLogs();\n\n const ipData = await getIPData(config);\n ipData && observability.setIPDataTelemetryTags(ipData);\n\n if (typeof navigator !== 'undefined' && navigator.storage?.estimate) {\n // TODO(burdon): Need to close.\n setInterval(async () => {\n try {\n const storageEstimate = await navigator.storage.estimate();\n storageEstimate.usage && observability.setTag('storageUsage', storageEstimate.usage.toString(), 'telemetry');\n storageEstimate.quota && observability.setTag('storageQuota', storageEstimate.quota.toString(), 'telemetry');\n } catch (error) {\n log.warn('Failed to run estimate()', error);\n }\n }, 10_000);\n }\n } catch (err: any) {\n log.error('Failed to initialize app observability', err);\n }\n\n return observability;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\nimport { existsSync, statSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport yaml from 'js-yaml';\nimport { v4 as uuid, validate as validateUuid } from 'uuid';\n\nimport type { Config } from '@dxos/client';\nimport { log } from '@dxos/log';\n\nimport { type Mode, Observability } from '../observability';\n\n/**\n * Print observability banner once per installation.\n */\nexport const showObservabilityBanner = async (configDir: string, bannercb: (input: string) => void) => {\n const path = join(configDir, '.observability-banner-printed');\n if (existsSync(path)) {\n return;\n }\n bannercb(\n // eslint-disable-next-line no-multi-str\n 'Basic observability data will be sent to the DXOS team in order to improve the product. This includes \\\n performance metrics, error logs, and usage data. No personally identifiable information, other than your \\\n public key, is included with this data and no private data ever leaves your devices. To disable sending \\\n observability data, set the environment variable DX_DISABLE_OBSERVABILITY=true.',\n );\n\n await writeFile(path, '', 'utf-8');\n};\n\nexport const getObservabilityState = async (configDir: string): Promise<PersistentObservabilityState> => {\n // check whether configDir exists and if it's a directory\n\n if (existsSync(configDir)) {\n if (!statSync(configDir).isDirectory()) {\n throw new Error(`Config directory ${configDir} exists but is not a directory`);\n }\n } else {\n await mkdir(configDir, { recursive: true });\n }\n\n const idPath = join(configDir, 'observability.yml');\n if (existsSync(idPath)) {\n const context = await readFile(idPath, 'utf-8');\n return validate(context) ?? initializeState(idPath);\n }\n\n return initializeState(idPath);\n};\n\nexport type PersistentObservabilityState = {\n installationId: string;\n group?: string;\n mode: Mode;\n};\n\n// create initial state and write to file, using environment variables to override defaults.\nconst initializeState = async (idPath: string): Promise<PersistentObservabilityState> => {\n // TODO(nf): read initial values from config or seed file\n const observabilityState = {\n installationId: uuid(),\n group: process.env.DX_OBSERVABILITY_GROUP ?? undefined,\n mode: (process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : (process.env.DX_OBSERVABILITY_MODE ?? 'basic')) as Mode,\n };\n\n await writeFile(\n idPath,\n '# This file is automatically generated by the @dxos/cli.\\n' + yaml.dump(observabilityState),\n 'utf-8',\n );\n\n return observabilityState;\n};\n\nconst validate = (contextString: string) => {\n const context = yaml.load(contextString) as PersistentObservabilityState;\n if (Boolean(context.installationId) && validateUuid(context.installationId!)) {\n return {\n ...context,\n mode: process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : (context.mode ?? 'basic'),\n };\n }\n};\n\nexport type NodeObservabilityOptions = {\n installationId: string;\n group?: string;\n namespace: string;\n version: string;\n config: Config;\n mode?: Mode;\n tracingEnable?: boolean;\n replayEnable?: boolean;\n // TODO(nf): options for providers?\n};\n\nexport const initializeNodeObservability = async ({\n namespace,\n version,\n config,\n installationId,\n group,\n mode = 'basic',\n tracingEnable = true,\n replayEnable = true,\n}: NodeObservabilityOptions): Promise<Observability> => {\n log('initializeCliObservability', { config });\n\n // TODO(nf): make CLI build populate runtime.app.build config?\n const release = `${namespace}@${version}`;\n const environment = process.env.DX_ENVIRONMENT ?? 'unknown';\n\n const observability = new Observability({\n mode,\n namespace,\n release,\n environment,\n group,\n errorLog: {\n sentryInitOptions: {\n environment,\n release,\n // TODO(wittjosiah): Configure this.\n sampleRate: 1.0,\n },\n },\n });\n\n observability.setTag('installationId', installationId);\n\n // TODO(nf): cache ipdata to avoid repeated requests\n const IPDATA_API_KEY = config.get('runtime.app.env.DX_IPDATA_API_KEY');\n try {\n const res = await fetch(`https://api.ipdata.co/?api-key=${IPDATA_API_KEY}`);\n const ipData = await res.json();\n ipData && observability.setIPDataTelemetryTags(ipData);\n } catch (err) {\n observability?.captureException(err);\n }\n\n return observability;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\n\nimport { type Observability } from '../observability';\n\nimport { getTelemetryIdentity } from './common';\n\nlet lastFocusEvent = new Date();\nlet totalTime = 0;\n\nexport const setupTelemetryListeners = (namespace: string, client: Client, observability: Observability) => {\n const clickCallback = (event: Event) => {\n const id = (event.target as HTMLElement)?.id;\n if (!id) {\n return;\n }\n\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'window.click',\n properties: {\n id: (event.target as HTMLElement)?.id,\n path: (event.composedPath() as HTMLElement[])\n .filter((el) => Boolean(el.tagName))\n .map((el) => `${el.tagName.toLowerCase()}${el.id ? `#${el.id}` : ''}`)\n .reverse()\n .join('>'),\n },\n });\n });\n };\n\n const focusCallback = () => {\n const now = new Date();\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'window.focus',\n properties: {\n timeAway: now.getTime() - lastFocusEvent.getTime(),\n },\n });\n });\n\n lastFocusEvent = now;\n };\n\n const blurCallback = () => {\n const now = new Date();\n const duration = now.getTime() - lastFocusEvent.getTime();\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'window.blur',\n properties: {\n duration,\n },\n });\n });\n\n lastFocusEvent = now;\n totalTime = totalTime + duration;\n };\n\n const unloadCallback = () => {\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'page.unload',\n properties: {\n duration: totalTime,\n },\n });\n });\n };\n\n const errorCallback = (event: ErrorEvent) => {\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'window.error',\n properties: {\n message: event.message,\n filename: event.filename,\n stack: (event.error as Error)?.stack,\n cause: (event.error as Error)?.cause,\n },\n });\n });\n };\n\n window.addEventListener('click', clickCallback, true);\n window.addEventListener('focus', focusCallback);\n window.addEventListener('blur', blurCallback);\n window.addEventListener('beforeunload', unloadCallback);\n window.addEventListener('error', errorCallback);\n\n return () => {\n window.removeEventListener('click', clickCallback, true);\n window.removeEventListener('focus', focusCallback);\n window.removeEventListener('blur', blurCallback);\n window.removeEventListener('beforeunload', unloadCallback);\n window.removeEventListener('error', errorCallback);\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["localForage", "log", "OBSERVABILITY_DISABLED_KEY", "OBSERVABILITY_GROUP_KEY", "isObservabilityDisabled", "namespace", "getItem", "err", "catch", "storeObservabilityDisabled", "value", "setItem", "String", "getObservabilityGroup", "undefined", "storeObservabilityGroup", "initializeAppObservability", "config", "mode", "tracingEnable", "replayEnable", "group", "release", "get", "environment", "Observability", "observability", "errorLog", "sentryInitOptions", "tracing", "replay", "sampleRate", "replaySampleRate", "replaySampleRateOnError", "observabilityDisabled", "setMode", "info", "getIPData", "IP_DATA_CACHE_TIMEOUT", "cachedData", "timestamp", "Date", "now", "data", "IPDATA_API_KEY", "fetch", "then", "res", "json", "captureException", "initialize", "startErrorLogs", "ipData", "setIPDataTelemetryTags", "navigator", "storage", "estimate", "setInterval", "storageEstimate", "usage", "setTag", "toString", "quota", "error", "warn", "existsSync", "statSync", "mkdir", "readFile", "writeFile", "join", "yaml", "v4", "uuid", "validate", "validateUuid", "log", "showObservabilityBanner", "configDir", "bannercb", "path", "join", "existsSync", "writeFile", "getObservabilityState", "statSync", "isDirectory", "Error", "mkdir", "recursive", "idPath", "context", "readFile", "validate", "initializeState", "observabilityState", "installationId", "uuid", "group", "process", "env", "DX_OBSERVABILITY_GROUP", "undefined", "mode", "DX_DISABLE_OBSERVABILITY", "DX_OBSERVABILITY_MODE", "yaml", "dump", "contextString", "load", "Boolean", "validateUuid", "initializeNodeObservability", "namespace", "version", "config", "tracingEnable", "replayEnable", "log", "release", "environment", "DX_ENVIRONMENT", "observability", "Observability", "errorLog", "sentryInitOptions", "sampleRate", "setTag", "IPDATA_API_KEY", "get", "res", "fetch", "ipData", "json", "setIPDataTelemetryTags", "err", "captureException", "lastFocusEvent", "Date", "totalTime", "setupTelemetryListeners", "namespace", "client", "observability", "clickCallback", "event", "id", "target", "setTimeout", "track", "getTelemetryIdentity", "action", "properties", "path", "composedPath", "filter", "el", "Boolean", "tagName", "map", "toLowerCase", "reverse", "join", "focusCallback", "now", "timeAway", "getTime", "blurCallback", "duration", "unloadCallback", "errorCallback", "message", "filename", "stack", "error", "cause", "window", "addEventListener", "removeEventListener"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"src/segment/types.ts":{"bytes":2514,"imports":[],"format":"esm"},"src/segment/base.ts":{"bytes":5273,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/sentry/browser.ts":{"bytes":15796,"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"format":"esm"},"src/sentry/index.ts":{"bytes":492,"imports":[{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/segment/browser.ts":{"bytes":7581,"imports":[{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/base.ts","kind":"import-statement","original":"./base"},{"path":"src/sentry/index.ts","kind":"import-statement","original":"../sentry"}],"format":"esm"},"src/segment/index.ts":{"bytes":534,"imports":[{"path":"src/segment/browser.ts","kind":"import-statement","original":"./node"},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/otel/otel.ts":{"bytes":1907,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"src/otel/logs.ts":{"bytes":10964,"imports":[{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/metrics.ts":{"bytes":14185,"imports":[{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/traces-browser.ts":{"bytes":8203,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/otel/index.ts":{"bytes":699,"imports":[{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"src/otel/traces-browser.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"src/sentry/sentry-log-processor.ts":{"bytes":20520,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/observability.ts":{"bytes":76912,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"src/helpers/browser-observability.ts":{"bytes":20089,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"src/helpers/common.ts":{"bytes":3121,"imports":[],"format":"esm"},"src/helpers/node-observability.ts":{"bytes":14183,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"src/helpers/map-spaces.ts":{"bytes":6364,"imports":[],"format":"esm"},"src/helpers/setup-telemetry-listeners.ts":{"bytes":10339,"imports":[{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"src/helpers/index.ts":{"bytes":917,"imports":[{"path":"src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-UG3VTDOH.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":950},"dist/lib/browser/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/segment/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":226},"dist/lib/browser/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/sentry/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":380},"dist/lib/browser/otel-IRDZ7PES.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18016},"dist/lib/browser/otel-IRDZ7PES.mjs":{"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"src/otel/index.ts","inputs":{"src/otel/otel.ts":{"bytesInOutput":229},"src/otel/index.ts":{"bytesInOutput":0},"src/otel/logs.ts":{"bytesInOutput":2448},"src/otel/metrics.ts":{"bytesInOutput":3515},"src/otel/traces-browser.ts":{"bytesInOutput":2315}},"bytes":8715},"dist/lib/browser/sentry-log-processor-N3QNOQ2O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10615},"dist/lib/browser/sentry-log-processor-N3QNOQ2O.mjs":{"imports":[{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SentryLogProcessor"],"entryPoint":"src/sentry/sentry-log-processor.ts","inputs":{"src/sentry/sentry-log-processor.ts":{"bytesInOutput":4889}},"bytes":5110},"dist/lib/browser/observability-7LFMAZBF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/observability-7LFMAZBF.mjs":{"imports":[{"path":"dist/lib/browser/chunk-UG3VTDOH.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":229},"dist/lib/browser/chunk-UG3VTDOH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64521},"dist/lib/browser/chunk-UG3VTDOH.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/browser/observability-7LFMAZBF.mjs","kind":"dynamic-import"},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/browser/otel-IRDZ7PES.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-IRDZ7PES.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry-log-processor-N3QNOQ2O.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-IRDZ7PES.mjs","kind":"dynamic-import"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"inputs":{"src/observability.ts":{"bytesInOutput":19454},"src/cli-observability-secrets.json":{"bytesInOutput":625},"src/helpers/browser-observability.ts":{"bytesInOutput":5032},"src/helpers/index.ts":{"bytesInOutput":0},"src/helpers/common.ts":{"bytesInOutput":324},"src/helpers/node-observability.ts":{"bytesInOutput":3432},"src/helpers/map-spaces.ts":{"bytesInOutput":1192},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542}},"bytes":33369},"dist/lib/browser/chunk-MWTIKIBZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7711},"dist/lib/browser/chunk-MWTIKIBZ.mjs":{"imports":[{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"},{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry","TelemetryEvent"],"inputs":{"src/segment/browser.ts":{"bytesInOutput":1946},"src/segment/base.ts":{"bytesInOutput":1083},"src/segment/types.ts":{"bytesInOutput":180},"src/segment/index.ts":{"bytesInOutput":0}},"bytes":3489},"dist/lib/browser/chunk-5ICT2XF2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/chunk-5ICT2XF2.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":44},"dist/lib/browser/chunk-YEPQFAES.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7321},"dist/lib/browser/chunk-YEPQFAES.mjs":{"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"src/sentry/browser.ts":{"bytesInOutput":4063}},"bytes":4286}}}
1
+ {"inputs":{"src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"src/sentry/browser.ts":{"bytes":15836,"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"format":"esm"},"src/sentry/index.ts":{"bytes":492,"imports":[{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/segment/types.ts":{"bytes":2514,"imports":[],"format":"esm"},"src/segment/base.ts":{"bytes":5279,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/segment/browser.ts":{"bytes":7595,"imports":[{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/sentry/index.ts","kind":"import-statement","original":"../sentry"},{"path":"src/segment/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"src/segment/index.ts":{"bytes":534,"imports":[{"path":"src/segment/browser.ts","kind":"import-statement","original":"./node"},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/otel/otel.ts":{"bytes":1907,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"src/otel/logs.ts":{"bytes":10897,"imports":[{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/metrics.ts":{"bytes":13918,"imports":[{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/traces-browser.ts":{"bytes":8399,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/otel/index.ts":{"bytes":699,"imports":[{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"src/otel/traces-browser.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"src/sentry/sentry-log-processor.ts":{"bytes":20528,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/observability.ts":{"bytes":76912,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"src/helpers/browser-observability.ts":{"bytes":20089,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"src/helpers/common.ts":{"bytes":3121,"imports":[],"format":"esm"},"src/helpers/node-observability.ts":{"bytes":14187,"imports":[{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"src/helpers/map-spaces.ts":{"bytes":6397,"imports":[],"format":"esm"},"src/helpers/setup-telemetry-listeners.ts":{"bytes":10343,"imports":[{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"src/helpers/index.ts":{"bytes":917,"imports":[{"path":"src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"dist/lib/browser/otel/traces-browser.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/otel/traces-browser.mjs":{"imports":[{"path":"dist/lib/browser/chunk-VL6LVQPU.mjs","kind":"import-statement"}],"exports":["OtelTraces"],"entryPoint":"src/otel/traces-browser.ts","inputs":{},"bytes":123},"dist/lib/browser/otel-DI4ASU7Y.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13954},"dist/lib/browser/otel-DI4ASU7Y.mjs":{"imports":[{"path":"dist/lib/browser/chunk-VL6LVQPU.mjs","kind":"import-statement"},{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"src/otel/index.ts","inputs":{"src/otel/otel.ts":{"bytesInOutput":229},"src/otel/index.ts":{"bytesInOutput":0},"src/otel/logs.ts":{"bytesInOutput":2459},"src/otel/metrics.ts":{"bytesInOutput":3582}},"bytes":6501},"dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10607},"dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs":{"imports":[{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SentryLogProcessor"],"entryPoint":"src/sentry/sentry-log-processor.ts","inputs":{"src/sentry/sentry-log-processor.ts":{"bytesInOutput":4751}},"bytes":4972},"dist/lib/browser/observability-XK652NZG.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/observability-XK652NZG.mjs":{"imports":[{"path":"dist/lib/browser/chunk-JJQT5TQH.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-U6JWT3E2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5LN7D6GM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":260},"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":22463},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-JJQT5TQH.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-U6JWT3E2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5LN7D6GM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"},{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/browser/observability-XK652NZG.mjs","kind":"dynamic-import"},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"src/index.ts","inputs":{"src/helpers/browser-observability.ts":{"bytesInOutput":5032},"src/helpers/node-observability.ts":{"bytesInOutput":3432},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542},"src/index.ts":{"bytesInOutput":0}},"bytes":11805},"dist/lib/browser/chunk-JJQT5TQH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":42201},"dist/lib/browser/chunk-JJQT5TQH.mjs":{"imports":[{"path":"dist/lib/browser/chunk-5LN7D6GM.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"dist/lib/browser/otel-DI4ASU7Y.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-DI4ASU7Y.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-DI4ASU7Y.mjs","kind":"dynamic-import"}],"exports":["Observability","getTelemetryIdentifier","getTelemetryIdentity","mapSpaces"],"inputs":{"src/observability.ts":{"bytesInOutput":19860},"src/cli-observability-secrets.json":{"bytesInOutput":625},"src/helpers/common.ts":{"bytesInOutput":324},"src/helpers/map-spaces.ts":{"bytesInOutput":1201}},"bytes":22348},"dist/lib/browser/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/segment/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-U6JWT3E2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5LN7D6GM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":258},"dist/lib/browser/chunk-U6JWT3E2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/chunk-U6JWT3E2.mjs":{"imports":[],"exports":[],"inputs":{"src/segment/index.ts":{"bytesInOutput":0}},"bytes":44},"dist/lib/browser/segment/browser.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/segment/browser.mjs":{"imports":[{"path":"dist/lib/browser/chunk-5LN7D6GM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry"],"entryPoint":"src/segment/browser.ts","inputs":{},"bytes":192},"dist/lib/browser/segment/node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/segment/node.mjs":{"imports":[{"path":"dist/lib/browser/chunk-5LN7D6GM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry"],"entryPoint":"src/segment/browser.ts","inputs":{},"bytes":189},"dist/lib/browser/chunk-5LN7D6GM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7722},"dist/lib/browser/chunk-5LN7D6GM.mjs":{"imports":[{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"},{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry","TelemetryEvent"],"inputs":{"src/segment/browser.ts":{"bytesInOutput":1948},"src/segment/base.ts":{"bytesInOutput":1097},"src/segment/types.ts":{"bytesInOutput":182}},"bytes":3507},"dist/lib/browser/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/sentry/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":380},"dist/lib/browser/chunk-5ICT2XF2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/chunk-5ICT2XF2.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":44},"dist/lib/browser/sentry/browser.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/sentry/browser.mjs":{"imports":[{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/browser.ts","inputs":{},"bytes":350},"dist/lib/browser/sentry/node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/sentry/node.mjs":{"imports":[{"path":"dist/lib/browser/chunk-O4BG5MRL.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/browser.ts","inputs":{},"bytes":347},"dist/lib/browser/chunk-O4BG5MRL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7349},"dist/lib/browser/chunk-O4BG5MRL.mjs":{"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"src/sentry/browser.ts":{"bytesInOutput":4063}},"bytes":4286},"dist/lib/browser/otel/traces.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/otel/traces.mjs":{"imports":[{"path":"dist/lib/browser/chunk-VL6LVQPU.mjs","kind":"import-statement"}],"exports":["OtelTraces"],"entryPoint":"src/otel/traces-browser.ts","inputs":{},"bytes":115},"dist/lib/browser/chunk-VL6LVQPU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4098},"dist/lib/browser/chunk-VL6LVQPU.mjs":{"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelTraces"],"inputs":{"src/otel/traces-browser.ts":{"bytesInOutput":2281}},"bytes":2381}}}
@@ -0,0 +1,11 @@
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
@@ -0,0 +1,7 @@
1
+ import {
2
+ OtelTraces
3
+ } from "../chunk-VL6LVQPU.mjs";
4
+ export {
5
+ OtelTraces
6
+ };
7
+ //# sourceMappingURL=traces-browser.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import {
2
+ OtelTraces
3
+ } from "../chunk-VL6LVQPU.mjs";
4
+ export {
5
+ OtelTraces
6
+ };
7
+ //# sourceMappingURL=traces.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,5 +1,9 @@
1
+ import {
2
+ OtelTraces
3
+ } from "./chunk-VL6LVQPU.mjs";
4
+
1
5
  // src/otel/otel.ts
2
- import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";
6
+ import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
3
7
  var setDiagLogger = (level) => {
4
8
  const logLevel = DiagLogLevel[level];
5
9
  if (logLevel) {
@@ -10,37 +14,18 @@ var setDiagLogger = (level) => {
10
14
  // src/otel/logs.ts
11
15
  import { SeverityNumber } from "@opentelemetry/api-logs";
12
16
  import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
13
- import { Resource } from "@opentelemetry/resources";
17
+ import { defaultResource, resourceFromAttributes } from "@opentelemetry/resources";
14
18
  import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
15
19
  import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
16
- import { getContextFromEntry, getRelativeFilename, LogLevel } from "@dxos/log";
20
+ import { LogLevel, getContextFromEntry, getRelativeFilename } from "@dxos/log";
17
21
  import { jsonlogify } from "@dxos/util";
18
22
  var OtelLogs = class {
23
+ options;
24
+ _loggerProvider;
19
25
  constructor(options) {
20
26
  this.options = options;
21
- this.logProcessor = (config, entry) => {
22
- const logger = this._loggerProvider.getLogger("dxos-observability", this.options.serviceVersion);
23
- if (entry.level < this.options.logLevel || !this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId) {
24
- return;
25
- }
26
- const record = {
27
- ...entry,
28
- ...entry.meta ? {
29
- meta: {
30
- file: getRelativeFilename(entry.meta.F),
31
- line: entry.meta.L
32
- }
33
- } : {},
34
- context: jsonlogify(getContextFromEntry(entry))
35
- };
36
- logger.emit({
37
- severityNumber: convertLevel(entry.level),
38
- body: JSON.stringify(record),
39
- attributes: this.options.getTags()
40
- });
41
- };
42
27
  setDiagLogger(options.consoleDiagLogLevel);
43
- const resource = Resource.default().merge(new Resource({
28
+ const resource = defaultResource().merge(resourceFromAttributes({
44
29
  [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
45
30
  [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion
46
31
  }));
@@ -52,10 +37,33 @@ var OtelLogs = class {
52
37
  concurrencyLimit: 10
53
38
  });
54
39
  this._loggerProvider = new LoggerProvider({
55
- resource
40
+ resource,
41
+ processors: [
42
+ new BatchLogRecordProcessor(logExporter)
43
+ ]
56
44
  });
57
- this._loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));
58
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
+ };
59
67
  flush() {
60
68
  return this._loggerProvider.forceFlush();
61
69
  }
@@ -82,7 +90,7 @@ var convertLevel = (level) => {
82
90
 
83
91
  // src/otel/metrics.ts
84
92
  import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
85
- import { Resource as Resource2 } from "@opentelemetry/resources";
93
+ import { defaultResource as defaultResource2, resourceFromAttributes as resourceFromAttributes2 } from "@opentelemetry/resources";
86
94
  import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
87
95
  import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME2, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION2 } from "@opentelemetry/semantic-conventions";
88
96
  import { log } from "@dxos/log";
@@ -90,11 +98,13 @@ import { TRACE_PROCESSOR } from "@dxos/tracing";
90
98
  var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/otel/metrics.ts";
91
99
  var EXPORT_INTERVAL = 60 * 1e3;
92
100
  var OtelMetrics = class {
101
+ options;
102
+ _meterProvider;
103
+ _meter;
93
104
  constructor(options) {
94
105
  this.options = options;
95
- this._gauges = /* @__PURE__ */ new Map();
96
106
  setDiagLogger(options.consoleDiagLogLevel);
97
- const resource = Resource2.default().merge(new Resource2({
107
+ const resource = defaultResource2().merge(resourceFromAttributes2({
98
108
  [SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
99
109
  [SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
100
110
  }));
@@ -141,7 +151,7 @@ var OtelMetrics = class {
141
151
  }
142
152
  }, {
143
153
  F: __dxlog_file,
144
- L: 77,
154
+ L: 70,
145
155
  S: this,
146
156
  C: (f, a) => f(...a)
147
157
  });
@@ -161,7 +171,7 @@ var OtelMetrics = class {
161
171
  }
162
172
  }, {
163
173
  F: __dxlog_file,
164
- L: 83,
174
+ L: 76,
165
175
  S: this,
166
176
  C: (f, a) => f(...a)
167
177
  });
@@ -181,7 +191,7 @@ var OtelMetrics = class {
181
191
  }
182
192
  }, {
183
193
  F: __dxlog_file,
184
- L: 89,
194
+ L: 82,
185
195
  S: this,
186
196
  C: (f, a) => f(...a)
187
197
  });
@@ -207,71 +217,10 @@ var convertTags = (data) => {
207
217
  return {};
208
218
  }
209
219
  };
210
-
211
- // src/otel/traces-browser.ts
212
- import { trace } from "@opentelemetry/api";
213
- import { getWebAutoInstrumentations } from "@opentelemetry/auto-instrumentations-web";
214
- import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
215
- import { registerInstrumentations } from "@opentelemetry/instrumentation";
216
- import { Resource as Resource3 } from "@opentelemetry/resources";
217
- import { ConsoleSpanExporter, SimpleSpanProcessor, BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
218
- import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
219
- import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME3, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION3 } from "@opentelemetry/semantic-conventions";
220
- import { log as log2 } from "@dxos/log";
221
- import { TRACE_PROCESSOR as TRACE_PROCESSOR2 } from "@dxos/tracing";
222
- var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/otel/traces-browser.ts";
223
- var OtelTraces = class {
224
- constructor(options) {
225
- this.options = options;
226
- const resource = Resource3.default().merge(new Resource3({
227
- [SEMRESATTRS_SERVICE_NAME3]: this.options.serviceName,
228
- [SEMRESATTRS_SERVICE_VERSION3]: this.options.serviceVersion
229
- }));
230
- const tracerProvider = new WebTracerProvider({
231
- resource
232
- });
233
- tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
234
- tracerProvider.addSpanProcessor(new BatchSpanProcessor(new OTLPTraceExporter({
235
- url: this.options.endpoint + "/v1/traces",
236
- headers: {
237
- Authorization: this.options.authorizationHeader
238
- },
239
- concurrencyLimit: 10
240
- })));
241
- tracerProvider.register({});
242
- this._tracer = trace.getTracer("dxos-observability", this.options.serviceVersion);
243
- }
244
- start() {
245
- registerInstrumentations({
246
- instrumentations: [
247
- getWebAutoInstrumentations()
248
- ]
249
- });
250
- log2("trace processor registered", void 0, {
251
- F: __dxlog_file2,
252
- L: 51,
253
- S: this,
254
- C: (f, a) => f(...a)
255
- });
256
- TRACE_PROCESSOR2.remoteTracing.registerProcessor({
257
- startSpan: (options) => {
258
- log2("begin otel trace", {
259
- options
260
- }, {
261
- F: __dxlog_file2,
262
- L: 54,
263
- S: this,
264
- C: (f, a) => f(...a)
265
- });
266
- return this._tracer.startSpan(options.name, options);
267
- }
268
- });
269
- }
270
- };
271
220
  export {
272
221
  OtelLogs,
273
222
  OtelMetrics,
274
223
  OtelTraces,
275
224
  setDiagLogger
276
225
  };
277
- //# sourceMappingURL=otel-IRDZ7PES.mjs.map
226
+ //# sourceMappingURL=otel-DI4ASU7Y.mjs.map
@@ -0,0 +1,7 @@
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
+ }
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,9 +1,10 @@
1
+ import "../chunk-U6JWT3E2.mjs";
1
2
  import {
2
3
  SegmentTelemetry,
3
4
  TelemetryEvent
4
- } from "../chunk-MWTIKIBZ.mjs";
5
+ } from "../chunk-5LN7D6GM.mjs";
5
6
  import "../chunk-5ICT2XF2.mjs";
6
- import "../chunk-YEPQFAES.mjs";
7
+ import "../chunk-O4BG5MRL.mjs";
7
8
  export {
8
9
  SegmentTelemetry,
9
10
  TelemetryEvent
@@ -0,0 +1,9 @@
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=node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,23 @@
1
+ import {
2
+ addBreadcrumb,
3
+ captureException,
4
+ captureMessage,
5
+ captureUserFeedback,
6
+ init,
7
+ setTag,
8
+ setTags,
9
+ setUser,
10
+ withScope
11
+ } from "../chunk-O4BG5MRL.mjs";
12
+ export {
13
+ addBreadcrumb,
14
+ captureException,
15
+ captureMessage,
16
+ captureUserFeedback,
17
+ init,
18
+ setTag,
19
+ setTags,
20
+ setUser,
21
+ withScope
22
+ };
23
+ //# sourceMappingURL=browser.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -9,7 +9,7 @@ import {
9
9
  setTags,
10
10
  setUser,
11
11
  withScope
12
- } from "../chunk-YEPQFAES.mjs";
12
+ } from "../chunk-O4BG5MRL.mjs";
13
13
  export {
14
14
  addBreadcrumb,
15
15
  captureException,