@dxos/observability 0.8.4-main.a4bbb77 → 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.
- package/dist/lib/browser/{chunk-YTRUOREY.mjs → chunk-USIB5JOP.mjs} +58 -64
- package/dist/lib/browser/{chunk-YTRUOREY.mjs.map → chunk-USIB5JOP.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-ICKR6U3G.mjs → chunk-XNAF22QM.mjs} +25 -38
- package/dist/lib/browser/{chunk-ICKR6U3G.mjs.map → chunk-XNAF22QM.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-LJO63BXO.mjs → chunk-ZI3ZS3PA.mjs} +1 -1
- package/dist/lib/browser/{chunk-LJO63BXO.mjs.map → chunk-ZI3ZS3PA.mjs.map} +1 -1
- package/dist/lib/browser/index.mjs +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/observability-AOZNUWZS.mjs +10 -0
- package/dist/lib/browser/{otel-6FVBNA5F.mjs → otel-UH7ZRWC2.mjs} +96 -136
- package/dist/lib/browser/{otel-6FVBNA5F.mjs.map → otel-UH7ZRWC2.mjs.map} +2 -2
- package/dist/lib/browser/segment/index.mjs +2 -2
- package/dist/lib/browser/sentry/index.mjs +1 -1
- package/dist/lib/browser/{sentry-log-processor-RG4CFVGL.mjs → sentry-log-processor-5LSQJMIO.mjs} +56 -72
- package/dist/lib/browser/{sentry-log-processor-RG4CFVGL.mjs.map → sentry-log-processor-5LSQJMIO.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-4EWQFQ2F.mjs → chunk-JJS4CBLT.mjs} +58 -64
- package/dist/lib/node-esm/{chunk-4EWQFQ2F.mjs.map → chunk-JJS4CBLT.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-24NMRR4E.mjs → chunk-OJV247NY.mjs} +31 -56
- package/dist/lib/node-esm/{chunk-24NMRR4E.mjs.map → chunk-OJV247NY.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{observability-DHNVVRC7.mjs → observability-UWX2LAYX.mjs} +3 -3
- package/dist/lib/node-esm/{otel-KHSGBROB.mjs → otel-7PUCFSTY.mjs} +85 -125
- package/dist/lib/node-esm/{otel-KHSGBROB.mjs.map → otel-7PUCFSTY.mjs.map} +2 -2
- package/dist/lib/node-esm/segment/index.mjs +1 -1
- package/dist/lib/node-esm/{sentry-log-processor-3BDS4BB4.mjs → sentry-log-processor-C4UGMAMV.mjs} +55 -71
- package/dist/lib/node-esm/{sentry-log-processor-3BDS4BB4.mjs.map → sentry-log-processor-C4UGMAMV.mjs.map} +2 -2
- package/dist/types/src/sentry/browser.js +1 -1
- package/dist/types/src/sentry/browser.js.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -18
- package/src/sentry/browser.ts +1 -1
- package/dist/lib/browser/observability-CQGG3MID.mjs +0 -10
- /package/dist/lib/browser/{observability-CQGG3MID.mjs.map → observability-AOZNUWZS.mjs.map} +0 -0
- /package/dist/lib/node-esm/{observability-DHNVVRC7.mjs.map → observability-UWX2LAYX.mjs.map} +0 -0
|
@@ -17,52 +17,11 @@ import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs
|
|
|
17
17
|
import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
|
|
18
18
|
import { LogLevel, getContextFromEntry, getRelativeFilename } from "@dxos/log";
|
|
19
19
|
import { jsonlogify } from "@dxos/util";
|
|
20
|
-
function _define_property(obj, key, value) {
|
|
21
|
-
if (key in obj) {
|
|
22
|
-
Object.defineProperty(obj, key, {
|
|
23
|
-
value,
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true,
|
|
26
|
-
writable: true
|
|
27
|
-
});
|
|
28
|
-
} else {
|
|
29
|
-
obj[key] = value;
|
|
30
|
-
}
|
|
31
|
-
return obj;
|
|
32
|
-
}
|
|
33
20
|
var OtelLogs = class {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
close() {
|
|
38
|
-
return this._loggerProvider.shutdown();
|
|
39
|
-
}
|
|
21
|
+
options;
|
|
22
|
+
_loggerProvider;
|
|
40
23
|
constructor(options) {
|
|
41
|
-
_define_property(this, "options", void 0);
|
|
42
|
-
_define_property(this, "_loggerProvider", void 0);
|
|
43
|
-
_define_property(this, "logProcessor", void 0);
|
|
44
24
|
this.options = options;
|
|
45
|
-
this.logProcessor = (config, entry) => {
|
|
46
|
-
const logger = this._loggerProvider.getLogger("dxos-observability", this.options.serviceVersion);
|
|
47
|
-
if (entry.level < this.options.logLevel || !this.options.includeSharedWorkerLogs && entry.meta?.S?.remoteSessionId) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
const record = {
|
|
51
|
-
...entry,
|
|
52
|
-
...entry.meta ? {
|
|
53
|
-
meta: {
|
|
54
|
-
file: getRelativeFilename(entry.meta.F),
|
|
55
|
-
line: entry.meta.L
|
|
56
|
-
}
|
|
57
|
-
} : {},
|
|
58
|
-
context: jsonlogify(getContextFromEntry(entry))
|
|
59
|
-
};
|
|
60
|
-
logger.emit({
|
|
61
|
-
severityNumber: convertLevel(entry.level),
|
|
62
|
-
body: JSON.stringify(record),
|
|
63
|
-
attributes: this.options.getTags()
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
25
|
setDiagLogger(options.consoleDiagLogLevel);
|
|
67
26
|
const resource = defaultResource().merge(resourceFromAttributes({
|
|
68
27
|
[SEMRESATTRS_SERVICE_NAME]: this.options.serviceName,
|
|
@@ -82,6 +41,33 @@ var OtelLogs = class {
|
|
|
82
41
|
]
|
|
83
42
|
});
|
|
84
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
|
+
};
|
|
65
|
+
flush() {
|
|
66
|
+
return this._loggerProvider.forceFlush();
|
|
67
|
+
}
|
|
68
|
+
close() {
|
|
69
|
+
return this._loggerProvider.shutdown();
|
|
70
|
+
}
|
|
85
71
|
};
|
|
86
72
|
var convertLevel = (level) => {
|
|
87
73
|
switch (level) {
|
|
@@ -107,22 +93,51 @@ import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk
|
|
|
107
93
|
import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME2, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION2 } from "@opentelemetry/semantic-conventions";
|
|
108
94
|
import { log } from "@dxos/log";
|
|
109
95
|
import { TRACE_PROCESSOR } from "@dxos/tracing";
|
|
110
|
-
function _define_property2(obj, key, value) {
|
|
111
|
-
if (key in obj) {
|
|
112
|
-
Object.defineProperty(obj, key, {
|
|
113
|
-
value,
|
|
114
|
-
enumerable: true,
|
|
115
|
-
configurable: true,
|
|
116
|
-
writable: true
|
|
117
|
-
});
|
|
118
|
-
} else {
|
|
119
|
-
obj[key] = value;
|
|
120
|
-
}
|
|
121
|
-
return obj;
|
|
122
|
-
}
|
|
123
96
|
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/otel/metrics.ts";
|
|
124
97
|
var EXPORT_INTERVAL = 60 * 1e3;
|
|
125
98
|
var OtelMetrics = class {
|
|
99
|
+
options;
|
|
100
|
+
_meterProvider;
|
|
101
|
+
_meter;
|
|
102
|
+
constructor(options) {
|
|
103
|
+
this.options = options;
|
|
104
|
+
setDiagLogger(options.consoleDiagLogLevel);
|
|
105
|
+
const resource = defaultResource2().merge(resourceFromAttributes2({
|
|
106
|
+
[SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
|
|
107
|
+
[SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
|
|
108
|
+
}));
|
|
109
|
+
const grafanaMetricReader = new PeriodicExportingMetricReader({
|
|
110
|
+
exporter: new OTLPMetricExporter({
|
|
111
|
+
url: this.options.endpoint + "/v1/metrics",
|
|
112
|
+
headers: {
|
|
113
|
+
Authorization: this.options.authorizationHeader
|
|
114
|
+
}
|
|
115
|
+
}),
|
|
116
|
+
exportIntervalMillis: EXPORT_INTERVAL
|
|
117
|
+
});
|
|
118
|
+
this._meterProvider = new MeterProvider({
|
|
119
|
+
resource,
|
|
120
|
+
readers: [
|
|
121
|
+
grafanaMetricReader
|
|
122
|
+
]
|
|
123
|
+
});
|
|
124
|
+
this._meter = this._meterProvider.getMeter("dxos-observability");
|
|
125
|
+
const metrics = {
|
|
126
|
+
// TODO: update metrics names and remove prefix?
|
|
127
|
+
increment: (name, value, data) => {
|
|
128
|
+
this.increment(name, value, convertTags(data));
|
|
129
|
+
},
|
|
130
|
+
distribution: (name, value, data) => {
|
|
131
|
+
this.distribution(name, value, convertTags(data));
|
|
132
|
+
},
|
|
133
|
+
set: (name, value, data) => {
|
|
134
|
+
},
|
|
135
|
+
gauge: (name, value, data) => {
|
|
136
|
+
this.gauge(name, value, convertTags(data));
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
|
|
140
|
+
}
|
|
126
141
|
gauge(name, value, tags) {
|
|
127
142
|
const gauge = this._meter.createGauge(name);
|
|
128
143
|
log("otel gauge", {
|
|
@@ -189,48 +204,6 @@ var OtelMetrics = class {
|
|
|
189
204
|
close() {
|
|
190
205
|
return this._meterProvider.shutdown();
|
|
191
206
|
}
|
|
192
|
-
constructor(options) {
|
|
193
|
-
_define_property2(this, "options", void 0);
|
|
194
|
-
_define_property2(this, "_meterProvider", void 0);
|
|
195
|
-
_define_property2(this, "_meter", void 0);
|
|
196
|
-
this.options = options;
|
|
197
|
-
setDiagLogger(options.consoleDiagLogLevel);
|
|
198
|
-
const resource = defaultResource2().merge(resourceFromAttributes2({
|
|
199
|
-
[SEMRESATTRS_SERVICE_NAME2]: this.options.serviceName,
|
|
200
|
-
[SEMRESATTRS_SERVICE_VERSION2]: this.options.serviceVersion
|
|
201
|
-
}));
|
|
202
|
-
const grafanaMetricReader = new PeriodicExportingMetricReader({
|
|
203
|
-
exporter: new OTLPMetricExporter({
|
|
204
|
-
url: this.options.endpoint + "/v1/metrics",
|
|
205
|
-
headers: {
|
|
206
|
-
Authorization: this.options.authorizationHeader
|
|
207
|
-
}
|
|
208
|
-
}),
|
|
209
|
-
exportIntervalMillis: EXPORT_INTERVAL
|
|
210
|
-
});
|
|
211
|
-
this._meterProvider = new MeterProvider({
|
|
212
|
-
resource,
|
|
213
|
-
readers: [
|
|
214
|
-
grafanaMetricReader
|
|
215
|
-
]
|
|
216
|
-
});
|
|
217
|
-
this._meter = this._meterProvider.getMeter("dxos-observability");
|
|
218
|
-
const metrics = {
|
|
219
|
-
// TODO: update metrics names and remove prefix?
|
|
220
|
-
increment: (name, value, data) => {
|
|
221
|
-
this.increment(name, value, convertTags(data));
|
|
222
|
-
},
|
|
223
|
-
distribution: (name, value, data) => {
|
|
224
|
-
this.distribution(name, value, convertTags(data));
|
|
225
|
-
},
|
|
226
|
-
set: (name, value, data) => {
|
|
227
|
-
},
|
|
228
|
-
gauge: (name, value, data) => {
|
|
229
|
-
this.gauge(name, value, convertTags(data));
|
|
230
|
-
}
|
|
231
|
-
};
|
|
232
|
-
TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
|
|
233
|
-
}
|
|
234
207
|
};
|
|
235
208
|
var convertTags = (data) => {
|
|
236
209
|
if (data && data.tags) {
|
|
@@ -251,34 +224,10 @@ import { BasicTracerProvider, BatchSpanProcessor, ConsoleSpanExporter, SimpleSpa
|
|
|
251
224
|
import { SEMRESATTRS_SERVICE_NAME as SEMRESATTRS_SERVICE_NAME3, SEMRESATTRS_SERVICE_VERSION as SEMRESATTRS_SERVICE_VERSION3 } from "@opentelemetry/semantic-conventions";
|
|
252
225
|
import { log as log2 } from "debug";
|
|
253
226
|
import { TRACE_PROCESSOR as TRACE_PROCESSOR2 } from "@dxos/tracing";
|
|
254
|
-
function _define_property3(obj, key, value) {
|
|
255
|
-
if (key in obj) {
|
|
256
|
-
Object.defineProperty(obj, key, {
|
|
257
|
-
value,
|
|
258
|
-
enumerable: true,
|
|
259
|
-
configurable: true,
|
|
260
|
-
writable: true
|
|
261
|
-
});
|
|
262
|
-
} else {
|
|
263
|
-
obj[key] = value;
|
|
264
|
-
}
|
|
265
|
-
return obj;
|
|
266
|
-
}
|
|
267
227
|
var OtelTraces = class {
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
TRACE_PROCESSOR2.remoteTracing.registerProcessor({
|
|
271
|
-
startSpan: (options) => {
|
|
272
|
-
log2("begin otel trace", {
|
|
273
|
-
options
|
|
274
|
-
});
|
|
275
|
-
return this._tracer.startSpan(options.name, options);
|
|
276
|
-
}
|
|
277
|
-
});
|
|
278
|
-
}
|
|
228
|
+
options;
|
|
229
|
+
_tracer;
|
|
279
230
|
constructor(options) {
|
|
280
|
-
_define_property3(this, "options", void 0);
|
|
281
|
-
_define_property3(this, "_tracer", void 0);
|
|
282
231
|
this.options = options;
|
|
283
232
|
const resource = defaultResource3().merge(resourceFromAttributes3({
|
|
284
233
|
[SEMRESATTRS_SERVICE_NAME3]: this.options.serviceName,
|
|
@@ -300,6 +249,17 @@ var OtelTraces = class {
|
|
|
300
249
|
trace.setGlobalTracerProvider(tracerProvider);
|
|
301
250
|
this._tracer = trace.getTracer("dxos-observability", this.options.serviceVersion);
|
|
302
251
|
}
|
|
252
|
+
start() {
|
|
253
|
+
log2("trace processor registered");
|
|
254
|
+
TRACE_PROCESSOR2.remoteTracing.registerProcessor({
|
|
255
|
+
startSpan: (options) => {
|
|
256
|
+
log2("begin otel trace", {
|
|
257
|
+
options
|
|
258
|
+
});
|
|
259
|
+
return this._tracer.startSpan(options.name, options);
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
303
263
|
};
|
|
304
264
|
export {
|
|
305
265
|
OtelLogs,
|
|
@@ -307,4 +267,4 @@ export {
|
|
|
307
267
|
OtelTraces,
|
|
308
268
|
setDiagLogger
|
|
309
269
|
};
|
|
310
|
-
//# sourceMappingURL=otel-
|
|
270
|
+
//# sourceMappingURL=otel-7PUCFSTY.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/otel/otel.ts", "../../../src/otel/logs.ts", "../../../src/otel/metrics.ts", "../../../src/otel/traces.ts"],
|
|
4
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": ";;;AAIA,SAASA,mBAAmBC,cAAcC,YAAY;AAW/C,IAAMC,gBAAgB,CAACC,UAAAA;AAC5B,QAAMC,WAAWC,aAAaF,KAAAA;AAC9B,MAAIC,UAAU;AACZE,SAAKC,UAAU,IAAIC,kBAAAA,GAAqBJ,QAAAA;EAC1C;AACF;;;AChBA,SAASK,sBAAsB;AAC/B,SAASC,uBAAuB;AAChC,SAASC,iBAAiBC,8BAA8B;AACxD,SAASC,yBAAyBC,sBAAsB;AACxD,SAASC,0BAA0BC,mCAAmC;AAEtE,SAGEC,UAEAC,qBACAC,2BACK;AACP,SAASC,kBAAkB;
|
|
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", "
|
|
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
7
|
}
|
|
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
SegmentTelemetry,
|
|
4
4
|
TelemetryEvent
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-OJV247NY.mjs";
|
|
6
6
|
import "../chunk-QUZL7LKE.mjs";
|
|
7
7
|
import "../chunk-QK5IUYVA.mjs";
|
|
8
8
|
export {
|
package/dist/lib/node-esm/{sentry-log-processor-3BDS4BB4.mjs → sentry-log-processor-C4UGMAMV.mjs}
RENAMED
|
@@ -9,24 +9,63 @@ import {
|
|
|
9
9
|
import { InvariantViolation } from "@dxos/invariant";
|
|
10
10
|
import { LogLevel, shouldLog } from "@dxos/log";
|
|
11
11
|
import { CircularBuffer, getDebugName } from "@dxos/util";
|
|
12
|
-
function _define_property(obj, key, value) {
|
|
13
|
-
if (key in obj) {
|
|
14
|
-
Object.defineProperty(obj, key, {
|
|
15
|
-
value,
|
|
16
|
-
enumerable: true,
|
|
17
|
-
configurable: true,
|
|
18
|
-
writable: true
|
|
19
|
-
});
|
|
20
|
-
} else {
|
|
21
|
-
obj[key] = value;
|
|
22
|
-
}
|
|
23
|
-
return obj;
|
|
24
|
-
}
|
|
25
12
|
var MAX_LOG_BREADCRUMBS = 150;
|
|
26
13
|
var SentryLogProcessor = class {
|
|
14
|
+
_breadcrumbs = new CircularBuffer(MAX_LOG_BREADCRUMBS);
|
|
15
|
+
logProcessor = (config, entry) => {
|
|
16
|
+
const { level, meta, error } = entry;
|
|
17
|
+
if (!shouldLog(entry, config.captureFilters) || meta?.S?.remoteSessionId) {
|
|
18
|
+
if (entry.level > LogLevel.DEBUG) {
|
|
19
|
+
this._addBreadcrumb(void 0, entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : ""), convertLevel(entry.level), void 0);
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (entry.level !== LogLevel.WARN && entry.level !== LogLevel.ERROR) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
withScope((scope) => {
|
|
27
|
+
const severity = convertLevel(level);
|
|
28
|
+
scope.setLevel(severity);
|
|
29
|
+
scope.setContext("dxoslog", entry.context ?? null);
|
|
30
|
+
if (meta) {
|
|
31
|
+
scope.setTag("transaction", `${getRelativeFilename(meta.F)}:${meta.L}`);
|
|
32
|
+
if (meta.S?.hostSessionId) {
|
|
33
|
+
scope.setTags({
|
|
34
|
+
service_host_issue: true,
|
|
35
|
+
service_host_session: meta.S?.hostSessionId
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (!Number.isNaN(meta.S?.uptimeSeconds)) {
|
|
39
|
+
scope.setExtra("uptime_seconds", meta.S?.uptimeSeconds);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const extendedMessage = formatMessageForSentry(entry);
|
|
43
|
+
let capturedError = error;
|
|
44
|
+
if (capturedError == null && entry.level === LogLevel.ERROR) {
|
|
45
|
+
capturedError = Object.values(entry.context ?? {}).find((v) => v instanceof Error);
|
|
46
|
+
}
|
|
47
|
+
if (capturedError) {
|
|
48
|
+
if (capturedError instanceof InvariantViolation) {
|
|
49
|
+
scope.setExtra("invariant_violation", true);
|
|
50
|
+
}
|
|
51
|
+
const isMessageDifferentFromStackTrace = error == null;
|
|
52
|
+
if (isMessageDifferentFromStackTrace) {
|
|
53
|
+
scope.setExtra("message", extendedMessage);
|
|
54
|
+
}
|
|
55
|
+
const eventId2 = captureException(capturedError);
|
|
56
|
+
this._addBreadcrumb(eventId2, extendedMessage, severity, entry.context);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const message = entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : "");
|
|
60
|
+
scope.setFingerprint([
|
|
61
|
+
message
|
|
62
|
+
]);
|
|
63
|
+
const eventId = captureMessage(extendedMessage);
|
|
64
|
+
this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);
|
|
65
|
+
});
|
|
66
|
+
};
|
|
27
67
|
addLogBreadcrumbsTo(event) {
|
|
28
|
-
|
|
29
|
-
(_event = event).breadcrumbs ?? (_event.breadcrumbs = []);
|
|
68
|
+
event.breadcrumbs ??= [];
|
|
30
69
|
for (const breadcrumb of this._breadcrumbs) {
|
|
31
70
|
event.breadcrumbs.push(breadcrumb);
|
|
32
71
|
}
|
|
@@ -60,61 +99,6 @@ var SentryLogProcessor = class {
|
|
|
60
99
|
}
|
|
61
100
|
this._breadcrumbs.push(breadcrumb);
|
|
62
101
|
}
|
|
63
|
-
constructor() {
|
|
64
|
-
_define_property(this, "_breadcrumbs", new CircularBuffer(MAX_LOG_BREADCRUMBS));
|
|
65
|
-
_define_property(this, "logProcessor", (config, entry) => {
|
|
66
|
-
const { level, meta, error } = entry;
|
|
67
|
-
if (!shouldLog(entry, config.captureFilters) || meta?.S?.remoteSessionId) {
|
|
68
|
-
if (entry.level > LogLevel.DEBUG) {
|
|
69
|
-
this._addBreadcrumb(void 0, entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : ""), convertLevel(entry.level), void 0);
|
|
70
|
-
}
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
if (entry.level !== LogLevel.WARN && entry.level !== LogLevel.ERROR) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
withScope((scope) => {
|
|
77
|
-
const severity = convertLevel(level);
|
|
78
|
-
scope.setLevel(severity);
|
|
79
|
-
scope.setContext("dxoslog", entry.context ?? null);
|
|
80
|
-
if (meta) {
|
|
81
|
-
scope.setTag("transaction", `${getRelativeFilename(meta.F)}:${meta.L}`);
|
|
82
|
-
if (meta.S?.hostSessionId) {
|
|
83
|
-
scope.setTags({
|
|
84
|
-
service_host_issue: true,
|
|
85
|
-
service_host_session: meta.S?.hostSessionId
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
if (!Number.isNaN(meta.S?.uptimeSeconds)) {
|
|
89
|
-
scope.setExtra("uptime_seconds", meta.S?.uptimeSeconds);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
const extendedMessage = formatMessageForSentry(entry);
|
|
93
|
-
let capturedError = error;
|
|
94
|
-
if (capturedError == null && entry.level === LogLevel.ERROR) {
|
|
95
|
-
capturedError = Object.values(entry.context ?? {}).find((v) => v instanceof Error);
|
|
96
|
-
}
|
|
97
|
-
if (capturedError) {
|
|
98
|
-
if (capturedError instanceof InvariantViolation) {
|
|
99
|
-
scope.setExtra("invariant_violation", true);
|
|
100
|
-
}
|
|
101
|
-
const isMessageDifferentFromStackTrace = error == null;
|
|
102
|
-
if (isMessageDifferentFromStackTrace) {
|
|
103
|
-
scope.setExtra("message", extendedMessage);
|
|
104
|
-
}
|
|
105
|
-
const eventId2 = captureException(capturedError);
|
|
106
|
-
this._addBreadcrumb(eventId2, extendedMessage, severity, entry.context);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
const message = entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : "");
|
|
110
|
-
scope.setFingerprint([
|
|
111
|
-
message
|
|
112
|
-
]);
|
|
113
|
-
const eventId = captureMessage(extendedMessage);
|
|
114
|
-
this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
102
|
};
|
|
119
103
|
var formatMessageForSentry = (entry) => {
|
|
120
104
|
const message = entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : "");
|
|
@@ -160,4 +144,4 @@ var getRelativeFilename = (filename) => {
|
|
|
160
144
|
export {
|
|
161
145
|
SentryLogProcessor
|
|
162
146
|
};
|
|
163
|
-
//# sourceMappingURL=sentry-log-processor-
|
|
147
|
+
//# sourceMappingURL=sentry-log-processor-C4UGMAMV.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/sentry/sentry-log-processor.ts"],
|
|
4
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": ";;;;;;;;AAMA,SAASA,0BAA0B;AACnC,SAAwCC,UAA6BC,iBAAiB;AACtF,SAASC,gBAAgBC,oBAAoB;
|
|
6
|
-
"names": ["InvariantViolation", "LogLevel", "shouldLog", "CircularBuffer", "getDebugName", "MAX_LOG_BREADCRUMBS", "SentryLogProcessor", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["InvariantViolation", "LogLevel", "shouldLog", "CircularBuffer", "getDebugName", "MAX_LOG_BREADCRUMBS", "SentryLogProcessor", "_breadcrumbs", "CircularBuffer", "logProcessor", "config", "entry", "level", "meta", "error", "shouldLog", "captureFilters", "S", "remoteSessionId", "LogLevel", "DEBUG", "_addBreadcrumb", "undefined", "message", "String", "convertLevel", "WARN", "ERROR", "withScope", "scope", "severity", "setLevel", "setContext", "context", "setTag", "getRelativeFilename", "F", "L", "hostSessionId", "setTags", "service_host_issue", "service_host_session", "Number", "isNaN", "uptimeSeconds", "setExtra", "extendedMessage", "formatMessageForSentry", "capturedError", "Object", "values", "find", "v", "Error", "InvariantViolation", "isMessageDifferentFromStackTrace", "eventId", "captureException", "setFingerprint", "captureMessage", "addLogBreadcrumbsTo", "event", "breadcrumbs", "breadcrumb", "push", "sort", "b1", "b2", "timestamp", "type", "event_id", "category", "data", "Math", "floor", "Date", "now", "lastRecorded", "getLast", "firstBreadcrumbData", "mergedBreadcrumbCount", "lastBreadcrumbData", "scopePrefix", "name", "getDebugName", "workerPrefix", "VERBOSE", "INFO", "TRACE", "never", "_", "filename", "match", "filePath"]
|
|
7
7
|
}
|
|
@@ -36,7 +36,7 @@ export const init = (options) => {
|
|
|
36
36
|
replaysSessionSampleRate: options.replaySampleRate,
|
|
37
37
|
replaysOnErrorSampleRate: options.replaySampleRateOnError,
|
|
38
38
|
tracesSampleRate: options.sampleRate,
|
|
39
|
-
transport: options.transport,
|
|
39
|
+
transport: options.transport, // TODO(dmaretskyi): Fix
|
|
40
40
|
beforeSend: (event) => {
|
|
41
41
|
options.onError?.(event);
|
|
42
42
|
return event;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/sentry/browser.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,OAAO,EACP,aAAa,IAAI,oBAAoB,EACrC,gBAAgB,IAAI,uBAAuB,EAC3C,cAAc,IAAI,qBAAqB,EACvC,IAAI,IAAI,WAAW,EACnB,YAAY,IAAI,mBAAmB,EACnC,SAAS,IAAI,gBAAgB,EAC7B,iBAAiB,EACjB,MAAM,EACN,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC3C,IAAI,CAAC;QACH,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5B,WAAW,CAAC;YACV,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;YAC/B,GAAG,EAAE,OAAO,CAAC,WAAW;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE;gBACZ,sBAAsB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACxD,qBAAqB,CAAC;oBACpB,wBAAwB,EAAE;wBACxB,mFAAmF;wBACnF,CAAC,GAAG,EAAE,GAAG,CAAC;wBACV,CAAC,GAAG,EAAE,GAAG,CAAC;qBACX;iBACF,CAAC;gBACF,mBAAmB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;gBAC1C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3F;YACD,wBAAwB,EAAE,OAAO,CAAC,gBAAgB;YAClD,wBAAwB,EAAE,OAAO,CAAC,uBAAuB;YACzD,gBAAgB,EAAE,OAAO,CAAC,UAAU;YACpC,SAAS,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/sentry/browser.ts"],"names":[],"mappings":"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"}
|