@dxos/observability 0.8.4-main.84f28bd → 0.8.4-main.ae835ea

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 (129) hide show
  1. package/dist/lib/browser/chunk-5ICT2XF2.mjs +1 -0
  2. package/dist/lib/browser/{chunk-33TCMAUB.mjs → chunk-USIB5JOP.mjs} +53 -30
  3. package/dist/lib/browser/chunk-USIB5JOP.mjs.map +7 -0
  4. package/dist/lib/browser/{chunk-MWTIKIBZ.mjs → chunk-XNAF22QM.mjs} +10 -9
  5. package/dist/lib/browser/chunk-XNAF22QM.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-YEPQFAES.mjs → chunk-ZI3ZS3PA.mjs} +2 -2
  7. package/dist/lib/browser/chunk-ZI3ZS3PA.mjs.map +7 -0
  8. package/dist/lib/browser/index.mjs +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/observability-AOZNUWZS.mjs +10 -0
  11. package/dist/lib/browser/{otel-IRDZ7PES.mjs → otel-UH7ZRWC2.mjs} +59 -49
  12. package/dist/lib/browser/otel-UH7ZRWC2.mjs.map +7 -0
  13. package/dist/lib/browser/segment/index.mjs +3 -3
  14. package/dist/lib/browser/sentry/index.mjs +2 -2
  15. package/dist/lib/browser/{sentry-log-processor-3F3SBJXM.mjs → sentry-log-processor-5LSQJMIO.mjs} +53 -53
  16. package/dist/lib/browser/sentry-log-processor-5LSQJMIO.mjs.map +7 -0
  17. package/dist/lib/node-esm/{chunk-EYW4X3O6.mjs → chunk-JJS4CBLT.mjs} +53 -30
  18. package/dist/lib/{browser/chunk-33TCMAUB.mjs.map → node-esm/chunk-JJS4CBLT.mjs.map} +3 -3
  19. package/dist/lib/node-esm/{chunk-552KLA6Z.mjs → chunk-OJV247NY.mjs} +16 -14
  20. package/dist/lib/node-esm/chunk-OJV247NY.mjs.map +7 -0
  21. package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs → chunk-QK5IUYVA.mjs} +2 -2
  22. package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs.map → chunk-QK5IUYVA.mjs.map} +3 -3
  23. package/dist/lib/node-esm/{chunk-MRAK2H7O.mjs → chunk-QUZL7LKE.mjs} +1 -1
  24. package/dist/lib/node-esm/index.mjs +4 -4
  25. package/dist/lib/node-esm/meta.json +1 -1
  26. package/dist/lib/node-esm/observability-UWX2LAYX.mjs +11 -0
  27. package/dist/lib/node-esm/{otel-62HYJETM.mjs → otel-7PUCFSTY.mjs} +56 -46
  28. package/dist/lib/node-esm/otel-7PUCFSTY.mjs.map +7 -0
  29. package/dist/lib/node-esm/segment/index.mjs +3 -3
  30. package/dist/lib/node-esm/sentry/index.mjs +2 -2
  31. package/dist/lib/node-esm/{sentry-log-processor-JAYRA23C.mjs → sentry-log-processor-C4UGMAMV.mjs} +53 -53
  32. package/dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs.map +7 -0
  33. package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
  34. package/dist/types/src/helpers/browser-observability.js +4 -6
  35. package/dist/types/src/helpers/browser-observability.js.map +1 -1
  36. package/dist/types/src/helpers/common.js +1 -1
  37. package/dist/types/src/helpers/common.js.map +1 -1
  38. package/dist/types/src/helpers/map-spaces.js +5 -6
  39. package/dist/types/src/helpers/map-spaces.js.map +1 -1
  40. package/dist/types/src/helpers/node-observability.d.ts +1 -1
  41. package/dist/types/src/helpers/node-observability.d.ts.map +1 -1
  42. package/dist/types/src/helpers/node-observability.js +7 -11
  43. package/dist/types/src/helpers/node-observability.js.map +1 -1
  44. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +1 -1
  45. package/dist/types/src/helpers/setup-telemetry-listeners.js +4 -7
  46. package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
  47. package/dist/types/src/observability.d.ts +1 -1
  48. package/dist/types/src/observability.d.ts.map +1 -1
  49. package/dist/types/src/observability.js +68 -59
  50. package/dist/types/src/observability.js.map +1 -1
  51. package/dist/types/src/otel/logs.d.ts.map +1 -1
  52. package/dist/types/src/otel/logs.js +26 -23
  53. package/dist/types/src/otel/logs.js.map +1 -1
  54. package/dist/types/src/otel/metrics.d.ts +0 -1
  55. package/dist/types/src/otel/metrics.d.ts.map +1 -1
  56. package/dist/types/src/otel/metrics.js +6 -4
  57. package/dist/types/src/otel/metrics.js.map +1 -1
  58. package/dist/types/src/otel/otel.js +1 -1
  59. package/dist/types/src/otel/otel.js.map +1 -1
  60. package/dist/types/src/otel/traces-browser.d.ts.map +1 -1
  61. package/dist/types/src/otel/traces-browser.js +19 -13
  62. package/dist/types/src/otel/traces-browser.js.map +1 -1
  63. package/dist/types/src/otel/traces.d.ts.map +1 -1
  64. package/dist/types/src/otel/traces.js +18 -12
  65. package/dist/types/src/otel/traces.js.map +1 -1
  66. package/dist/types/src/segment/base.d.ts +1 -1
  67. package/dist/types/src/segment/base.d.ts.map +1 -1
  68. package/dist/types/src/segment/base.js +2 -1
  69. package/dist/types/src/segment/base.js.map +1 -1
  70. package/dist/types/src/segment/browser.d.ts +1 -1
  71. package/dist/types/src/segment/browser.d.ts.map +1 -1
  72. package/dist/types/src/segment/browser.js +6 -10
  73. package/dist/types/src/segment/browser.js.map +1 -1
  74. package/dist/types/src/segment/node.d.ts +1 -1
  75. package/dist/types/src/segment/node.d.ts.map +1 -1
  76. package/dist/types/src/segment/node.js +2 -1
  77. package/dist/types/src/segment/node.js.map +1 -1
  78. package/dist/types/src/sentry/browser.d.ts.map +1 -1
  79. package/dist/types/src/sentry/browser.js +5 -7
  80. package/dist/types/src/sentry/browser.js.map +1 -1
  81. package/dist/types/src/sentry/index.d.ts +1 -1
  82. package/dist/types/src/sentry/index.d.ts.map +1 -1
  83. package/dist/types/src/sentry/index.js +0 -1
  84. package/dist/types/src/sentry/index.js.map +1 -1
  85. package/dist/types/src/sentry/node.d.ts.map +1 -1
  86. package/dist/types/src/sentry/node.js +8 -13
  87. package/dist/types/src/sentry/node.js.map +1 -1
  88. package/dist/types/src/sentry/node.node.test.js +3 -5
  89. package/dist/types/src/sentry/node.node.test.js.map +1 -1
  90. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
  91. package/dist/types/src/sentry/sentry-log-processor.js +58 -63
  92. package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
  93. package/dist/types/src/sentry/sentry.node.test.js +1 -1
  94. package/dist/types/src/sentry/sentry.node.test.js.map +1 -1
  95. package/dist/types/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +30 -30
  97. package/src/helpers/browser-observability.ts +2 -1
  98. package/src/helpers/node-observability.ts +5 -4
  99. package/src/helpers/setup-telemetry-listeners.ts +2 -1
  100. package/src/observability.ts +4 -4
  101. package/src/otel/logs.ts +9 -7
  102. package/src/otel/metrics.ts +5 -12
  103. package/src/otel/otel.ts +1 -1
  104. package/src/otel/traces-browser.ts +23 -20
  105. package/src/otel/traces.ts +22 -19
  106. package/src/segment/base.ts +1 -1
  107. package/src/segment/browser.ts +3 -2
  108. package/src/segment/node.ts +3 -2
  109. package/src/sentry/browser.ts +8 -8
  110. package/src/sentry/index.ts +1 -1
  111. package/src/sentry/node.node.test.ts +2 -1
  112. package/src/sentry/node.ts +3 -3
  113. package/src/sentry/sentry-log-processor.ts +15 -7
  114. package/src/sentry/sentry.node.test.ts +2 -1
  115. package/dist/lib/browser/chunk-5OQYI27L.mjs +0 -1
  116. package/dist/lib/browser/chunk-MWTIKIBZ.mjs.map +0 -7
  117. package/dist/lib/browser/chunk-YEPQFAES.mjs.map +0 -7
  118. package/dist/lib/browser/observability-EEM6BEY6.mjs +0 -10
  119. package/dist/lib/browser/otel-IRDZ7PES.mjs.map +0 -7
  120. package/dist/lib/browser/sentry-log-processor-3F3SBJXM.mjs.map +0 -7
  121. package/dist/lib/node-esm/chunk-552KLA6Z.mjs.map +0 -7
  122. package/dist/lib/node-esm/chunk-EYW4X3O6.mjs.map +0 -7
  123. package/dist/lib/node-esm/observability-DAXZGOBS.mjs +0 -11
  124. package/dist/lib/node-esm/otel-62HYJETM.mjs.map +0 -7
  125. package/dist/lib/node-esm/sentry-log-processor-JAYRA23C.mjs.map +0 -7
  126. /package/dist/lib/browser/{chunk-5OQYI27L.mjs.map → chunk-5ICT2XF2.mjs.map} +0 -0
  127. /package/dist/lib/browser/{observability-EEM6BEY6.mjs.map → observability-AOZNUWZS.mjs.map} +0 -0
  128. /package/dist/lib/node-esm/{chunk-MRAK2H7O.mjs.map → chunk-QUZL7LKE.mjs.map} +0 -0
  129. /package/dist/lib/node-esm/{observability-DAXZGOBS.mjs.map → observability-UWX2LAYX.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  captureException
4
- } from "./chunk-TEH6VIKV.mjs";
4
+ } from "./chunk-QK5IUYVA.mjs";
5
5
 
