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

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 (109) hide show
  1. package/dist/lib/browser/{chunk-YEPQFAES.mjs → chunk-LJO63BXO.mjs} +2 -2
  2. package/dist/lib/browser/{chunk-YEPQFAES.mjs.map → chunk-LJO63BXO.mjs.map} +3 -3
  3. package/dist/lib/browser/{chunk-UG3VTDOH.mjs → chunk-MB7KKARJ.mjs} +75 -46
  4. package/dist/lib/browser/chunk-MB7KKARJ.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-MWTIKIBZ.mjs → chunk-VSEBD3XA.mjs} +42 -28
  6. package/dist/lib/browser/chunk-VSEBD3XA.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +3 -3
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/observability-NZM3OOLO.mjs +10 -0
  10. package/dist/lib/browser/{otel-IRDZ7PES.mjs → otel-UHLVSR24.mjs} +118 -70
  11. package/dist/lib/browser/{otel-IRDZ7PES.mjs.map → otel-UHLVSR24.mjs.map} +3 -3
  12. package/dist/lib/browser/segment/index.mjs +2 -2
  13. package/dist/lib/browser/sentry/index.mjs +1 -1
  14. package/dist/lib/browser/{sentry-log-processor-N3QNOQ2O.mjs → sentry-log-processor-RG4CFVGL.mjs} +53 -39
  15. package/dist/lib/browser/{sentry-log-processor-N3QNOQ2O.mjs.map → sentry-log-processor-RG4CFVGL.mjs.map} +3 -3
  16. package/dist/lib/node-esm/{chunk-552KLA6Z.mjs → chunk-GOWQOSY6.mjs} +65 -38
  17. package/dist/lib/node-esm/chunk-GOWQOSY6.mjs.map +7 -0
  18. package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs → chunk-QK5IUYVA.mjs} +2 -2
  19. package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs.map → chunk-QK5IUYVA.mjs.map} +3 -3
  20. package/dist/lib/node-esm/{chunk-WLRNZ2S2.mjs → chunk-YLYRR73V.mjs} +75 -46
  21. package/dist/lib/{browser/chunk-UG3VTDOH.mjs.map → node-esm/chunk-YLYRR73V.mjs.map} +3 -3
  22. package/dist/lib/node-esm/index.mjs +3 -3
  23. package/dist/lib/node-esm/meta.json +1 -1
  24. package/dist/lib/node-esm/{observability-F2NNZIF6.mjs → observability-2CTGITMR.mjs} +4 -4
  25. package/dist/lib/node-esm/{otel-62HYJETM.mjs → otel-W6KWKVW5.mjs} +108 -60
  26. package/dist/lib/node-esm/{otel-62HYJETM.mjs.map → otel-W6KWKVW5.mjs.map} +3 -3
  27. package/dist/lib/node-esm/segment/index.mjs +2 -2
  28. package/dist/lib/node-esm/sentry/index.mjs +1 -1
  29. package/dist/lib/node-esm/{sentry-log-processor-FN6Y5TNI.mjs → sentry-log-processor-3BDS4BB4.mjs} +53 -39
  30. package/dist/lib/node-esm/{sentry-log-processor-FN6Y5TNI.mjs.map → sentry-log-processor-3BDS4BB4.mjs.map} +3 -3
  31. package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
  32. package/dist/types/src/helpers/browser-observability.js +4 -6
  33. package/dist/types/src/helpers/browser-observability.js.map +1 -1
  34. package/dist/types/src/helpers/common.js +1 -1
  35. package/dist/types/src/helpers/common.js.map +1 -1
  36. package/dist/types/src/helpers/map-spaces.js +5 -6
  37. package/dist/types/src/helpers/map-spaces.js.map +1 -1
  38. package/dist/types/src/helpers/node-observability.d.ts +1 -1
  39. package/dist/types/src/helpers/node-observability.d.ts.map +1 -1
  40. package/dist/types/src/helpers/node-observability.js +7 -11
  41. package/dist/types/src/helpers/node-observability.js.map +1 -1
  42. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +1 -1
  43. package/dist/types/src/helpers/setup-telemetry-listeners.js +4 -7
  44. package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
  45. package/dist/types/src/observability.d.ts +1 -1
  46. package/dist/types/src/observability.d.ts.map +1 -1
  47. package/dist/types/src/observability.js +68 -59
  48. package/dist/types/src/observability.js.map +1 -1
  49. package/dist/types/src/otel/logs.d.ts.map +1 -1
  50. package/dist/types/src/otel/logs.js +20 -19
  51. package/dist/types/src/otel/logs.js.map +1 -1
  52. package/dist/types/src/otel/metrics.js +5 -2
  53. package/dist/types/src/otel/metrics.js.map +1 -1
  54. package/dist/types/src/otel/otel.js +1 -1
  55. package/dist/types/src/otel/otel.js.map +1 -1
  56. package/dist/types/src/otel/traces-browser.js +3 -1
  57. package/dist/types/src/otel/traces-browser.js.map +1 -1
  58. package/dist/types/src/otel/traces.js +2 -0
  59. package/dist/types/src/otel/traces.js.map +1 -1
  60. package/dist/types/src/segment/base.d.ts +1 -1
  61. package/dist/types/src/segment/base.d.ts.map +1 -1
  62. package/dist/types/src/segment/base.js +2 -1
  63. package/dist/types/src/segment/base.js.map +1 -1
  64. package/dist/types/src/segment/browser.d.ts +1 -1
  65. package/dist/types/src/segment/browser.d.ts.map +1 -1
  66. package/dist/types/src/segment/browser.js +6 -10
  67. package/dist/types/src/segment/browser.js.map +1 -1
  68. package/dist/types/src/segment/node.d.ts +1 -1
  69. package/dist/types/src/segment/node.d.ts.map +1 -1
  70. package/dist/types/src/segment/node.js +2 -1
  71. package/dist/types/src/segment/node.js.map +1 -1
  72. package/dist/types/src/sentry/browser.d.ts.map +1 -1
  73. package/dist/types/src/sentry/browser.js +4 -6
  74. package/dist/types/src/sentry/browser.js.map +1 -1
  75. package/dist/types/src/sentry/node.d.ts.map +1 -1
  76. package/dist/types/src/sentry/node.js +8 -13
  77. package/dist/types/src/sentry/node.js.map +1 -1
  78. package/dist/types/src/sentry/node.node.test.js +3 -5
  79. package/dist/types/src/sentry/node.node.test.js.map +1 -1
  80. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
  81. package/dist/types/src/sentry/sentry-log-processor.js +56 -63
  82. package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
  83. package/dist/types/src/sentry/sentry.node.test.js +1 -1
  84. package/dist/types/src/sentry/sentry.node.test.js.map +1 -1
  85. package/dist/types/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +18 -15
  87. package/src/helpers/browser-observability.ts +2 -1
  88. package/src/helpers/node-observability.ts +3 -2
  89. package/src/helpers/setup-telemetry-listeners.ts +2 -1
  90. package/src/observability.ts +4 -4
  91. package/src/otel/logs.ts +2 -2
  92. package/src/otel/metrics.ts +1 -1
  93. package/src/otel/otel.ts +1 -1
  94. package/src/otel/traces-browser.ts +3 -3
  95. package/src/otel/traces.ts +2 -2
  96. package/src/segment/base.ts +1 -1
  97. package/src/segment/browser.ts +3 -2
  98. package/src/segment/node.ts +3 -2
  99. package/src/sentry/browser.ts +7 -7
  100. package/src/sentry/node.node.test.ts +2 -1
  101. package/src/sentry/node.ts +3 -3
  102. package/src/sentry/sentry-log-processor.ts +2 -2
  103. package/src/sentry/sentry.node.test.ts +2 -1
  104. package/dist/lib/browser/chunk-MWTIKIBZ.mjs.map +0 -7
  105. package/dist/lib/browser/observability-7LFMAZBF.mjs +0 -10
  106. package/dist/lib/node-esm/chunk-552KLA6Z.mjs.map +0 -7
  107. package/dist/lib/node-esm/chunk-WLRNZ2S2.mjs.map +0 -7
  108. /package/dist/lib/browser/{observability-7LFMAZBF.mjs.map → observability-NZM3OOLO.mjs.map} +0 -0
  109. /package/dist/lib/node-esm/{observability-F2NNZIF6.mjs.map → observability-2CTGITMR.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/segment/browser.ts", "../../../src/segment/base.ts", "../../../src/segment/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { type IdentifyParams } from '@segment/analytics-node';\nimport snippet from '@segment/snippet';\n\nimport { log } from '@dxos/log';\n\nimport { captureException } from '../sentry';\n\nimport { AbstractSegmentTelemetry } from './base';\nimport type { PageOptions, SegmentTelemetryOptions, TrackOptions } from './types';\n\n/**\n * Browser telemetry.\n */\n// https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#basic-tracking-methods\nexport class SegmentTelemetry extends AbstractSegmentTelemetry {\n constructor({ apiKey, batchSize, getTags }: SegmentTelemetryOptions) {\n super(getTags);\n try {\n const contents = snippet.min({ apiKey, page: false });\n const script = document.createElement('script');\n script.innerHTML = contents;\n document.body.append(script);\n } catch (err) {\n log.catch('failed to initialize telemetry', err);\n }\n }\n\n identify(options: IdentifyParams): void {\n try {\n (window as any).analytics?.identify(options.userId, options.traits);\n } catch (err) {\n log.catch('failed to identify', err);\n }\n }\n\n page(options: PageOptions): void {\n try {\n const props = this.createPageProps(options);\n (window as any).analytics?.page(props.category, props.name, props.properties);\n } catch (err) {\n log.catch('failed to track page', err);\n }\n }\n\n track(options: TrackOptions): void {\n try {\n const props = this.createTrackProps(options);\n (window as any).analytics?.track(props.event, props.properties);\n } catch (err) {\n log.catch('failed to track event', err);\n }\n }\n\n async flush(): Promise<void> {\n try {\n await (window as any).analytics?.flush((err: any) => {\n captureException(err);\n });\n } catch (err) {\n log.catch('failed to flush telemetry', err);\n }\n }\n\n async close(): Promise<void> {}\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type IdentifyParams, type PageParams, type TrackParams } 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": ";;;;;AAKA,OAAOA,aAAa;AAEpB,SAASC,OAAAA,YAAW;;;ACDpB,SAASC,WAAW;;;ACyCb,IAAKC,iBAAAA,yBAAAA,iBAAAA;AAGT,EAAAA,gBAAA,QAAA,IAAA;AAIA,EAAAA,gBAAA,SAAA,IAAA;SAPSA;;;;;;;;;;;;;;;;;;AD3BZ,IAAMC,qBAAqB,CAAC,EAAEC,KAAKC,eAAc,MAAmB;AAClE,MAAI,CAACD,OAAO,CAACC,gBAAgB;AAC3BC,QAAIC,KAAK,qCAAA,QAAA;;;;;;EACX;AAEA,SAAO;IACLC,QAAQJ;IACRK,aAAaJ;EACf;AACF;AAKO,IAAeK,2BAAf,MAAeA;EASVC,gBAAgBC,SAAkC;AAC1D,UAAM,EAAEC,YAAY,GAAGC,KAAAA,IAASF;AAChC,WAAO;MACL,GAAGT,mBAAmBS,OAAAA;MACtB,GAAGE;MACHD,YAAY;QACVE,QAAQ,KAAKC,SAAQ;QACrBC,QAAQJ;MACV;IACF;EACF;EAEUK,iBAAiBN,SAAoC;AAC7D,UAAM,EAAEO,OAAOC,QAAQP,YAAY,GAAGC,KAAAA,IAASF;AAC/C,WAAO;MACL,GAAGT,mBAAmBS,OAAAA;MACtB,GAAGE;MACHK,OAAOA,SAASE,eAAeC;MAC/BT,YAAY;QACVO;QACAL,QAAQ,KAAKC,SAAQ;QACrBC,QAAQJ;MACV;IACF;EACF;EAhCA,YAA6BG,UAAsB;;SAAtBA,WAAAA;EAAuB;AAiCtD;;;;ADlDO,IAAMO,mBAAN,cAA+BC,yBAAAA;EAapCC,SAASC,SAA+B;AACtC,QAAI;AACDC,aAAeC,WAAWH,SAASC,QAAQG,QAAQH,QAAQI,MAAM;IACpE,SAASC,KAAK;AACZC,MAAAA,KAAIC,MAAM,sBAAsBF,KAAAA;;;;;;IAClC;EACF;EAEAG,KAAKR,SAA4B;AAC/B,QAAI;AACF,YAAMS,QAAQ,KAAKC,gBAAgBV,OAAAA;AAClCC,aAAeC,WAAWM,KAAKC,MAAME,UAAUF,MAAMG,MAAMH,MAAMI,UAAU;IAC9E,SAASR,KAAK;AACZC,MAAAA,KAAIC,MAAM,wBAAwBF,KAAAA;;;;;;IACpC;EACF;EAEAS,MAAMd,SAA6B;AACjC,QAAI;AACF,YAAMS,QAAQ,KAAKM,iBAAiBf,OAAAA;AACnCC,aAAeC,WAAWY,MAAML,MAAMO,OAAOP,MAAMI,UAAU;IAChE,SAASR,KAAK;AACZC,MAAAA,KAAIC,MAAM,yBAAyBF,KAAAA;;;;;;IACrC;EACF;EAEA,MAAMY,QAAuB;AAC3B,QAAI;AACF,YAAOhB,OAAeC,WAAWe,MAAM,CAACZ,QAAAA;AACtCa,yBAAiBb,GAAAA;MACnB,CAAA;IACF,SAASA,KAAK;AACZC,MAAAA,KAAIC,MAAM,6BAA6BF,KAAAA;;;;;;IACzC;EACF;EAEA,MAAMc,QAAuB;EAAC;EAhD9B,YAAY,EAAEC,QAAQC,WAAWC,QAAO,GAA6B;AACnE,UAAMA,OAAAA;AACN,QAAI;AACF,YAAMC,WAAWC,QAAQC,IAAI;QAAEL;QAAQZ,MAAM;MAAM,CAAA;AACnD,YAAMkB,SAASC,SAASC,cAAc,QAAA;AACtCF,aAAOG,YAAYN;AACnBI,eAASG,KAAKC,OAAOL,MAAAA;IACvB,SAASrB,KAAK;AACZC,MAAAA,KAAIC,MAAM,kCAAkCF,KAAAA;;;;;;IAC9C;EACF;AAuCF;",
6
+ "names": ["snippet", "log", "log", "TelemetryEvent", "getIdentityOptions", "did", "installationId", "log", "warn", "userId", "anonymousId", "AbstractSegmentTelemetry", "createPageProps", "options", "properties", "rest", "common", "_getTags", "custom", "createTrackProps", "event", "action", "TelemetryEvent", "ACTION", "SegmentTelemetry", "AbstractSegmentTelemetry", "identify", "options", "window", "analytics", "userId", "traits", "err", "log", "catch", "page", "props", "createPageProps", "category", "name", "properties", "track", "createTrackProps", "event", "flush", "captureException", "close", "apiKey", "batchSize", "getTags", "contents", "snippet", "min", "script", "document", "createElement", "innerHTML", "body", "append"]
7
+ }
@@ -14,10 +14,10 @@ import {
14
14
  showObservabilityBanner,
15
15
  storeObservabilityDisabled,
16
16
  storeObservabilityGroup
17
- } from "./chunk-UG3VTDOH.mjs";
18
- import "./chunk-MWTIKIBZ.mjs";
17
+ } from "./chunk-MB7KKARJ.mjs";
18
+ import "./chunk-VSEBD3XA.mjs";
19
19
  import "./chunk-5ICT2XF2.mjs";
