@dxos/observability 0.8.1-main.ba2dec9 → 0.8.1-staging.31c3ee1

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 (110) hide show
  1. package/dist/lib/browser/chunk-JV7HV5M3.mjs +147 -0
  2. package/dist/lib/browser/chunk-JV7HV5M3.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-RWIBODSU.mjs → chunk-LCUEUKOU.mjs} +155 -107
  4. package/dist/lib/browser/chunk-LCUEUKOU.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-3LKCQYWD.mjs → chunk-WTIK6YHB.mjs} +2 -4
  6. package/dist/lib/browser/{chunk-3LKCQYWD.mjs.map → chunk-WTIK6YHB.mjs.map} +3 -3
  7. package/dist/lib/browser/index.mjs +6 -1
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/observability-ZJBNR5EC.mjs +10 -0
  10. package/dist/lib/browser/segment/index.mjs +7 -81
  11. package/dist/lib/browser/segment/index.mjs.map +4 -4
  12. package/dist/lib/browser/sentry/index.mjs +1 -1
  13. package/dist/lib/browser/{sentry-log-processor-2KNHVHXL.mjs → sentry-log-processor-DVY46HFR.mjs} +2 -2
  14. package/dist/lib/browser/{sentry-log-processor-2KNHVHXL.mjs.map → sentry-log-processor-DVY46HFR.mjs.map} +2 -2
  15. package/dist/lib/node/{chunk-X2D2I2IE.cjs → chunk-TZZPITFA.cjs} +156 -109
  16. package/dist/lib/node/chunk-TZZPITFA.cjs.map +7 -0
  17. package/dist/lib/node/{chunk-HKBUNAUG.cjs → chunk-VJYGUKWI.cjs} +6 -6
  18. package/dist/lib/node/{chunk-HKBUNAUG.cjs.map → chunk-VJYGUKWI.cjs.map} +3 -3
  19. package/dist/lib/node/chunk-XIE7NKDF.cjs +213 -0
  20. package/dist/lib/node/chunk-XIE7NKDF.cjs.map +7 -0
  21. package/dist/lib/node/index.cjs +20 -15
  22. package/dist/lib/node/index.cjs.map +2 -2
  23. package/dist/lib/node/meta.json +1 -1
  24. package/dist/lib/node/{observability-MM62IY7P.cjs → observability-LQYGR6H5.cjs} +9 -6
  25. package/dist/lib/node/observability-LQYGR6H5.cjs.map +7 -0
  26. package/dist/lib/node/segment/index.cjs +6 -136
  27. package/dist/lib/node/segment/index.cjs.map +4 -4
  28. package/dist/lib/node/sentry/index.cjs +10 -10
  29. package/dist/lib/node/sentry/index.cjs.map +1 -1
  30. package/dist/lib/node/{sentry-log-processor-SJZRJ7IS.cjs → sentry-log-processor-XWB4ECU6.cjs} +8 -8
  31. package/dist/lib/node/{sentry-log-processor-SJZRJ7IS.cjs.map → sentry-log-processor-XWB4ECU6.cjs.map} +2 -2
  32. package/dist/lib/node-esm/{chunk-CMDADTM3.mjs → chunk-ANXHKE36.mjs} +3 -3
  33. package/dist/lib/node-esm/{chunk-CMDADTM3.mjs.map → chunk-ANXHKE36.mjs.map} +3 -3
  34. package/dist/lib/node-esm/{chunk-S7JHPCWW.mjs → chunk-HMGFYMJF.mjs} +154 -107
  35. package/dist/lib/node-esm/chunk-HMGFYMJF.mjs.map +7 -0
  36. package/dist/lib/node-esm/chunk-IKCDMDT3.mjs +202 -0
  37. package/dist/lib/node-esm/chunk-IKCDMDT3.mjs.map +7 -0
  38. package/dist/lib/node-esm/index.mjs +6 -1
  39. package/dist/lib/node-esm/meta.json +1 -1
  40. package/dist/lib/node-esm/observability-KDS7YGCQ.mjs +11 -0
  41. package/dist/lib/node-esm/segment/index.mjs +7 -139
  42. package/dist/lib/node-esm/segment/index.mjs.map +4 -4
  43. package/dist/lib/node-esm/sentry/index.mjs +1 -1
  44. package/dist/lib/node-esm/{sentry-log-processor-BVINGAOV.mjs → sentry-log-processor-FO6MIWBC.mjs} +2 -2
  45. package/dist/lib/node-esm/{sentry-log-processor-BVINGAOV.mjs.map → sentry-log-processor-FO6MIWBC.mjs.map} +2 -2
  46. package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
  47. package/dist/types/src/helpers/browser-observability.js +15 -14
  48. package/dist/types/src/helpers/browser-observability.js.map +1 -1
  49. package/dist/types/src/helpers/common.d.ts +3 -1
  50. package/dist/types/src/helpers/common.d.ts.map +1 -1
  51. package/dist/types/src/helpers/common.js +4 -0
  52. package/dist/types/src/helpers/common.js.map +1 -1
  53. package/dist/types/src/helpers/node-observability.d.ts.map +1 -1
  54. package/dist/types/src/helpers/node-observability.js +2 -2
  55. package/dist/types/src/helpers/node-observability.js.map +1 -1
  56. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts +1 -1
  57. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +1 -1
  58. package/dist/types/src/helpers/setup-telemetry-listeners.js +38 -36
  59. package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
  60. package/dist/types/src/observability.d.ts +30 -25
  61. package/dist/types/src/observability.d.ts.map +1 -1
  62. package/dist/types/src/observability.js +61 -39
  63. package/dist/types/src/observability.js.map +1 -1
  64. package/dist/types/src/segment/base.d.ts +15 -0
  65. package/dist/types/src/segment/base.d.ts.map +1 -0
  66. package/dist/types/src/segment/base.js +50 -0
  67. package/dist/types/src/segment/base.js.map +1 -0
  68. package/dist/types/src/segment/browser.d.ts +10 -5
  69. package/dist/types/src/segment/browser.d.ts.map +1 -1
  70. package/dist/types/src/segment/browser.js +27 -25
  71. package/dist/types/src/segment/browser.js.map +1 -1
  72. package/dist/types/src/segment/node.d.ts +10 -14
  73. package/dist/types/src/segment/node.d.ts.map +1 -1
  74. package/dist/types/src/segment/node.js +26 -29
  75. package/dist/types/src/segment/node.js.map +1 -1
  76. package/dist/types/src/segment/types.d.ts +39 -11
  77. package/dist/types/src/segment/types.d.ts.map +1 -1
  78. package/dist/types/src/segment/types.js +14 -0
  79. package/dist/types/src/segment/types.js.map +1 -1
  80. package/dist/types/src/sentry/browser.d.ts +1 -1
  81. package/dist/types/src/sentry/browser.d.ts.map +1 -1
  82. package/dist/types/src/sentry/browser.js +2 -2
  83. package/dist/types/src/sentry/browser.js.map +1 -1
  84. package/dist/types/src/sentry/node.d.ts +1 -1
  85. package/dist/types/src/sentry/node.d.ts.map +1 -1
  86. package/dist/types/src/sentry/node.js +2 -2
  87. package/dist/types/src/sentry/node.js.map +1 -1
  88. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
  89. package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
  90. package/package.json +15 -15
  91. package/src/helpers/browser-observability.ts +13 -17
  92. package/src/helpers/common.ts +15 -2
  93. package/src/helpers/node-observability.ts +3 -2
  94. package/src/helpers/setup-telemetry-listeners.ts +39 -41
  95. package/src/observability.ts +101 -64
  96. package/src/segment/base.ts +69 -0
  97. package/src/segment/browser.ts +28 -29
  98. package/src/segment/node.ts +30 -33
  99. package/src/segment/types.ts +39 -9
  100. package/src/sentry/browser.ts +2 -2
  101. package/src/sentry/node.ts +2 -2
  102. package/src/sentry/sentry-log-processor.ts +3 -0
  103. package/dist/lib/browser/chunk-RWIBODSU.mjs.map +0 -7
  104. package/dist/lib/browser/observability-VEOITBLM.mjs +0 -7
  105. package/dist/lib/node/chunk-X2D2I2IE.cjs.map +0 -7
  106. package/dist/lib/node/observability-MM62IY7P.cjs.map +0 -7
  107. package/dist/lib/node-esm/chunk-S7JHPCWW.mjs.map +0 -7
  108. package/dist/lib/node-esm/observability-OLS7SWZT.mjs +0 -8
  109. /package/dist/lib/browser/{observability-VEOITBLM.mjs.map → observability-ZJBNR5EC.mjs.map} +0 -0
  110. /package/dist/lib/node-esm/{observability-OLS7SWZT.mjs.map → observability-KDS7YGCQ.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/observability.ts", "../../../src/cli-observability-secrets.json", "../../../src/helpers/browser-observability.ts", "../../../src/helpers/common.ts", "../../../src/helpers/node-observability.ts", "../../../src/helpers/map-spaces.ts", "../../../src/helpers/setup-telemetry-listeners.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Event, scheduleTaskInterval } from '@dxos/async';\nimport { PublicKey, type Client, type Config } from '@dxos/client';\nimport { type ClientServices, type Space } from '@dxos/client-protocol';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log, LogLevel } from '@dxos/log';\nimport { ConnectionState } from '@dxos/network-manager';\nimport { DeviceKind, type NetworkStatus, Platform } from '@dxos/protocols/proto/dxos/client/services';\nimport { isNode } from '@dxos/util';\n\nimport buildSecrets from './cli-observability-secrets.json';\nimport { getTelemetryIdentity, type IPData, mapSpaces } from './helpers';\nimport { type OtelLogs, type OtelMetrics, type OtelTraces } from './otel';\nimport { type SegmentTelemetry, type TrackOptions, type PageOptions, TelemetryEvent } from './segment';\nimport { type InitOptions, type captureException as SentryCaptureException } from './sentry';\nimport { type SentryLogProcessor } from './sentry/sentry-log-processor';\n\nconst SPACE_METRICS_MIN_INTERVAL = 1000 * 60; // 1 minute\nconst SPACE_TELEMETRY_MIN_INTERVAL = 1000 * 60 * 60; // 1 hour\nconst NETWORK_METRICS_MIN_INTERVAL = 1000 * 60 * 5; // 5 minutes\n\n// Secrets? EnvironmentConfig?\n\nexport type ObservabilitySecrets = {\n DX_ENVIRONMENT: string | null;\n DX_RELEASE: string | null;\n SENTRY_DESTINATION: string | null;\n TELEMETRY_API_KEY: string | null;\n IPDATA_API_KEY: string | null;\n OTEL_ENDPOINT: string | null;\n OTEL_AUTHORIZATION: string | null;\n};\n\nexport type TagScope = 'errors' | 'telemetry' | 'metrics' | 'all';\n\n/** Gathering mode. */\nexport type Mode = 'basic' | 'full' | 'disabled';\n\nexport type ObservabilityOptions = {\n mode: Mode;\n\n /** Environment. */\n environment?: string;\n\n /** Application namespace. */\n namespace: string;\n\n /** Application release. */\n release?: string;\n\n /** User group. */\n group?: string;\n\n config?: Config;\n secrets?: Record<string, string>;\n\n telemetry?: {\n batchSize?: number;\n };\n\n errorLog?: {\n sentryInitOptions?: InitOptions;\n };\n};\n\n/*\n * Observability provides a common interface for error logging, metrics, and telemetry.\n * It currently provides these capabilities using Sentry, OpenTelemetry, and Segment.\n *\n * Segment:\n * https://app.segment.com/dxos/sources/composer-app/debugger\n * https://app.segment.com/dxos/sources/composer-app/settings/keys\n *\n * NOTE:\n * - Segment maintains a set of admin creates Source (e.g., \"composer-app\").\n * - Each source has at least one API_KEY, which is used by the client.\n *\n * Testing:\n * https://app.segment.com/dxos/sources/composer-app/settings/keys\n * - DX_TELEMETRY_API_KEY\n * - DX_SENTRY_DESTINATION\n *\n * Sentry:\n * https://sentry.io/organizations/dxos/issues\n *\n * OpenTelemetry:\n * https://dxosorg.grafana.net/explore\n */\nexport class Observability {\n private _mode: Mode;\n private readonly _namespace: string;\n private readonly _config?: Config;\n private readonly _group?: string;\n private readonly _secrets: ObservabilitySecrets;\n private readonly _tags = new Map<string, { value: string; scope: TagScope }>();\n\n // TODO(wittjosiah): Generic metrics interface.\n private _otelMetrics?: OtelMetrics;\n private _otelTraces?: OtelTraces;\n // TODO(wittjosiah): Generic telemetry interface.\n private _telemetryBatchSize: number;\n private _telemetry?: SegmentTelemetry;\n // TODO(wittjosiah): Generic error logging interface.\n private _sentryLogProcessor?: SentryLogProcessor;\n private _otelLogs?: OtelLogs;\n private _errorReportingOptions?: InitOptions;\n private _captureException?: typeof SentryCaptureException;\n private _captureUserFeedback?: (message: string) => Promise<void>;\n private _lastNetworkStatus?: NetworkStatus;\n\n private _ctx = new Context();\n\n // TODO(nf): make platform a required extension?\n constructor({\n mode,\n namespace,\n environment,\n release,\n config,\n group,\n secrets,\n telemetry,\n errorLog,\n }: ObservabilityOptions) {\n this._mode = mode;\n this._namespace = namespace;\n this._config = config;\n this._group = group;\n this._secrets = this._loadSecrets(config, secrets);\n\n this._telemetryBatchSize = telemetry?.batchSize ?? 30;\n this._errorReportingOptions = errorLog?.sentryInitOptions;\n\n // Tags.\n this.setTag('mode', this._mode);\n this.setTag('namespace', this._namespace);\n this.setTag('environment', environment);\n this.setTag('release', release);\n this.setTag('session', PublicKey.random().toHex());\n this.setTag('group', this._group);\n }\n\n get mode() {\n return this._mode;\n }\n\n get group() {\n return this._group;\n }\n\n get enabled() {\n return this._mode !== 'disabled';\n }\n\n private _loadSecrets(config: Config | undefined, secrets?: Record<string, string>) {\n if (isNode()) {\n const mergedSecrets = {\n ...(buildSecrets as ObservabilitySecrets),\n ...secrets,\n };\n\n process.env.DX_ENVIRONMENT && (mergedSecrets.DX_ENVIRONMENT = process.env.DX_ENVIRONMENT);\n process.env.DX_RELEASE && (mergedSecrets.DX_RELEASE = process.env.DX_RELEASE);\n process.env.SENTRY_DESTINATION && (mergedSecrets.SENTRY_DESTINATION = process.env.SENTRY_DESTINATION);\n process.env.TELEMETRY_API_KEY && (mergedSecrets.TELEMETRY_API_KEY = process.env.TELEMETRY_API_KEY);\n process.env.IPDATA_API_KEY && (mergedSecrets.IPDATA_API_KEY = process.env.IPDATA_API_KEY);\n process.env.DX_OTEL_ENDPOINT && (mergedSecrets.OTEL_ENDPOINT = process.env.DX_OTEL_ENDPOINT);\n process.env.DX_OTEL_AUTHORIZATION && (mergedSecrets.OTEL_AUTHORIZATION = process.env.DX_OTEL_AUTHORIZATION);\n\n return mergedSecrets;\n } else {\n log('config', { rtc: this._secrets, config });\n return {\n DX_ENVIRONMENT: config?.get('runtime.app.env.DX_ENVIRONMENT'),\n DX_RELEASE: config?.get('runtime.app.env.DX_RELEASE'),\n SENTRY_DESTINATION: config?.get('runtime.app.env.DX_SENTRY_DESTINATION'),\n TELEMETRY_API_KEY: config?.get('runtime.app.env.DX_TELEMETRY_API_KEY'),\n IPDATA_API_KEY: config?.get('runtime.app.env.DX_IPDATA_API_KEY'),\n OTEL_ENDPOINT: config?.get('runtime.app.env.DX_OTEL_ENDPOINT'),\n OTEL_AUTHORIZATION: config?.get('runtime.app.env.DX_OTEL_AUTHORIZATION'),\n ...secrets,\n };\n }\n }\n\n async initialize() {\n log('initializing...');\n await this._initLogs();\n await this._initMetrics();\n await this._initTelemetry();\n await this._initErrorLogs();\n await this._initTraces();\n }\n\n async close() {\n log('closing...');\n const closes: Promise<void>[] = [];\n this._telemetry && closes.push(this._telemetry.close());\n this._otelMetrics && closes.push(this._otelMetrics.close());\n this._otelLogs && closes.push(this._otelLogs.close());\n\n await Promise.all(closes);\n await this._ctx.dispose();\n }\n\n setMode(mode: Mode) {\n this._mode = mode;\n }\n\n //\n // Tags\n //\n\n /** Callback (e.g., to share tags with Sentry.) */\n private _setTag?: (key: string, value: string) => void;\n\n /**\n * camelCase keys are converted to snake_case in Segment.\n */\n setTag(key: string, value: string | undefined, scope?: TagScope) {\n if (value === undefined) {\n return;\n }\n if (this.enabled && (scope === undefined || scope === 'all' || scope === 'errors')) {\n this._setTag?.(key, value);\n }\n if (!scope) {\n scope = 'all';\n }\n\n this._tags.set(key, { value, scope });\n }\n\n getTag(key: string) {\n return this._tags.get(key);\n }\n\n // TODO(wittjosiah): Improve privacy of telemetry identifiers. See `getTelemetryIdentifier`.\n async setIdentityTags(clientServices: Partial<ClientServices>) {\n if (clientServices.IdentityService) {\n clientServices.IdentityService.queryIdentity().subscribe((idqr) => {\n if (!idqr?.identity?.did) {\n log('empty response from identity service', { idqr });\n return;\n }\n\n this.setTag('did', idqr.identity.did);\n this._telemetry?.identify({ userId: idqr.identity.did });\n });\n }\n\n if (clientServices.DevicesService) {\n clientServices.DevicesService.queryDevices().subscribe((dqr) => {\n if (!dqr || !dqr.devices || dqr.devices.length === 0) {\n log('empty response from device service', { device: dqr });\n return;\n }\n\n invariant(dqr, 'empty response from device service');\n const thisDevice = dqr.devices.find((device) => device.kind === DeviceKind.CURRENT);\n if (!thisDevice) {\n log('no current device', { device: dqr });\n return;\n }\n\n this.setTag('deviceKey', thisDevice.deviceKey.truncate());\n if (thisDevice.profile?.label) {\n this.setTag('deviceProfile', thisDevice.profile.label);\n }\n });\n }\n }\n\n setIPDataTelemetryTags = (ipData: IPData) => {\n this.setTag('city', ipData.city, 'telemetry');\n this.setTag('region', ipData.region, 'telemetry');\n this.setTag('country', ipData.country, 'telemetry');\n ipData.latitude && this.setTag('latitude', ipData.latitude.toString(), 'telemetry');\n ipData.longitude && this.setTag('longitude', ipData.longitude.toString(), 'telemetry');\n };\n\n //\n // Logs\n //\n\n private async _initLogs() {\n if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== 'disabled') {\n const { OtelLogs } = await import('./otel');\n this._otelLogs = new OtelLogs({\n endpoint: this._secrets.OTEL_ENDPOINT,\n authorizationHeader: this._secrets.OTEL_AUTHORIZATION,\n serviceName: this._namespace,\n serviceVersion: this.getTag('release')?.value ?? '0.0.0',\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'errors';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n logLevel: LogLevel.VERBOSE,\n includeSharedWorkerLogs: false,\n });\n this._otelLogs && log.runtimeConfig.processors.push(this._otelLogs.logProcessor);\n log('otel logs enabled', { namespace: this._namespace });\n } else {\n log('otel logs disabled');\n }\n }\n\n //\n // Metrics\n //\n\n private async _initMetrics() {\n if (this.enabled && this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION) {\n const { OtelMetrics } = await import('./otel');\n this._otelMetrics = new OtelMetrics({\n endpoint: this._secrets.OTEL_ENDPOINT,\n authorizationHeader: this._secrets.OTEL_AUTHORIZATION,\n serviceName: this._namespace,\n serviceVersion: this.getTag('release')?.value ?? '0.0.0',\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'metrics';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n });\n log('otel metrics enabled');\n } else {\n log('otel metrics disabled');\n }\n }\n\n /**\n * Gauge metric.\n *\n * The default implementation uses OpenTelemetry\n */\n gauge(name: string, value: number | any, extraTags?: any) {\n this._otelMetrics?.gauge(name, value, extraTags);\n }\n\n // TODO(nf): Refactor into ObservabilityExtensions.\n\n startNetworkMetrics(clientServices: Partial<ClientServices>) {\n if (!clientServices.NetworkService) {\n return;\n }\n // TODO(nf): support type in debounce()\n const updateSignalMetrics = new Event<NetworkStatus>().debounce(NETWORK_METRICS_MIN_INTERVAL);\n updateSignalMetrics.on(this._ctx, async () => {\n log('send signal metrics');\n (this._lastNetworkStatus?.signaling as NetworkStatus.Signal[])?.forEach(({ server, state }) => {\n this.gauge('dxos.client.network.signal.connectionState', state, { server });\n });\n\n let swarmCount = 0;\n const connectionStates = new Map<string, number>();\n for (const state in ConnectionState) {\n connectionStates.set(state, 0);\n }\n\n let totalReadBufferSize = 0;\n let totalWriteBufferSize = 0;\n let totalChannelBufferSize = 0;\n\n this._lastNetworkStatus?.connectionInfo?.forEach((connectionInfo) => {\n swarmCount++;\n\n for (const conn of connectionInfo.connections ?? []) {\n connectionStates.set(conn.state, (connectionStates.get(conn.state) ?? 0) + 1);\n totalReadBufferSize += conn.readBufferSize ?? 0;\n totalWriteBufferSize += conn.writeBufferSize ?? 0;\n for (const stream of conn.streams ?? []) {\n totalChannelBufferSize += stream.writeBufferSize ?? 0;\n }\n }\n\n this.gauge('dxos.client.network.swarm.count', swarmCount);\n for (const state in ConnectionState) {\n this.gauge('dxos.client.network.connection.count', connectionStates.get(state) ?? 0, { state });\n }\n this.gauge('dxos.client.network.totalReadBufferSize', totalReadBufferSize);\n this.gauge('dxos.client.network.totalWriteBufferSize', totalWriteBufferSize);\n this.gauge('dxos.client.network.totalChannelBufferSize', totalChannelBufferSize);\n });\n });\n\n clientServices.NetworkService.queryStatus().subscribe((networkStatus) => {\n this._lastNetworkStatus = networkStatus;\n updateSignalMetrics.emit();\n });\n\n scheduleTaskInterval(this._ctx, async () => updateSignalMetrics.emit(), NETWORK_METRICS_MIN_INTERVAL);\n }\n\n startSpacesMetrics(client: Client, namespace: string) {\n // TODO(nf): update subscription on new spaces\n const spaces = client.spaces.get();\n const subscriptions = new Map<string, { unsubscribe: () => void }>();\n this._ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));\n\n const updateSpaceMetrics = new Event<Space>().debounce(SPACE_METRICS_MIN_INTERVAL);\n updateSpaceMetrics.on(this._ctx, async () => {\n log('send space metrics');\n for (const data of mapSpaces(spaces, { truncateKeys: true })) {\n this.gauge('dxos.client.space.members', data.members, { key: data.key });\n this.gauge('dxos.client.space.objects', data.objects, { key: data.key });\n this.gauge('dxos.client.space.epoch', data.epoch, { key: data.key });\n this.gauge('dxos.client.space.currentDataMutations', data.currentDataMutations, { key: data.key });\n }\n });\n\n const updateSpaceTelemetry = new Event<Space>().debounce(SPACE_TELEMETRY_MIN_INTERVAL);\n updateSpaceTelemetry.on(this._ctx, async () => {\n log('send space telemetry');\n for (const data of mapSpaces(spaces, { truncateKeys: true })) {\n this.track({\n ...getTelemetryIdentity(client),\n event: TelemetryEvent.METRICS,\n action: 'space.update',\n properties: data,\n });\n }\n });\n\n const subscribeToSpaceUpdate = (space: Space) =>\n space.pipeline.subscribe({\n next: () => {\n updateSpaceMetrics.emit();\n updateSpaceTelemetry.emit();\n },\n });\n\n spaces.forEach((space) => {\n subscriptions.set(space.id, subscribeToSpaceUpdate(space));\n });\n\n client.spaces.subscribe({\n next: async (spaces) => {\n spaces\n .filter((space) => !subscriptions.has(space.id))\n .forEach((space) => {\n subscriptions.set(space.id, subscribeToSpaceUpdate(space));\n });\n },\n });\n\n scheduleTaskInterval(this._ctx, async () => updateSpaceMetrics.emit(), NETWORK_METRICS_MIN_INTERVAL);\n }\n\n async startRuntimeMetrics(client: Client, frequency: number = NETWORK_METRICS_MIN_INTERVAL) {\n const platform = await client.services.services.SystemService?.getPlatform();\n invariant(platform, 'platform is required');\n\n this.setTag('platformType', Platform.PLATFORM_TYPE[platform.type as number].toLowerCase());\n if (this._mode === 'full') {\n if (platform.platform) {\n this.setTag('platform', platform.platform);\n }\n if (platform.arch) {\n this.setTag('arch', platform.arch);\n }\n if (platform.runtime) {\n this.setTag('runtime', platform.runtime);\n }\n }\n\n scheduleTaskInterval(\n this._ctx,\n async () => {\n if (client.services.constructor.name === 'WorkerClientServices') {\n const memory = (window.performance as any).memory;\n if (memory) {\n this.gauge('dxos.client.runtime.heapTotal', memory.totalJSHeapSize);\n this.gauge('dxos.client.runtime.heapUsed', memory.usedJSHeapSize);\n this.gauge('dxos.client.runtime.heapSizeLimit', memory.jsHeapSizeLimit);\n }\n }\n client.services.services.SystemService?.getPlatform()\n .then((platform) => {\n if (platform.memory) {\n this.gauge('dxos.client.services.runtime.rss', platform.memory.rss);\n this.gauge('dxos.client.services.runtime.heapTotal', platform.memory.heapTotal);\n this.gauge('dxos.client.services.runtime.heapUsed', platform.memory.heapUsed);\n }\n })\n .catch((error) => log('platform error', { error }));\n },\n frequency,\n );\n }\n\n //\n // Telemetry\n //\n\n private async _initTelemetry() {\n if (this._secrets.TELEMETRY_API_KEY && this._mode !== 'disabled' && typeof document !== 'undefined') {\n const { SegmentTelemetry } = await import('./segment');\n this._telemetry = new SegmentTelemetry({\n apiKey: this._secrets.TELEMETRY_API_KEY,\n batchSize: this._telemetryBatchSize,\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'telemetry';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n });\n } else {\n log('segment disabled');\n }\n }\n\n /**\n * Submit telemetry page view.\n * The default implementation uses Segment.\n */\n page(options: PageOptions) {\n this._telemetry?.page(options);\n }\n\n /**\n * Submit telemetry user action.\n * The default implementation uses Segment.\n */\n track(options: TrackOptions) {\n this._telemetry?.track(options);\n }\n\n //\n // Error Logs\n //\n\n private async _initErrorLogs() {\n if (this._secrets.SENTRY_DESTINATION && this._mode !== 'disabled') {\n const { captureException, captureUserFeedback, init, setTag } = await import('./sentry');\n const { SentryLogProcessor } = await import('./sentry/sentry-log-processor');\n this._captureException = captureException;\n this._captureUserFeedback = captureUserFeedback;\n this._setTag = setTag;\n\n // TODO(nf): Refactor package into this one?\n log.info('Initializing Sentry', {\n dest: this._secrets.SENTRY_DESTINATION,\n options: this._errorReportingOptions,\n });\n this._sentryLogProcessor = new SentryLogProcessor();\n init({\n ...this._errorReportingOptions,\n destination: this._secrets.SENTRY_DESTINATION,\n scrubFilenames: this._mode !== 'full',\n onError: (event) => this._sentryLogProcessor!.addLogBreadcrumbsTo(event),\n });\n\n // TODO(nf): Set platform at instantiation? needed for node.\n // TODO(nf): Is this different than passing as properties in options?\n this._tags.forEach((v, k) => {\n if (v.scope === 'all' || v.scope === 'errors') {\n setTag(k, v.value);\n }\n });\n } else {\n log('sentry disabled');\n }\n }\n\n startErrorLogs() {\n this._sentryLogProcessor && log.runtimeConfig.processors.push(this._sentryLogProcessor.logProcessor);\n }\n\n startTraces() {\n this._otelTraces && this._otelTraces.start();\n }\n\n // TODO(nf): Refactor init based on providers and their capabilities.\n private async _initTraces() {\n if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== 'disabled') {\n const { OtelTraces } = await import('./otel');\n this._otelTraces = new OtelTraces({\n endpoint: this._secrets.OTEL_ENDPOINT,\n authorizationHeader: this._secrets.OTEL_AUTHORIZATION,\n serviceName: this._namespace,\n serviceVersion: this.getTag('release')?.value ?? '0.0.0',\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'metrics';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n });\n }\n }\n\n /**\n * Manually capture an exception.\n * The default implementation uses Sentry.\n */\n captureException(err: any) {\n if (this.enabled) {\n this._captureException?.(err);\n }\n }\n\n /**\n * Manually capture user feedback.\n * The default implementation uses Sentry.\n */\n captureUserFeedback(message: string) {\n if (!this._secrets.SENTRY_DESTINATION) {\n log.info('Feedback submitted without Sentry destination', { message });\n return;\n }\n\n // TODO(Zan): Should this respect telemetry mode? Sending feedback is explicitly user-initiated.\n // - Maybe if telemetry is disable we shouldn't enable replay.\n // - (Check the browser.ts implementation for reference).\n void this._captureUserFeedback?.(message);\n }\n}\n", "{\n \"SENTRY_DESTINATION\": \"https://2647916221e643869965e78469479aa4@o4504012000067584.ingest.sentry.io/4504012027265029\",\n \"TELEMETRY_API_KEY\": \"B00QG6PtJJrJ0VVFe0H5a6bcUUShKyZM\",\n \"IPDATA_API_KEY\": \"73dfdecdf979c18f07d50cf841bbdd9e589f237256326ac8cca23786\",\n \"OTEL_ENDPOINT\": \"https://otlp-proxy.dxos.workers.dev\",\n \"OTEL_AUTHORIZATION\": \"Basic OTA3MzIzOmdsY19leUp2SWpvaU1URXdNVEl6TnlJc0ltNGlPaUp6ZEdGamF5MDVNRGN6TWpNdGFXNTBaV2R5WVhScGIyNHRZMnh2ZFdSbWJHRnlaUzF2ZEd4d0xYQnliM2g1SWl3aWF5STZJalZ2Tkd4cFYydE5iRmszTlRNMGJUVXpTemRTVjNBeVNpSXNJbTBpT25zaWNpSTZJbkJ5YjJRdGRYTXRaV0Z6ZEMwd0luMTk=\"\n}", "//\n// Copyright 2022 DXOS.org\n//\n\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 { IPData } from './common';\nimport type { Mode, Observability } from '../observability';\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//\n\nimport type { Client } from '@dxos/client';\n\nimport { type IdentityOptions } from '../segment';\n\nexport type IPData = {\n city: string;\n region: string;\n country: string;\n latitude: number;\n longitude: number;\n};\n\n// TODO(wittjosiah): Improve privacy of telemetry identifiers.\n// - Identifier should be generated client-side with no attachment to identity.\n// - Identifier can then be reset by user.\n// - Identifier can be synced via HALO to allow for correlation of events bewteen devices.\n// - Identifier should also be stored outside of HALO such that it is available immediately on startup.\nexport const getTelemetryIdentifier = (client: Client): string | undefined => {\n if (!client?.initialized) {\n return undefined;\n }\n\n const identity = client.halo.identity.get();\n if (identity) {\n return identity.did;\n }\n\n return undefined;\n};\n\nexport const getTelemetryIdentity = (client: Client): IdentityOptions => {\n const did = getTelemetryIdentifier(client);\n return { did };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\nimport yaml from 'js-yaml';\nimport { existsSync, statSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { v4 as uuid, validate as validateUuid } from 'uuid';\n\nimport type { Config } from '@dxos/client';\nimport { log } from '@dxos/log';\n\nimport { Observability, type Mode } 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 2023 DXOS.org\n//\n\nimport type { Space } from '@dxos/client-protocol';\n\nexport type MapSpacesOptions = {\n verbose?: boolean;\n truncateKeys?: boolean;\n};\n\nexport const mapSpaces = (spaces: Space[], options: MapSpacesOptions = { verbose: false, truncateKeys: false }) => {\n return spaces.map((space) => {\n // TODO(burdon): Factor out.\n // TODO(burdon): Agent needs to restart before `ready` is available.\n const { open, ready } = space.internal.data.metrics ?? {};\n const startup = open && ready && ready.getTime() - open.getTime();\n\n // TODO(burdon): Get feeds from client-services if verbose (factor out from devtools/diagnostics).\n // const host = client.services.services.DevtoolsHost!;\n const pipeline = space.internal.data.pipeline;\n const startDataMutations = pipeline?.currentEpoch?.subject.assertion.timeframe.totalMessages() ?? 0;\n const epoch = pipeline?.currentEpoch?.subject.assertion.number;\n // const appliedEpoch = pipeline?.appliedEpoch?.subject.assertion.number;\n const currentDataMutations = pipeline?.currentDataTimeframe?.totalMessages() ?? 0;\n const totalDataMutations = pipeline?.targetDataTimeframe?.totalMessages() ?? 0;\n\n return {\n // TODO(nf): truncate keys for DD?\n key: space.key.truncate(),\n open: space.isOpen,\n members: space.members.get().length,\n objects: space.db.coreDatabase.getAllObjectIds().length,\n startup,\n epoch,\n // appliedEpoch,\n startDataMutations,\n currentDataMutations,\n totalDataMutations,\n\n // TODO(burdon): Negative?\n progress: (\n Math.min(Math.abs((currentDataMutations - startDataMutations) / (totalDataMutations - startDataMutations)), 1) *\n 100\n ).toFixed(0),\n };\n });\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\n\nimport { getTelemetryIdentity } from './common';\nimport { type Observability } from '../observability';\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": ["Event", "scheduleTaskInterval", "PublicKey", "Context", "invariant", "log", "LogLevel", "ConnectionState", "DeviceKind", "Platform", "isNode", "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", "getTelemetryIdentifier", "client", "initialized", "undefined", "identity", "halo", "get", "did", "getTelemetryIdentity", "yaml", "existsSync", "statSync", "mkdir", "readFile", "writeFile", "join", "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", "mapSpaces", "spaces", "options", "verbose", "truncateKeys", "map", "space", "open", "ready", "internal", "data", "metrics", "startup", "getTime", "pipeline", "startDataMutations", "currentEpoch", "subject", "assertion", "timeframe", "totalMessages", "epoch", "number", "currentDataMutations", "currentDataTimeframe", "totalDataMutations", "targetDataTimeframe", "key", "truncate", "isOpen", "members", "get", "length", "objects", "db", "coreDatabase", "getAllObjectIds", "progress", "Math", "min", "abs", "toFixed", "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", "SPACE_METRICS_MIN_INTERVAL", "SPACE_TELEMETRY_MIN_INTERVAL", "NETWORK_METRICS_MIN_INTERVAL", "Observability", "constructor", "mode", "namespace", "environment", "release", "config", "group", "secrets", "telemetry", "errorLog", "_tags", "Map", "_ctx", "Context", "setIPDataTelemetryTags", "ipData", "setTag", "city", "region", "country", "latitude", "toString", "longitude", "_mode", "_namespace", "_config", "_group", "_secrets", "_loadSecrets", "_telemetryBatchSize", "batchSize", "_errorReportingOptions", "sentryInitOptions", "PublicKey", "random", "toHex", "enabled", "isNode", "mergedSecrets", "buildSecrets", "process", "env", "DX_ENVIRONMENT", "DX_RELEASE", "SENTRY_DESTINATION", "TELEMETRY_API_KEY", "IPDATA_API_KEY", "DX_OTEL_ENDPOINT", "OTEL_ENDPOINT", "DX_OTEL_AUTHORIZATION", "OTEL_AUTHORIZATION", "log", "rtc", "get", "initialize", "_initLogs", "_initMetrics", "_initTelemetry", "_initErrorLogs", "_initTraces", "close", "closes", "_telemetry", "push", "_otelMetrics", "_otelLogs", "Promise", "all", "dispose", "setMode", "key", "value", "scope", "undefined", "_setTag", "set", "getTag", "setIdentityTags", "clientServices", "IdentityService", "queryIdentity", "subscribe", "idqr", "identity", "did", "identify", "userId", "DevicesService", "queryDevices", "dqr", "devices", "length", "device", "invariant", "thisDevice", "find", "kind", "DeviceKind", "CURRENT", "deviceKey", "truncate", "profile", "label", "OtelLogs", "endpoint", "authorizationHeader", "serviceName", "serviceVersion", "getTags", "Object", "fromEntries", "Array", "from", "filter", "map", "logLevel", "LogLevel", "VERBOSE", "includeSharedWorkerLogs", "runtimeConfig", "processors", "logProcessor", "OtelMetrics", "gauge", "name", "extraTags", "startNetworkMetrics", "NetworkService", "updateSignalMetrics", "Event", "debounce", "on", "_lastNetworkStatus", "signaling", "forEach", "server", "state", "swarmCount", "connectionStates", "ConnectionState", "totalReadBufferSize", "totalWriteBufferSize", "totalChannelBufferSize", "connectionInfo", "conn", "connections", "readBufferSize", "writeBufferSize", "stream", "streams", "queryStatus", "networkStatus", "emit", "scheduleTaskInterval", "startSpacesMetrics", "client", "spaces", "subscriptions", "onDispose", "subscription", "unsubscribe", "updateSpaceMetrics", "data", "mapSpaces", "truncateKeys", "members", "objects", "epoch", "currentDataMutations", "updateSpaceTelemetry", "track", "getTelemetryIdentity", "event", "TelemetryEvent", "METRICS", "action", "properties", "subscribeToSpaceUpdate", "space", "pipeline", "next", "id", "has", "startRuntimeMetrics", "frequency", "platform", "services", "SystemService", "getPlatform", "Platform", "PLATFORM_TYPE", "type", "toLowerCase", "arch", "runtime", "memory", "window", "performance", "totalJSHeapSize", "usedJSHeapSize", "jsHeapSizeLimit", "then", "rss", "heapTotal", "heapUsed", "catch", "error", "document", "SegmentTelemetry", "apiKey", "page", "options", "captureException", "captureUserFeedback", "init", "SentryLogProcessor", "_captureException", "_captureUserFeedback", "info", "dest", "_sentryLogProcessor", "destination", "scrubFilenames", "onError", "addLogBreadcrumbsTo", "v", "k", "startErrorLogs", "startTraces", "_otelTraces", "start", "OtelTraces", "err", "message"]