6
6
  // src/segment/node.ts
7
7
  import { Analytics } from "@segment/analytics-node";
@@ -12,11 +12,11 @@ import { log as log2 } from "@dxos/log";
12
12
  import { log } from "@dxos/log";
13
13
 
14
14
  // src/segment/types.ts
15
- var TelemetryEvent = /* @__PURE__ */ function(TelemetryEvent2) {
15
+ var TelemetryEvent = /* @__PURE__ */ (function(TelemetryEvent2) {
16
16
  TelemetryEvent2["ACTION"] = "action";
17
17
  TelemetryEvent2["METRICS"] = "metrics";
18
18
  return TelemetryEvent2;
19
- }({});
19
+ })({});
20
20
 
21
21
  // src/segment/base.ts
22
22
  var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/segment/base.ts";
@@ -35,6 +35,7 @@ var getIdentityOptions = ({ did, installationId }) => {
35
35
  };
36
36
  };
37
37
  var AbstractSegmentTelemetry = class {
38
+ _getTags;
38
39
  constructor(_getTags) {
39
40
  this._getTags = _getTags;
40
41
  }
@@ -67,12 +68,13 @@ var AbstractSegmentTelemetry = class {
67
68
  // src/segment/node.ts
68
69
  var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/segment/node.ts";
69
70
  var SegmentTelemetry = class extends AbstractSegmentTelemetry {
71
+ _analytics;
70
72
  constructor({ apiKey, batchSize, getTags }) {
71
73
  super(getTags);
72
74
  try {
73
75
  invariant(apiKey, "Missing API key.", {
74
76
  F: __dxlog_file2,
75
- L: 23,
77
+ L: 24,
76
78
  S: this,
77
79
  A: [
78
80
  "apiKey",
@@ -86,7 +88,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
86
88
  } catch (err) {
87
89
  log2.catch("Failed to initialize telemetry", err, {
88
90
  F: __dxlog_file2,
89
- L: 29,
91
+ L: 30,
90
92
  S: this,
91
93
  C: (f, a) => f(...a)
92
94
  });
@@ -98,7 +100,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
98
100
  action: "identify"
99
101
  }, {
100
102
  F: __dxlog_file2,
101
- L: 35,
103
+ L: 36,
102
104
  S: this,
103
105
  C: (f, a) => f(...a)
104
106
  });
@@ -109,7 +111,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
109
111
  } catch (err) {
110
112
  log2.catch("Failed to identify", err, {
111
113
  F: __dxlog_file2,
112
- L: 42,
114
+ L: 43,
113
115
  S: this,
114
116
  C: (f, a) => f(...a)
115
117
  });
@@ -121,7 +123,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
121
123
  action: "page"
122
124
  }, {
123
125
  F: __dxlog_file2,
124
- L: 48,
126
+ L: 49,
125
127
  S: this,
126
128
  C: (f, a) => f(...a)
127
129
  });
@@ -132,7 +134,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
132
134
  } catch (err) {
133
135
  log2.catch("Failed to track page", err, {
134
136
  F: __dxlog_file2,
135
- L: 55,
137
+ L: 56,
136
138
  S: this,
137
139
  C: (f, a) => f(...a)
138
140
  });
@@ -144,7 +146,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
144
146
  action: "track"
145
147
  }, {
146
148
  F: __dxlog_file2,
147
- L: 61,
149
+ L: 62,
148
150
  S: this,
149
151
  C: (f, a) => f(...a)
150
152
  });
@@ -154,7 +156,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
154
156
  options
155
157
  }, {
156
158
  F: __dxlog_file2,
157
- L: 65,
159
+ L: 66,
158
160
  S: this,
159
161
  C: (f, a) => f(...a)
160
162
  });
@@ -163,7 +165,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
163
165
  } catch (err) {
164
166
  log2.catch("Failed to track action", err, {
165
167
  F: __dxlog_file2,
166
- L: 69,
168
+ L: 70,
167
169
  S: this,
168
170
  C: (f, a) => f(...a)
169
171
  });
@@ -175,7 +177,7 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
175
177
  action: "flush"
176
178
  }, {
177
179
  F: __dxlog_file2,
178
- L: 75,
180
+ L: 76,
179
181
  S: this,
180
182
  C: (f, a) => f(...a)
181
183
  });
@@ -199,4 +201,4 @@ export {
199
201
  TelemetryEvent,
200
202
  SegmentTelemetry
201
203
  };