20
- import "./chunk-YEPQFAES.mjs";
20
+ import "./chunk-LJO63BXO.mjs";
21
21
  export {
22
22
  OBSERVABILITY_DISABLED_KEY,
23
23
  OBSERVABILITY_GROUP_KEY,
@@ -1 +1 @@
1
- {"inputs":{"src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"src/segment/types.ts":{"bytes":2514,"imports":[],"format":"esm"},"src/segment/base.ts":{"bytes":5273,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/sentry/browser.ts":{"bytes":15796,"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"format":"esm"},"src/sentry/index.ts":{"bytes":492,"imports":[{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/segment/browser.ts":{"bytes":7581,"imports":[{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/base.ts","kind":"import-statement","original":"./base"},{"path":"src/sentry/index.ts","kind":"import-statement","original":"../sentry"}],"format":"esm"},"src/segment/index.ts":{"bytes":534,"imports":[{"path":"src/segment/browser.ts","kind":"import-statement","original":"./node"},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/otel/otel.ts":{"bytes":1907,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"src/otel/logs.ts":{"bytes":10964,"imports":[{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/metrics.ts":{"bytes":14185,"imports":[{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/traces-browser.ts":{"bytes":8203,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/otel/index.ts":{"bytes":699,"imports":[{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"src/otel/traces-browser.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"src/sentry/sentry-log-processor.ts":{"bytes":20520,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/observability.ts":{"bytes":76912,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"src/helpers/browser-observability.ts":{"bytes":20089,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"src/helpers/common.ts":{"bytes":3121,"imports":[],"format":"esm"},"src/helpers/node-observability.ts":{"bytes":14183,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"src/helpers/map-spaces.ts":{"bytes":6364,"imports":[],"format":"esm"},"src/helpers/setup-telemetry-listeners.ts":{"bytes":10339,"imports":[{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"src/helpers/index.ts":{"bytes":917,"imports":[{"path":"src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-UG3VTDOH.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":950},"dist/lib/browser/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/segment/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":226},"dist/lib/browser/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/sentry/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":380},"dist/lib/browser/otel-IRDZ7PES.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18016},"dist/lib/browser/otel-IRDZ7PES.mjs":{"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"src/otel/index.ts","inputs":{"src/otel/otel.ts":{"bytesInOutput":229},"src/otel/index.ts":{"bytesInOutput":0},"src/otel/logs.ts":{"bytesInOutput":2448},"src/otel/metrics.ts":{"bytesInOutput":3515},"src/otel/traces-browser.ts":{"bytesInOutput":2315}},"bytes":8715},"dist/lib/browser/sentry-log-processor-N3QNOQ2O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10615},"dist/lib/browser/sentry-log-processor-N3QNOQ2O.mjs":{"imports":[{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SentryLogProcessor"],"entryPoint":"src/sentry/sentry-log-processor.ts","inputs":{"src/sentry/sentry-log-processor.ts":{"bytesInOutput":4889}},"bytes":5110},"dist/lib/browser/observability-7LFMAZBF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/observability-7LFMAZBF.mjs":{"imports":[{"path":"dist/lib/browser/chunk-UG3VTDOH.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":229},"dist/lib/browser/chunk-UG3VTDOH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64521},"dist/lib/browser/chunk-UG3VTDOH.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MWTIKIBZ.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/browser/observability-7LFMAZBF.mjs","kind":"dynamic-import"},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/browser/otel-IRDZ7PES.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-IRDZ7PES.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry-log-processor-N3QNOQ2O.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-IRDZ7PES.mjs","kind":"dynamic-import"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"inputs":{"src/observability.ts":{"bytesInOutput":19454},"src/cli-observability-secrets.json":{"bytesInOutput":625},"src/helpers/browser-observability.ts":{"bytesInOutput":5032},"src/helpers/index.ts":{"bytesInOutput":0},"src/helpers/common.ts":{"bytesInOutput":324},"src/helpers/node-observability.ts":{"bytesInOutput":3432},"src/helpers/map-spaces.ts":{"bytesInOutput":1192},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542}},"bytes":33369},"dist/lib/browser/chunk-MWTIKIBZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7711},"dist/lib/browser/chunk-MWTIKIBZ.mjs":{"imports":[{"path":"dist/lib/browser/chunk-YEPQFAES.mjs","kind":"import-statement"},{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry","TelemetryEvent"],"inputs":{"src/segment/browser.ts":{"bytesInOutput":1946},"src/segment/base.ts":{"bytesInOutput":1083},"src/segment/types.ts":{"bytesInOutput":180},"src/segment/index.ts":{"bytesInOutput":0}},"bytes":3489},"dist/lib/browser/chunk-5ICT2XF2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/chunk-5ICT2XF2.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":44},"dist/lib/browser/chunk-YEPQFAES.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7321},"dist/lib/browser/chunk-YEPQFAES.mjs":{"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"src/sentry/browser.ts":{"bytesInOutput":4063}},"bytes":4286}}}
1
+ {"inputs":{"src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"src/sentry/browser.ts":{"bytes":15792,"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"format":"esm"},"src/sentry/index.ts":{"bytes":492,"imports":[{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/segment/types.ts":{"bytes":2514,"imports":[],"format":"esm"},"src/segment/base.ts":{"bytes":5630,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/segment/browser.ts":{"bytes":7577,"imports":[{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/sentry/index.ts","kind":"import-statement","original":"../sentry"},{"path":"src/segment/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"src/segment/index.ts":{"bytes":534,"imports":[{"path":"src/segment/browser.ts","kind":"import-statement","original":"./node"},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/otel/otel.ts":{"bytes":1907,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"src/otel/logs.ts":{"bytes":11421,"imports":[{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/metrics.ts":{"bytes":14700,"imports":[{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/traces-browser.ts":{"bytes":8610,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/otel/index.ts":{"bytes":699,"imports":[{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"src/otel/traces-browser.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"src/sentry/sentry-log-processor.ts":{"bytes":21263,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/sentry/browser.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/observability.ts":{"bytes":78122,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"src/helpers/browser-observability.ts":{"bytes":20088,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"src/helpers/common.ts":{"bytes":3121,"imports":[],"format":"esm"},"src/helpers/node-observability.ts":{"bytes":14187,"imports":[{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"src/helpers/map-spaces.ts":{"bytes":6364,"imports":[],"format":"esm"},"src/helpers/setup-telemetry-listeners.ts":{"bytes":10343,"imports":[{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"src/helpers/index.ts":{"bytes":917,"imports":[{"path":"src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MB7KKARJ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-VSEBD3XA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-LJO63BXO.mjs","kind":"import-statement"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":950},"dist/lib/browser/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/segment/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-VSEBD3XA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-LJO63BXO.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":226},"dist/lib/browser/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/sentry/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-LJO63BXO.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":380},"dist/lib/browser/otel-UHLVSR24.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18302},"dist/lib/browser/otel-UHLVSR24.mjs":{"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"src/otel/index.ts","inputs":{"src/otel/otel.ts":{"bytesInOutput":229},"src/otel/index.ts":{"bytesInOutput":0},"src/otel/logs.ts":{"bytesInOutput":2850},"src/otel/metrics.ts":{"bytesInOutput":3962},"src/otel/traces-browser.ts":{"bytesInOutput":2660}},"bytes":9909},"dist/lib/browser/sentry-log-processor-RG4CFVGL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10700},"dist/lib/browser/sentry-log-processor-RG4CFVGL.mjs":{"imports":[{"path":"dist/lib/browser/chunk-LJO63BXO.mjs","kind":"import-statement"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SentryLogProcessor"],"entryPoint":"src/sentry/sentry-log-processor.ts","inputs":{"src/sentry/sentry-log-processor.ts":{"bytesInOutput":5226}},"bytes":5447},"dist/lib/browser/observability-NZM3OOLO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/observability-NZM3OOLO.mjs":{"imports":[{"path":"dist/lib/browser/chunk-MB7KKARJ.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-VSEBD3XA.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-5ICT2XF2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-LJO63BXO.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":229},"dist/lib/browser/chunk-MB7KKARJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":65012},"dist/lib/browser/chunk-MB7KKARJ.mjs":{"imports":[{"path":"dist/lib/browser/chunk-VSEBD3XA.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/browser/observability-NZM3OOLO.mjs","kind":"dynamic-import"},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/browser/otel-UHLVSR24.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-UHLVSR24.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/sentry-log-processor-RG4CFVGL.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/otel-UHLVSR24.mjs","kind":"dynamic-import"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"inputs":{"src/observability.ts":{"bytesInOutput":20602},"src/cli-observability-secrets.json":{"bytesInOutput":625},"src/helpers/browser-observability.ts":{"bytesInOutput":5032},"src/helpers/index.ts":{"bytesInOutput":0},"src/helpers/common.ts":{"bytesInOutput":324},"src/helpers/node-observability.ts":{"bytesInOutput":3432},"src/helpers/map-spaces.ts":{"bytesInOutput":1192},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542}},"bytes":34517},"dist/lib/browser/chunk-VSEBD3XA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7727},"dist/lib/browser/chunk-VSEBD3XA.mjs":{"imports":[{"path":"dist/lib/browser/chunk-LJO63BXO.mjs","kind":"import-statement"},{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry","TelemetryEvent"],"inputs":{"src/segment/browser.ts":{"bytesInOutput":1946},"src/segment/base.ts":{"bytesInOutput":1379},"src/segment/types.ts":{"bytesInOutput":180},"src/segment/index.ts":{"bytesInOutput":0}},"bytes":3785},"dist/lib/browser/chunk-5ICT2XF2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/chunk-5ICT2XF2.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":44},"dist/lib/browser/chunk-LJO63BXO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7317},"dist/lib/browser/chunk-LJO63BXO.mjs":{"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"src/sentry/browser.ts":{"bytesInOutput":4063}},"bytes":4286}}}
@@ -0,0 +1,10 @@
1
+ import {
2
+ Observability
3
+ } from "./chunk-MB7KKARJ.mjs";
4
+ import "./chunk-VSEBD3XA.mjs";
5
+ import "./chunk-5ICT2XF2.mjs";
6
+ import "./chunk-LJO63BXO.mjs";
7
+ export {
8
+ Observability
9
+ };
10
+ //# sourceMappingURL=observability-NZM3OOLO.mjs.map
@@ -1,5 +1,5 @@
1
1
  // src/otel/otel.ts
2
- import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";
2
+ import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
3
3
  var setDiagLogger = (level) => {
4
4
  const logLevel = DiagLogLevel[level];
5
5
  if (logLevel) {
@@ -13,10 +13,32 @@ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
13
13
  import { Resource } from "@opentelemetry/resources";
14
14
  import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
15
15
  import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
16
- import { getContextFromEntry, getRelativeFilename, LogLevel } from "@dxos/log";
16
+ import { LogLevel, getContextFromEntry, getRelativeFilename } from "@dxos/log";
17
17
  import { jsonlogify } from "@dxos/util";
18
+ function _define_property(obj, key, value) {
19
+ if (key in obj) {
20
+ Object.defineProperty(obj, key, {
21
+ value,
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true
25
+ });
26
+ } else {
27
+ obj[key] = value;
28
+ }
29
+ return obj;
30
+ }
18
31
  var OtelLogs = class {
32
+ flush() {
33
+ return this._loggerProvider.forceFlush();
34
+ }
35
+ close() {
36
+ return this._loggerProvider.shutdown();
37
+ }
19
38
  constructor(options) {
39
+ _define_property(this, "options", void 0);
40
+ _define_property(this, "_loggerProvider", void 0);
41
+ _define_property(this, "logProcessor", void 0);
20
42
  this.options = options;
21
43
  this.logProcessor = (config, entry) => {
22
44
  const logger = this._loggerProvider.getLogger("dxos-observability", this.options.serviceVersion);
@@ -56,12 +78,6 @@ var OtelLogs = class {
56
78
  });
57
79
  this._loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));
58
80
  }
59
- flush() {
60
- return this._loggerProvider.forceFlush();
61
- }
62
- close() {
63
- return this._loggerProvider.shutdown();
64
- }
65
81
  };
66
82
  var convertLevel = (level) => {
67
83
  switch (level) {
@@ -87,49 +103,22 @@ import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk
87
103
  import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME2, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION2 } from "@opentelemetry/semantic-conventions";
88
104
  import { log } from "@dxos/log";
89
105
  import { TRACE_PROCESSOR } from "@dxos/tracing";
106
+ function _define_property2(obj, key, value) {
107
+ if (key in obj) {
108
+ Object.defineProperty(obj, key, {
109
+ value,
110
+ enumerable: true,
111
+ configurable: true,
112
+ writable: true
113
+ });
114
+ } else {
115
+ obj[key] = value;
116
+ }
117
+ return obj;
118
+ }
90
119
  var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/otel/metrics.ts";
91
120
  var EXPORT_INTERVAL = 60 * 1e3;
92
121
  var OtelMetrics = class {
93
- constructor(options) {
94
- this.options = options;
95
- this._gauges = /* @__PURE__ */ new Map();
96
- setDiagLogger(options.consoleDiagLogLevel);
97
- const resource = Resource2.default().merge(new Resource2({
98
- [SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
99
- [SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
100
- }));
101
- const grafanaMetricReader = new PeriodicExportingMetricReader({
102
- exporter: new OTLPMetricExporter({
103
- url: this.options.endpoint + "/v1/metrics",
104
- headers: {
105
- Authorization: this.options.authorizationHeader
106
- }
107
- }),
108
- exportIntervalMillis: EXPORT_INTERVAL
109
- });
110
- this._meterProvider = new MeterProvider({
111
- resource,
112
- readers: [
113
- grafanaMetricReader
114
- ]
115
- });
116
- this._meter = this._meterProvider.getMeter("dxos-observability");
117
- const metrics = {
118
- // TODO: update metrics names and remove prefix?
119
- increment: (name, value, data) => {
120
- this.increment(name, value, convertTags(data));
121
- },
122
- distribution: (name, value, data) => {
123
- this.distribution(name, value, convertTags(data));
124
- },
125
- set: (name, value, data) => {
126
- },
127
- gauge: (name, value, data) => {
128
- this.gauge(name, value, convertTags(data));
129
- }
130
- };
131
- TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
132
- }
133
122
  gauge(name, value, tags) {
134
123
  const gauge = this._meter.createGauge(name);
135
124
  log("otel gauge", {
@@ -196,6 +185,50 @@ var OtelMetrics = class {
196
185
  close() {
197
186
  return this._meterProvider.shutdown();
198
187
  }
188
+ constructor(options) {
189
+ _define_property2(this, "options", void 0);
190
+ _define_property2(this, "_meterProvider", void 0);
191
+ _define_property2(this, "_meter", void 0);
192
+ _define_property2(this, "_gauges", void 0);
193
+ this.options = options;
194
+ this._gauges = /* @__PURE__ */ new Map();
195
+ setDiagLogger(options.consoleDiagLogLevel);
196
+ const resource = Resource2.default().merge(new Resource2({
197
+ [SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
198
+ [SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
199
+ }));
200
+ const grafanaMetricReader = new PeriodicExportingMetricReader({
201
+ exporter: new OTLPMetricExporter({
202
+ url: this.options.endpoint + "/v1/metrics",
203
+ headers: {
204
+ Authorization: this.options.authorizationHeader
205
+ }
206
+ }),
207
+ exportIntervalMillis: EXPORT_INTERVAL
208
+ });
209
+ this._meterProvider = new MeterProvider({
210
+ resource,
211
+ readers: [
212
+ grafanaMetricReader
213
+ ]
214
+ });
215
+ this._meter = this._meterProvider.getMeter("dxos-observability");
216
+ const metrics = {
217
+ // TODO: update metrics names and remove prefix?
218
+ increment: (name, value, data) => {
219
+ this.increment(name, value, convertTags(data));
220
+ },
221
+ distribution: (name, value, data) => {
222
+ this.distribution(name, value, convertTags(data));
223
+ },
224
+ set: (name, value, data) => {
225
+ },
226
+ gauge: (name, value, data) => {
227
+ this.gauge(name, value, convertTags(data));
228
+ }
229
+ };
230
+ TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
231
+ }
199
232
  };
200
233
  var convertTags = (data) => {
201
234
  if (data && data.tags) {
@@ -214,33 +247,26 @@ import { getWebAutoInstrumentations } from "@opentelemetry/auto-instrumentations
214
247
  import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
215
248
  import { registerInstrumentations } from "@opentelemetry/instrumentation";
216
249
  import { Resource as Resource3 } from "@opentelemetry/resources";
217
- import { ConsoleSpanExporter, SimpleSpanProcessor, BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
250
+ import { BatchSpanProcessor, ConsoleSpanExporter, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
218
251
  import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
219
252
  import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME3, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION3 } from "@opentelemetry/semantic-conventions";
220
253
  import { log as log2 } from "@dxos/log";
221
254
  import { TRACE_PROCESSOR as TRACE_PROCESSOR2 } from "@dxos/tracing";
222
- var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/otel/traces-browser.ts";
223
- var OtelTraces = class {
224
- constructor(options) {
225
- this.options = options;
226
- const resource = Resource3.default().merge(new Resource3({
227
- [SEMRESATTRS_SERVICE_NAME3]: this.options.serviceName,
228
- [SEMRESATTRS_SERVICE_VERSION3]: this.options.serviceVersion
229
- }));
230
- const tracerProvider = new WebTracerProvider({
231
- resource
255
+ function _define_property3(obj, key, value) {
256
+ if (key in obj) {
257
+ Object.defineProperty(obj, key, {
258
+ value,
259
+ enumerable: true,
260
+ configurable: true,
261
+ writable: true
232
262
  });
233
- tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
234
- tracerProvider.addSpanProcessor(new BatchSpanProcessor(new OTLPTraceExporter({
235
- url: this.options.endpoint + "/v1/traces",
236
- headers: {
237
- Authorization: this.options.authorizationHeader
238
- },
239
- concurrencyLimit: 10
240
- })));
241
- tracerProvider.register({});
242
- this._tracer = trace.getTracer("dxos-observability", this.options.serviceVersion);
263
+ } else {
264
+ obj[key] = value;
243
265
  }
266
+ return obj;
267
+ }
268
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/otel/traces-browser.ts";
269
+ var OtelTraces = class {
244
270
  start() {
245
271
  registerInstrumentations({
246
272
  instrumentations: [
@@ -267,6 +293,28 @@ var OtelTraces = class {
267
293
  }
268
294
  });
269
295
  }
296
+ constructor(options) {
297
+ _define_property3(this, "options", void 0);
298
+ _define_property3(this, "_tracer", void 0);
299
+ this.options = options;
300
+ const resource = Resource3.default().merge(new Resource3({
301
+ [SEMRESATTRS_SERVICE_NAME3]: this.options.serviceName,
302
+ [SEMRESATTRS_SERVICE_VERSION3]: this.options.serviceVersion
303
+ }));
304
+ const tracerProvider = new WebTracerProvider({
305
+ resource
306
+ });
307
+ tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
308
+ tracerProvider.addSpanProcessor(new BatchSpanProcessor(new OTLPTraceExporter({
309
+ url: this.options.endpoint + "/v1/traces",
310
+ headers: {
311
+ Authorization: this.options.authorizationHeader
312
+ },
313
+ concurrencyLimit: 10
314
+ })));
315
+ tracerProvider.register({});
316
+ this._tracer = trace.getTracer("dxos-observability", this.options.serviceVersion);
317
+ }
270
318
  };
271
319
  export {
272
320
  OtelLogs,
@@ -274,4 +322,4 @@ export {
274
322
  OtelTraces,
275
323
  setDiagLogger
276
324
  };
277
- //# sourceMappingURL=otel-IRDZ7PES.mjs.map
325
+ //# sourceMappingURL=otel-UHLVSR24.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/otel/otel.ts", "../../../src/otel/logs.ts", "../../../src/otel/metrics.ts", "../../../src/otel/traces-browser.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { diag, DiagConsoleLogger, DiagLogLevel } from '@opentelemetry/api';\n\nexport type OtelOptions = {\n endpoint: string;\n authorizationHeader: string;\n serviceName: string; // For the Otel API, the name of the entity for which signals (metrics or trace) are collected.\n serviceVersion: string; // For the Otel API, The name of the entity for which signals (metrics or trace) are collected.\n getTags: () => { [key: string]: string };\n consoleDiagLogLevel?: string;\n};\n\nexport const setDiagLogger = (level?: string) => {\n const logLevel = DiagLogLevel[level as keyof typeof DiagLogLevel];\n if (logLevel) {\n diag.setLogger(new DiagConsoleLogger(), logLevel);\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { Resource } from '@opentelemetry/resources';\nimport { BatchLogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport {\n getContextFromEntry,\n getRelativeFilename,\n type LogConfig,\n type LogEntry,\n LogLevel,\n type LogProcessor,\n} from '@dxos/log';\nimport { jsonlogify } from '@dxos/util';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nexport type OtelLogOptions = OtelOptions & {\n logLevel: LogLevel;\n /**\n * Set `true` to capture logs sent through LoggingService from shared worker.\n * Better to set to `false` because shared worker is initializing its own logger.\n */\n includeSharedWorkerLogs: boolean;\n};\n\nexport class OtelLogs {\n private _loggerProvider: LoggerProvider;\n constructor(private readonly options: OtelLogOptions) {\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = Resource.default().merge(\n new Resource({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n const logExporter = new OTLPLogExporter({\n url: this.options.endpoint + '/v1/logs',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n });\n this._loggerProvider = new LoggerProvider({ resource });\n this._loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));\n }\n\n public readonly logProcessor: LogProcessor = (config: LogConfig, entry: LogEntry) => {\n const logger = this._loggerProvider.getLogger('dxos-observability', this.options.serviceVersion);\n\n if (\n entry.level < this.options.logLevel ||\n (!this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId)\n ) {\n return;\n }\n\n const record = {\n ...entry,\n ...(entry.meta ? { meta: { file: getRelativeFilename(entry.meta.F), line: entry.meta.L } } : {}),\n context: jsonlogify(getContextFromEntry(entry)),\n };\n\n logger.emit({\n severityNumber: convertLevel(entry.level),\n body: JSON.stringify(record),\n attributes: this.options.getTags(),\n });\n };\n\n flush(): Promise<void> {\n return this._loggerProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._loggerProvider.shutdown();\n }\n}\n\nconst convertLevel = (level: LogLevel): SeverityNumber => {\n switch (level) {\n case LogLevel.DEBUG:\n return SeverityNumber.DEBUG;\n case LogLevel.VERBOSE:\n return SeverityNumber.INFO;\n case LogLevel.INFO:\n return SeverityNumber.INFO;\n case LogLevel.WARN:\n return SeverityNumber.WARN;\n case LogLevel.ERROR:\n return SeverityNumber.ERROR;\n default:\n return SeverityNumber.ERROR;\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Attributes, type Meter, type ObservableGauge } from '@opentelemetry/api';\nimport { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { Resource } from '@opentelemetry/resources';\nimport { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { TRACE_PROCESSOR, type MetricData } from '@dxos/tracing';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nconst EXPORT_INTERVAL = 60 * 1000;\n\ntype SynchronousGauge = {\n gauge: ObservableGauge<Attributes>;\n nextValue: number;\n nextTags?: any;\n};\n\nexport class OtelMetrics {\n private _meterProvider: MeterProvider;\n private _meter: Meter;\n private _gauges = new Map<string, SynchronousGauge>();\n\n constructor(private readonly options: OtelOptions) {\n // TODO: improve error handling/logging\n // https://github.com/open-telemetry/opentelemetry-js/issues/4823\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = Resource.default().merge(\n new Resource({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const grafanaMetricReader = new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({\n url: this.options.endpoint + '/v1/metrics',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n }),\n exportIntervalMillis: EXPORT_INTERVAL,\n });\n\n this._meterProvider = new MeterProvider({\n resource,\n readers: [grafanaMetricReader],\n });\n this._meter = this._meterProvider.getMeter('dxos-observability');\n\n const metrics = {\n // TODO: update metrics names and remove prefix?\n increment: (name: string, value?: number, data?: MetricData) => {\n this.increment(name, value, convertTags(data));\n },\n distribution: (name: string, value: number, data?: MetricData) => {\n this.distribution(name, value, convertTags(data));\n },\n set: (name: string, value: number | string, data?: MetricData) => {\n // Not implemented, not part of Otel spec.\n },\n gauge: (name: string, value: number, data?: MetricData) => {\n this.gauge(name, value, convertTags(data));\n },\n };\n\n TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);\n }\n\n gauge(name: string, value: number, tags?: any): void {\n const gauge = this._meter.createGauge(name);\n log('otel gauge', { name, value, tags: { ...this.options.getTags(), ...tags } });\n gauge.record(value, { ...this.options.getTags(), ...tags });\n }\n\n increment(name: string, value?: number, tags?: any): void {\n const counter = this._meter.createCounter(name);\n log('otel counter', { name, value, tags: { ...this.options.getTags(), ...tags } });\n counter.add(value ?? 1, { ...this.options.getTags(), ...tags });\n }\n\n distribution(name: string, value: number, tags?: any): void {\n const distribution = this._meter.createHistogram(name);\n log('otel distribution', { name, value, tags: { ...this.options.getTags(), ...tags } });\n distribution.record(value, { ...this.options.getTags(), ...tags });\n }\n\n flush(): Promise<void> {\n return this._meterProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._meterProvider.shutdown();\n }\n}\n\nconst convertTags = (data?: MetricData) => {\n if (data && data.tags) {\n return Object.entries(data.tags).reduce<{ [key: string]: any }>((obj, [key, value]) => {\n obj[key] = value;\n return obj;\n }, {});\n } else {\n return {};\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { trace, type Tracer } from '@opentelemetry/api';\nimport { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { Resource } from '@opentelemetry/resources';\nimport { ConsoleSpanExporter, SimpleSpanProcessor, BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { TRACE_PROCESSOR, type StartSpanOptions } from '@dxos/tracing';\n\nimport { type OtelOptions } from './otel';\n\nexport class OtelTraces {\n private _tracer: Tracer;\n constructor(private readonly options: OtelOptions) {\n const resource = Resource.default().merge(\n new Resource({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const tracerProvider = new WebTracerProvider({ resource });\n tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));\n tracerProvider.addSpanProcessor(\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: this.options.endpoint + '/v1/traces',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n }),\n ),\n );\n // TODO(nf): ContextManager? Propogator?\n tracerProvider.register({});\n this._tracer = trace.getTracer('dxos-observability', this.options.serviceVersion);\n }\n\n public start(): void {\n registerInstrumentations({\n instrumentations: [getWebAutoInstrumentations()],\n });\n log('trace processor registered');\n TRACE_PROCESSOR.remoteTracing.registerProcessor({\n startSpan: (options: StartSpanOptions) => {\n log('begin otel trace', { options });\n return this._tracer.startSpan(options.name, options);\n },\n });\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["diag", "DiagConsoleLogger", "DiagLogLevel", "setDiagLogger", "level", "logLevel", "DiagLogLevel", "diag", "setLogger", "DiagConsoleLogger", "SeverityNumber", "OTLPLogExporter", "Resource", "BatchLogRecordProcessor", "LoggerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "getContextFromEntry", "getRelativeFilename", "LogLevel", "jsonlogify", "OtelLogs", "options", "logProcessor", "config", "entry", "logger", "_loggerProvider", "getLogger", "serviceVersion", "level", "logLevel", "includeSharedWorkerLogs", "meta", "S", "remoteSessionId", "record", "file", "getRelativeFilename", "F", "line", "L", "context", "jsonlogify", "getContextFromEntry", "emit", "severityNumber", "convertLevel", "body", "JSON", "stringify", "attributes", "getTags", "setDiagLogger", "consoleDiagLogLevel", "resource", "Resource", "default", "merge", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "logExporter", "OTLPLogExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "LoggerProvider", "addLogRecordProcessor", "BatchLogRecordProcessor", "flush", "forceFlush", "close", "shutdown", "LogLevel", "DEBUG", "SeverityNumber", "VERBOSE", "INFO", "WARN", "ERROR", "OTLPMetricExporter", "Resource", "MeterProvider", "PeriodicExportingMetricReader", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "EXPORT_INTERVAL", "OtelMetrics", "options", "_gauges", "Map", "setDiagLogger", "consoleDiagLogLevel", "resource", "Resource", "default", "merge", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "serviceVersion", "grafanaMetricReader", "PeriodicExportingMetricReader", "exporter", "OTLPMetricExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "exportIntervalMillis", "_meterProvider", "MeterProvider", "readers", "_meter", "getMeter", "metrics", "increment", "name", "value", "data", "convertTags", "distribution", "set", "gauge", "TRACE_PROCESSOR", "remoteMetrics", "registerProcessor", "tags", "createGauge", "log", "getTags", "record", "counter", "createCounter", "add", "createHistogram", "flush", "forceFlush", "close", "shutdown", "Object", "entries", "reduce", "obj", "key", "trace", "getWebAutoInstrumentations", "OTLPTraceExporter", "registerInstrumentations", "Resource", "ConsoleSpanExporter", "SimpleSpanProcessor", "BatchSpanProcessor", "WebTracerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "OtelTraces", "options", "resource", "default", "merge", "serviceName", "serviceVersion", "tracerProvider", "addSpanProcessor", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "register", "_tracer", "getTracer", "start", "instrumentations", "remoteTracing", "registerProcessor", "startSpan", "name"]
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\n\nexport type OtelOptions = {\n endpoint: string;\n authorizationHeader: string;\n serviceName: string; // For the Otel API, the name of the entity for which signals (metrics or trace) are collected.\n serviceVersion: string; // For the Otel API, The name of the entity for which signals (metrics or trace) are collected.\n getTags: () => { [key: string]: string };\n consoleDiagLogLevel?: string;\n};\n\nexport const setDiagLogger = (level?: string) => {\n const logLevel = DiagLogLevel[level as keyof typeof DiagLogLevel];\n if (logLevel) {\n diag.setLogger(new DiagConsoleLogger(), logLevel);\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { Resource } from '@opentelemetry/resources';\nimport { BatchLogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport {\n type LogConfig,\n type LogEntry,\n LogLevel,\n type LogProcessor,\n getContextFromEntry,\n getRelativeFilename,\n} from '@dxos/log';\nimport { jsonlogify } from '@dxos/util';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nexport type OtelLogOptions = OtelOptions & {\n logLevel: LogLevel;\n /**\n * Set `true` to capture logs sent through LoggingService from shared worker.\n * Better to set to `false` because shared worker is initializing its own logger.\n */\n includeSharedWorkerLogs: boolean;\n};\n\nexport class OtelLogs {\n private _loggerProvider: LoggerProvider;\n constructor(private readonly options: OtelLogOptions) {\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = Resource.default().merge(\n new Resource({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n const logExporter = new OTLPLogExporter({\n url: this.options.endpoint + '/v1/logs',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n });\n this._loggerProvider = new LoggerProvider({ resource });\n this._loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));\n }\n\n public readonly logProcessor: LogProcessor = (config: LogConfig, entry: LogEntry) => {\n const logger = this._loggerProvider.getLogger('dxos-observability', this.options.serviceVersion);\n\n if (\n entry.level < this.options.logLevel ||\n (!this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId)\n ) {\n return;\n }\n\n const record = {\n ...entry,\n ...(entry.meta ? { meta: { file: getRelativeFilename(entry.meta.F), line: entry.meta.L } } : {}),\n context: jsonlogify(getContextFromEntry(entry)),\n };\n\n logger.emit({\n severityNumber: convertLevel(entry.level),\n body: JSON.stringify(record),\n attributes: this.options.getTags(),\n });\n };\n\n flush(): Promise<void> {\n return this._loggerProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._loggerProvider.shutdown();\n }\n}\n\nconst convertLevel = (level: LogLevel): SeverityNumber => {\n switch (level) {\n case LogLevel.DEBUG:\n return SeverityNumber.DEBUG;\n case LogLevel.VERBOSE:\n return SeverityNumber.INFO;\n case LogLevel.INFO:\n return SeverityNumber.INFO;\n case LogLevel.WARN:\n return SeverityNumber.WARN;\n case LogLevel.ERROR:\n return SeverityNumber.ERROR;\n default:\n return SeverityNumber.ERROR;\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Attributes, type Meter, type ObservableGauge } from '@opentelemetry/api';\nimport { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { Resource } from '@opentelemetry/resources';\nimport { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type MetricData, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nconst EXPORT_INTERVAL = 60 * 1000;\n\ntype SynchronousGauge = {\n gauge: ObservableGauge<Attributes>;\n nextValue: number;\n nextTags?: any;\n};\n\nexport class OtelMetrics {\n private _meterProvider: MeterProvider;\n private _meter: Meter;\n private _gauges = new Map<string, SynchronousGauge>();\n\n constructor(private readonly options: OtelOptions) {\n // TODO: improve error handling/logging\n // https://github.com/open-telemetry/opentelemetry-js/issues/4823\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = Resource.default().merge(\n new Resource({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const grafanaMetricReader = new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({\n url: this.options.endpoint + '/v1/metrics',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n }),\n exportIntervalMillis: EXPORT_INTERVAL,\n });\n\n this._meterProvider = new MeterProvider({\n resource,\n readers: [grafanaMetricReader],\n });\n this._meter = this._meterProvider.getMeter('dxos-observability');\n\n const metrics = {\n // TODO: update metrics names and remove prefix?\n increment: (name: string, value?: number, data?: MetricData) => {\n this.increment(name, value, convertTags(data));\n },\n distribution: (name: string, value: number, data?: MetricData) => {\n this.distribution(name, value, convertTags(data));\n },\n set: (name: string, value: number | string, data?: MetricData) => {\n // Not implemented, not part of Otel spec.\n },\n gauge: (name: string, value: number, data?: MetricData) => {\n this.gauge(name, value, convertTags(data));\n },\n };\n\n TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);\n }\n\n gauge(name: string, value: number, tags?: any): void {\n const gauge = this._meter.createGauge(name);\n log('otel gauge', { name, value, tags: { ...this.options.getTags(), ...tags } });\n gauge.record(value, { ...this.options.getTags(), ...tags });\n }\n\n increment(name: string, value?: number, tags?: any): void {\n const counter = this._meter.createCounter(name);\n log('otel counter', { name, value, tags: { ...this.options.getTags(), ...tags } });\n counter.add(value ?? 1, { ...this.options.getTags(), ...tags });\n }\n\n distribution(name: string, value: number, tags?: any): void {\n const distribution = this._meter.createHistogram(name);\n log('otel distribution', { name, value, tags: { ...this.options.getTags(), ...tags } });\n distribution.record(value, { ...this.options.getTags(), ...tags });\n }\n\n flush(): Promise<void> {\n return this._meterProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._meterProvider.shutdown();\n }\n}\n\nconst convertTags = (data?: MetricData) => {\n if (data && data.tags) {\n return Object.entries(data.tags).reduce<{ [key: string]: any }>((obj, [key, value]) => {\n obj[key] = value;\n return obj;\n }, {});\n } else {\n return {};\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Tracer, trace } from '@opentelemetry/api';\nimport { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { Resource } from '@opentelemetry/resources';\nimport { BatchSpanProcessor, ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type StartSpanOptions, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type OtelOptions } from './otel';\n\nexport class OtelTraces {\n private _tracer: Tracer;\n constructor(private readonly options: OtelOptions) {\n const resource = Resource.default().merge(\n new Resource({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const tracerProvider = new WebTracerProvider({ resource });\n tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));\n tracerProvider.addSpanProcessor(\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: this.options.endpoint + '/v1/traces',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n }),\n ),\n );\n // TODO(nf): ContextManager? Propogator?\n tracerProvider.register({});\n this._tracer = trace.getTracer('dxos-observability', this.options.serviceVersion);\n }\n\n public start(): void {\n registerInstrumentations({\n instrumentations: [getWebAutoInstrumentations()],\n });\n log('trace processor registered');\n TRACE_PROCESSOR.remoteTracing.registerProcessor({\n startSpan: (options: StartSpanOptions) => {\n log('begin otel trace', { options });\n return this._tracer.startSpan(options.name, options);\n },\n });\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["DiagConsoleLogger", "DiagLogLevel", "diag", "setDiagLogger", "level", "logLevel", "DiagLogLevel", "diag", "setLogger", "DiagConsoleLogger", "SeverityNumber", "OTLPLogExporter", "Resource", "BatchLogRecordProcessor", "LoggerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "LogLevel", "getContextFromEntry", "getRelativeFilename", "jsonlogify", "OtelLogs", "flush", "_loggerProvider", "forceFlush", "close", "shutdown", "options", "logProcessor", "config", "entry", "logger", "getLogger", "serviceVersion", "level", "logLevel", "includeSharedWorkerLogs", "meta", "S", "remoteSessionId", "record", "file", "getRelativeFilename", "F", "line", "L", "context", "jsonlogify", "getContextFromEntry", "emit", "severityNumber", "convertLevel", "body", "JSON", "stringify", "attributes", "getTags", "setDiagLogger", "consoleDiagLogLevel", "resource", "Resource", "default", "merge", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "logExporter", "OTLPLogExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "LoggerProvider", "addLogRecordProcessor", "BatchLogRecordProcessor", "LogLevel", "DEBUG", "SeverityNumber", "VERBOSE", "INFO", "WARN", "ERROR", "OTLPMetricExporter", "Resource", "MeterProvider", "PeriodicExportingMetricReader", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "EXPORT_INTERVAL", "OtelMetrics", "gauge", "name", "value", "tags", "_meter", "createGauge", "log", "options", "getTags", "record", "increment", "counter", "createCounter", "add", "distribution", "createHistogram", "flush", "_meterProvider", "forceFlush", "close", "shutdown", "_define_property", "_gauges", "Map", "setDiagLogger", "consoleDiagLogLevel", "resource", "Resource", "default", "merge", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "serviceVersion", "grafanaMetricReader", "PeriodicExportingMetricReader", "exporter", "OTLPMetricExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "exportIntervalMillis", "MeterProvider", "readers", "getMeter", "metrics", "data", "convertTags", "set", "TRACE_PROCESSOR", "remoteMetrics", "registerProcessor", "Object", "entries", "reduce", "obj", "key", "trace", "getWebAutoInstrumentations", "OTLPTraceExporter", "registerInstrumentations", "Resource", "BatchSpanProcessor", "ConsoleSpanExporter", "SimpleSpanProcessor", "WebTracerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "OtelTraces", "start", "instrumentations", "remoteTracing", "registerProcessor", "startSpan", "options", "_tracer", "name", "_define_property", "resource", "default", "merge", "serviceName", "serviceVersion", "tracerProvider", "addSpanProcessor", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "register", "getTracer"]
7
7
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SegmentTelemetry,
3
3
  TelemetryEvent
4
- } from "../chunk-MWTIKIBZ.mjs";
4
+ } from "../chunk-VSEBD3XA.mjs";
5
5
  import "../chunk-5ICT2XF2.mjs";
6
- import "../chunk-YEPQFAES.mjs";
6
+ import "../chunk-LJO63BXO.mjs";
7
7
  export {
8
8
  SegmentTelemetry,
9
9
  TelemetryEvent
@@ -9,7 +9,7 @@ import {
9
9
  setTags,
10
10
  setUser,
11
11
  withScope
12
- } from "../chunk-YEPQFAES.mjs";
12
+ } from "../chunk-LJO63BXO.mjs";
13
13
  export {
14
14
  addBreadcrumb,
15
15
  captureException,