7
+ }
@@ -0,0 +1,202 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ captureException
4
+ } from "./chunk-ANXHKE36.mjs";
5
+
6
+ // packages/sdk/observability/src/segment/node.ts
7
+ import { Analytics } from "@segment/analytics-node";
8
+ import { invariant } from "@dxos/invariant";
9
+ import { log as log2 } from "@dxos/log";
10
+
11
+ // packages/sdk/observability/src/segment/base.ts
12
+ import { log } from "@dxos/log";
13
+
14
+ // packages/sdk/observability/src/segment/types.ts
15
+ var TelemetryEvent;
16
+ (function(TelemetryEvent2) {
17
+ TelemetryEvent2["ACTION"] = "action";
18
+ TelemetryEvent2["METRICS"] = "metrics";
19
+ })(TelemetryEvent || (TelemetryEvent = {}));
20
+
21
+ // packages/sdk/observability/src/segment/base.ts
22
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/observability/src/segment/base.ts";
23
+ var getIdentityOptions = ({ did, installationId }) => {
24
+ if (!did && !installationId) {
25
+ log.warn("No telemetry identifier provided.", void 0, {
26
+ F: __dxlog_file,
27
+ L: 23,
28
+ S: void 0,
29
+ C: (f, a) => f(...a)
30
+ });
31
+ }
32
+ return {
33
+ userId: did,
34
+ anonymousId: installationId
35
+ };
36
+ };
37
+ var AbstractSegmentTelemetry = class {
38
+ constructor(_getTags) {
39
+ this._getTags = _getTags;
40
+ }
41
+ createPageProps(options) {
42
+ const { properties, ...rest } = options;
43
+ return {
44
+ ...getIdentityOptions(options),
45
+ ...rest,
46
+ properties: {
47
+ common: this._getTags(),
48
+ custom: properties
49
+ }
50
+ };
51
+ }
52
+ createTrackProps(options) {
53
+ const { event, action, properties, ...rest } = options;
54
+ return {
55
+ ...getIdentityOptions(options),
56
+ ...rest,
57
+ event: event ?? TelemetryEvent.ACTION,
58
+ properties: {
59
+ action,
60
+ common: this._getTags(),
61
+ custom: properties
62
+ }
63
+ };
64
+ }
65
+ };
66
+
67
+ // packages/sdk/observability/src/segment/node.ts
68
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/observability/src/segment/node.ts";
69
+ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
70
+ constructor({ apiKey, batchSize, getTags }) {
71
+ super(getTags);
72
+ try {
73
+ invariant(apiKey, "Missing API key.", {
74
+ F: __dxlog_file2,
75
+ L: 23,
76
+ S: this,
77
+ A: [
78
+ "apiKey",
79
+ "'Missing API key.'"
80
+ ]
81
+ });
82
+ this._analytics = new Analytics({
83
+ writeKey: apiKey,
84
+ flushAt: batchSize
85
+ });
86
+ } catch (err) {
87
+ log2.catch("Failed to initialize telemetry", err, {
88
+ F: __dxlog_file2,
89
+ L: 29,
90
+ S: this,
91
+ C: (f, a) => f(...a)
92
+ });
93
+ }
94
+ }
95
+ identify(options) {
96
+ if (!this._analytics) {
97
+ log2("Analytics not initialized", {
98
+ action: "identify"
99
+ }, {
100
+ F: __dxlog_file2,
101
+ L: 35,
102
+ S: this,
103
+ C: (f, a) => f(...a)
104
+ });
105
+ return;
106
+ }
107
+ try {
108
+ this._analytics.identify(options);
109
+ } catch (err) {
110
+ log2.catch("Failed to identify", err, {
111
+ F: __dxlog_file2,
112
+ L: 42,
113
+ S: this,
114
+ C: (f, a) => f(...a)
115
+ });
116
+ }
117
+ }
118
+ page(options) {
119
+ if (!this._analytics) {
120
+ log2("Analytics not initialized", {
121
+ action: "page"
122
+ }, {
123
+ F: __dxlog_file2,
124
+ L: 48,
125
+ S: this,
126
+ C: (f, a) => f(...a)
127
+ });
128
+ return;
129
+ }
130
+ try {
131
+ this._analytics.page(this.createPageProps(options));
132
+ } catch (err) {
133
+ log2.catch("Failed to track page", err, {
134
+ F: __dxlog_file2,
135
+ L: 55,
136
+ S: this,
137
+ C: (f, a) => f(...a)
138
+ });
139
+ }
140
+ }
141
+ track(options) {
142
+ if (!this._analytics) {
143
+ log2("Analytics not initialized", {
144
+ action: "track"
145
+ }, {
146
+ F: __dxlog_file2,
147
+ L: 61,
148
+ S: this,
149
+ C: (f, a) => f(...a)
150
+ });
151
+ return;
152
+ }
153
+ log2.info("sending event to telemetry", {
154
+ options
155
+ }, {
156
+ F: __dxlog_file2,
157
+ L: 65,
158
+ S: this,
159
+ C: (f, a) => f(...a)
160
+ });
161
+ try {
162
+ this._analytics.track(this.createTrackProps(options));
163
+ } catch (err) {
164
+ log2.catch("Failed to track action", err, {
165
+ F: __dxlog_file2,
166
+ L: 69,
167
+ S: this,
168
+ C: (f, a) => f(...a)
169
+ });
170
+ }
171
+ }
172
+ async flush() {
173
+ if (!this._analytics) {
174
+ log2("Analytics not initialized", {
175
+ action: "flush"
176
+ }, {
177
+ F: __dxlog_file2,
178
+ L: 75,
179
+ S: this,
180
+ C: (f, a) => f(...a)
181
+ });
182
+ return;
183
+ }
184
+ try {
185
+ await this._analytics.flush();
186
+ } catch (err) {
187
+ captureException(err);
188
+ }
189
+ }
190
+ async close() {
191
+ if (!this._analytics) {
192
+ return;
193
+ }
194
+ await this._analytics.closeAndFlush();
195
+ }
196
+ };
197
+
198
+ export {
199
+ TelemetryEvent,
200
+ SegmentTelemetry
201
+ };
202
+ //# sourceMappingURL=chunk-IKCDMDT3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/segment/node.ts", "../../../src/segment/base.ts", "../../../src/segment/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { Analytics, type IdentifyParams } from '@segment/analytics-node';\n\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\nimport { AbstractSegmentTelemetry } from './base';\nimport type { SegmentTelemetryOptions, PageOptions, TrackOptions } from './types';\nimport { captureException } from '../sentry';\n\n/**\n * Node telemetry.\n */\nexport class SegmentTelemetry extends AbstractSegmentTelemetry {\n private _analytics?: Analytics;\n\n constructor({ apiKey, batchSize, getTags }: SegmentTelemetryOptions) {\n super(getTags);\n try {\n invariant(apiKey, 'Missing API key.');\n this._analytics = new Analytics({\n writeKey: apiKey,\n flushAt: batchSize,\n });\n } catch (err) {\n log.catch('Failed to initialize telemetry', err);\n }\n }\n\n identify(options: IdentifyParams) {\n if (!this._analytics) {\n log('Analytics not initialized', { action: 'identify' });\n return;\n }\n\n try {\n this._analytics.identify(options);\n } catch (err) {\n log.catch('Failed to identify', err);\n }\n }\n\n page(options: PageOptions) {\n if (!this._analytics) {\n log('Analytics not initialized', { action: 'page' });\n return;\n }\n\n try {\n this._analytics.page(this.createPageProps(options));\n } catch (err) {\n log.catch('Failed to track page', err);\n }\n }\n\n track(options: TrackOptions) {\n if (!this._analytics) {\n log('Analytics not initialized', { action: 'track' });\n return;\n }\n\n log.info('sending event to telemetry', { options });\n try {\n this._analytics.track(this.createTrackProps(options));\n } catch (err) {\n log.catch('Failed to track action', err);\n }\n }\n\n async flush() {\n if (!this._analytics) {\n log('Analytics not initialized', { action: 'flush' });\n return;\n }\n\n try {\n await this._analytics.flush();\n } catch (err) {\n // are these errors worth capturing?\n captureException(err);\n }\n }\n\n async close() {\n if (!this._analytics) {\n return;\n }\n\n await this._analytics.closeAndFlush();\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type TrackParams, type PageParams, type IdentifyParams } from '@segment/analytics-node';\n\nimport { log } from '@dxos/log';\n\nimport {\n type IdentityOptions,\n type PageOptions,\n type SegmentIdentityOptions,\n type Tags,\n TelemetryEvent,\n type TrackOptions,\n} from './types';\n\n/**\n * NOTE: Segment provides a default ID if we don't provide one.\n */\nconst getIdentityOptions = ({ did, installationId }: IdentityOptions): SegmentIdentityOptions => {\n if (!did && !installationId) {\n log.warn('No telemetry identifier provided.');\n }\n\n return {\n userId: did,\n anonymousId: installationId,\n } as SegmentIdentityOptions;\n};\n\n/**\n * Base class for Node and BrowserSegment telemetry.\n */\nexport abstract class AbstractSegmentTelemetry {\n constructor(private readonly _getTags: () => Tags) {}\n\n abstract identify(options: IdentifyParams): void;\n\n abstract page(options: PageOptions): void;\n\n abstract track(options: TrackOptions): void;\n\n protected createPageProps(options: PageOptions): PageParams {\n const { properties, ...rest } = options;\n return {\n ...getIdentityOptions(options),\n ...rest,\n properties: {\n common: this._getTags(),\n custom: properties,\n },\n };\n }\n\n protected createTrackProps(options: TrackOptions): TrackParams {\n const { event, action, properties, ...rest } = options;\n return {\n ...getIdentityOptions(options),\n ...rest,\n event: event ?? TelemetryEvent.ACTION,\n properties: {\n action,\n common: this._getTags(),\n custom: properties,\n },\n };\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport type Tags = Record<string, string>;\n\nexport type SegmentTelemetryOptions = {\n apiKey?: string;\n batchSize?: number;\n enable?: boolean;\n getTags: () => Tags;\n};\n\n// Copied from @segment/analytics-node.\nexport type SegmentIdentityOptions =\n | { userId: string; anonymousId?: string }\n | { userId?: string; anonymousId: string };\n\n// TODO(burdon): Should require one or the other.\nexport type IdentityOptions = { did?: string; installationId?: string };\n\nexport type CommonOptions = IdentityOptions & {\n timestamp?: Date;\n properties?: Record<string, unknown>;\n};\n\n/**\n * Page views.\n * https://segment.com/docs/connections/sources/catalog/libraries/server/node/#page\n */\nexport type PageOptions = CommonOptions & {\n category?: string;\n name?: string;\n};\n\n/**\n * Track actions.\n * https://segment.com/docs/connections/sources/catalog/libraries/server/node/#track\n */\nexport type TrackOptions = CommonOptions & {\n event?: TelemetryEvent;\n action: string;\n};\n\n/**\n * Each event will be mapped to a different Postgres table via segment.\n */\nexport enum TelemetryEvent {\n /**\n * Use actions.\n */\n ACTION = 'action',\n /**\n * High-volume technical metrics.\n */\n METRICS = 'metrics',\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Analytics", "invariant", "log", "log", "TelemetryEvent", "getIdentityOptions", "did", "installationId", "log", "warn", "userId", "anonymousId", "AbstractSegmentTelemetry", "constructor", "_getTags", "createPageProps", "options", "properties", "rest", "common", "custom", "createTrackProps", "event", "action", "TelemetryEvent", "ACTION", "SegmentTelemetry", "AbstractSegmentTelemetry", "constructor", "apiKey", "batchSize", "getTags", "invariant", "_analytics", "Analytics", "writeKey", "flushAt", "err", "log", "catch", "identify", "options", "action", "page", "createPageProps", "track", "info", "createTrackProps", "flush", "captureException", "close", "closeAndFlush"]
7
+ }
@@ -6,6 +6,7 @@ import {
6
6
  getObservabilityGroup,
7
7
  getObservabilityState,
8
8
  getTelemetryIdentifier,
9
+ getTelemetryIdentity,
9
10
  initializeAppObservability,
10
11
  initializeNodeObservability,
11
12
  isObservabilityDisabled,
@@ -14,7 +15,10 @@ import {
14
15
  showObservabilityBanner,
15
16
  storeObservabilityDisabled,
16
17
  storeObservabilityGroup
17
- } from "./chunk-S7JHPCWW.mjs";
18
+ } from "./chunk-HMGFYMJF.mjs";
19
+ import "./chunk-IKCDMDT3.mjs";
20
+ import "./chunk-YJ4KVBWC.mjs";
21
+ import "./chunk-ANXHKE36.mjs";
18
22
  export {
19
23
  OBSERVABILITY_DISABLED_KEY,
20
24
  OBSERVABILITY_GROUP_KEY,
@@ -22,6 +26,7 @@ export {
22
26
  getObservabilityGroup,
23
27
  getObservabilityState,
24
28
  getTelemetryIdentifier,
29
+ getTelemetryIdentity,
25
30
  initializeAppObservability,
26
31
  initializeNodeObservability,
27
32
  isObservabilityDisabled,
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/observability/src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"packages/sdk/observability/src/otel/otel.ts":{"bytes":1960,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/otel/logs.ts":{"bytes":11081,"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":"packages/sdk/observability/src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"packages/sdk/observability/src/otel/metrics.ts":{"bytes":14358,"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":"packages/sdk/observability/src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"packages/sdk/observability/src/otel/traces.ts":{"bytes":6856,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","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/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/otel/index.ts":{"bytes":744,"imports":[{"path":"packages/sdk/observability/src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"packages/sdk/observability/src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"packages/sdk/observability/src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"packages/sdk/observability/src/otel/traces.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"packages/sdk/observability/src/sentry/node.ts":{"bytes":14071,"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/sentry/types.ts":{"bytes":1065,"imports":[],"format":"esm"},"packages/sdk/observability/src/sentry/index.ts":{"bytes":578,"imports":[{"path":"packages/sdk/observability/src/sentry/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/sentry/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/sdk/observability/src/segment/node.ts":{"bytes":9829,"imports":[{"path":"@segment/analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"import-statement","original":"../sentry"}],"format":"esm"},"packages/sdk/observability/src/segment/types.ts":{"bytes":1062,"imports":[],"format":"esm"},"packages/sdk/observability/src/segment/index.ts":{"bytes":579,"imports":[{"path":"packages/sdk/observability/src/segment/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/sdk/observability/src/sentry/sentry-log-processor.ts":{"bytes":18866,"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":"packages/sdk/observability/src/sentry/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/sdk/observability/src/observability.ts":{"bytes":74692,"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":"packages/sdk/observability/src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"packages/sdk/observability/src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"packages/sdk/observability/src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"packages/sdk/observability/src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"packages/sdk/observability/src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytes":19873,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/common.ts":{"bytes":2587,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytes":14364,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytes":6449,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytes":11289,"imports":[{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/sdk/observability/src/helpers/index.ts":{"bytes":966,"imports":[{"path":"packages/sdk/observability/src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/observability/src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"packages/sdk/observability/src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"packages/sdk/observability/src/index.ts":{"bytes":598,"imports":[{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"packages/sdk/observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-S7JHPCWW.mjs","kind":"import-statement"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"packages/sdk/observability/src/index.ts","inputs":{"packages/sdk/observability/src/index.ts":{"bytesInOutput":0}},"bytes":901},"packages/sdk/observability/dist/lib/node-esm/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4146},"packages/sdk/observability/dist/lib/node-esm/segment/index.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-CMDADTM3.mjs","kind":"import-statement"},{"path":"@segment/analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry"],"entryPoint":"packages/sdk/observability/src/segment/index.ts","inputs":{"packages/sdk/observability/src/segment/node.ts":{"bytesInOutput":2861},"packages/sdk/observability/src/segment/index.ts":{"bytesInOutput":0}},"bytes":3162},"packages/sdk/observability/dist/lib/node-esm/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/sentry/index.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-CMDADTM3.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"packages/sdk/observability/src/sentry/index.ts","inputs":{},"bytes":472},"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs":{"imports":[],"exports":[],"inputs":{"packages/sdk/observability/src/sentry/index.ts":{"bytesInOutput":0}},"bytes":136},"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17629},"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.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/exporter-trace-otlp-http","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/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"packages/sdk/observability/src/otel/index.ts","inputs":{"packages/sdk/observability/src/otel/otel.ts":{"bytesInOutput":229},"packages/sdk/observability/src/otel/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/otel/logs.ts":{"bytesInOutput":2448},"packages/sdk/observability/src/otel/metrics.ts":{"bytesInOutput":3528},"packages/sdk/observability/src/otel/traces.ts":{"bytesInOutput":1698}},"bytes":8304},"packages/sdk/observability/dist/lib/node-esm/sentry-log-processor-BVINGAOV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9664},"packages/sdk/observability/dist/lib/node-esm/sentry-log-processor-BVINGAOV.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-CMDADTM3.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":"packages/sdk/observability/src/sentry/sentry-log-processor.ts","inputs":{"packages/sdk/observability/src/sentry/sentry-log-processor.ts":{"bytesInOutput":4406}},"bytes":4746},"packages/sdk/observability/dist/lib/node-esm/chunk-CMDADTM3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6692},"packages/sdk/observability/dist/lib/node-esm/chunk-CMDADTM3.mjs":{"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"packages/sdk/observability/src/sentry/node.ts":{"bytesInOutput":3389}},"bytes":3729},"packages/sdk/observability/dist/lib/node-esm/observability-OLS7SWZT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/observability-OLS7SWZT.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-S7JHPCWW.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"packages/sdk/observability/src/observability.ts","inputs":{},"bytes":228},"packages/sdk/observability/dist/lib/node-esm/chunk-S7JHPCWW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":63031},"packages/sdk/observability/dist/lib/node-esm/chunk-S7JHPCWW.mjs":{"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":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/dist/lib/node-esm/observability-OLS7SWZT.mjs","kind":"dynamic-import"},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/segment/index.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/sentry/index.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/sentry-log-processor-BVINGAOV.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.mjs","kind":"dynamic-import"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"inputs":{"packages/sdk/observability/src/observability.ts":{"bytesInOutput":18879},"packages/sdk/observability/src/cli-observability-secrets.json":{"bytesInOutput":625},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytesInOutput":4852},"packages/sdk/observability/src/helpers/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/helpers/common.ts":{"bytesInOutput":210},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytesInOutput":3415},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytesInOutput":1192},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2623}},"bytes":32791}}}
1
+ {"inputs":{"packages/sdk/observability/src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"packages/sdk/observability/src/segment/types.ts":{"bytes":2448,"imports":[],"format":"esm"},"packages/sdk/observability/src/segment/base.ts":{"bytes":5402,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/sdk/observability/src/sentry/node.ts":{"bytes":13901,"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/sentry/types.ts":{"bytes":1065,"imports":[],"format":"esm"},"packages/sdk/observability/src/sentry/index.ts":{"bytes":578,"imports":[{"path":"packages/sdk/observability/src/sentry/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/sentry/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/sdk/observability/src/segment/node.ts":{"bytes":9692,"imports":[{"path":"@segment/analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/segment/base.ts","kind":"import-statement","original":"./base"},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"import-statement","original":"../sentry"}],"format":"esm"},"packages/sdk/observability/src/segment/index.ts":{"bytes":579,"imports":[{"path":"packages/sdk/observability/src/segment/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/sdk/observability/src/otel/otel.ts":{"bytes":1960,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/otel/logs.ts":{"bytes":11081,"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":"packages/sdk/observability/src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"packages/sdk/observability/src/otel/metrics.ts":{"bytes":14358,"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":"packages/sdk/observability/src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"packages/sdk/observability/src/otel/traces.ts":{"bytes":6856,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","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/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/otel/index.ts":{"bytes":744,"imports":[{"path":"packages/sdk/observability/src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"packages/sdk/observability/src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"packages/sdk/observability/src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"packages/sdk/observability/src/otel/traces.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"packages/sdk/observability/src/sentry/sentry-log-processor.ts":{"bytes":18874,"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":"packages/sdk/observability/src/sentry/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/sdk/observability/src/observability.ts":{"bytes":77529,"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":"packages/sdk/observability/src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"packages/sdk/observability/src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"packages/sdk/observability/src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"packages/sdk/observability/src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"packages/sdk/observability/src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"packages/sdk/observability/src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytes":20418,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/common.ts":{"bytes":3194,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytes":14368,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytes":6449,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytes":10524,"imports":[{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/sdk/observability/src/helpers/index.ts":{"bytes":966,"imports":[{"path":"packages/sdk/observability/src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/observability/src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"packages/sdk/observability/src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"packages/sdk/observability/src/index.ts":{"bytes":598,"imports":[{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"packages/sdk/observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-HMGFYMJF.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-IKCDMDT3.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.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":"packages/sdk/observability/src/index.ts","inputs":{"packages/sdk/observability/src/index.ts":{"bytesInOutput":0}},"bytes":1042},"packages/sdk/observability/dist/lib/node-esm/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/segment/index.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-IKCDMDT3.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"packages/sdk/observability/src/segment/index.ts","inputs":{},"bytes":318},"packages/sdk/observability/dist/lib/node-esm/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/sentry/index.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"packages/sdk/observability/src/sentry/index.ts","inputs":{},"bytes":472},"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17629},"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.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/exporter-trace-otlp-http","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/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"packages/sdk/observability/src/otel/index.ts","inputs":{"packages/sdk/observability/src/otel/otel.ts":{"bytesInOutput":229},"packages/sdk/observability/src/otel/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/otel/logs.ts":{"bytesInOutput":2448},"packages/sdk/observability/src/otel/metrics.ts":{"bytesInOutput":3528},"packages/sdk/observability/src/otel/traces.ts":{"bytesInOutput":1698}},"bytes":8304},"packages/sdk/observability/dist/lib/node-esm/sentry-log-processor-FO6MIWBC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9670},"packages/sdk/observability/dist/lib/node-esm/sentry-log-processor-FO6MIWBC.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.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":"packages/sdk/observability/src/sentry/sentry-log-processor.ts","inputs":{"packages/sdk/observability/src/sentry/sentry-log-processor.ts":{"bytesInOutput":4406}},"bytes":4746},"packages/sdk/observability/dist/lib/node-esm/observability-KDS7YGCQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/observability-KDS7YGCQ.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-HMGFYMJF.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-IKCDMDT3.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"packages/sdk/observability/src/observability.ts","inputs":{},"bytes":321},"packages/sdk/observability/dist/lib/node-esm/chunk-HMGFYMJF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64324},"packages/sdk/observability/dist/lib/node-esm/chunk-HMGFYMJF.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-IKCDMDT3.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":"packages/sdk/observability/dist/lib/node-esm/observability-KDS7YGCQ.mjs","kind":"dynamic-import"},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/segment/index.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/sentry/index.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/sentry-log-processor-FO6MIWBC.mjs","kind":"dynamic-import"},{"path":"packages/sdk/observability/dist/lib/node-esm/otel-CYD4GJC2.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":{"packages/sdk/observability/src/observability.ts":{"bytesInOutput":19467},"packages/sdk/observability/src/cli-observability-secrets.json":{"bytesInOutput":625},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytesInOutput":5045},"packages/sdk/observability/src/helpers/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/helpers/common.ts":{"bytesInOutput":324},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytesInOutput":3415},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytesInOutput":1192},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542}},"bytes":33686},"packages/sdk/observability/dist/lib/node-esm/chunk-IKCDMDT3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8192},"packages/sdk/observability/dist/lib/node-esm/chunk-IKCDMDT3.mjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.mjs","kind":"import-statement"},{"path":"@segment/analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","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":{"packages/sdk/observability/src/segment/node.ts":{"bytesInOutput":2916},"packages/sdk/observability/src/segment/base.ts":{"bytesInOutput":1096},"packages/sdk/observability/src/segment/types.ts":{"bytesInOutput":176},"packages/sdk/observability/src/segment/index.ts":{"bytesInOutput":0}},"bytes":4689},"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node-esm/chunk-YJ4KVBWC.mjs":{"imports":[],"exports":[],"inputs":{"packages/sdk/observability/src/sentry/index.ts":{"bytesInOutput":0}},"bytes":136},"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6593},"packages/sdk/observability/dist/lib/node-esm/chunk-ANXHKE36.mjs":{"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"packages/sdk/observability/src/sentry/node.ts":{"bytesInOutput":3359}},"bytes":3699}}}
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Observability
4
+ } from "./chunk-HMGFYMJF.mjs";
5
+ import "./chunk-IKCDMDT3.mjs";
6
+ import "./chunk-YJ4KVBWC.mjs";
7
+ import "./chunk-ANXHKE36.mjs";
8
+ export {
9
+ Observability
10
+ };
11
+ //# sourceMappingURL=observability-KDS7YGCQ.mjs.map