202
- //# sourceMappingURL=chunk-552KLA6Z.mjs.map
204
+ //# sourceMappingURL=chunk-OJV247NY.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 { captureException } from '../sentry';\n\nimport { AbstractSegmentTelemetry } from './base';\nimport type { PageOptions, SegmentTelemetryOptions, TrackOptions } from './types';\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): void {\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): void {\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): void {\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(): Promise<void> {\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(): Promise<void> {\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 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": "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",
6
+ "names": ["Analytics", "invariant", "log", "log", "TelemetryEvent", "getIdentityOptions", "did", "installationId", "log", "warn", "userId", "anonymousId", "AbstractSegmentTelemetry", "_getTags", "createPageProps", "options", "properties", "rest", "common", "custom", "createTrackProps", "event", "action", "TelemetryEvent", "ACTION", "SegmentTelemetry", "AbstractSegmentTelemetry", "_analytics", "apiKey", "batchSize", "getTags", "invariant", "Analytics", "writeKey", "flushAt", "err", "log", "catch", "identify", "options", "action", "page", "createPageProps", "track", "info", "createTrackProps", "flush", "captureException", "close", "closeAndFlush"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/sentry/node.ts
4
- import { init as naturalInit, setTag, addBreadcrumb as naturalAddBreadcrumb, captureException as naturalCaptureException, captureMessage as naturalCaptureMessage, withScope as naturalWithScope, metrics, startInactiveSpan } from "@sentry/node";
4
+ import { metrics, addBreadcrumb as naturalAddBreadcrumb, captureException as naturalCaptureException, captureMessage as naturalCaptureMessage, init as naturalInit, withScope as naturalWithScope, setTag, startInactiveSpan } from "@sentry/node";
5
5
  import { log } from "@dxos/log";
6
6
  import { TRACE_PROCESSOR } from "@dxos/tracing";
7
7
  import { setTag as setTag2, setTags, setUser } from "@sentry/node";
@@ -132,4 +132,4 @@ export {
132
132
  setTags,
133
133
  setUser
134
134
  };
135
- //# sourceMappingURL=chunk-TEH6VIKV.mjs.map
135
+ //# sourceMappingURL=chunk-QK5IUYVA.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/sentry/node.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport {\n type Event,\n init as naturalInit,\n setTag,\n addBreadcrumb as naturalAddBreadcrumb,\n captureException as naturalCaptureException,\n captureMessage as naturalCaptureMessage,\n withScope as naturalWithScope,\n metrics,\n startInactiveSpan,\n} from '@sentry/node';\n\nimport { log } from '@dxos/log';\nimport { TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type InitOptions } from './types';\n\n// Polyfill export.\nexport { setTag, setTags, setUser } from '@sentry/node';\n\n/**\n * To use this SDK, call the init function as early as possible in the main entry module.\n * To set context information or send manual events, use the provided methods.\n *\n * @param options {InitOptions}\n */\nexport const init = (options: InitOptions) => {\n try {\n naturalInit({\n enabled: options.enable ?? true,\n dsn: options.destination,\n serverName: options.installationId,\n release: options.release,\n environment: options.environment ?? process.env.DX_ENVIRONMENT,\n integrations: [],\n tracesSampleRate: options.sampleRate,\n transport: options.transport,\n beforeSend: (event) => {\n options.scrubFilenames && scrub(event);\n options.onError?.(event);\n\n return event;\n },\n });\n\n if (options.tracing) {\n TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);\n TRACE_PROCESSOR.remoteTracing.registerProcessor({\n startSpan: startInactiveSpan,\n });\n }\n\n Object.entries(options.properties ?? {}).forEach(([key, value]) => {\n setTag(key, value);\n });\n } catch (err) {\n log.catch('Failed to initialize sentry', err);\n }\n};\n\nconst scrub = (event: Event) => {\n event.exception?.values?.forEach((value) => {\n value.stacktrace?.frames?.forEach((frame) => {\n const filename = frame.filename?.split('/');\n frame.filename = filename && filename[filename.length - 1];\n });\n });\n};\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on user's actions prior to an error or crash.\n *\n * https://docs.sentry.io/platforms/javascript/enriching-events/breadcrumbs/\n *\n * @param breadcrumb — The breadcrumb to record.\n */\nexport const addBreadcrumb: typeof naturalAddBreadcrumb = (breadcrumb) => {\n try {\n naturalAddBreadcrumb(breadcrumb);\n log('add breadcrumb', breadcrumb);\n } catch (err) {\n log.catch('Failed to add breadcrumb', err);\n }\n};\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception — An exception-like object.\n * @param captureContext — Additional scope data to apply to exception event.\n * @returns — The generated eventId.\n */\nexport const captureException: typeof naturalCaptureException = (exception, captureContext) => {\n try {\n const eventId = naturalCaptureException(exception, captureContext);\n log('capture exception', { exception, eventId, ...captureContext });\n return eventId;\n } catch (err) {\n log.catch('Failed to capture exception', err);\n return 'unknown';\n }\n};\n\nexport const captureMessage: typeof naturalCaptureMessage = (exception, captureContext) => {\n try {\n const eventId = naturalCaptureMessage(exception, captureContext);\n log('capture message', { exception, eventId, captureContext });\n return eventId;\n } catch (err) {\n log.catch('Failed to capture message', err);\n return 'unknown';\n }\n};\n\nexport const captureUserFeedback = (message: string): Promise<void> => {\n const feedback = `User feedback: ${message}`;\n throw new Error(`Capture user feedback not implemented in node. Use @sentry/browser. Message: ${feedback}`);\n};\n\nexport const withScope = naturalWithScope;\n"],
5
- "mappings": ";;;AAIA,SAEEA,QAAQC,aACRC,QACAC,iBAAiBC,sBACjBC,oBAAoBC,yBACpBC,kBAAkBC,uBAClBC,aAAaC,kBACbC,SACAC,yBACK;AAEP,SAASC,WAAW;AACpB,SAASC,uBAAuB;AAKhC,SAASZ,UAAAA,SAAQa,SAASC,eAAe;;AAQlC,IAAMhB,OAAO,CAACiB,YAAAA;AACnB,MAAI;AACFhB,gBAAY;MACViB,SAASD,QAAQE,UAAU;MAC3BC,KAAKH,QAAQI;MACbC,YAAYL,QAAQM;MACpBC,SAASP,QAAQO;MACjBC,aAAaR,QAAQQ,eAAeC,QAAQC,IAAIC;MAChDC,cAAc,CAAA;MACdC,kBAAkBb,QAAQc;MAC1BC,WAAWf,QAAQe;MACnBC,YAAY,CAACC,UAAAA;AACXjB,gBAAQkB,kBAAkBC,MAAMF,KAAAA;AAChCjB,gBAAQoB,UAAUH,KAAAA;AAElB,eAAOA;MACT;IACF,CAAA;AAEA,QAAIjB,QAAQqB,SAAS;AACnBxB,sBAAgByB,cAAcC,kBAAkB7B,OAAAA;AAChDG,sBAAgB2B,cAAcD,kBAAkB;QAC9CE,WAAW9B;MACb,CAAA;IACF;AAEA+B,WAAOC,QAAQ3B,QAAQ4B,cAAc,CAAC,CAAA,EAAGC,QAAQ,CAAC,CAACC,KAAKC,KAAAA,MAAM;AAC5D9C,aAAO6C,KAAKC,KAAAA;IACd,CAAA;EACF,SAASC,KAAK;AACZpC,QAAIqC,MAAM,+BAA+BD,KAAAA;;;;;;EAC3C;AACF;AAEA,IAAMb,QAAQ,CAACF,UAAAA;AACbA,QAAMiB,WAAWC,QAAQN,QAAQ,CAACE,UAAAA;AAChCA,UAAMK,YAAYC,QAAQR,QAAQ,CAACS,UAAAA;AACjC,YAAMC,WAAWD,MAAMC,UAAUC,MAAM,GAAA;AACvCF,YAAMC,WAAWA,YAAYA,SAASA,SAASE,SAAS,CAAA;IAC1D,CAAA;EACF,CAAA;AACF;AAWO,IAAMvD,gBAA6C,CAACwD,eAAAA;AACzD,MAAI;AACFvD,yBAAqBuD,UAAAA;AACrB9C,QAAI,kBAAkB8C,YAAAA;;;;;;EACxB,SAASV,KAAK;AACZpC,QAAIqC,MAAM,4BAA4BD,KAAAA;;;;;;EACxC;AACF;AASO,IAAM5C,mBAAmD,CAAC8C,WAAWS,mBAAAA;AAC1E,MAAI;AACF,UAAMC,UAAUvD,wBAAwB6C,WAAWS,cAAAA;AACnD/C,QAAI,qBAAqB;MAAEsC;MAAWU;MAAS,GAAGD;IAAe,GAAA;;;;;;AACjE,WAAOC;EACT,SAASZ,KAAK;AACZpC,QAAIqC,MAAM,+BAA+BD,KAAAA;;;;;;AACzC,WAAO;EACT;AACF;AAEO,IAAM1C,iBAA+C,CAAC4C,WAAWS,mBAAAA;AACtE,MAAI;AACF,UAAMC,UAAUrD,sBAAsB2C,WAAWS,cAAAA;AACjD/C,QAAI,mBAAmB;MAAEsC;MAAWU;MAASD;IAAe,GAAA;;;;;;AAC5D,WAAOC;EACT,SAASZ,KAAK;AACZpC,QAAIqC,MAAM,6BAA6BD,KAAAA;;;;;;AACvC,WAAO;EACT;AACF;AAEO,IAAMa,sBAAsB,CAACC,YAAAA;AAClC,QAAMC,WAAW,kBAAkBD,OAAAA;AACnC,QAAM,IAAIE,MAAM,gFAAgFD,QAAAA,EAAU;AAC5G;AAEO,IAAMvD,YAAYC;",
6
- "names": ["init", "naturalInit", "setTag", "addBreadcrumb", "naturalAddBreadcrumb", "captureException", "naturalCaptureException", "captureMessage", "naturalCaptureMessage", "withScope", "naturalWithScope", "metrics", "startInactiveSpan", "log", "TRACE_PROCESSOR", "setTags", "setUser", "options", "enabled", "enable", "dsn", "destination", "serverName", "installationId", "release", "environment", "process", "env", "DX_ENVIRONMENT", "integrations", "tracesSampleRate", "sampleRate", "transport", "beforeSend", "event", "scrubFilenames", "scrub", "onError", "tracing", "remoteMetrics", "registerProcessor", "remoteTracing", "startSpan", "Object", "entries", "properties", "forEach", "key", "value", "err", "catch", "exception", "values", "stacktrace", "frames", "frame", "filename", "split", "length", "breadcrumb", "captureContext", "eventId", "captureUserFeedback", "message", "feedback", "Error"]
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport {\n type Event,\n metrics,\n addBreadcrumb as naturalAddBreadcrumb,\n captureException as naturalCaptureException,\n captureMessage as naturalCaptureMessage,\n init as naturalInit,\n withScope as naturalWithScope,\n setTag,\n startInactiveSpan,\n} from '@sentry/node';\n\nimport { log } from '@dxos/log';\nimport { TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type InitOptions } from './types';\n\n// Polyfill export.\nexport { setTag, setTags, setUser } from '@sentry/node';\n\n/**\n * To use this SDK, call the init function as early as possible in the main entry module.\n * To set context information or send manual events, use the provided methods.\n *\n * @param options {InitOptions}\n */\nexport const init = (options: InitOptions) => {\n try {\n naturalInit({\n enabled: options.enable ?? true,\n dsn: options.destination,\n serverName: options.installationId,\n release: options.release,\n environment: options.environment ?? process.env.DX_ENVIRONMENT,\n integrations: [],\n tracesSampleRate: options.sampleRate,\n transport: options.transport,\n beforeSend: (event) => {\n options.scrubFilenames && scrub(event);\n options.onError?.(event);\n\n return event;\n },\n });\n\n if (options.tracing) {\n TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);\n TRACE_PROCESSOR.remoteTracing.registerProcessor({\n startSpan: startInactiveSpan,\n });\n }\n\n Object.entries(options.properties ?? {}).forEach(([key, value]) => {\n setTag(key, value);\n });\n } catch (err) {\n log.catch('Failed to initialize sentry', err);\n }\n};\n\nconst scrub = (event: Event) => {\n event.exception?.values?.forEach((value) => {\n value.stacktrace?.frames?.forEach((frame) => {\n const filename = frame.filename?.split('/');\n frame.filename = filename && filename[filename.length - 1];\n });\n });\n};\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on user's actions prior to an error or crash.\n *\n * https://docs.sentry.io/platforms/javascript/enriching-events/breadcrumbs/\n *\n * @param breadcrumb — The breadcrumb to record.\n */\nexport const addBreadcrumb: typeof naturalAddBreadcrumb = (breadcrumb) => {\n try {\n naturalAddBreadcrumb(breadcrumb);\n log('add breadcrumb', breadcrumb);\n } catch (err) {\n log.catch('Failed to add breadcrumb', err);\n }\n};\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception — An exception-like object.\n * @param captureContext — Additional scope data to apply to exception event.\n * @returns — The generated eventId.\n */\nexport const captureException: typeof naturalCaptureException = (exception, captureContext) => {\n try {\n const eventId = naturalCaptureException(exception, captureContext);\n log('capture exception', { exception, eventId, ...captureContext });\n return eventId;\n } catch (err) {\n log.catch('Failed to capture exception', err);\n return 'unknown';\n }\n};\n\nexport const captureMessage: typeof naturalCaptureMessage = (exception, captureContext) => {\n try {\n const eventId = naturalCaptureMessage(exception, captureContext);\n log('capture message', { exception, eventId, captureContext });\n return eventId;\n } catch (err) {\n log.catch('Failed to capture message', err);\n return 'unknown';\n }\n};\n\nexport const captureUserFeedback = (message: string): Promise<void> => {\n const feedback = `User feedback: ${message}`;\n throw new Error(`Capture user feedback not implemented in node. Use @sentry/browser. Message: ${feedback}`);\n};\n\nexport const withScope = naturalWithScope;\n"],
5
+ "mappings": ";;;AAIA,SAEEA,SACAC,iBAAiBC,sBACjBC,oBAAoBC,yBACpBC,kBAAkBC,uBAClBC,QAAQC,aACRC,aAAaC,kBACbC,QACAC,yBACK;AAEP,SAASC,WAAW;AACpB,SAASC,uBAAuB;AAKhC,SAASH,UAAAA,SAAQI,SAASC,eAAe;;AAQlC,IAAMT,OAAO,CAACU,YAAAA;AACnB,MAAI;AACFT,gBAAY;MACVU,SAASD,QAAQE,UAAU;MAC3BC,KAAKH,QAAQI;MACbC,YAAYL,QAAQM;MACpBC,SAASP,QAAQO;MACjBC,aAAaR,QAAQQ,eAAeC,QAAQC,IAAIC;MAChDC,cAAc,CAAA;MACdC,kBAAkBb,QAAQc;MAC1BC,WAAWf,QAAQe;MACnBC,YAAY,CAACC,UAAAA;AACXjB,gBAAQkB,kBAAkBC,MAAMF,KAAAA;AAChCjB,gBAAQoB,UAAUH,KAAAA;AAElB,eAAOA;MACT;IACF,CAAA;AAEA,QAAIjB,QAAQqB,SAAS;AACnBxB,sBAAgByB,cAAcC,kBAAkBxC,OAAAA;AAChDc,sBAAgB2B,cAAcD,kBAAkB;QAC9CE,WAAW9B;MACb,CAAA;IACF;AAEA+B,WAAOC,QAAQ3B,QAAQ4B,cAAc,CAAC,CAAA,EAAGC,QAAQ,CAAC,CAACC,KAAKC,KAAAA,MAAM;AAC5DrC,aAAOoC,KAAKC,KAAAA;IACd,CAAA;EACF,SAASC,KAAK;AACZpC,QAAIqC,MAAM,+BAA+BD,KAAAA;;;;;;EAC3C;AACF;AAEA,IAAMb,QAAQ,CAACF,UAAAA;AACbA,QAAMiB,WAAWC,QAAQN,QAAQ,CAACE,UAAAA;AAChCA,UAAMK,YAAYC,QAAQR,QAAQ,CAACS,UAAAA;AACjC,YAAMC,WAAWD,MAAMC,UAAUC,MAAM,GAAA;AACvCF,YAAMC,WAAWA,YAAYA,SAASA,SAASE,SAAS,CAAA;IAC1D,CAAA;EACF,CAAA;AACF;AAWO,IAAMzD,gBAA6C,CAAC0D,eAAAA;AACzD,MAAI;AACFzD,yBAAqByD,UAAAA;AACrB9C,QAAI,kBAAkB8C,YAAAA;;;;;;EACxB,SAASV,KAAK;AACZpC,QAAIqC,MAAM,4BAA4BD,KAAAA;;;;;;EACxC;AACF;AASO,IAAM9C,mBAAmD,CAACgD,WAAWS,mBAAAA;AAC1E,MAAI;AACF,UAAMC,UAAUzD,wBAAwB+C,WAAWS,cAAAA;AACnD/C,QAAI,qBAAqB;MAAEsC;MAAWU;MAAS,GAAGD;IAAe,GAAA;;;;;;AACjE,WAAOC;EACT,SAASZ,KAAK;AACZpC,QAAIqC,MAAM,+BAA+BD,KAAAA;;;;;;AACzC,WAAO;EACT;AACF;AAEO,IAAM5C,iBAA+C,CAAC8C,WAAWS,mBAAAA;AACtE,MAAI;AACF,UAAMC,UAAUvD,sBAAsB6C,WAAWS,cAAAA;AACjD/C,QAAI,mBAAmB;MAAEsC;MAAWU;MAASD;IAAe,GAAA;;;;;;AAC5D,WAAOC;EACT,SAASZ,KAAK;AACZpC,QAAIqC,MAAM,6BAA6BD,KAAAA;;;;;;AACvC,WAAO;EACT;AACF;AAEO,IAAMa,sBAAsB,CAACC,YAAAA;AAClC,QAAMC,WAAW,kBAAkBD,OAAAA;AACnC,QAAM,IAAIE,MAAM,gFAAgFD,QAAAA,EAAU;AAC5G;AAEO,IAAMvD,YAAYC;",
6
+ "names": ["metrics", "addBreadcrumb", "naturalAddBreadcrumb", "captureException", "naturalCaptureException", "captureMessage", "naturalCaptureMessage", "init", "naturalInit", "withScope", "naturalWithScope", "setTag", "startInactiveSpan", "log", "TRACE_PROCESSOR", "setTags", "setUser", "options", "enabled", "enable", "dsn", "destination", "serverName", "installationId", "release", "environment", "process", "env", "DX_ENVIRONMENT", "integrations", "tracesSampleRate", "sampleRate", "transport", "beforeSend", "event", "scrubFilenames", "scrub", "onError", "tracing", "remoteMetrics", "registerProcessor", "remoteTracing", "startSpan", "Object", "entries", "properties", "forEach", "key", "value", "err", "catch", "exception", "values", "stacktrace", "frames", "frame", "filename", "split", "length", "breadcrumb", "captureContext", "eventId", "captureUserFeedback", "message", "feedback", "Error"]
7
7
  }
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- //# sourceMappingURL=chunk-MRAK2H7O.mjs.map
2
+ //# sourceMappingURL=chunk-QUZL7LKE.mjs.map
@@ -15,10 +15,10 @@ import {
15
15
  showObservabilityBanner,
16
16
  storeObservabilityDisabled,
17
17
  storeObservabilityGroup
18
- } from "./chunk-EYW4X3O6.mjs";
19
- import "./chunk-552KLA6Z.mjs";
20
- import "./chunk-MRAK2H7O.mjs";
21
- import "./chunk-TEH6VIKV.mjs";
18
+ } from "./chunk-JJS4CBLT.mjs";
19
+ import "./chunk-OJV247NY.mjs";
20
+ import "./chunk-QUZL7LKE.mjs";
21
+ import "./chunk-QK5IUYVA.mjs";
22
22
  export {
23
23
  OBSERVABILITY_DISABLED_KEY,
24
24
  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/node.ts":{"bytes":13837,"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"},"src/sentry/types.ts":{"bytes":1024,"imports":[],"format":"esm"},"src/sentry/index.ts":{"bytes":533,"imports":[{"path":"src/sentry/node.ts","kind":"import-statement","original":"./node"},{"path":"src/sentry/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/segment/node.ts":{"bytes":9519,"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":"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/node.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.ts":{"bytes":6747,"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"},"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.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"src/sentry/sentry-log-processor.ts":{"bytes":19439,"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/node.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":14175,"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":"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/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-EYW4X3O6.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-552KLA6Z.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-MRAK2H7O.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-TEH6VIKV.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":1042},"dist/lib/node-esm/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/segment/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-552KLA6Z.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-MRAK2H7O.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-TEH6VIKV.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":318},"dist/lib/node-esm/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/sentry/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-MRAK2H7O.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-TEH6VIKV.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":472},"dist/lib/node-esm/otel-62HYJETM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17677},"dist/lib/node-esm/otel-62HYJETM.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":"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.ts":{"bytesInOutput":1698}},"bytes":8183},"dist/lib/node-esm/sentry-log-processor-JAYRA23C.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10072},"dist/lib/node-esm/sentry-log-processor-JAYRA23C.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-TEH6VIKV.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":4634}},"bytes":4947},"dist/lib/node-esm/observability-DAXZGOBS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/observability-DAXZGOBS.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-EYW4X3O6.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-552KLA6Z.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-MRAK2H7O.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-TEH6VIKV.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":321},"dist/lib/node-esm/chunk-EYW4X3O6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64518},"dist/lib/node-esm/chunk-EYW4X3O6.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-552KLA6Z.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/node-esm/observability-DAXZGOBS.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":"dist/lib/node-esm/otel-62HYJETM.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-62HYJETM.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry-log-processor-JAYRA23C.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-62HYJETM.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":3402},"src/helpers/map-spaces.ts":{"bytesInOutput":1192},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542}},"bytes":33431},"dist/lib/node-esm/chunk-552KLA6Z.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8205},"dist/lib/node-esm/chunk-552KLA6Z.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-TEH6VIKV.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":{"src/segment/node.ts":{"bytesInOutput":2903},"src/segment/base.ts":{"bytesInOutput":1083},"src/segment/types.ts":{"bytesInOutput":180},"src/segment/index.ts":{"bytesInOutput":0}},"bytes":4532},"dist/lib/node-esm/chunk-MRAK2H7O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/chunk-MRAK2H7O.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":136},"dist/lib/node-esm/chunk-TEH6VIKV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6677},"dist/lib/node-esm/chunk-TEH6VIKV.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":{"src/sentry/node.ts":{"bytesInOutput":3387}},"bytes":3700}}}
