@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,5 +1,5 @@
|
|
|
1
1
|
// src/otel/otel.ts
|
|
2
|
-
import {
|
|
2
|
+
import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
|
|
3
3
|
var setDiagLogger = (level) => {
|
|
4
4
|
const logLevel = DiagLogLevel[level];
|
|
5
5
|
if (logLevel) {
|
|
@@ -10,13 +10,35 @@ var setDiagLogger = (level) => {
|
|
|
10
10
|
// src/otel/logs.ts
|
|
11
11
|
import { SeverityNumber } from "@opentelemetry/api-logs";
|
|
12
12
|
import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
|
|
13
|
-
import {
|
|
13
|
+
import { defaultResource, resourceFromAttributes } from "@opentelemetry/resources";
|
|
14
14
|
import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
|
|
15
15
|
import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
|
|
16
|
-
import { getContextFromEntry, getRelativeFilename
|
|
16
|
+
import { LogLevel, getContextFromEntry, getRelativeFilename } from "@dxos/log";
|
|
17
17
|
import { jsonlogify } from "@dxos/util";
|
|
18
|
+
function _define_property(obj, key, value) {
|
|
19
|
+
if (key in obj) {
|
|
20
|
+
Object.defineProperty(obj, key, {
|
|
21
|
+
value,
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true
|
|
25
|
+
});
|
|
26
|
+
} else {
|
|
27
|
+
obj[key] = value;
|
|
28
|
+
}
|
|
29
|
+
return obj;
|
|
30
|
+
}
|
|
18
31
|
var OtelLogs = class {
|
|
32
|
+
flush() {
|
|
33
|
+
return this._loggerProvider.forceFlush();
|
|
34
|
+
}
|
|
35
|
+
close() {
|
|
36
|
+
return this._loggerProvider.shutdown();
|
|
37
|
+
}
|
|
19
38
|
constructor(options) {
|
|
39
|
+
_define_property(this, "options", void 0);
|
|
40
|
+
_define_property(this, "_loggerProvider", void 0);
|
|
41
|
+
_define_property(this, "logProcessor", void 0);
|
|
20
42
|
this.options = options;
|
|
21
43
|
this.logProcessor = (config, entry) => {
|
|
22
44
|
const logger = this._loggerProvider.getLogger("dxos-observability", this.options.serviceVersion);
|
|
@@ -40,7 +62,7 @@ var OtelLogs = class {
|
|
|
40
62
|
});
|
|
41
63
|
};
|
|
42
64
|
setDiagLogger(options.consoleDiagLogLevel);
|
|
43
|
-
const resource =
|
|
65
|
+
const resource = defaultResource().merge(resourceFromAttributes({
|
|
44
66
|
[SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
|
|
45
67
|
[SEMRESATTRS_SERVICE_VERSION]: this.options.serviceVersion
|
|
46
68
|
}));
|
|
@@ -52,15 +74,11 @@ var OtelLogs = class {
|
|
|
52
74
|
concurrencyLimit: 10
|
|
53
75
|
});
|
|
54
76
|
this._loggerProvider = new LoggerProvider({
|
|
55
|
-
resource
|
|
77
|
+
resource,
|
|
78
|
+
processors: [
|
|
79
|
+
new BatchLogRecordProcessor(logExporter)
|
|
80
|
+
]
|
|
56
81
|
});
|
|
57
|
-
this._loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));
|
|
58
|
-
}
|
|
59
|
-
flush() {
|
|
60
|
-
return this._loggerProvider.forceFlush();
|
|
61
|
-
}
|
|
62
|
-
close() {
|
|
63
|
-
return this._loggerProvider.shutdown();
|
|
64
82
|
}
|
|
65
83
|
};
|
|
66
84
|
var convertLevel = (level) => {
|
|
@@ -82,54 +100,27 @@ var convertLevel = (level) => {
|
|
|
82
100
|
|
|
83
101
|
// src/otel/metrics.ts
|
|
84
102
|
import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
|
|
85
|
-
import {
|
|
103
|
+
import { defaultResource as defaultResource2, resourceFromAttributes as resourceFromAttributes2 } from "@opentelemetry/resources";
|
|
86
104
|
import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
|
|
87
105
|
import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME2, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION2 } from "@opentelemetry/semantic-conventions";
|
|
88
106
|
import { log } from "@dxos/log";
|
|
89
107
|
import { TRACE_PROCESSOR } from "@dxos/tracing";
|
|
108
|
+
function _define_property2(obj, key, value) {
|
|
109
|
+
if (key in obj) {
|
|
110
|
+
Object.defineProperty(obj, key, {
|
|
111
|
+
value,
|
|
112
|
+
enumerable: true,
|
|
113
|
+
configurable: true,
|
|
114
|
+
writable: true
|
|
115
|
+
});
|
|
116
|
+
} else {
|
|
117
|
+
obj[key] = value;
|
|
118
|
+
}
|
|
119
|
+
return obj;
|
|
120
|
+
}
|
|
90
121
|
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/otel/metrics.ts";
|
|
91
122
|
var EXPORT_INTERVAL = 60 * 1e3;
|
|
92
123
|
var OtelMetrics = class {
|
|
93
|
-
constructor(options) {
|
|
94
|
-
this.options = options;
|
|
95
|
-
this._gauges = /* @__PURE__ */ new Map();
|
|
96
|
-
setDiagLogger(options.consoleDiagLogLevel);
|
|
97
|
-
const resource = Resource2.default().merge(new Resource2({
|
|
98
|
-
[SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
|
|
99
|
-
[SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
|
|
100
|
-
}));
|
|
101
|
-
const grafanaMetricReader = new PeriodicExportingMetricReader({
|
|
102
|
-
exporter: new OTLPMetricExporter({
|
|
103
|
-
url: this.options.endpoint + "/v1/metrics",
|
|
104
|
-
headers: {
|
|
105
|
-
Authorization: this.options.authorizationHeader
|
|
106
|
-
}
|
|
107
|
-
}),
|
|
108
|
-
exportIntervalMillis: EXPORT_INTERVAL
|
|
109
|
-
});
|
|
110
|
-
this._meterProvider = new MeterProvider({
|
|
111
|
-
resource,
|
|
112
|
-
readers: [
|
|
113
|
-
grafanaMetricReader
|
|
114
|
-
]
|
|
115
|
-
});
|
|
116
|
-
this._meter = this._meterProvider.getMeter("dxos-observability");
|
|
117
|
-
const metrics = {
|
|
118
|
-
// TODO: update metrics names and remove prefix?
|
|
119
|
-
increment: (name, value, data) => {
|
|
120
|
-
this.increment(name, value, convertTags(data));
|
|
121
|
-
},
|
|
122
|
-
distribution: (name, value, data) => {
|
|
123
|
-
this.distribution(name, value, convertTags(data));
|
|
124
|
-
},
|
|
125
|
-
set: (name, value, data) => {
|
|
126
|
-
},
|
|
127
|
-
gauge: (name, value, data) => {
|
|
128
|
-
this.gauge(name, value, convertTags(data));
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
|
|
132
|
-
}
|
|
133
124
|
gauge(name, value, tags) {
|
|
134
125
|
const gauge = this._meter.createGauge(name);
|
|
135
126
|
log("otel gauge", {
|
|
@@ -141,7 +132,7 @@ var OtelMetrics = class {
|
|
|
141
132
|
}
|
|
142
133
|
}, {
|
|
143
134
|
F: __dxlog_file,
|
|
144
|
-
L:
|
|
135
|
+
L: 70,
|
|
145
136
|
S: this,
|
|
146
137
|
C: (f, a) => f(...a)
|
|
147
138
|
});
|
|
@@ -161,7 +152,7 @@ var OtelMetrics = class {
|
|
|
161
152
|
}
|
|
162
153
|
}, {
|
|
163
154
|
F: __dxlog_file,
|
|
164
|
-
L:
|
|
155
|
+
L: 76,
|
|
165
156
|
S: this,
|
|
166
157
|
C: (f, a) => f(...a)
|
|
167
158
|
});
|
|
@@ -181,7 +172,7 @@ var OtelMetrics = class {
|
|
|
181
172
|
}
|
|
182
173
|
}, {
|
|
183
174
|
F: __dxlog_file,
|
|
184
|
-
L:
|
|
175
|
+
L: 82,
|
|
185
176
|
S: this,
|
|
186
177
|
C: (f, a) => f(...a)
|
|
187
178
|
});
|
|
@@ -196,6 +187,48 @@ var OtelMetrics = class {
|
|
|
196
187
|
close() {
|
|
197
188
|
return this._meterProvider.shutdown();
|
|
198
189
|
}
|
|
190
|
+
constructor(options) {
|
|
191
|
+
_define_property2(this, "options", void 0);
|
|
192
|
+
_define_property2(this, "_meterProvider", void 0);
|
|
193
|
+
_define_property2(this, "_meter", void 0);
|
|
194
|
+
this.options = options;
|
|
195
|
+
setDiagLogger(options.consoleDiagLogLevel);
|
|
196
|
+
const resource = defaultResource2().merge(resourceFromAttributes2({
|
|
197
|
+
[SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
|
|
198
|
+
[SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
|
|
199
|
+
}));
|
|
200
|
+
const grafanaMetricReader = new PeriodicExportingMetricReader({
|
|
201
|
+
exporter: new OTLPMetricExporter({
|
|
202
|
+
url: this.options.endpoint + "/v1/metrics",
|
|
203
|
+
headers: {
|
|
204
|
+
Authorization: this.options.authorizationHeader
|
|
205
|
+
}
|
|
206
|
+
}),
|
|
207
|
+
exportIntervalMillis: EXPORT_INTERVAL
|
|
208
|
+
});
|
|
209
|
+
this._meterProvider = new MeterProvider({
|
|
210
|
+
resource,
|
|
211
|
+
readers: [
|
|
212
|
+
grafanaMetricReader
|
|
213
|
+
]
|
|
214
|
+
});
|
|
215
|
+
this._meter = this._meterProvider.getMeter("dxos-observability");
|
|
216
|
+
const metrics = {
|
|
217
|
+
// TODO: update metrics names and remove prefix?
|
|
218
|
+
increment: (name, value, data) => {
|
|
219
|
+
this.increment(name, value, convertTags(data));
|
|
220
|
+
},
|
|
221
|
+
distribution: (name, value, data) => {
|
|
222
|
+
this.distribution(name, value, convertTags(data));
|
|
223
|
+
},
|
|
224
|
+
set: (name, value, data) => {
|
|
225
|
+
},
|
|
226
|
+
gauge: (name, value, data) => {
|
|
227
|
+
this.gauge(name, value, convertTags(data));
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
|
|
231
|
+
}
|
|
199
232
|
};
|
|
200
233
|
var convertTags = (data) => {
|
|
201
234
|
if (data && data.tags) {
|
|
@@ -213,34 +246,27 @@ import { trace } from "@opentelemetry/api";
|
|
|
213
246
|
import { getWebAutoInstrumentations } from "@opentelemetry/auto-instrumentations-web";
|
|
214
247
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
215
248
|
import { registerInstrumentations } from "@opentelemetry/instrumentation";
|
|
216
|
-
import {
|
|
217
|
-
import { ConsoleSpanExporter, SimpleSpanProcessor
|
|
249
|
+
import { defaultResource as defaultResource3, resourceFromAttributes as resourceFromAttributes3 } from "@opentelemetry/resources";
|
|
250
|
+
import { BatchSpanProcessor, ConsoleSpanExporter, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
218
251
|
import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
|
|
219
252
|
import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME3, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION3 } from "@opentelemetry/semantic-conventions";
|
|
220
253
|
import { log as log2 } from "@dxos/log";
|
|
221
254
|
import { TRACE_PROCESSOR as TRACE_PROCESSOR2 } from "@dxos/tracing";
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
}));
|
|
230
|
-
const tracerProvider = new WebTracerProvider({
|
|
231
|
-
resource
|
|
255
|
+
function _define_property3(obj, key, value) {
|
|
256
|
+
if (key in obj) {
|
|
257
|
+
Object.defineProperty(obj, key, {
|
|
258
|
+
value,
|
|
259
|
+
enumerable: true,
|
|
260
|
+
configurable: true,
|
|
261
|
+
writable: true
|
|
232
262
|
});
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
url: this.options.endpoint + "/v1/traces",
|
|
236
|
-
headers: {
|
|
237
|
-
Authorization: this.options.authorizationHeader
|
|
238
|
-
},
|
|
239
|
-
concurrencyLimit: 10
|
|
240
|
-
})));
|
|
241
|
-
tracerProvider.register({});
|
|
242
|
-
this._tracer = trace.getTracer("dxos-observability", this.options.serviceVersion);
|
|
263
|
+
} else {
|
|
264
|
+
obj[key] = value;
|
|
243
265
|
}
|
|
266
|
+
return obj;
|
|
267
|
+
}
|
|
268
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/otel/traces-browser.ts";
|
|
269
|
+
var OtelTraces = class {
|
|
244
270
|
start() {
|
|
245
271
|
registerInstrumentations({
|
|
246
272
|
instrumentations: [
|
|
@@ -249,7 +275,7 @@ var OtelTraces = class {
|
|
|
249
275
|
});
|
|
250
276
|
log2("trace processor registered", void 0, {
|
|
251
277
|
F: __dxlog_file2,
|
|
252
|
-
L:
|
|
278
|
+
L: 54,
|
|
253
279
|
S: this,
|
|
254
280
|
C: (f, a) => f(...a)
|
|
255
281
|
});
|
|
@@ -259,7 +285,7 @@ var OtelTraces = class {
|
|
|
259
285
|
options
|
|
260
286
|
}, {
|
|
261
287
|
F: __dxlog_file2,
|
|
262
|
-
L:
|
|
288
|
+
L: 57,
|
|
263
289
|
S: this,
|
|
264
290
|
C: (f, a) => f(...a)
|
|
265
291
|
});
|
|
@@ -267,6 +293,30 @@ var OtelTraces = class {
|
|
|
267
293
|
}
|
|
268
294
|
});
|
|
269
295
|
}
|
|
296
|
+
constructor(options) {
|
|
297
|
+
_define_property3(this, "options", void 0);
|
|
298
|
+
_define_property3(this, "_tracer", void 0);
|
|
299
|
+
this.options = options;
|
|
300
|
+
const resource = defaultResource3().merge(resourceFromAttributes3({
|
|
301
|
+
[SEMRESATTRS_SERVICE_NAME3]: this.options.serviceName,
|
|
302
|
+
[SEMRESATTRS_SERVICE_VERSION3]: this.options.serviceVersion
|
|
303
|
+
}));
|
|
304
|
+
const tracerProvider = new WebTracerProvider({
|
|
305
|
+
resource,
|
|
306
|
+
spanProcessors: [
|
|
307
|
+
new SimpleSpanProcessor(new ConsoleSpanExporter()),
|
|
308
|
+
new BatchSpanProcessor(new OTLPTraceExporter({
|
|
309
|
+
url: this.options.endpoint + "/v1/traces",
|
|
310
|
+
headers: {
|
|
311
|
+
Authorization: this.options.authorizationHeader
|
|
312
|
+
},
|
|
313
|
+
concurrencyLimit: 10
|
|
314
|
+
}))
|
|
315
|
+
]
|
|
316
|
+
});
|
|
317
|
+
trace.setGlobalTracerProvider(tracerProvider);
|
|
318
|
+
this._tracer = trace.getTracer("dxos-observability", this.options.serviceVersion);
|
|
319
|
+
}
|
|
270
320
|
};
|
|
271
321
|
export {
|
|
272
322
|
OtelLogs,
|
|
@@ -274,4 +324,4 @@ export {
|
|
|
274
324
|
OtelTraces,
|
|
275
325
|
setDiagLogger
|
|
276
326
|
};
|
|
277
|
-
//# sourceMappingURL=otel-
|
|
327
|
+
//# sourceMappingURL=otel-6FVBNA5F.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-browser.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 { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { BatchSpanProcessor, ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type StartSpanOptions, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport { type OtelOptions } from './otel';\n\nexport class OtelTraces {\n private _tracer: Tracer;\n constructor(private readonly options: OtelOptions) {\n const resource = 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 WebTracerProvider({\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 // TODO(nf): ContextManager? Propogator?\n trace.setGlobalTracerProvider(tracerProvider);\n this._tracer = trace.getTracer('dxos-observability', this.options.serviceVersion);\n }\n\n public start(): void {\n registerInstrumentations({\n instrumentations: [getWebAutoInstrumentations()],\n });\n log('trace processor registered');\n TRACE_PROCESSOR.remoteTracing.registerProcessor({\n startSpan: (options: StartSpanOptions) => {\n log('begin otel trace', { options });\n return this._tracer.startSpan(options.name, options);\n },\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["DiagConsoleLogger", "DiagLogLevel", "diag", "setDiagLogger", "level", "logLevel", "DiagLogLevel", "diag", "setLogger", "DiagConsoleLogger", "SeverityNumber", "OTLPLogExporter", "defaultResource", "resourceFromAttributes", "BatchLogRecordProcessor", "LoggerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "LogLevel", "getContextFromEntry", "getRelativeFilename", "jsonlogify", "OtelLogs", "flush", "_loggerProvider", "forceFlush", "close", "shutdown", "options", "logProcessor", "config", "entry", "logger", "getLogger", "serviceVersion", "level", "logLevel", "includeSharedWorkerLogs", "meta", "S", "remoteSessionId", "record", "file", "getRelativeFilename", "F", "line", "L", "context", "jsonlogify", "getContextFromEntry", "emit", "severityNumber", "convertLevel", "body", "JSON", "stringify", "attributes", "getTags", "setDiagLogger", "consoleDiagLogLevel", "resource", "defaultResource", "merge", "resourceFromAttributes", "SEMRESATTRS_SERVICE_NAME", "serviceName", "SEMRESATTRS_SERVICE_VERSION", "logExporter", "OTLPLogExporter", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "LoggerProvider", "processors", "BatchLogRecordProcessor", "LogLevel", "DEBUG", "SeverityNumber", "VERBOSE", "INFO", "WARN", "ERROR", "OTLPMetricExporter", "defaultResource", "resourceFromAttributes", "MeterProvider", "PeriodicExportingMetricReader", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "EXPORT_INTERVAL", "OtelMetrics", "gauge", "name", "value", "tags", "_meter", "createGauge", "log", "options", "getTags", "record", "increment", "counter", "createCounter", "add", "distribution", "createHistogram", "flush", "_meterProvider", "forceFlush", "close", "shutdown", "_define_property", "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", "data", "convertTags", "set", "TRACE_PROCESSOR", "remoteMetrics", "registerProcessor", "Object", "entries", "reduce", "obj", "key", "trace", "getWebAutoInstrumentations", "OTLPTraceExporter", "registerInstrumentations", "defaultResource", "resourceFromAttributes", "BatchSpanProcessor", "ConsoleSpanExporter", "SimpleSpanProcessor", "WebTracerProvider", "SEMRESATTRS_SERVICE_NAME", "SEMRESATTRS_SERVICE_VERSION", "log", "TRACE_PROCESSOR", "OtelTraces", "start", "instrumentations", "remoteTracing", "registerProcessor", "startSpan", "options", "_tracer", "name", "_define_property", "resource", "merge", "serviceName", "serviceVersion", "tracerProvider", "spanProcessors", "url", "endpoint", "headers", "Authorization", "authorizationHeader", "concurrencyLimit", "setGlobalTracerProvider", "getTracer"]
|
|
7
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SegmentTelemetry,
|
|
3
3
|
TelemetryEvent
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-ICKR6U3G.mjs";
|
|
5
|
+
import "../chunk-5ICT2XF2.mjs";
|
|
6
|
+
import "../chunk-LJO63BXO.mjs";
|
|
7
7
|
export {
|
|
8
8
|
SegmentTelemetry,
|
|
9
9
|
TelemetryEvent
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-5ICT2XF2.mjs";
|
|
2
2
|
import {
|
|
3
3
|
addBreadcrumb,
|
|
4
4
|
captureException,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
setTags,
|
|
10
10
|
setUser,
|
|
11
11
|
withScope
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-LJO63BXO.mjs";
|
|
13
13
|
export {
|
|
14
14
|
addBreadcrumb,
|
|
15
15
|
captureException,
|
package/dist/lib/browser/{sentry-log-processor-3F3SBJXM.mjs → sentry-log-processor-RG4CFVGL.mjs}
RENAMED
|
@@ -2,21 +2,70 @@ import {
|
|
|
2
2
|
captureException,
|
|
3
3
|
captureMessage,
|
|
4
4
|
withScope
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LJO63BXO.mjs";
|
|
6
6
|
|
|
7
7
|
// src/sentry/sentry-log-processor.ts
|
|
8
8
|
import { InvariantViolation } from "@dxos/invariant";
|
|
9
9
|
import { LogLevel, shouldLog } from "@dxos/log";
|
|
10
10
|
import { CircularBuffer, getDebugName } from "@dxos/util";
|
|
11
|
+
function _define_property(obj, key, value) {
|
|
12
|
+
if (key in obj) {
|
|
13
|
+
Object.defineProperty(obj, key, {
|
|
14
|
+
value,
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true
|
|
18
|
+
});
|
|
19
|
+
} else {
|
|
20
|
+
obj[key] = value;
|
|
21
|
+
}
|
|
22
|
+
return obj;
|
|
23
|
+
}
|
|
11
24
|
var MAX_LOG_BREADCRUMBS = 150;
|
|
12
25
|
var SentryLogProcessor = class {
|
|
26
|
+
addLogBreadcrumbsTo(event) {
|
|
27
|
+
var _event;
|
|
28
|
+
(_event = event).breadcrumbs ?? (_event.breadcrumbs = []);
|
|
29
|
+
for (const breadcrumb of this._breadcrumbs) {
|
|
30
|
+
event.breadcrumbs.push(breadcrumb);
|
|
31
|
+
}
|
|
32
|
+
event.breadcrumbs.sort((b1, b2) => {
|
|
33
|
+
if (b1.timestamp === void 0 || b2.timestamp === void 0) {
|
|
34
|
+
return b1.timestamp === b2.timestamp ? 0 : b1.timestamp === void 0 ? -1 : 1;
|
|
35
|
+
}
|
|
36
|
+
return b1.timestamp - b2.timestamp;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
_addBreadcrumb(eventId, message, severity, context) {
|
|
40
|
+
const breadcrumb = {
|
|
41
|
+
type: "console",
|
|
42
|
+
level: severity,
|
|
43
|
+
event_id: eventId,
|
|
44
|
+
category: "log",
|
|
45
|
+
message,
|
|
46
|
+
data: context,
|
|
47
|
+
timestamp: Math.floor(Date.now() / 1e3)
|
|
48
|
+
};
|
|
49
|
+
const lastRecorded = this._breadcrumbs.getLast();
|
|
50
|
+
if (lastRecorded && lastRecorded.message === breadcrumb.message) {
|
|
51
|
+
const firstBreadcrumbData = lastRecorded.data?.firstBreadcrumbData ?? lastRecorded.data ?? {};
|
|
52
|
+
const mergedBreadcrumbCount = Number.isNaN(lastRecorded.data?.mergedBreadcrumbCount) ? 1 : Number(lastRecorded.data?.mergedBreadcrumbCount);
|
|
53
|
+
lastRecorded.data = {
|
|
54
|
+
mergedBreadcrumbCount: mergedBreadcrumbCount + 1,
|
|
55
|
+
firstBreadcrumbData,
|
|
56
|
+
lastBreadcrumbData: breadcrumb.data
|
|
57
|
+
};
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this._breadcrumbs.push(breadcrumb);
|
|
61
|
+
}
|
|
13
62
|
constructor() {
|
|
14
|
-
this
|
|
15
|
-
this
|
|
63
|
+
_define_property(this, "_breadcrumbs", new CircularBuffer(MAX_LOG_BREADCRUMBS));
|
|
64
|
+
_define_property(this, "logProcessor", (config, entry) => {
|
|
16
65
|
const { level, meta, error } = entry;
|
|
17
66
|
if (!shouldLog(entry, config.captureFilters) || meta?.S?.remoteSessionId) {
|
|
18
67
|
if (entry.level > LogLevel.DEBUG) {
|
|
19
|
-
this._addBreadcrumb(void 0, entry.message, convertLevel(entry.level), void 0);
|
|
68
|
+
this._addBreadcrumb(void 0, entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : ""), convertLevel(entry.level), void 0);
|
|
20
69
|
}
|
|
21
70
|
return;
|
|
22
71
|
}
|
|
@@ -56,61 +105,28 @@ var SentryLogProcessor = class {
|
|
|
56
105
|
this._addBreadcrumb(eventId2, extendedMessage, severity, entry.context);
|
|
57
106
|
return;
|
|
58
107
|
}
|
|
108
|
+
const message = entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : "");
|
|
59
109
|
scope.setFingerprint([
|
|
60
|
-
|
|
110
|
+
message
|
|
61
111
|
]);
|
|
62
112
|
const eventId = captureMessage(extendedMessage);
|
|
63
113
|
this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);
|
|
64
114
|
});
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
addLogBreadcrumbsTo(event) {
|
|
68
|
-
event.breadcrumbs ??= [];
|
|
69
|
-
for (const breadcrumb of this._breadcrumbs) {
|
|
70
|
-
event.breadcrumbs.push(breadcrumb);
|
|
71
|
-
}
|
|
72
|
-
event.breadcrumbs.sort((b1, b2) => {
|
|
73
|
-
if (b1.timestamp === void 0 || b2.timestamp === void 0) {
|
|
74
|
-
return b1.timestamp === b2.timestamp ? 0 : b1.timestamp === void 0 ? -1 : 1;
|
|
75
|
-
}
|
|
76
|
-
return b1.timestamp - b2.timestamp;
|
|
77
115
|
});
|
|
78
116
|
}
|
|
79
|
-
_addBreadcrumb(eventId, message, severity, context) {
|
|
80
|
-
const breadcrumb = {
|
|
81
|
-
type: "console",
|
|
82
|
-
level: severity,
|
|
83
|
-
event_id: eventId,
|
|
84
|
-
category: "log",
|
|
85
|
-
message,
|
|
86
|
-
data: context,
|
|
87
|
-
timestamp: Math.floor(Date.now() / 1e3)
|
|
88
|
-
};
|
|
89
|
-
const lastRecorded = this._breadcrumbs.getLast();
|
|
90
|
-
if (lastRecorded && lastRecorded.message === breadcrumb.message) {
|
|
91
|
-
const firstBreadcrumbData = lastRecorded.data?.firstBreadcrumbData ?? lastRecorded.data ?? {};
|
|
92
|
-
const mergedBreadcrumbCount = Number.isNaN(lastRecorded.data?.mergedBreadcrumbCount) ? 1 : Number(lastRecorded.data?.mergedBreadcrumbCount);
|
|
93
|
-
lastRecorded.data = {
|
|
94
|
-
mergedBreadcrumbCount: mergedBreadcrumbCount + 1,
|
|
95
|
-
firstBreadcrumbData,
|
|
96
|
-
lastBreadcrumbData: breadcrumb.data
|
|
97
|
-
};
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
this._breadcrumbs.push(breadcrumb);
|
|
101
|
-
}
|
|
102
117
|
};
|
|
103
118
|
var formatMessageForSentry = (entry) => {
|
|
119
|
+
const message = entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : "");
|
|
104
120
|
let scopePrefix;
|
|
105
121
|
if (entry.meta?.S) {
|
|
106
122
|
const scope = entry.meta?.S;
|
|
107
123
|
scopePrefix = scope.name || getDebugName(scope);
|
|
108
124
|
}
|
|
109
125
|
if (scopePrefix == null) {
|
|
110
|
-
return
|
|
126
|
+
return message;
|
|
111
127
|
}
|
|
112
128
|
const workerPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
113
|
-
return `${workerPrefix}${scopePrefix} ${
|
|
129
|
+
return `${workerPrefix}${scopePrefix} ${message}`;
|
|
114
130
|
};
|
|
115
131
|
var convertLevel = (level) => {
|
|
116
132
|
switch (level) {
|
|
@@ -143,4 +159,4 @@ var getRelativeFilename = (filename) => {
|
|
|
143
159
|
export {
|
|
144
160
|
SentryLogProcessor
|
|
145
161
|
};
|
|
146
|
-
//# sourceMappingURL=sentry-log-processor-
|
|
162
|
+
//# sourceMappingURL=sentry-log-processor-RG4CFVGL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/sentry/sentry-log-processor.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Breadcrumb, Event, SeverityLevel } from '@sentry/types';\n\nimport { InvariantViolation } from '@dxos/invariant';\nimport { type LogConfig, type LogEntry, LogLevel, type LogProcessor, shouldLog } from '@dxos/log';\nimport { CircularBuffer, getDebugName } from '@dxos/util';\n\nimport { captureException, captureMessage, withScope } from './node';\n\nconst MAX_LOG_BREADCRUMBS = 150;\n\nexport class SentryLogProcessor {\n private _breadcrumbs = new CircularBuffer<Breadcrumb>(MAX_LOG_BREADCRUMBS);\n\n public readonly logProcessor: LogProcessor = (config: LogConfig, entry: LogEntry) => {\n const { level, meta, error } = entry;\n // Don't forward logs from remote sessions.\n if (!shouldLog(entry, config.captureFilters) || meta?.S?.remoteSessionId) {\n if (entry.level > LogLevel.DEBUG) {\n this._addBreadcrumb(\n undefined,\n entry.message ?? (entry.error ? (entry.error.message ?? String(entry.error)) : ''),\n convertLevel(entry.level),\n undefined,\n );\n }\n return;\n }\n if (entry.level !== LogLevel.WARN && entry.level !== LogLevel.ERROR) {\n return;\n }\n\n // TODO(nf): add rate limiting to avoid spamming Sentry/consuming excessive quota.\n withScope((scope) => {\n const severity = convertLevel(level);\n scope.setLevel(severity);\n scope.setContext('dxoslog', entry.context ?? null);\n if (meta) {\n scope.setTag('transaction', `${getRelativeFilename(meta.F)}:${meta.L}`);\n\n if (meta.S?.hostSessionId) {\n scope.setTags({\n service_host_issue: true,\n service_host_session: meta.S?.hostSessionId,\n });\n }\n\n if (!Number.isNaN(meta.S?.uptimeSeconds)) {\n scope.setExtra('uptime_seconds', meta.S?.uptimeSeconds);\n }\n }\n\n const extendedMessage = formatMessageForSentry(entry);\n let capturedError = error;\n if (capturedError == null && entry.level === LogLevel.ERROR) {\n capturedError = Object.values(entry.context ?? {}).find((v): v is Error => v instanceof Error);\n }\n if (capturedError) {\n if (capturedError instanceof InvariantViolation) {\n scope.setExtra('invariant_violation', true);\n }\n const isMessageDifferentFromStackTrace = error == null;\n if (isMessageDifferentFromStackTrace) {\n scope.setExtra('message', extendedMessage);\n }\n const eventId = captureException(capturedError);\n this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);\n return;\n }\n\n const message = entry.message ?? (entry.error ? (entry.error.message ?? String(entry.error)) : '');\n scope.setFingerprint([message]);\n const eventId = captureMessage(extendedMessage);\n this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);\n });\n };\n\n public addLogBreadcrumbsTo(event: Event): void {\n event.breadcrumbs ??= [];\n for (const breadcrumb of this._breadcrumbs) {\n event.breadcrumbs.push(breadcrumb);\n }\n event.breadcrumbs.sort((b1, b2) => {\n if (b1.timestamp === undefined || b2.timestamp === undefined) {\n return b1.timestamp === b2.timestamp ? 0 : b1.timestamp === undefined ? -1 : 1;\n }\n return b1.timestamp - b2.timestamp;\n });\n }\n\n private _addBreadcrumb(\n eventId: string | undefined,\n message: string,\n severity: SeverityLevel,\n context: { [key: string]: any } | undefined,\n ): void {\n const breadcrumb: Breadcrumb = {\n type: 'console',\n level: severity,\n event_id: eventId,\n category: 'log',\n message,\n data: context,\n timestamp: Math.floor(Date.now() / 1000),\n };\n const lastRecorded = this._breadcrumbs.getLast();\n if (lastRecorded && lastRecorded.message === breadcrumb.message) {\n const firstBreadcrumbData = lastRecorded.data?.firstBreadcrumbData ?? lastRecorded.data ?? {};\n const mergedBreadcrumbCount = Number.isNaN(lastRecorded.data?.mergedBreadcrumbCount)\n ? 1\n : Number(lastRecorded.data?.mergedBreadcrumbCount);\n lastRecorded.data = {\n mergedBreadcrumbCount: mergedBreadcrumbCount + 1,\n firstBreadcrumbData,\n lastBreadcrumbData: breadcrumb.data,\n };\n return;\n }\n this._breadcrumbs.push(breadcrumb);\n }\n}\n\nconst formatMessageForSentry = (entry: LogEntry): string => {\n const message = entry.message ?? (entry.error ? (entry.error.message ?? String(entry.error)) : '');\n\n let scopePrefix: string | undefined;\n if (entry.meta?.S) {\n const scope = entry.meta?.S;\n scopePrefix = scope.name || getDebugName(scope);\n }\n if (scopePrefix == null) {\n return message;\n }\n\n const workerPrefix = entry.meta?.S?.hostSessionId ? '[worker] ' : '';\n return `${workerPrefix}${scopePrefix} ${message}`;\n};\n\nconst convertLevel = (level: LogLevel): SeverityLevel => {\n switch (level) {\n case LogLevel.ERROR:\n return 'error';\n case LogLevel.VERBOSE:\n return 'info';\n case LogLevel.INFO:\n return 'info';\n case LogLevel.WARN:\n return 'warning';\n case LogLevel.DEBUG:\n case LogLevel.TRACE:\n return 'debug';\n default:\n throw never(level);\n }\n};\n\nconst never = (_: never) => {\n return new Error('unhandled value');\n};\n\nconst getRelativeFilename = (filename: string) => {\n // TODO(burdon): Hack uses \"packages\" as an anchor (pre-parse NX?)\n // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n\n return filename;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["InvariantViolation", "LogLevel", "shouldLog", "CircularBuffer", "getDebugName", "MAX_LOG_BREADCRUMBS", "SentryLogProcessor", "addLogBreadcrumbsTo", "event", "breadcrumbs", "breadcrumb", "_breadcrumbs", "push", "sort", "b1", "b2", "timestamp", "undefined", "_addBreadcrumb", "eventId", "message", "severity", "context", "type", "level", "event_id", "category", "data", "Math", "floor", "Date", "now", "lastRecorded", "getLast", "firstBreadcrumbData", "mergedBreadcrumbCount", "Number", "isNaN", "lastBreadcrumbData", "CircularBuffer", "logProcessor", "config", "entry", "meta", "error", "shouldLog", "captureFilters", "S", "remoteSessionId", "LogLevel", "DEBUG", "String", "convertLevel", "WARN", "ERROR", "withScope", "scope", "setLevel", "setContext", "setTag", "getRelativeFilename", "F", "L", "hostSessionId", "setTags", "service_host_issue", "service_host_session", "uptimeSeconds", "setExtra", "extendedMessage", "formatMessageForSentry", "capturedError", "Object", "values", "find", "v", "Error", "InvariantViolation", "isMessageDifferentFromStackTrace", "captureException", "setFingerprint", "captureMessage", "scopePrefix", "name", "getDebugName", "workerPrefix", "VERBOSE", "INFO", "TRACE", "never", "_", "filename", "match", "filePath"]
|
|
7
|
+
}
|