@dxos/observability 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77
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.
- package/dist/lib/browser/chunk-5ICT2XF2.mjs +1 -0
- package/dist/lib/browser/{chunk-MWTIKIBZ.mjs → chunk-ICKR6U3G.mjs} +44 -30
- package/dist/lib/browser/chunk-ICKR6U3G.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YEPQFAES.mjs → chunk-LJO63BXO.mjs} +2 -2
- package/dist/lib/browser/{chunk-YEPQFAES.mjs.map → chunk-LJO63BXO.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-33TCMAUB.mjs → chunk-YTRUOREY.mjs} +75 -46
- package/dist/lib/browser/chunk-YTRUOREY.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/observability-CQGG3MID.mjs +10 -0
- package/dist/lib/browser/{otel-IRDZ7PES.mjs → otel-6FVBNA5F.mjs} +131 -81
- package/dist/lib/browser/otel-6FVBNA5F.mjs.map +7 -0
- package/dist/lib/browser/segment/index.mjs +3 -3
- package/dist/lib/browser/sentry/index.mjs +2 -2
- package/dist/lib/browser/{sentry-log-processor-3F3SBJXM.mjs → sentry-log-processor-RG4CFVGL.mjs} +59 -43
- package/dist/lib/browser/sentry-log-processor-RG4CFVGL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-552KLA6Z.mjs → chunk-24NMRR4E.mjs} +67 -40
- package/dist/lib/node-esm/chunk-24NMRR4E.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-EYW4X3O6.mjs → chunk-4EWQFQ2F.mjs} +75 -46
- package/dist/lib/{browser/chunk-33TCMAUB.mjs.map → node-esm/chunk-4EWQFQ2F.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs → chunk-QK5IUYVA.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs.map → chunk-QK5IUYVA.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-MRAK2H7O.mjs → chunk-QUZL7LKE.mjs} +1 -1
- package/dist/lib/node-esm/index.mjs +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/observability-DHNVVRC7.mjs +11 -0
- package/dist/lib/node-esm/{otel-62HYJETM.mjs → otel-KHSGBROB.mjs} +127 -77
- package/dist/lib/node-esm/otel-KHSGBROB.mjs.map +7 -0
- package/dist/lib/node-esm/segment/index.mjs +3 -3
- package/dist/lib/node-esm/sentry/index.mjs +2 -2
- package/dist/lib/node-esm/{sentry-log-processor-JAYRA23C.mjs → sentry-log-processor-3BDS4BB4.mjs} +59 -43
- package/dist/lib/node-esm/sentry-log-processor-3BDS4BB4.mjs.map +7 -0
- package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
- package/dist/types/src/helpers/browser-observability.js +4 -6
- package/dist/types/src/helpers/browser-observability.js.map +1 -1
- package/dist/types/src/helpers/common.js +1 -1
- package/dist/types/src/helpers/common.js.map +1 -1
- package/dist/types/src/helpers/map-spaces.js +5 -6
- package/dist/types/src/helpers/map-spaces.js.map +1 -1
- package/dist/types/src/helpers/node-observability.d.ts +1 -1
- package/dist/types/src/helpers/node-observability.d.ts.map +1 -1
- package/dist/types/src/helpers/node-observability.js +7 -11
- package/dist/types/src/helpers/node-observability.js.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.js +4 -7
- package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
- package/dist/types/src/observability.d.ts +1 -1
- package/dist/types/src/observability.d.ts.map +1 -1
- package/dist/types/src/observability.js +68 -59
- package/dist/types/src/observability.js.map +1 -1
- package/dist/types/src/otel/logs.d.ts.map +1 -1
- package/dist/types/src/otel/logs.js +26 -23
- package/dist/types/src/otel/logs.js.map +1 -1
- package/dist/types/src/otel/metrics.d.ts +0 -1
- package/dist/types/src/otel/metrics.d.ts.map +1 -1
- package/dist/types/src/otel/metrics.js +6 -4
- package/dist/types/src/otel/metrics.js.map +1 -1
- package/dist/types/src/otel/otel.js +1 -1
- package/dist/types/src/otel/otel.js.map +1 -1
- package/dist/types/src/otel/traces-browser.d.ts.map +1 -1
- package/dist/types/src/otel/traces-browser.js +19 -13
- package/dist/types/src/otel/traces-browser.js.map +1 -1
- package/dist/types/src/otel/traces.d.ts.map +1 -1
- package/dist/types/src/otel/traces.js +18 -12
- package/dist/types/src/otel/traces.js.map +1 -1
- package/dist/types/src/segment/base.d.ts +1 -1
- package/dist/types/src/segment/base.d.ts.map +1 -1
- package/dist/types/src/segment/base.js +2 -1
- package/dist/types/src/segment/base.js.map +1 -1
- package/dist/types/src/segment/browser.d.ts +1 -1
- package/dist/types/src/segment/browser.d.ts.map +1 -1
- package/dist/types/src/segment/browser.js +6 -10
- package/dist/types/src/segment/browser.js.map +1 -1
- package/dist/types/src/segment/node.d.ts +1 -1
- package/dist/types/src/segment/node.d.ts.map +1 -1
- package/dist/types/src/segment/node.js +2 -1
- package/dist/types/src/segment/node.js.map +1 -1
- package/dist/types/src/sentry/browser.d.ts.map +1 -1
- package/dist/types/src/sentry/browser.js +4 -6
- package/dist/types/src/sentry/browser.js.map +1 -1
- package/dist/types/src/sentry/index.d.ts +1 -1
- package/dist/types/src/sentry/index.d.ts.map +1 -1
- package/dist/types/src/sentry/index.js +0 -1
- package/dist/types/src/sentry/index.js.map +1 -1
- package/dist/types/src/sentry/node.d.ts.map +1 -1
- package/dist/types/src/sentry/node.js +8 -13
- package/dist/types/src/sentry/node.js.map +1 -1
- package/dist/types/src/sentry/node.node.test.js +3 -5
- package/dist/types/src/sentry/node.node.test.js.map +1 -1
- package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
- package/dist/types/src/sentry/sentry-log-processor.js +58 -63
- package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
- package/dist/types/src/sentry/sentry.node.test.js +1 -1
- package/dist/types/src/sentry/sentry.node.test.js.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -27
- package/src/helpers/browser-observability.ts +2 -1
- package/src/helpers/node-observability.ts +5 -4
- package/src/helpers/setup-telemetry-listeners.ts +2 -1
- package/src/observability.ts +4 -4
- package/src/otel/logs.ts +9 -7
- package/src/otel/metrics.ts +5 -12
- package/src/otel/otel.ts +1 -1
- package/src/otel/traces-browser.ts +23 -20
- package/src/otel/traces.ts +22 -19
- package/src/segment/base.ts +1 -1
- package/src/segment/browser.ts +3 -2
- package/src/segment/node.ts +3 -2
- package/src/sentry/browser.ts +7 -7
- package/src/sentry/index.ts +1 -1
- package/src/sentry/node.node.test.ts +2 -1
- package/src/sentry/node.ts +3 -3
- package/src/sentry/sentry-log-processor.ts +15 -7
- package/src/sentry/sentry.node.test.ts +2 -1
- package/dist/lib/browser/chunk-5OQYI27L.mjs +0 -1
- package/dist/lib/browser/chunk-MWTIKIBZ.mjs.map +0 -7
- package/dist/lib/browser/observability-EEM6BEY6.mjs +0 -10
- package/dist/lib/browser/otel-IRDZ7PES.mjs.map +0 -7
- package/dist/lib/browser/sentry-log-processor-3F3SBJXM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-552KLA6Z.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-EYW4X3O6.mjs.map +0 -7
- package/dist/lib/node-esm/observability-DAXZGOBS.mjs +0 -11
- package/dist/lib/node-esm/otel-62HYJETM.mjs.map +0 -7
- package/dist/lib/node-esm/sentry-log-processor-JAYRA23C.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-5OQYI27L.mjs.map → chunk-5ICT2XF2.mjs.map} +0 -0
- /package/dist/lib/browser/{observability-EEM6BEY6.mjs.map → observability-CQGG3MID.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-MRAK2H7O.mjs.map → chunk-QUZL7LKE.mjs.map} +0 -0
- /package/dist/lib/node-esm/{observability-DAXZGOBS.mjs.map → observability-DHNVVRC7.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-
|
|
4
|
+
} from "./chunk-QK5IUYVA.mjs";
|
|
5
5
|
|
|
6
6
|
// src/segment/node.ts
|
|
7
7
|
import { Analytics } from "@segment/analytics-node";
|
|
@@ -12,13 +12,26 @@ 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
|
+
function _define_property(obj, key, value) {
|
|
23
|
+
if (key in obj) {
|
|
24
|
+
Object.defineProperty(obj, key, {
|
|
25
|
+
value,
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
obj[key] = value;
|
|
32
|
+
}
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
22
35
|
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/segment/base.ts";
|
|
23
36
|
var getIdentityOptions = ({ did, installationId }) => {
|
|
24
37
|
if (!did && !installationId) {
|
|
@@ -35,9 +48,6 @@ var getIdentityOptions = ({ did, installationId }) => {
|
|
|
35
48
|
};
|
|
36
49
|
};
|
|
37
50
|
var AbstractSegmentTelemetry = class {
|
|
38
|
-
constructor(_getTags) {
|
|
39
|
-
this._getTags = _getTags;
|
|
40
|
-
}
|
|
41
51
|
createPageProps(options) {
|
|
42
52
|
const { properties, ...rest } = options;
|
|
43
53
|
return {
|
|
@@ -62,43 +72,35 @@ var AbstractSegmentTelemetry = class {
|
|
|
62
72
|
}
|
|
63
73
|
};
|
|
64
74
|
}
|
|
75
|
+
constructor(_getTags) {
|
|
76
|
+
_define_property(this, "_getTags", void 0);
|
|
77
|
+
this._getTags = _getTags;
|
|
78
|
+
}
|
|
65
79
|
};
|
|
66
80
|
|
|
67
81
|
// src/segment/node.ts
|
|
82
|
+
function _define_property2(obj, key, value) {
|
|
83
|
+
if (key in obj) {
|
|
84
|
+
Object.defineProperty(obj, key, {
|
|
85
|
+
value,
|
|
86
|
+
enumerable: true,
|
|
87
|
+
configurable: true,
|
|
88
|
+
writable: true
|
|
89
|
+
});
|
|
90
|
+
} else {
|
|
91
|
+
obj[key] = value;
|
|
92
|
+
}
|
|
93
|
+
return obj;
|
|
94
|
+
}
|
|
68
95
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/segment/node.ts";
|
|
69
96
|
var SegmentTelemetry = class extends AbstractSegmentTelemetry {
|
|
70
|
-
constructor({ apiKey, batchSize, getTags }) {
|
|
71
|
-
super(getTags);
|
|
72
|
-
try {
|
|
73
|
-
invariant(apiKey, "Missing API key.", {
|
|
74
|
-
F: __dxlog_file2,
|
|
75
|
-
L: 23,
|
|
76
|
-
S: this,
|
|
77
|
-
A: [
|
|
78
|
-
"apiKey",
|
|
79
|
-
"'Missing API key.'"
|
|
80
|
-
]
|
|
81
|
-
});
|
|
82
|
-
this._analytics = new Analytics({
|
|
83
|
-
writeKey: apiKey,
|
|
84
|
-
flushAt: batchSize
|
|
85
|
-
});
|
|
86
|
-
} catch (err) {
|
|
87
|
-
log2.catch("Failed to initialize telemetry", err, {
|
|
88
|
-
F: __dxlog_file2,
|
|
89
|
-
L: 29,
|
|
90
|
-
S: this,
|
|
91
|
-
C: (f, a) => f(...a)
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
97
|
identify(options) {
|
|
96
98
|
if (!this._analytics) {
|
|
97
99
|
log2("Analytics not initialized", {
|
|
98
100
|
action: "identify"
|
|
99
101
|
}, {
|
|
100
102
|
F: __dxlog_file2,
|
|
101
|
-
L:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
180
|
+
L: 76,
|
|
179
181
|
S: this,
|
|
180
182
|
C: (f, a) => f(...a)
|
|
181
183
|
});
|
|
@@ -193,10 +195,35 @@ var SegmentTelemetry = class extends AbstractSegmentTelemetry {
|
|
|
193
195
|
}
|
|
194
196
|
await this._analytics.closeAndFlush();
|
|
195
197
|
}
|
|
198
|
+
constructor({ apiKey, batchSize, getTags }) {
|
|
199
|
+
super(getTags), _define_property2(this, "_analytics", void 0);
|
|
200
|
+
try {
|
|
201
|
+
invariant(apiKey, "Missing API key.", {
|
|
202
|
+
F: __dxlog_file2,
|
|
203
|
+
L: 24,
|
|
204
|
+
S: this,
|
|
205
|
+
A: [
|
|
206
|
+
"apiKey",
|
|
207
|
+
"'Missing API key.'"
|
|
208
|
+
]
|
|
209
|
+
});
|
|
210
|
+
this._analytics = new Analytics({
|
|
211
|
+
writeKey: apiKey,
|
|
212
|
+
flushAt: batchSize
|
|
213
|
+
});
|
|
214
|
+
} catch (err) {
|
|
215
|
+
log2.catch("Failed to initialize telemetry", err, {
|
|
216
|
+
F: __dxlog_file2,
|
|
217
|
+
L: 30,
|
|
218
|
+
S: this,
|
|
219
|
+
C: (f, a) => f(...a)
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
}
|
|
196
223
|
};
|
|
197
224
|
|
|
198
225
|
export {
|
|
199
226
|
TelemetryEvent,
|
|
200
227
|
SegmentTelemetry
|
|
201
228
|
};
|
|
202
|
-
//# sourceMappingURL=chunk-
|
|
229
|
+
//# sourceMappingURL=chunk-24NMRR4E.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", "createPageProps", "options", "properties", "rest", "common", "_getTags", "custom", "createTrackProps", "event", "action", "TelemetryEvent", "ACTION", "SegmentTelemetry", "AbstractSegmentTelemetry", "identify", "options", "_analytics", "log", "action", "err", "catch", "page", "createPageProps", "track", "info", "createTrackProps", "flush", "captureException", "close", "closeAndFlush", "apiKey", "batchSize", "getTags", "_define_property", "invariant", "Analytics", "writeKey", "flushAt"]
|
|
7
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
TelemetryEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-24NMRR4E.mjs";
|
|
5
5
|
|
|
6
6
|
// src/observability.ts
|
|
7
7
|
import { Event, scheduleTaskInterval } from "@dxos/async";
|
|
8
8
|
import { PublicKey } from "@dxos/client";
|
|
9
9
|
import { Context } from "@dxos/context";
|
|
10
10
|
import { invariant } from "@dxos/invariant";
|
|
11
|
-
import { log as log3
|
|
11
|
+
import { LogLevel, log as log3 } from "@dxos/log";
|
|
12
12
|
import { ConnectionState } from "@dxos/network-manager";
|
|
13
13
|
import { DeviceKind, Platform } from "@dxos/protocols/proto/dxos/client/services";
|
|
14
14
|
import { isNode } from "@dxos/util";
|
|
@@ -34,7 +34,7 @@ var isObservabilityDisabled = async (namespace) => {
|
|
|
34
34
|
} catch (err) {
|
|
35
35
|
log.catch("Failed to check if observability is disabled, assuming it is", err, {
|
|
36
36
|
F: __dxlog_file,
|
|
37
|
-
L:
|
|
37
|
+
L: 25,
|
|
38
38
|
S: void 0,
|
|
39
39
|
C: (f, a) => f(...a)
|
|
40
40
|
});
|
|
@@ -47,7 +47,7 @@ var storeObservabilityDisabled = async (namespace, value) => {
|
|
|
47
47
|
} catch (err) {
|
|
48
48
|
log.catch("Failed to store observability disabled", err, {
|
|
49
49
|
F: __dxlog_file,
|
|
50
|
-
L:
|
|
50
|
+
L: 34,
|
|
51
51
|
S: void 0,
|
|
52
52
|
C: (f, a) => f(...a)
|
|
53
53
|
});
|
|
@@ -59,7 +59,7 @@ var getObservabilityGroup = async (namespace) => {
|
|
|
59
59
|
} catch (err) {
|
|
60
60
|
log.catch("Failed to get observability group", err, {
|
|
61
61
|
F: __dxlog_file,
|
|
62
|
-
L:
|
|
62
|
+
L: 42,
|
|
63
63
|
S: void 0,
|
|
64
64
|
C: (f, a) => f(...a)
|
|
65
65
|
});
|
|
@@ -71,7 +71,7 @@ var storeObservabilityGroup = async (namespace, value) => {
|
|
|
71
71
|
} catch (err) {
|
|
72
72
|
log.catch("Failed to store observability group", err, {
|
|
73
73
|
F: __dxlog_file,
|
|
74
|
-
L:
|
|
74
|
+
L: 50,
|
|
75
75
|
S: void 0,
|
|
76
76
|
C: (f, a) => f(...a)
|
|
77
77
|
});
|
|
@@ -89,14 +89,14 @@ var initializeAppObservability = async ({
|
|
|
89
89
|
config
|
|
90
90
|
}, {
|
|
91
91
|
F: __dxlog_file,
|
|
92
|
-
L:
|
|
92
|
+
L: 74,
|
|
93
93
|
S: void 0,
|
|
94
94
|
C: (f, a) => f(...a)
|
|
95
95
|
});
|
|
96
96
|
const group = await getObservabilityGroup(namespace) ?? void 0;
|
|
97
97
|
const release = `${namespace}@${config.get("runtime.app.build.version")}`;
|
|
98
98
|
const environment = config.get("runtime.app.env.DX_ENVIRONMENT");
|
|
99
|
-
const { Observability: Observability2 } = await import("./observability-
|
|
99
|
+
const { Observability: Observability2 } = await import("./observability-DHNVVRC7.mjs");
|
|
100
100
|
const observability = new Observability2({
|
|
101
101
|
namespace,
|
|
102
102
|
release,
|
|
@@ -124,7 +124,7 @@ var initializeAppObservability = async ({
|
|
|
124
124
|
observability.setMode("disabled");
|
|
125
125
|
log.info("observability disabled", void 0, {
|
|
126
126
|
F: __dxlog_file,
|
|
127
|
-
L:
|
|
127
|
+
L: 114,
|
|
128
128
|
S: void 0,
|
|
129
129
|
C: (f, a) => f(...a)
|
|
130
130
|
});
|
|
@@ -161,7 +161,7 @@ var initializeAppObservability = async ({
|
|
|
161
161
|
} catch (error) {
|
|
162
162
|
log.warn("Failed to run estimate()", error, {
|
|
163
163
|
F: __dxlog_file,
|
|
164
|
-
L:
|
|
164
|
+
L: 169,
|
|
165
165
|
S: void 0,
|
|
166
166
|
C: (f, a) => f(...a)
|
|
167
167
|
});
|
|
@@ -171,7 +171,7 @@ var initializeAppObservability = async ({
|
|
|
171
171
|
} catch (err) {
|
|
172
172
|
log.error("Failed to initialize app observability", err, {
|
|
173
173
|
F: __dxlog_file,
|
|
174
|
-
L:
|
|
174
|
+
L: 174,
|
|
175
175
|
S: void 0,
|
|
176
176
|
C: (f, a) => f(...a)
|
|
177
177
|
});
|
|
@@ -198,10 +198,10 @@ var getTelemetryIdentity = (client) => {
|
|
|
198
198
|
};
|
|
199
199
|
|
|
200
200
|
// src/helpers/node-observability.ts
|
|
201
|
-
import yaml from "js-yaml";
|
|
202
201
|
import { existsSync, statSync } from "node:fs";
|
|
203
202
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
204
203
|
import { join } from "node:path";
|
|
204
|
+
import yaml from "js-yaml";
|
|
205
205
|
import { v4 as uuid, validate as validateUuid } from "uuid";
|
|
206
206
|
import { log as log2 } from "@dxos/log";
|
|
207
207
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/helpers/node-observability.ts";
|
|
@@ -256,7 +256,7 @@ var initializeNodeObservability = async ({ namespace, version, config, installat
|
|
|
256
256
|
config
|
|
257
257
|
}, {
|
|
258
258
|
F: __dxlog_file2,
|
|
259
|
-
L:
|
|
259
|
+
L: 111,
|
|
260
260
|
S: void 0,
|
|
261
261
|
C: (f, a) => f(...a)
|
|
262
262
|
});
|
|
@@ -408,39 +408,24 @@ var setupTelemetryListeners = (namespace, client, observability) => {
|
|
|
408
408
|
};
|
|
409
409
|
|
|
410
410
|
// src/observability.ts
|
|
411
|
+
function _define_property(obj, key, value) {
|
|
412
|
+
if (key in obj) {
|
|
413
|
+
Object.defineProperty(obj, key, {
|
|
414
|
+
value,
|
|
415
|
+
enumerable: true,
|
|
416
|
+
configurable: true,
|
|
417
|
+
writable: true
|
|
418
|
+
});
|
|
419
|
+
} else {
|
|
420
|
+
obj[key] = value;
|
|
421
|
+
}
|
|
422
|
+
return obj;
|
|
423
|
+
}
|
|
411
424
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/sdk/observability/src/observability.ts";
|
|
412
425
|
var SPACE_METRICS_MIN_INTERVAL = 1e3 * 60;
|
|
413
426
|
var SPACE_TELEMETRY_MIN_INTERVAL = 1e3 * 60 * 60;
|
|
414
427
|
var NETWORK_METRICS_MIN_INTERVAL = 1e3 * 60 * 5;
|
|
415
428
|
var Observability = class {
|
|
416
|
-
// TODO(nf): make platform a required extension?
|
|
417
|
-
constructor({ mode, namespace, environment, release, config, group, secrets, telemetry, errorLog }) {
|
|
418
|
-
this._tags = /* @__PURE__ */ new Map();
|
|
419
|
-
this._ctx = new Context(void 0, {
|
|
420
|
-
F: __dxlog_file3,
|
|
421
|
-
L: 115
|
|
422
|
-
});
|
|
423
|
-
this.setIPDataTelemetryTags = (ipData) => {
|
|
424
|
-
this.setTag("city", ipData.city, "telemetry");
|
|
425
|
-
this.setTag("region", ipData.region, "telemetry");
|
|
426
|
-
this.setTag("country", ipData.country, "telemetry");
|
|
427
|
-
ipData.latitude && this.setTag("latitude", ipData.latitude.toString(), "telemetry");
|
|
428
|
-
ipData.longitude && this.setTag("longitude", ipData.longitude.toString(), "telemetry");
|
|
429
|
-
};
|
|
430
|
-
this._mode = mode;
|
|
431
|
-
this._namespace = namespace;
|
|
432
|
-
this._config = config;
|
|
433
|
-
this._group = group;
|
|
434
|
-
this._secrets = this._loadSecrets(config, secrets);
|
|
435
|
-
this._telemetryBatchSize = telemetry?.batchSize ?? 30;
|
|
436
|
-
this._errorReportingOptions = errorLog?.sentryInitOptions;
|
|
437
|
-
this.setTag("mode", this._mode);
|
|
438
|
-
this.setTag("namespace", this._namespace);
|
|
439
|
-
this.setTag("environment", environment);
|
|
440
|
-
this.setTag("release", release);
|
|
441
|
-
this.setTag("session", PublicKey.random().toHex());
|
|
442
|
-
this.setTag("group", this._group);
|
|
443
|
-
}
|
|
444
429
|
get mode() {
|
|
445
430
|
return this._mode;
|
|
446
431
|
}
|
|
@@ -604,7 +589,7 @@ var Observability = class {
|
|
|
604
589
|
//
|
|
605
590
|
async _initLogs() {
|
|
606
591
|
if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== "disabled") {
|
|
607
|
-
const { OtelLogs } = await import("./otel-
|
|
592
|
+
const { OtelLogs } = await import("./otel-KHSGBROB.mjs");
|
|
608
593
|
this._otelLogs = new OtelLogs({
|
|
609
594
|
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
610
595
|
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
@@ -642,7 +627,7 @@ var Observability = class {
|
|
|
642
627
|
//
|
|
643
628
|
async _initMetrics() {
|
|
644
629
|
if (this.enabled && this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION) {
|
|
645
|
-
const { OtelMetrics } = await import("./otel-
|
|
630
|
+
const { OtelMetrics } = await import("./otel-KHSGBROB.mjs");
|
|
646
631
|
this._otelMetrics = new OtelMetrics({
|
|
647
632
|
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
648
633
|
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
@@ -890,7 +875,7 @@ var Observability = class {
|
|
|
890
875
|
async _initErrorLogs() {
|
|
891
876
|
if (this._secrets.SENTRY_DESTINATION && this._mode !== "disabled") {
|
|
892
877
|
const { captureException, captureUserFeedback, init, setTag } = await import("./sentry/index.mjs");
|
|
893
|
-
const { SentryLogProcessor } = await import("./sentry-log-processor-
|
|
878
|
+
const { SentryLogProcessor } = await import("./sentry-log-processor-3BDS4BB4.mjs");
|
|
894
879
|
this._captureException = captureException;
|
|
895
880
|
this._captureUserFeedback = captureUserFeedback;
|
|
896
881
|
this._setTag = setTag;
|
|
@@ -933,7 +918,7 @@ var Observability = class {
|
|
|
933
918
|
// TODO(nf): Refactor init based on providers and their capabilities.
|
|
934
919
|
async _initTraces() {
|
|
935
920
|
if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== "disabled") {
|
|
936
|
-
const { OtelTraces } = await import("./otel-
|
|
921
|
+
const { OtelTraces } = await import("./otel-KHSGBROB.mjs");
|
|
937
922
|
this._otelTraces = new OtelTraces({
|
|
938
923
|
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
939
924
|
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
@@ -975,6 +960,50 @@ var Observability = class {
|
|
|
975
960
|
}
|
|
976
961
|
void this._captureUserFeedback?.(message);
|
|
977
962
|
}
|
|
963
|
+
// TODO(nf): make platform a required extension?
|
|
964
|
+
constructor({ mode, namespace, environment, release, config, group, secrets, telemetry, errorLog }) {
|
|
965
|
+
_define_property(this, "_mode", void 0);
|
|
966
|
+
_define_property(this, "_namespace", void 0);
|
|
967
|
+
_define_property(this, "_config", void 0);
|
|
968
|
+
_define_property(this, "_group", void 0);
|
|
969
|
+
_define_property(this, "_secrets", void 0);
|
|
970
|
+
_define_property(this, "_tags", /* @__PURE__ */ new Map());
|
|
971
|
+
_define_property(this, "_otelMetrics", void 0);
|
|
972
|
+
_define_property(this, "_otelTraces", void 0);
|
|
973
|
+
_define_property(this, "_telemetryBatchSize", void 0);
|
|
974
|
+
_define_property(this, "_telemetry", void 0);
|
|
975
|
+
_define_property(this, "_sentryLogProcessor", void 0);
|
|
976
|
+
_define_property(this, "_otelLogs", void 0);
|
|
977
|
+
_define_property(this, "_errorReportingOptions", void 0);
|
|
978
|
+
_define_property(this, "_captureException", void 0);
|
|
979
|
+
_define_property(this, "_captureUserFeedback", void 0);
|
|
980
|
+
_define_property(this, "_lastNetworkStatus", void 0);
|
|
981
|
+
_define_property(this, "_ctx", new Context(void 0, {
|
|
982
|
+
F: __dxlog_file3,
|
|
983
|
+
L: 115
|
|
984
|
+
}));
|
|
985
|
+
_define_property(this, "_setTag", void 0);
|
|
986
|
+
_define_property(this, "setIPDataTelemetryTags", (ipData) => {
|
|
987
|
+
this.setTag("city", ipData.city, "telemetry");
|
|
988
|
+
this.setTag("region", ipData.region, "telemetry");
|
|
989
|
+
this.setTag("country", ipData.country, "telemetry");
|
|
990
|
+
ipData.latitude && this.setTag("latitude", ipData.latitude.toString(), "telemetry");
|
|
991
|
+
ipData.longitude && this.setTag("longitude", ipData.longitude.toString(), "telemetry");
|
|
992
|
+
});
|
|
993
|
+
this._mode = mode;
|
|
994
|
+
this._namespace = namespace;
|
|
995
|
+
this._config = config;
|
|
996
|
+
this._group = group;
|
|
997
|
+
this._secrets = this._loadSecrets(config, secrets);
|
|
998
|
+
this._telemetryBatchSize = telemetry?.batchSize ?? 30;
|
|
999
|
+
this._errorReportingOptions = errorLog?.sentryInitOptions;
|
|
1000
|
+
this.setTag("mode", this._mode);
|
|
1001
|
+
this.setTag("namespace", this._namespace);
|
|
1002
|
+
this.setTag("environment", environment);
|
|
1003
|
+
this.setTag("release", release);
|
|
1004
|
+
this.setTag("session", PublicKey.random().toHex());
|
|
1005
|
+
this.setTag("group", this._group);
|
|
1006
|
+
}
|
|
978
1007
|
};
|
|
979
1008
|
|
|
980
1009
|
export {
|
|
@@ -994,4 +1023,4 @@ export {
|
|
|
994
1023
|
mapSpaces,
|
|
995
1024
|
setupTelemetryListeners
|
|
996
1025
|
};
|
|
997
|
-
//# sourceMappingURL=chunk-
|
|
1026
|
+
//# sourceMappingURL=chunk-4EWQFQ2F.mjs.map
|