1
+ {"inputs":{"src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"src/sentry/node.ts":{"bytes":13833,"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"},"src/sentry/index.ts":{"bytes":492,"imports":[{"path":"src/sentry/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"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/segment/node.ts":{"bytes":9519,"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":"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/node.ts","kind":"import-statement","original":"./node"},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/otel/otel.ts":{"bytes":1907,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"src/otel/logs.ts":{"bytes":10897,"imports":[{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/metrics.ts":{"bytes":13918,"imports":[{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/traces.ts":{"bytes":6961,"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"},"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.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/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/observability.ts":{"bytes":76912,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"src/helpers/browser-observability.ts":{"bytes":20089,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"src/helpers/common.ts":{"bytes":3121,"imports":[],"format":"esm"},"src/helpers/node-observability.ts":{"bytes":14187,"imports":[{"path":"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":"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/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-JJS4CBLT.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-OJV247NY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.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":1042},"dist/lib/node-esm/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/segment/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-OJV247NY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":318},"dist/lib/node-esm/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/sentry/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":472},"dist/lib/node-esm/otel-7PUCFSTY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17728},"dist/lib/node-esm/otel-7PUCFSTY.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":"src/otel/index.ts","inputs":{"src/otel/otel.ts":{"bytesInOutput":229},"src/otel/index.ts":{"bytesInOutput":0},"src/otel/logs.ts":{"bytesInOutput":2459},"src/otel/metrics.ts":{"bytesInOutput":3582},"src/otel/traces.ts":{"bytesInOutput":1812}},"bytes":8375},"dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10604},"dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SentryLogProcessor"],"entryPoint":"src/sentry/sentry-log-processor.ts","inputs":{"src/sentry/sentry-log-processor.ts":{"bytesInOutput":4751}},"bytes":5064},"dist/lib/node-esm/observability-UWX2LAYX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/observability-UWX2LAYX.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-JJS4CBLT.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-OJV247NY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":321},"dist/lib/node-esm/chunk-JJS4CBLT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64662},"dist/lib/node-esm/chunk-JJS4CBLT.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-OJV247NY.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/node-esm/observability-UWX2LAYX.mjs","kind":"dynamic-import"},{"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":"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/node-esm/otel-7PUCFSTY.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-7PUCFSTY.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-7PUCFSTY.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":19910},"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":3402},"src/helpers/map-spaces.ts":{"bytesInOutput":1192},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542}},"bytes":33887},"dist/lib/node-esm/chunk-OJV247NY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8217},"dist/lib/node-esm/chunk-OJV247NY.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-QK5IUYVA.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":{"src/segment/node.ts":{"bytesInOutput":2917},"src/segment/base.ts":{"bytesInOutput":1095},"src/segment/types.ts":{"bytesInOutput":182},"src/segment/index.ts":{"bytesInOutput":0}},"bytes":4560},"dist/lib/node-esm/chunk-QUZL7LKE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/chunk-QUZL7LKE.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":136},"dist/lib/node-esm/chunk-QK5IUYVA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6673},"dist/lib/node-esm/chunk-QK5IUYVA.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":{"src/sentry/node.ts":{"bytesInOutput":3387}},"bytes":3700}}}
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Observability
4
+ } from "./chunk-JJS4CBLT.mjs";
5
+ import "./chunk-OJV247NY.mjs";
6
+ import "./chunk-QUZL7LKE.mjs";
7
+ import "./chunk-QK5IUYVA.mjs";
8
+ export {
9
+ Observability
10
+ };
11
+ //# sourceMappingURL=observability-UWX2LAYX.mjs.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/otel/otel.ts
4
- import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";
4
+ import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
5
5
  var setDiagLogger = (level) => {
6
6
  const logLevel = DiagLogLevel[level];
7
7
  if (logLevel) {
@@ -12,37 +12,18 @@ var setDiagLogger = (level) => {
12
12
  // src/otel/logs.ts
13
13
  import { SeverityNumber } from "@opentelemetry/api-logs";
14
14
  import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
15
- import { Resource } from "@opentelemetry/resources";
15
+ import { defaultResource, resourceFromAttributes } from "@opentelemetry/resources";
16
16
  import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
17
17
  import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
18
- import { getContextFromEntry, getRelativeFilename, LogLevel } from "@dxos/log";
18
+ import { LogLevel, getContextFromEntry, getRelativeFilename } from "@dxos/log";
19
19
  import { jsonlogify } from "@dxos/util";
20
20
  var OtelLogs = class {
21
+ options;
22
+ _loggerProvider;
21
23
  constructor(options) {
22
24
  this.options = options;
23
- this.logProcessor = (config, entry) => {
24
- const logger = this._loggerProvider.getLogger("dxos-observability", this.options.serviceVersion);
25
- if (entry.level < this.options.logLevel || !this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId) {
26
- return;
27
- }
28
- const record = {
29
- ...entry,
30
- ...entry.meta ? {
31
- meta: {
32
- file: getRelativeFilename(entry.meta.F),
33
- line: entry.meta.L
34
- }
35
- } : {},
36
- context: jsonlogify(getContextFromEntry(entry))
37
- };
38
- logger.emit({
39
- severityNumber: convertLevel(entry.level),
40
- body: JSON.stringify(record),
41
- attributes: this.options.getTags()
42
- });
43
- };
44
25
  setDiagLogger(options.consoleDiagLogLevel);
45
- const resource = Resource.default().merge(new Resource({
26
+ const resource = defaultResource().merge(resourceFromAttributes({
46
27
  [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
47
28
  [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion
48
29
  }));
@@ -54,10 +35,33 @@ var OtelLogs = class {
54
35
  concurrencyLimit: 10
55
36
  });
56
37
  this._loggerProvider = new LoggerProvider({
57
- resource
38
+ resource,
39
+ processors: [
40
+ new BatchLogRecordProcessor(logExporter)
41
+ ]
58
42
  });
59
- this._loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));
60
43
  }
44
+ logProcessor = (config, entry) => {
45
+ const logger = this._loggerProvider.getLogger("dxos-observability", this.options.serviceVersion);
46
+ if (entry.level < this.options.logLevel || !this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId) {
47
+ return;
48
+ }
49
+ const record = {
50
+ ...entry,
51
+ ...entry.meta ? {
52
+ meta: {
53
+ file: getRelativeFilename(entry.meta.F),
54
+ line: entry.meta.L
55
+ }
56
+ } : {},
57
+ context: jsonlogify(getContextFromEntry(entry))
58
+ };
59
+ logger.emit({
60
+ severityNumber: convertLevel(entry.level),
61
+ body: JSON.stringify(record),
62
+ attributes: this.options.getTags()
63
+ });
64
+ };
61
65
  flush() {
62
66
  return this._loggerProvider.forceFlush();
63
67
  }
@@ -84,7 +88,7 @@ var convertLevel = (level) => {
84
88
 
85
89
  // src/otel/metrics.ts
86
90
  import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
87
- import { Resource as Resource2 } from "@opentelemetry/resources";
91
+ import { defaultResource as defaultResource2, resourceFromAttributes as resourceFromAttributes2 } from "@opentelemetry/resources";
88
92
  import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
89
93
  import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME2, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION2 } from "@opentelemetry/semantic-conventions";
90
94
  import { log } from "@dxos/log";
@@ -92,11 +96,13 @@ import { TRACE_PROCESSOR } from "@dxos/tracing";
92
96
  var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/otel/metrics.ts";
93
97
  var EXPORT_INTERVAL = 60 * 1e3;
94
98
  var OtelMetrics = class {
99
+ options;
100
+ _meterProvider;
101
+ _meter;
95
102
  constructor(options) {
96
103
  this.options = options;
97
- this._gauges = /* @__PURE__ */ new Map();
98
104
  setDiagLogger(options.consoleDiagLogLevel);
99
- const resource = Resource2.default().merge(new Resource2({
105
+ const resource = defaultResource2().merge(resourceFromAttributes2({
100
106
  [SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
101
107
  [SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
102
108
  }));
@@ -143,7 +149,7 @@ var OtelMetrics = class {
143
149
  }
144
150
  }, {
145
151
  F: __dxlog_file,
146
- L: 77,
152
+ L: 70,
147
153
  S: this,
148
154
  C: (f, a) => f(...a)
149
155
  });
@@ -163,7 +169,7 @@ var OtelMetrics = class {
163
169
  }
164
170
  }, {
165
171
  F: __dxlog_file,
166
- L: 83,
172
+ L: 76,
167
173
  S: this,
168
174
  C: (f, a) => f(...a)
169
175
  });
@@ -183,7 +189,7 @@ var OtelMetrics = class {
183
189
  }
184
190
  }, {
185
191
  F: __dxlog_file,
186
- L: 89,
192
+ L: 82,
187
193
  S: this,
188
194
  C: (f, a) => f(...a)
189
195
  });
@@ -213,30 +219,34 @@ var convertTags = (data) => {
213
219
  // src/otel/traces.ts
214
220
  import { trace } from "@opentelemetry/api";
215
221
  import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
216
- import { Resource as Resource3 } from "@opentelemetry/resources";
222
+ import { defaultResource as defaultResource3, resourceFromAttributes as resourceFromAttributes3 } from "@opentelemetry/resources";
217
223
  import { BasicTracerProvider, BatchSpanProcessor, ConsoleSpanExporter, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
218
224
  import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME3, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION3 } from "@opentelemetry/semantic-conventions";
219
225
  import { log as log2 } from "debug";
220
226
  import { TRACE_PROCESSOR as TRACE_PROCESSOR2 } from "@dxos/tracing";
221
227
  var OtelTraces = class {
228
+ options;
229
+ _tracer;
222
230
  constructor(options) {
223
231
  this.options = options;
224
- const resource = Resource3.default().merge(new Resource3({
232
+ const resource = defaultResource3().merge(resourceFromAttributes3({
225
233
  [SEMRESATTRS_SERVICE_NAME3]: this.options.serviceName,
226
234
  [SEMRESATTRS_SERVICE_VERSION3]: this.options.serviceVersion
227
235
  }));
228
236
  const tracerProvider = new BasicTracerProvider({
229
- resource
237
+ resource,
238
+ spanProcessors: [
239
+ new SimpleSpanProcessor(new ConsoleSpanExporter()),
240
+ new BatchSpanProcessor(new OTLPTraceExporter({
241
+ url: this.options.endpoint + "/v1/traces",
242
+ headers: {
243
+ Authorization: this.options.authorizationHeader
244
+ },
245
+ concurrencyLimit: 10
246
+ }))
247
+ ]
230
248
  });
231
- tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
232
- tracerProvider.addSpanProcessor(new BatchSpanProcessor(new OTLPTraceExporter({
233
- url: this.options.endpoint + "/v1/traces",
234
- headers: {
235
- Authorization: this.options.authorizationHeader
236
- },
237
- concurrencyLimit: 10
238
- })));
239
- tracerProvider.register();
249
+ trace.setGlobalTracerProvider(tracerProvider);
240
250
  this._tracer = trace.getTracer("dxos-observability", this.options.serviceVersion);
241
251
  }
242
252
  start() {
@@ -257,4 +267,4 @@ export {
257
267
  OtelTraces,
258
268
  setDiagLogger
259
269
  };
260
- //# sourceMappingURL=otel-62HYJETM.mjs.map
270
+ //# sourceMappingURL=otel-7PUCFSTY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/otel/otel.ts", "../../../src/otel/logs.ts", "../../../src/otel/metrics.ts", "../../../src/otel/traces.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\n\nexport type OtelOptions = {\n endpoint: string;\n authorizationHeader: string;\n serviceName: string; // For the Otel API, the name of the entity for which signals (metrics or trace) are collected.\n serviceVersion: string; // For the Otel API, The name of the entity for which signals (metrics or trace) are collected.\n getTags: () => { [key: string]: string };\n consoleDiagLogLevel?: string;\n};\n\nexport const setDiagLogger = (level?: string) => {\n const logLevel = DiagLogLevel[level as keyof typeof DiagLogLevel];\n if (logLevel) {\n diag.setLogger(new DiagConsoleLogger(), logLevel);\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { BatchLogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport {\n type LogConfig,\n type LogEntry,\n LogLevel,\n type LogProcessor,\n getContextFromEntry,\n getRelativeFilename,\n} from '@dxos/log';\nimport { jsonlogify } from '@dxos/util';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nexport type OtelLogOptions = OtelOptions & {\n logLevel: LogLevel;\n /**\n * Set `true` to capture logs sent through LoggingService from shared worker.\n * Better to set to `false` because shared worker is initializing its own logger.\n */\n includeSharedWorkerLogs: boolean;\n};\n\nexport class OtelLogs {\n private _loggerProvider: LoggerProvider;\n constructor(private readonly options: OtelLogOptions) {\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = defaultResource().merge(\n resourceFromAttributes({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n const logExporter = new OTLPLogExporter({\n url: this.options.endpoint + '/v1/logs',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n });\n this._loggerProvider = new LoggerProvider({\n resource,\n processors: [new BatchLogRecordProcessor(logExporter)],\n });\n }\n\n public readonly logProcessor: LogProcessor = (config: LogConfig, entry: LogEntry) => {\n const logger = this._loggerProvider.getLogger('dxos-observability', this.options.serviceVersion);\n\n if (\n entry.level < this.options.logLevel ||\n (!this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId)\n ) {\n return;\n }\n\n const record = {\n ...entry,\n ...(entry.meta ? { meta: { file: getRelativeFilename(entry.meta.F), line: entry.meta.L } } : {}),\n context: jsonlogify(getContextFromEntry(entry)),\n };\n\n logger.emit({\n severityNumber: convertLevel(entry.level),\n body: JSON.stringify(record),\n attributes: this.options.getTags(),\n });\n };\n\n flush(): Promise<void> {\n return this._loggerProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._loggerProvider.shutdown();\n }\n}\n\nconst convertLevel = (level: LogLevel): SeverityNumber => {\n switch (level) {\n case LogLevel.DEBUG:\n return SeverityNumber.DEBUG;\n case LogLevel.VERBOSE:\n return SeverityNumber.INFO;\n case LogLevel.INFO:\n return SeverityNumber.INFO;\n case LogLevel.WARN:\n return SeverityNumber.WARN;\n case LogLevel.ERROR:\n return SeverityNumber.ERROR;\n default:\n return SeverityNumber.ERROR;\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Meter } from '@opentelemetry/api';\nimport { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type MetricData, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type OtelOptions, setDiagLogger } from './otel';\n\nconst EXPORT_INTERVAL = 60 * 1000;\n\nexport class OtelMetrics {\n private _meterProvider: MeterProvider;\n private _meter: Meter;\n\n constructor(private readonly options: OtelOptions) {\n // TODO: improve error handling/logging\n // https://github.com/open-telemetry/opentelemetry-js/issues/4823\n setDiagLogger(options.consoleDiagLogLevel);\n const resource = defaultResource().merge(\n resourceFromAttributes({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const grafanaMetricReader = new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({\n url: this.options.endpoint + '/v1/metrics',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n }),\n exportIntervalMillis: EXPORT_INTERVAL,\n });\n\n this._meterProvider = new MeterProvider({\n resource,\n readers: [grafanaMetricReader],\n });\n this._meter = this._meterProvider.getMeter('dxos-observability');\n\n const metrics = {\n // TODO: update metrics names and remove prefix?\n increment: (name: string, value?: number, data?: MetricData) => {\n this.increment(name, value, convertTags(data));\n },\n distribution: (name: string, value: number, data?: MetricData) => {\n this.distribution(name, value, convertTags(data));\n },\n set: (name: string, value: number | string, data?: MetricData) => {\n // Not implemented, not part of Otel spec.\n },\n gauge: (name: string, value: number, data?: MetricData) => {\n this.gauge(name, value, convertTags(data));\n },\n };\n\n TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);\n }\n\n gauge(name: string, value: number, tags?: any): void {\n const gauge = this._meter.createGauge(name);\n log('otel gauge', { name, value, tags: { ...this.options.getTags(), ...tags } });\n gauge.record(value, { ...this.options.getTags(), ...tags });\n }\n\n increment(name: string, value?: number, tags?: any): void {\n const counter = this._meter.createCounter(name);\n log('otel counter', { name, value, tags: { ...this.options.getTags(), ...tags } });\n counter.add(value ?? 1, { ...this.options.getTags(), ...tags });\n }\n\n distribution(name: string, value: number, tags?: any): void {\n const distribution = this._meter.createHistogram(name);\n log('otel distribution', { name, value, tags: { ...this.options.getTags(), ...tags } });\n distribution.record(value, { ...this.options.getTags(), ...tags });\n }\n\n flush(): Promise<void> {\n return this._meterProvider.forceFlush();\n }\n\n close(): Promise<void> {\n return this._meterProvider.shutdown();\n }\n}\n\nconst convertTags = (data?: MetricData) => {\n if (data && data.tags) {\n return Object.entries(data.tags).reduce<{ [key: string]: any }>((obj, [key, value]) => {\n obj[key] = value;\n return obj;\n }, {});\n } else {\n return {};\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Tracer, trace } from '@opentelemetry/api';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport {\n BasicTracerProvider,\n BatchSpanProcessor,\n ConsoleSpanExporter,\n SimpleSpanProcessor,\n} from '@opentelemetry/sdk-trace-base';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\nimport { log } from 'debug';\n\nimport { type StartSpanOptions, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type OtelOptions } from './otel';\n\nexport class OtelTraces {\n private _tracer: Tracer;\n constructor(private readonly options: OtelOptions) {\n const resource = defaultResource().merge(\n resourceFromAttributes({\n [SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,\n [SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion,\n }),\n );\n\n const tracerProvider = new BasicTracerProvider({\n resource,\n spanProcessors: [\n new SimpleSpanProcessor(new ConsoleSpanExporter()),\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: this.options.endpoint + '/v1/traces',\n headers: {\n Authorization: this.options.authorizationHeader,\n },\n concurrencyLimit: 10, // an optional limit on pending requests\n }),\n ),\n ],\n });\n\n trace.setGlobalTracerProvider(tracerProvider);\n this._tracer = trace.getTracer('dxos-observability', this.options.serviceVersion);\n }\n\n public start(): void {\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", "defaultResource", "resourceFromAttributes", "BatchLogRecordProcessor", "LoggerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "LogLevel", "getContextFromEntry", "getRelativeFilename", "jsonlogify", "OtelLogs", "_loggerProvider", "options", "setDiagLogger", "consoleDiagLogLevel", "resource", "defaultResource", "merge", "resourceFromAttributes", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "serviceVersion", "logExporter", "OTLPLogExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "LoggerProvider", "processors", "BatchLogRecordProcessor", "logProcessor", "config", "entry", "logger", "getLogger", "level", "logLevel", "includeSharedWorkerLogs", "meta", "S", "remoteSessionId", "record", "file", "getRelativeFilename", "F", "line", "L", "context", "jsonlogify", "getContextFromEntry", "emit", "severityNumber", "convertLevel", "body", "JSON", "stringify", "attributes", "getTags", "flush", "forceFlush", "close", "shutdown", "LogLevel", "DEBUG", "SeverityNumber", "VERBOSE", "INFO", "WARN", "ERROR", "OTLPMetricExporter", "defaultResource", "resourceFromAttributes", "MeterProvider", "PeriodicExportingMetricReader", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "EXPORT_INTERVAL", "OtelMetrics", "_meterProvider", "_meter", "options", "setDiagLogger", "consoleDiagLogLevel", "resource", "defaultResource", "merge", "resourceFromAttributes", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "serviceVersion", "grafanaMetricReader", "PeriodicExportingMetricReader", "exporter", "OTLPMetricExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "exportIntervalMillis", "MeterProvider", "readers", "getMeter", "metrics", "increment", "name", "value", "data", "convertTags", "distribution", "set", "gauge", "TRACE_PROCESSOR", "remoteMetrics", "registerProcessor", "tags", "createGauge", "log", "getTags", "record", "counter", "createCounter", "add", "createHistogram", "flush", "forceFlush", "close", "shutdown", "Object", "entries", "reduce", "obj", "key", "trace", "OTLPTraceExporter", "defaultResource", "resourceFromAttributes", "BasicTracerProvider", "BatchSpanProcessor", "ConsoleSpanExporter", "SimpleSpanProcessor", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "OtelTraces", "_tracer", "options", "resource", "defaultResource", "merge", "resourceFromAttributes", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "serviceVersion", "tracerProvider", "BasicTracerProvider", "spanProcessors", "SimpleSpanProcessor", "ConsoleSpanExporter", "BatchSpanProcessor", "OTLPTraceExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "trace", "setGlobalTracerProvider", "getTracer", "start", "log", "TRACE_PROCESSOR", "remoteTracing", "registerProcessor", "startSpan", "name"]
7
+ }