@dxos/observability 0.6.13 → 0.6.14-main.1366248
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-QUPP43SQ.mjs → chunk-GDGCKRIV.mjs} +72 -61
- package/dist/lib/browser/chunk-GDGCKRIV.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/observability-RKN3EH7Z.mjs +7 -0
- package/dist/lib/browser/{otel-BUKBDMAL.mjs → otel-WFASQZXZ.mjs} +5 -3
- package/dist/lib/browser/otel-WFASQZXZ.mjs.map +7 -0
- package/dist/lib/browser/{sentry-log-processor-DVUUOZ6G.mjs → sentry-log-processor-2KNHVHXL.mjs} +5 -2
- package/dist/lib/browser/sentry-log-processor-2KNHVHXL.mjs.map +7 -0
- package/dist/lib/node/{chunk-2ZVQBEPN.cjs → chunk-3YMYOU5L.cjs} +74 -63
- package/dist/lib/node/chunk-3YMYOU5L.cjs.map +7 -0
- package/dist/lib/node/index.cjs +15 -15
- package/dist/lib/node/index.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{observability-YPS7RMWB.cjs → observability-72TWN7Y4.cjs} +6 -6
- package/dist/lib/node/{observability-YPS7RMWB.cjs.map → observability-72TWN7Y4.cjs.map} +2 -2
- package/dist/lib/node/{otel-TSHMOAB4.cjs → otel-PN3H25QV.cjs} +7 -5
- package/dist/lib/node/otel-PN3H25QV.cjs.map +7 -0
- package/dist/lib/node/{sentry-log-processor-H6FUSKZI.cjs → sentry-log-processor-SJZRJ7IS.cjs} +8 -5
- package/dist/lib/node/sentry-log-processor-SJZRJ7IS.cjs.map +7 -0
- package/dist/lib/node-esm/chunk-CMDADTM3.mjs +133 -0
- package/dist/lib/node-esm/chunk-CMDADTM3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MLTKPYJ4.mjs +950 -0
- package/dist/lib/node-esm/chunk-MLTKPYJ4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YJ4KVBWC.mjs +2 -0
- package/dist/lib/node-esm/chunk-YJ4KVBWC.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +34 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/observability-CCZHUFAC.mjs +8 -0
- package/dist/lib/node-esm/observability-CCZHUFAC.mjs.map +7 -0
- package/dist/lib/node-esm/otel-CYD4GJC2.mjs +260 -0
- package/dist/lib/node-esm/otel-CYD4GJC2.mjs.map +7 -0
- package/dist/lib/node-esm/segment/index.mjs +144 -0
- package/dist/lib/node-esm/segment/index.mjs.map +7 -0
- package/dist/lib/node-esm/sentry/index.mjs +25 -0
- package/dist/lib/node-esm/sentry/index.mjs.map +7 -0
- package/dist/lib/node-esm/sentry-log-processor-BVINGAOV.mjs +136 -0
- package/dist/lib/node-esm/sentry-log-processor-BVINGAOV.mjs.map +7 -0
- package/dist/types/src/cli-observability-secrets.json +2 -2
- package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
- package/dist/types/src/helpers/browser-observability.js +2 -1
- package/dist/types/src/helpers/browser-observability.js.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.js +13 -10
- package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
- package/dist/types/src/observability.d.ts +1 -0
- package/dist/types/src/observability.d.ts.map +1 -1
- package/dist/types/src/observability.js +34 -24
- package/dist/types/src/observability.js.map +1 -1
- package/dist/types/src/otel/logs.d.ts +10 -2
- package/dist/types/src/otel/logs.d.ts.map +1 -1
- package/dist/types/src/otel/logs.js +4 -1
- package/dist/types/src/otel/logs.js.map +1 -1
- package/dist/types/src/sentry/node.node.test.d.ts +2 -0
- package/dist/types/src/sentry/node.node.test.d.ts.map +1 -0
- package/dist/types/src/sentry/{node.test.js → node.node.test.js} +8 -15
- package/dist/types/src/sentry/node.node.test.js.map +1 -0
- package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
- package/dist/types/src/sentry/sentry-log-processor.js +4 -1
- package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
- package/dist/types/src/sentry/sentry.node.test.d.ts +2 -0
- package/dist/types/src/sentry/sentry.node.test.d.ts.map +1 -0
- package/dist/types/src/sentry/{sentry.test.js → sentry.node.test.js} +8 -15
- package/dist/types/src/sentry/sentry.node.test.js.map +1 -0
- package/package.json +22 -27
- package/src/cli-observability-secrets.json +2 -2
- package/src/helpers/browser-observability.ts +2 -1
- package/src/helpers/setup-telemetry-listeners.ts +1 -1
- package/src/observability.ts +36 -26
- package/src/otel/logs.ts +17 -3
- package/src/sentry/{node.test.ts → node.node.test.ts} +2 -9
- package/src/sentry/sentry-log-processor.ts +5 -2
- package/src/sentry/{sentry.test.ts → sentry.node.test.ts} +2 -7
- package/dist/lib/browser/chunk-QUPP43SQ.mjs.map +0 -7
- package/dist/lib/browser/observability-EJU34BZA.mjs +0 -7
- package/dist/lib/browser/otel-BUKBDMAL.mjs.map +0 -7
- package/dist/lib/browser/sentry-log-processor-DVUUOZ6G.mjs.map +0 -7
- package/dist/lib/node/chunk-2ZVQBEPN.cjs.map +0 -7
- package/dist/lib/node/otel-TSHMOAB4.cjs.map +0 -7
- package/dist/lib/node/sentry-log-processor-H6FUSKZI.cjs.map +0 -7
- package/dist/types/src/sentry/node.test.d.ts +0 -2
- package/dist/types/src/sentry/node.test.d.ts.map +0 -1
- package/dist/types/src/sentry/node.test.js.map +0 -1
- package/dist/types/src/sentry/sentry.test.d.ts +0 -2
- package/dist/types/src/sentry/sentry.test.d.ts.map +0 -1
- package/dist/types/src/sentry/sentry.test.js.map +0 -1
- /package/dist/lib/browser/{observability-EJU34BZA.mjs.map → observability-RKN3EH7Z.mjs.map} +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import "../chunk-YJ4KVBWC.mjs";
|
|
3
|
+
import {
|
|
4
|
+
captureException
|
|
5
|
+
} from "../chunk-CMDADTM3.mjs";
|
|
6
|
+
|
|
7
|
+
// packages/sdk/observability/src/segment/node.ts
|
|
8
|
+
import { Analytics } from "@segment/analytics-node";
|
|
9
|
+
import { invariant } from "@dxos/invariant";
|
|
10
|
+
import { log } from "@dxos/log";
|
|
11
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/observability/src/segment/node.ts";
|
|
12
|
+
var SegmentTelemetry = class {
|
|
13
|
+
constructor({ apiKey, batchSize, getTags }) {
|
|
14
|
+
this._getTags = getTags;
|
|
15
|
+
try {
|
|
16
|
+
invariant(apiKey, "Key required to send telemetry", {
|
|
17
|
+
F: __dxlog_file,
|
|
18
|
+
L: 20,
|
|
19
|
+
S: this,
|
|
20
|
+
A: [
|
|
21
|
+
"apiKey",
|
|
22
|
+
"'Key required to send telemetry'"
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
this._analytics = new Analytics({
|
|
26
|
+
writeKey: apiKey,
|
|
27
|
+
flushAt: batchSize
|
|
28
|
+
});
|
|
29
|
+
} catch (err) {
|
|
30
|
+
log.catch("Failed to initialize telemetry", err, {
|
|
31
|
+
F: __dxlog_file,
|
|
32
|
+
L: 27,
|
|
33
|
+
S: this,
|
|
34
|
+
C: (f, a) => f(...a)
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Track a page view.
|
|
40
|
+
*/
|
|
41
|
+
page({ installationId: anonymousId, identityId: userId, ...options } = {}) {
|
|
42
|
+
if (!this._analytics) {
|
|
43
|
+
log("Analytics not initialized", {
|
|
44
|
+
action: "page"
|
|
45
|
+
}, {
|
|
46
|
+
F: __dxlog_file,
|
|
47
|
+
L: 36,
|
|
48
|
+
S: this,
|
|
49
|
+
C: (f, a) => f(...a)
|
|
50
|
+
});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
this._analytics.page({
|
|
55
|
+
...options,
|
|
56
|
+
userId,
|
|
57
|
+
anonymousId
|
|
58
|
+
});
|
|
59
|
+
} catch (err) {
|
|
60
|
+
log.catch("Failed to track page", err, {
|
|
61
|
+
F: __dxlog_file,
|
|
62
|
+
L: 47,
|
|
63
|
+
S: this,
|
|
64
|
+
C: (f, a) => f(...a)
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Track an event.
|
|
70
|
+
*/
|
|
71
|
+
event({ installationId: anonymousId, identityId: userId, name: event, ...options }) {
|
|
72
|
+
log("sending event to telemetry", {
|
|
73
|
+
event,
|
|
74
|
+
options,
|
|
75
|
+
tags: this._getTags()
|
|
76
|
+
}, {
|
|
77
|
+
F: __dxlog_file,
|
|
78
|
+
L: 55,
|
|
79
|
+
S: this,
|
|
80
|
+
C: (f, a) => f(...a)
|
|
81
|
+
});
|
|
82
|
+
if (!this._analytics) {
|
|
83
|
+
log("Analytics not initialized", {
|
|
84
|
+
action: "event"
|
|
85
|
+
}, {
|
|
86
|
+
F: __dxlog_file,
|
|
87
|
+
L: 57,
|
|
88
|
+
S: this,
|
|
89
|
+
C: (f, a) => f(...a)
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
this._analytics.track({
|
|
95
|
+
...options,
|
|
96
|
+
properties: {
|
|
97
|
+
...options.properties,
|
|
98
|
+
...this._getTags()
|
|
99
|
+
},
|
|
100
|
+
userId,
|
|
101
|
+
anonymousId,
|
|
102
|
+
event
|
|
103
|
+
});
|
|
104
|
+
} catch (err) {
|
|
105
|
+
log.catch("Failed to track event", err, {
|
|
106
|
+
F: __dxlog_file,
|
|
107
|
+
L: 70,
|
|
108
|
+
S: this,
|
|
109
|
+
C: (f, a) => f(...a)
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Flush the event queue.
|
|
115
|
+
*/
|
|
116
|
+
async flush() {
|
|
117
|
+
if (!this._analytics) {
|
|
118
|
+
log("Analytics not initialized", {
|
|
119
|
+
action: "flush"
|
|
120
|
+
}, {
|
|
121
|
+
F: __dxlog_file,
|
|
122
|
+
L: 79,
|
|
123
|
+
S: this,
|
|
124
|
+
C: (f, a) => f(...a)
|
|
125
|
+
});
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
await this._analytics.flush();
|
|
130
|
+
} catch (err) {
|
|
131
|
+
captureException(err);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async close() {
|
|
135
|
+
if (!this._analytics) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
await this._analytics.closeAndFlush();
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
export {
|
|
142
|
+
SegmentTelemetry
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/segment/node.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { Analytics } from '@segment/analytics-node';\n\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\nimport type { EventOptions, SegmentTelemetryOptions, PageOptions } from './types';\nimport { captureException } from '../sentry';\n\nexport class SegmentTelemetry {\n private _analytics?: Analytics;\n private _getTags: () => { [key: string]: string };\n\n constructor({ apiKey, batchSize, getTags }: SegmentTelemetryOptions) {\n this._getTags = getTags;\n try {\n invariant(apiKey, 'Key required to send telemetry');\n\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 /**\n * Track a page view.\n */\n page({ installationId: anonymousId, identityId: userId, ...options }: PageOptions = {}) {\n if (!this._analytics) {\n log('Analytics not initialized', { action: 'page' });\n return;\n }\n\n try {\n this._analytics.page({\n ...options,\n userId,\n anonymousId: anonymousId!,\n });\n } catch (err) {\n log.catch('Failed to track page', err);\n }\n }\n\n /**\n * Track an event.\n */\n event({ installationId: anonymousId, identityId: userId, name: event, ...options }: EventOptions) {\n log('sending event to telemetry', { event, options, tags: this._getTags() });\n if (!this._analytics) {\n log('Analytics not initialized', { action: 'event' });\n return;\n }\n\n try {\n this._analytics.track({\n ...options,\n properties: { ...options.properties, ...this._getTags() },\n userId,\n anonymousId: anonymousId!,\n event,\n });\n } catch (err) {\n log.catch('Failed to track event', err);\n }\n }\n\n /**\n * Flush the event queue.\n */\n async flush() {\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() {\n if (!this._analytics) {\n return;\n }\n await this._analytics.closeAndFlush();\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAIA,SAASA,iBAAiB;AAE1B,SAASC,iBAAiB;AAC1B,SAASC,WAAW;;AAKb,IAAMC,mBAAN,MAAMA;EAIXC,YAAY,EAAEC,QAAQC,WAAWC,QAAO,GAA6B;AACnE,SAAKC,WAAWD;AAChB,QAAI;AACFE,gBAAUJ,QAAQ,kCAAA;;;;;;;;;AAElB,WAAKK,aAAa,IAAIC,UAAU;QAC9BC,UAAUP;QACVQ,SAASP;MACX,CAAA;IACF,SAASQ,KAAK;AACZC,UAAIC,MAAM,kCAAkCF,KAAAA;;;;;;IAC9C;EACF;;;;EAKAG,KAAK,EAAEC,gBAAgBC,aAAaC,YAAYC,QAAQ,GAAGC,QAAAA,IAAyB,CAAC,GAAG;AACtF,QAAI,CAAC,KAAKZ,YAAY;AACpBK,UAAI,6BAA6B;QAAEQ,QAAQ;MAAO,GAAA;;;;;;AAClD;IACF;AAEA,QAAI;AACF,WAAKb,WAAWO,KAAK;QACnB,GAAGK;QACHD;QACAF;MACF,CAAA;IACF,SAASL,KAAK;AACZC,UAAIC,MAAM,wBAAwBF,KAAAA;;;;;;IACpC;EACF;;;;EAKAU,MAAM,EAAEN,gBAAgBC,aAAaC,YAAYC,QAAQI,MAAMD,OAAO,GAAGF,QAAAA,GAAyB;AAChGP,QAAI,8BAA8B;MAAES;MAAOF;MAASI,MAAM,KAAKlB,SAAQ;IAAG,GAAA;;;;;;AAC1E,QAAI,CAAC,KAAKE,YAAY;AACpBK,UAAI,6BAA6B;QAAEQ,QAAQ;MAAQ,GAAA;;;;;;AACnD;IACF;AAEA,QAAI;AACF,WAAKb,WAAWiB,MAAM;QACpB,GAAGL;QACHM,YAAY;UAAE,GAAGN,QAAQM;UAAY,GAAG,KAAKpB,SAAQ;QAAG;QACxDa;QACAF;QACAK;MACF,CAAA;IACF,SAASV,KAAK;AACZC,UAAIC,MAAM,yBAAyBF,KAAAA;;;;;;IACrC;EACF;;;;EAKA,MAAMe,QAAQ;AACZ,QAAI,CAAC,KAAKnB,YAAY;AACpBK,UAAI,6BAA6B;QAAEQ,QAAQ;MAAQ,GAAA;;;;;;AACnD;IACF;AAEA,QAAI;AACF,YAAM,KAAKb,WAAWmB,MAAK;IAC7B,SAASf,KAAK;AAEZgB,uBAAiBhB,GAAAA;IACnB;EACF;EAEA,MAAMiB,QAAQ;AACZ,QAAI,CAAC,KAAKrB,YAAY;AACpB;IACF;AACA,UAAM,KAAKA,WAAWsB,cAAa;EACrC;AACF;",
|
|
6
|
+
"names": ["Analytics", "invariant", "log", "SegmentTelemetry", "constructor", "apiKey", "batchSize", "getTags", "_getTags", "invariant", "_analytics", "Analytics", "writeKey", "flushAt", "err", "log", "catch", "page", "installationId", "anonymousId", "identityId", "userId", "options", "action", "event", "name", "tags", "track", "properties", "flush", "captureException", "close", "closeAndFlush"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import "../chunk-YJ4KVBWC.mjs";
|
|
3
|
+
import {
|
|
4
|
+
addBreadcrumb,
|
|
5
|
+
captureException,
|
|
6
|
+
captureMessage,
|
|
7
|
+
captureUserFeedback,
|
|
8
|
+
init,
|
|
9
|
+
setTag,
|
|
10
|
+
setTags,
|
|
11
|
+
setUser,
|
|
12
|
+
withScope
|
|
13
|
+
} from "../chunk-CMDADTM3.mjs";
|
|
14
|
+
export {
|
|
15
|
+
addBreadcrumb,
|
|
16
|
+
captureException,
|
|
17
|
+
captureMessage,
|
|
18
|
+
captureUserFeedback,
|
|
19
|
+
init,
|
|
20
|
+
setTag,
|
|
21
|
+
setTags,
|
|
22
|
+
setUser,
|
|
23
|
+
withScope
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
captureException,
|
|
4
|
+
captureMessage,
|
|
5
|
+
withScope
|
|
6
|
+
} from "./chunk-CMDADTM3.mjs";
|
|
7
|
+
|
|
8
|
+
// packages/sdk/observability/src/sentry/sentry-log-processor.ts
|
|
9
|
+
import { InvariantViolation } from "@dxos/invariant";
|
|
10
|
+
import { LogLevel, shouldLog } from "@dxos/log";
|
|
11
|
+
import { CircularBuffer, getDebugName } from "@dxos/util";
|
|
12
|
+
var MAX_LOG_BREADCRUMBS = 150;
|
|
13
|
+
var SentryLogProcessor = class {
|
|
14
|
+
constructor() {
|
|
15
|
+
this._breadcrumbs = new CircularBuffer(MAX_LOG_BREADCRUMBS);
|
|
16
|
+
this.logProcessor = (config, entry) => {
|
|
17
|
+
const { level, meta, error } = entry;
|
|
18
|
+
if (!shouldLog(entry, config.captureFilters) || meta?.S?.remoteSessionId) {
|
|
19
|
+
if (entry.level > LogLevel.DEBUG) {
|
|
20
|
+
this._addBreadcrumb(void 0, entry.message, convertLevel(entry.level), void 0);
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (entry.level !== LogLevel.WARN && entry.level !== LogLevel.ERROR) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
withScope((scope) => {
|
|
28
|
+
const severity = convertLevel(level);
|
|
29
|
+
scope.setLevel(severity);
|
|
30
|
+
scope.setContext("dxoslog", entry.context ?? null);
|
|
31
|
+
if (meta) {
|
|
32
|
+
scope.setTag("transaction", `${getRelativeFilename(meta.F)}:${meta.L}`);
|
|
33
|
+
if (meta.S?.hostSessionId) {
|
|
34
|
+
scope.setTags({
|
|
35
|
+
service_host_issue: true,
|
|
36
|
+
service_host_session: meta.S?.hostSessionId
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!Number.isNaN(meta.S?.uptimeSeconds)) {
|
|
40
|
+
scope.setExtra("uptime_seconds", meta.S?.uptimeSeconds);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const extendedMessage = formatMessageForSentry(entry);
|
|
44
|
+
let capturedError = error;
|
|
45
|
+
if (capturedError == null && entry.level === LogLevel.ERROR) {
|
|
46
|
+
capturedError = Object.values(entry.context ?? {}).find((v) => v instanceof Error);
|
|
47
|
+
}
|
|
48
|
+
if (capturedError) {
|
|
49
|
+
if (capturedError instanceof InvariantViolation) {
|
|
50
|
+
scope.setExtra("invariant_violation", true);
|
|
51
|
+
}
|
|
52
|
+
const isMessageDifferentFromStackTrace = error == null;
|
|
53
|
+
if (isMessageDifferentFromStackTrace) {
|
|
54
|
+
scope.setExtra("message", extendedMessage);
|
|
55
|
+
}
|
|
56
|
+
const eventId2 = captureException(capturedError);
|
|
57
|
+
this._addBreadcrumb(eventId2, extendedMessage, severity, entry.context);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
scope.setFingerprint([
|
|
61
|
+
entry.message
|
|
62
|
+
]);
|
|
63
|
+
const eventId = captureMessage(extendedMessage);
|
|
64
|
+
this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
addLogBreadcrumbsTo(event) {
|
|
69
|
+
event.breadcrumbs ??= [];
|
|
70
|
+
for (const breadcrumb of this._breadcrumbs) {
|
|
71
|
+
event.breadcrumbs.push(breadcrumb);
|
|
72
|
+
}
|
|
73
|
+
event.breadcrumbs.sort((b1, b2) => {
|
|
74
|
+
if (b1.timestamp === void 0 || b2.timestamp === void 0) {
|
|
75
|
+
return b1.timestamp === b2.timestamp ? 0 : b1.timestamp === void 0 ? -1 : 1;
|
|
76
|
+
}
|
|
77
|
+
return b1.timestamp - b2.timestamp;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
_addBreadcrumb(eventId, message, severity, context) {
|
|
81
|
+
const breadcrumb = {
|
|
82
|
+
type: "console",
|
|
83
|
+
level: severity,
|
|
84
|
+
event_id: eventId,
|
|
85
|
+
category: "log",
|
|
86
|
+
message,
|
|
87
|
+
data: context,
|
|
88
|
+
timestamp: Math.floor(Date.now() / 1e3)
|
|
89
|
+
};
|
|
90
|
+
const lastRecorded = this._breadcrumbs.getLast();
|
|
91
|
+
if (lastRecorded && lastRecorded.message === breadcrumb.message) {
|
|
92
|
+
const firstBreadcrumbData = lastRecorded.data?.firstBreadcrumbData ?? lastRecorded.data ?? {};
|
|
93
|
+
const mergedBreadcrumbCount = Number.isNaN(lastRecorded.data?.mergedBreadcrumbCount) ? 1 : Number(lastRecorded.data?.mergedBreadcrumbCount);
|
|
94
|
+
lastRecorded.data = {
|
|
95
|
+
mergedBreadcrumbCount: mergedBreadcrumbCount + 1,
|
|
96
|
+
firstBreadcrumbData,
|
|
97
|
+
lastBreadcrumbData: breadcrumb.data
|
|
98
|
+
};
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
this._breadcrumbs.push(breadcrumb);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
var formatMessageForSentry = (entry) => {
|
|
105
|
+
let scopePrefix;
|
|
106
|
+
if (entry.meta?.S) {
|
|
107
|
+
const scope = entry.meta?.S;
|
|
108
|
+
scopePrefix = scope.name || getDebugName(scope);
|
|
109
|
+
}
|
|
110
|
+
if (scopePrefix == null) {
|
|
111
|
+
return entry.message;
|
|
112
|
+
}
|
|
113
|
+
const workerPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
114
|
+
return `${workerPrefix}${scopePrefix} ${entry.message}`;
|
|
115
|
+
};
|
|
116
|
+
var convertLevel = (level) => {
|
|
117
|
+
if (level === LogLevel.TRACE) {
|
|
118
|
+
return "debug";
|
|
119
|
+
}
|
|
120
|
+
if (level === LogLevel.WARN) {
|
|
121
|
+
return "warning";
|
|
122
|
+
}
|
|
123
|
+
return LogLevel[level].toLowerCase();
|
|
124
|
+
};
|
|
125
|
+
var getRelativeFilename = (filename) => {
|
|
126
|
+
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
127
|
+
if (match) {
|
|
128
|
+
const [, filePath] = match;
|
|
129
|
+
return filePath;
|
|
130
|
+
}
|
|
131
|
+
return filename;
|
|
132
|
+
};
|
|
133
|
+
export {
|
|
134
|
+
SentryLogProcessor
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=sentry-log-processor-BVINGAOV.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, SeverityLevel, Event } 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 { withScope, captureException, captureMessage } 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(undefined, entry.message, convertLevel(entry.level), undefined);\n }\n return;\n }\n if (entry.level !== LogLevel.WARN && entry.level !== LogLevel.ERROR) {\n return;\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 scope.setFingerprint([entry.message]);\n const eventId = captureMessage(extendedMessage);\n this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);\n });\n };\n\n public addLogBreadcrumbsTo(event: Event) {\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) => {\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 entry.message;\n }\n const workerPrefix = entry.meta?.S?.hostSessionId ? '[worker] ' : '';\n return `${workerPrefix}${scopePrefix} ${entry.message}`;\n};\n\nconst convertLevel = (level: LogLevel): SeverityLevel => {\n if (level === LogLevel.TRACE) {\n return 'debug';\n }\n if (level === LogLevel.WARN) {\n return 'warning';\n }\n return LogLevel[level].toLowerCase() as SeverityLevel;\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;AAI7C,IAAMC,sBAAsB;AAErB,IAAMC,qBAAN,MAAMA;EAAN;AACGC,wBAAe,IAAIC,eAA2BH,mBAAAA;AAEtCI,wBAA6B,CAACC,QAAmBC,UAAAA;AAC/D,YAAM,EAAEC,OAAOC,MAAMC,MAAK,IAAKH;AAE/B,UAAI,CAACI,UAAUJ,OAAOD,OAAOM,cAAc,KAAKH,MAAMI,GAAGC,iBAAiB;AACxE,YAAIP,MAAMC,QAAQO,SAASC,OAAO;AAChC,eAAKC,eAAeC,QAAWX,MAAMY,SAASC,aAAab,MAAMC,KAAK,GAAGU,MAAAA;QAC3E;AACA;MACF;AACA,UAAIX,MAAMC,UAAUO,SAASM,QAAQd,MAAMC,UAAUO,SAASO,OAAO;AACnE;MACF;AAEAC,gBAAU,CAACC,UAAAA;AACT,cAAMC,WAAWL,aAAaZ,KAAAA;AAC9BgB,cAAME,SAASD,QAAAA;AACfD,cAAMG,WAAW,WAAWpB,MAAMqB,WAAW,IAAA;AAC7C,YAAInB,MAAM;AACRe,gBAAMK,OAAO,eAAe,GAAGC,oBAAoBrB,KAAKsB,CAAC,CAAA,IAAKtB,KAAKuB,CAAC,EAAE;AAEtE,cAAIvB,KAAKI,GAAGoB,eAAe;AACzBT,kBAAMU,QAAQ;cACZC,oBAAoB;cACpBC,sBAAsB3B,KAAKI,GAAGoB;YAChC,CAAA;UACF;AAEA,cAAI,CAACI,OAAOC,MAAM7B,KAAKI,GAAG0B,aAAAA,GAAgB;AACxCf,kBAAMgB,SAAS,kBAAkB/B,KAAKI,GAAG0B,aAAAA;UAC3C;QACF;AAEA,cAAME,kBAAkBC,uBAAuBnC,KAAAA;AAC/C,YAAIoC,gBAAgBjC;AACpB,YAAIiC,iBAAiB,QAAQpC,MAAMC,UAAUO,SAASO,OAAO;AAC3DqB,0BAAgBC,OAAOC,OAAOtC,MAAMqB,WAAW,CAAC,CAAA,EAAGkB,KAAK,CAACC,MAAkBA,aAAaC,KAAAA;QAC1F;AACA,YAAIL,eAAe;AACjB,cAAIA,yBAAyBM,oBAAoB;AAC/CzB,kBAAMgB,SAAS,uBAAuB,IAAA;UACxC;AACA,gBAAMU,mCAAmCxC,SAAS;AAClD,cAAIwC,kCAAkC;AACpC1B,kBAAMgB,SAAS,WAAWC,eAAAA;UAC5B;AACA,gBAAMU,WAAUC,iBAAiBT,aAAAA;AACjC,eAAK1B,eAAekC,UAASV,iBAAiBhB,UAAUlB,MAAMqB,OAAO;AACrE;QACF;AAEAJ,cAAM6B,eAAe;UAAC9C,MAAMY;SAAQ;AACpC,cAAMgC,UAAUG,eAAeb,eAAAA;AAC/B,aAAKxB,eAAekC,SAASV,iBAAiBhB,UAAUlB,MAAMqB,OAAO;MACvE,CAAA;IACF;;EAEO2B,oBAAoBC,OAAc;AACvCA,UAAMC,gBAAgB,CAAA;AACtB,eAAWC,cAAc,KAAKvD,cAAc;AAC1CqD,YAAMC,YAAYE,KAAKD,UAAAA;IACzB;AACAF,UAAMC,YAAYG,KAAK,CAACC,IAAIC,OAAAA;AAC1B,UAAID,GAAGE,cAAc7C,UAAa4C,GAAGC,cAAc7C,QAAW;AAC5D,eAAO2C,GAAGE,cAAcD,GAAGC,YAAY,IAAIF,GAAGE,cAAc7C,SAAY,KAAK;MAC/E;AACA,aAAO2C,GAAGE,YAAYD,GAAGC;IAC3B,CAAA;EACF;EAEQ9C,eACNkC,SACAhC,SACAM,UACAG,SACM;AACN,UAAM8B,aAAyB;MAC7BM,MAAM;MACNxD,OAAOiB;MACPwC,UAAUd;MACVe,UAAU;MACV/C;MACAgD,MAAMvC;MACNmC,WAAWK,KAAKC,MAAMC,KAAKC,IAAG,IAAK,GAAA;IACrC;AACA,UAAMC,eAAe,KAAKrE,aAAasE,QAAO;AAC9C,QAAID,gBAAgBA,aAAarD,YAAYuC,WAAWvC,SAAS;AAC/D,YAAMuD,sBAAsBF,aAAaL,MAAMO,uBAAuBF,aAAaL,QAAQ,CAAC;AAC5F,YAAMQ,wBAAwBtC,OAAOC,MAAMkC,aAAaL,MAAMQ,qBAAAA,IAC1D,IACAtC,OAAOmC,aAAaL,MAAMQ,qBAAAA;AAC9BH,mBAAaL,OAAO;QAClBQ,uBAAuBA,wBAAwB;QAC/CD;QACAE,oBAAoBlB,WAAWS;MACjC;AACA;IACF;AACA,SAAKhE,aAAawD,KAAKD,UAAAA;EACzB;AACF;AAEA,IAAMhB,yBAAyB,CAACnC,UAAAA;AAC9B,MAAIsE;AACJ,MAAItE,MAAME,MAAMI,GAAG;AACjB,UAAMW,QAAQjB,MAAME,MAAMI;AAC1BgE,kBAAcrD,MAAMsD,QAAQC,aAAavD,KAAAA;EAC3C;AACA,MAAIqD,eAAe,MAAM;AACvB,WAAOtE,MAAMY;EACf;AACA,QAAM6D,eAAezE,MAAME,MAAMI,GAAGoB,gBAAgB,cAAc;AAClE,SAAO,GAAG+C,YAAAA,GAAeH,WAAAA,IAAetE,MAAMY,OAAO;AACvD;AAEA,IAAMC,eAAe,CAACZ,UAAAA;AACpB,MAAIA,UAAUO,SAASkE,OAAO;AAC5B,WAAO;EACT;AACA,MAAIzE,UAAUO,SAASM,MAAM;AAC3B,WAAO;EACT;AACA,SAAON,SAASP,KAAAA,EAAO0E,YAAW;AACpC;AAEA,IAAMpD,sBAAsB,CAACqD,aAAAA;AAG3B,QAAMC,QAAQD,SAASC,MAAM,wBAAA;AAC7B,MAAIA,OAAO;AACT,UAAM,CAAA,EAAGC,QAAAA,IAAYD;AACrB,WAAOC;EACT;AAEA,SAAOF;AACT;",
|
|
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", "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", "TRACE", "toLowerCase", "filename", "match", "filePath"]
|
|
7
|
+
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"SENTRY_DESTINATION": "https://2647916221e643869965e78469479aa4@o4504012000067584.ingest.sentry.io/4504012027265029",
|
|
3
3
|
"TELEMETRY_API_KEY": "B00QG6PtJJrJ0VVFe0H5a6bcUUShKyZM",
|
|
4
4
|
"IPDATA_API_KEY": "73dfdecdf979c18f07d50cf841bbdd9e589f237256326ac8cca23786",
|
|
5
|
-
"OTEL_ENDPOINT":
|
|
6
|
-
"OTEL_AUTHORIZATION":
|
|
5
|
+
"OTEL_ENDPOINT": "https://otlp-proxy.dxos.workers.dev",
|
|
6
|
+
"OTEL_AUTHORIZATION": "Basic OTA3MzIzOmdsY19leUp2SWpvaU1URXdNVEl6TnlJc0ltNGlPaUp6ZEdGamF5MDVNRGN6TWpNdGFXNTBaV2R5WVhScGIyNHRZMnh2ZFdSbWJHRnlaUzF2ZEd4d0xYQnliM2g1SWl3aWF5STZJalZ2Tkd4cFYydE5iRmszTlRNMGJUVXpTemRTVjNBeVNpSXNJbTBpT25zaWNpSTZJbkJ5YjJRdGRYTXRaV0Z6ZEMwd0luMTk="
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-observability.d.ts","sourceRoot":"","sources":["../../../../src/helpers/browser-observability.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,eAAO,MAAM,uBAAuB,cAAqB,MAAM,KAAG,OAAO,CAAC,OAAO,CAOhF,CAAC;AAEF,eAAO,MAAM,0BAA0B,cAAqB,MAAM,SAAS,OAAO,kBAMjF,CAAC;AAEF,eAAO,MAAM,qBAAqB,cAAqB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAMzF,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAAqB,MAAM,SAAS,MAAM,kBAM7E,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CAExB,CAAC;AAKF,eAAO,MAAM,0BAA0B,8DAMpC,uBAAuB,KAAG,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"browser-observability.d.ts","sourceRoot":"","sources":["../../../../src/helpers/browser-observability.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,eAAO,MAAM,uBAAuB,cAAqB,MAAM,KAAG,OAAO,CAAC,OAAO,CAOhF,CAAC;AAEF,eAAO,MAAM,0BAA0B,cAAqB,MAAM,SAAS,OAAO,kBAMjF,CAAC;AAEF,eAAO,MAAM,qBAAqB,cAAqB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAMzF,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAAqB,MAAM,SAAS,MAAM,kBAM7E,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CAExB,CAAC;AAKF,eAAO,MAAM,0BAA0B,8DAMpC,uBAAuB,KAAG,OAAO,CAAC,aAAa,CA8GjD,CAAC"}
|
|
@@ -104,7 +104,8 @@ const initializeAppObservability = async ({ namespace, config, mode = 'basic', t
|
|
|
104
104
|
replay: replayEnable,
|
|
105
105
|
// TODO(wittjosiah): Configure these.
|
|
106
106
|
sampleRate: 1.0,
|
|
107
|
-
|
|
107
|
+
// TODO(mykola): Lower this to 0.1.
|
|
108
|
+
replaySampleRate: 1.0,
|
|
108
109
|
replaySampleRateOnError: 1.0,
|
|
109
110
|
},
|
|
110
111
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-observability.js","sourceRoot":"","sources":["../../../../src/helpers/browser-observability.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browser-observability.js","sourceRoot":"","sources":["../../../../src/helpers/browser-observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,16 +68,19 @@ const setupTelemetryListeners = (namespace, client, observability) => {
|
|
|
68
68
|
}));
|
|
69
69
|
};
|
|
70
70
|
const errorCallback = (event) => {
|
|
71
|
-
setTimeout(() =>
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
var _a;
|
|
73
|
+
return observability.event({
|
|
74
|
+
identityId: (0, common_1.getTelemetryIdentifier)(client),
|
|
75
|
+
name: `${namespace}.window.error`,
|
|
76
|
+
properties: {
|
|
77
|
+
href: window.location.href,
|
|
78
|
+
message: event.message,
|
|
79
|
+
filename: event.filename,
|
|
80
|
+
stack: (_a = event.error) === null || _a === void 0 ? void 0 : _a.stack,
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
});
|
|
81
84
|
};
|
|
82
85
|
window.addEventListener('click', clickCallback, true);
|
|
83
86
|
window.addEventListener('focus', focusCallback);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-telemetry-listeners.js","sourceRoot":"","sources":["../../../../src/helpers/setup-telemetry-listeners.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"setup-telemetry-listeners.js","sourceRoot":"","sources":["../../../../src/helpers/setup-telemetry-listeners.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/observability.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
32
|
exports.Observability = void 0;
|
|
33
33
|
const async_1 = require("@dxos/async");
|
|
34
|
+
const client_1 = require("@dxos/client");
|
|
34
35
|
const context_1 = require("@dxos/context");
|
|
35
36
|
const invariant_1 = require("@dxos/invariant");
|
|
36
37
|
const log_1 = require("@dxos/log");
|
|
@@ -74,6 +75,7 @@ class Observability {
|
|
|
74
75
|
environment && this.setTag('environment', environment);
|
|
75
76
|
release && this.setTag('release', release);
|
|
76
77
|
this.setTag('mode', this._mode);
|
|
78
|
+
this.setTag('session', client_1.PublicKey.random().toHex());
|
|
77
79
|
}
|
|
78
80
|
get mode() {
|
|
79
81
|
return this._mode;
|
|
@@ -115,6 +117,7 @@ class Observability {
|
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
119
|
async initialize() {
|
|
120
|
+
await this._initLogs();
|
|
118
121
|
await this._initMetrics();
|
|
119
122
|
await this._initTelemetry();
|
|
120
123
|
await this._initErrorLogs();
|
|
@@ -181,6 +184,33 @@ class Observability {
|
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
//
|
|
187
|
+
// Logs
|
|
188
|
+
//
|
|
189
|
+
async _initLogs() {
|
|
190
|
+
var _a, _b;
|
|
191
|
+
if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== 'disabled') {
|
|
192
|
+
const { OtelLogs } = await Promise.resolve().then(() => __importStar(require('./otel')));
|
|
193
|
+
this._otelLogs = new OtelLogs({
|
|
194
|
+
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
195
|
+
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
196
|
+
serviceName: this._namespace,
|
|
197
|
+
serviceVersion: (_b = (_a = this.getTag('release')) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : '0.0.0',
|
|
198
|
+
getTags: () => Object.fromEntries(Array.from(this._tags)
|
|
199
|
+
.filter(([key, value]) => {
|
|
200
|
+
return value.scope === 'all' || value.scope === 'errors';
|
|
201
|
+
})
|
|
202
|
+
.map(([key, value]) => [key, value.value])),
|
|
203
|
+
logLevel: log_1.LogLevel.VERBOSE,
|
|
204
|
+
includeSharedWorkerLogs: false,
|
|
205
|
+
});
|
|
206
|
+
this._otelLogs && log_1.log.runtimeConfig.processors.push(this._otelLogs.logProcessor);
|
|
207
|
+
(0, log_1.log)('otel logs enabled', { namespace: this._namespace });
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
(0, log_1.log)('otel logs disabled');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//
|
|
184
214
|
// Metrics
|
|
185
215
|
//
|
|
186
216
|
async _initMetrics() {
|
|
@@ -221,9 +251,9 @@ class Observability {
|
|
|
221
251
|
// TODO(nf): support type in debounce()
|
|
222
252
|
const updateSignalMetrics = new async_1.Event().debounce(NETWORK_METRICS_MIN_INTERVAL);
|
|
223
253
|
updateSignalMetrics.on(this._ctx, async () => {
|
|
224
|
-
var _a, _b, _c;
|
|
254
|
+
var _a, _b, _c, _d;
|
|
225
255
|
(0, log_1.log)('send signal metrics');
|
|
226
|
-
((_a = this._lastNetworkStatus) === null || _a === void 0 ? void 0 : _a.signaling).forEach(({ server, state }) => {
|
|
256
|
+
(_b = (_a = this._lastNetworkStatus) === null || _a === void 0 ? void 0 : _a.signaling) === null || _b === void 0 ? void 0 : _b.forEach(({ server, state }) => {
|
|
227
257
|
this.gauge('dxos.client.network.signal.connectionState', state, { server });
|
|
228
258
|
});
|
|
229
259
|
let swarmCount = 0;
|
|
@@ -234,7 +264,7 @@ class Observability {
|
|
|
234
264
|
let totalReadBufferSize = 0;
|
|
235
265
|
let totalWriteBufferSize = 0;
|
|
236
266
|
let totalChannelBufferSize = 0;
|
|
237
|
-
(
|
|
267
|
+
(_d = (_c = this._lastNetworkStatus) === null || _c === void 0 ? void 0 : _c.connectionInfo) === null || _d === void 0 ? void 0 : _d.forEach((connectionInfo) => {
|
|
238
268
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
239
269
|
swarmCount++;
|
|
240
270
|
for (const conn of (_a = connectionInfo.connections) !== null && _a !== void 0 ? _a : []) {
|
|
@@ -346,7 +376,7 @@ class Observability {
|
|
|
346
376
|
// Telemetry
|
|
347
377
|
//
|
|
348
378
|
async _initTelemetry() {
|
|
349
|
-
if (this._secrets.TELEMETRY_API_KEY && this._mode !== 'disabled') {
|
|
379
|
+
if (this._secrets.TELEMETRY_API_KEY && this._mode !== 'disabled' && typeof document !== 'undefined') {
|
|
350
380
|
const { SegmentTelemetry } = await Promise.resolve().then(() => __importStar(require('./segment')));
|
|
351
381
|
this._telemetry = new SegmentTelemetry({
|
|
352
382
|
apiKey: this._secrets.TELEMETRY_API_KEY,
|
|
@@ -384,7 +414,6 @@ class Observability {
|
|
|
384
414
|
// Error Logs
|
|
385
415
|
//
|
|
386
416
|
async _initErrorLogs() {
|
|
387
|
-
var _a, _b;
|
|
388
417
|
if (this._secrets.SENTRY_DESTINATION && this._mode !== 'disabled') {
|
|
389
418
|
const { captureException, captureUserFeedback, init, setTag } = await Promise.resolve().then(() => __importStar(require('./sentry')));
|
|
390
419
|
const { SentryLogProcessor } = await Promise.resolve().then(() => __importStar(require('./sentry/sentry-log-processor')));
|
|
@@ -414,28 +443,9 @@ class Observability {
|
|
|
414
443
|
else {
|
|
415
444
|
(0, log_1.log)('sentry disabled');
|
|
416
445
|
}
|
|
417
|
-
if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== 'disabled') {
|
|
418
|
-
const { OtelLogs } = await Promise.resolve().then(() => __importStar(require('./otel')));
|
|
419
|
-
this._otelLogs = new OtelLogs({
|
|
420
|
-
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
421
|
-
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
422
|
-
serviceName: this._namespace,
|
|
423
|
-
serviceVersion: (_b = (_a = this.getTag('release')) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : '0.0.0',
|
|
424
|
-
getTags: () => Object.fromEntries(Array.from(this._tags)
|
|
425
|
-
.filter(([key, value]) => {
|
|
426
|
-
return value.scope === 'all' || value.scope === 'errors';
|
|
427
|
-
})
|
|
428
|
-
.map(([key, value]) => [key, value.value])),
|
|
429
|
-
});
|
|
430
|
-
(0, log_1.log)('otel logs enabled', { namespace: this._namespace });
|
|
431
|
-
}
|
|
432
|
-
else {
|
|
433
|
-
(0, log_1.log)('otel logs disabled');
|
|
434
|
-
}
|
|
435
446
|
}
|
|
436
447
|
startErrorLogs() {
|
|
437
448
|
this._sentryLogProcessor && log_1.log.runtimeConfig.processors.push(this._sentryLogProcessor.logProcessor);
|
|
438
|
-
this._otelLogs && log_1.log.runtimeConfig.processors.push(this._otelLogs.logProcessor);
|
|
439
449
|
}
|
|
440
450
|
startTraces() {
|
|
441
451
|
this._otelTraces && this._otelTraces.start();
|