@superblocksteam/telemetry 2.0.171 → 2.0.173-next.0
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/browser/console-logging.js +2 -7
- package/dist/browser/console-logging.js.map +1 -1
- package/dist/browser/early-console-buffer.js +12 -14
- package/dist/browser/early-console-buffer.js.map +1 -1
- package/dist/browser/index.js +12 -41
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/init.d.ts +1 -1
- package/dist/browser/init.d.ts.map +1 -1
- package/dist/browser/init.js +42 -52
- package/dist/browser/init.js.map +1 -1
- package/dist/browser/instrumentations.js +11 -15
- package/dist/browser/instrumentations.js.map +1 -1
- package/dist/browser/logs.d.ts +1 -1
- package/dist/browser/logs.d.ts.map +1 -1
- package/dist/browser/logs.js +11 -18
- package/dist/browser/logs.js.map +1 -1
- package/dist/browser/metrics.js +9 -12
- package/dist/browser/metrics.js.map +1 -1
- package/dist/browser/resilient-exporter.d.ts +1 -1
- package/dist/browser/resilient-exporter.d.ts.map +1 -1
- package/dist/browser/resilient-exporter.js +8 -12
- package/dist/browser/resilient-exporter.js.map +1 -1
- package/dist/browser/sanitizer.js +2 -6
- package/dist/browser/sanitizer.js.map +1 -1
- package/dist/browser/traced-socket.js +14 -18
- package/dist/browser/traced-socket.js.map +1 -1
- package/dist/common/contracts/tier2-traces.js +33 -44
- package/dist/common/contracts/tier2-traces.js.map +1 -1
- package/dist/common/deployment-type.js +5 -8
- package/dist/common/deployment-type.js.map +1 -1
- package/dist/common/guardrails.js +26 -38
- package/dist/common/guardrails.js.map +1 -1
- package/dist/common/index.js +8 -24
- package/dist/common/index.js.map +1 -1
- package/dist/common/log-sanitizer.js +37 -55
- package/dist/common/log-sanitizer.js.map +1 -1
- package/dist/common/policy-evaluator.d.ts +1 -1
- package/dist/common/policy-evaluator.d.ts.map +1 -1
- package/dist/common/policy-evaluator.js +5 -9
- package/dist/common/policy-evaluator.js.map +1 -1
- package/dist/common/resource.js +18 -25
- package/dist/common/resource.js.map +1 -1
- package/dist/common/tier-hints.js +12 -22
- package/dist/common/tier-hints.js.map +1 -1
- package/dist/common/trace-sanitizer.js +6 -10
- package/dist/common/trace-sanitizer.js.map +1 -1
- package/dist/common/traced-socket-types.js +1 -2
- package/dist/common/traced-socket-types.js.map +1 -1
- package/dist/index.js +6 -38
- package/dist/index.js.map +1 -1
- package/dist/lint/forbidden-attributes.js +19 -24
- package/dist/lint/forbidden-attributes.js.map +1 -1
- package/dist/lint/index.js +1 -8
- package/dist/lint/index.js.map +1 -1
- package/dist/llmobs/index.js +2 -9
- package/dist/llmobs/index.js.map +1 -1
- package/dist/llmobs/tier1-exporter.js +6 -12
- package/dist/llmobs/tier1-exporter.js.map +1 -1
- package/dist/llmobs/tier2-summarizer.js +1 -5
- package/dist/llmobs/tier2-summarizer.js.map +1 -1
- package/dist/node/dynamic-attribute-processor.js +2 -7
- package/dist/node/dynamic-attribute-processor.js.map +1 -1
- package/dist/node/exporters/resilient-exporter.d.ts +1 -1
- package/dist/node/exporters/resilient-exporter.d.ts.map +1 -1
- package/dist/node/exporters/resilient-exporter.js +8 -12
- package/dist/node/exporters/resilient-exporter.js.map +1 -1
- package/dist/node/index.js +7 -26
- package/dist/node/index.js.map +1 -1
- package/dist/node/init.d.ts +3 -3
- package/dist/node/init.d.ts.map +1 -1
- package/dist/node/init.js +66 -72
- package/dist/node/init.js.map +1 -1
- package/dist/node/local-obs-mode.js +1 -4
- package/dist/node/local-obs-mode.js.map +1 -1
- package/dist/node/log-processor.d.ts +1 -1
- package/dist/node/log-processor.d.ts.map +1 -1
- package/dist/node/log-processor.js +47 -55
- package/dist/node/log-processor.js.map +1 -1
- package/dist/node/metrics-client.js +1 -5
- package/dist/node/metrics-client.js.map +1 -1
- package/dist/node/safe-logger.js +8 -12
- package/dist/node/safe-logger.js.map +1 -1
- package/dist/node/sanitizing-processor.d.ts +2 -2
- package/dist/node/sanitizing-processor.d.ts.map +1 -1
- package/dist/node/sanitizing-processor.js +6 -10
- package/dist/node/sanitizing-processor.js.map +1 -1
- package/dist/node/service-tracers.js +7 -10
- package/dist/node/service-tracers.js.map +1 -1
- package/dist/node/traced-socket.d.ts +3 -3
- package/dist/node/traced-socket.d.ts.map +1 -1
- package/dist/node/traced-socket.js +48 -52
- package/dist/node/traced-socket.js.map +1 -1
- package/dist/npm-registry/emitter.js +34 -47
- package/dist/npm-registry/emitter.js.map +1 -1
- package/dist/npm-registry/index.js +3 -19
- package/dist/npm-registry/index.js.map +1 -1
- package/dist/npm-registry/sanitize.js +16 -27
- package/dist/npm-registry/sanitize.js.map +1 -1
- package/dist/npm-registry/spans.js +7 -12
- package/dist/npm-registry/spans.js.map +1 -1
- package/dist/testing/in-memory-exporter.d.ts +1 -1
- package/dist/testing/in-memory-exporter.d.ts.map +1 -1
- package/dist/testing/in-memory-exporter.js +6 -12
- package/dist/testing/in-memory-exporter.js.map +1 -1
- package/dist/testing/index.js +3 -15
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/metrics-capture.js +12 -15
- package/dist/testing/metrics-capture.js.map +1 -1
- package/dist/testing/test-init.js +24 -31
- package/dist/testing/test-init.js.map +1 -1
- package/dist/types/index.js +1 -17
- package/dist/types/index.js.map +1 -1
- package/dist/types/policy.js +21 -24
- package/dist/types/policy.js.map +1 -1
- package/package.json +11 -17
- package/dist-esm/browser/console-logging.d.ts +0 -18
- package/dist-esm/browser/console-logging.d.ts.map +0 -1
- package/dist-esm/browser/console-logging.js +0 -27
- package/dist-esm/browser/console-logging.js.map +0 -1
- package/dist-esm/browser/early-console-buffer.d.ts +0 -49
- package/dist-esm/browser/early-console-buffer.d.ts.map +0 -1
- package/dist-esm/browser/early-console-buffer.js +0 -181
- package/dist-esm/browser/early-console-buffer.js.map +0 -1
- package/dist-esm/browser/index.d.ts +0 -18
- package/dist-esm/browser/index.d.ts.map +0 -1
- package/dist-esm/browser/index.js +0 -23
- package/dist-esm/browser/index.js.map +0 -1
- package/dist-esm/browser/init.d.ts +0 -100
- package/dist-esm/browser/init.d.ts.map +0 -1
- package/dist-esm/browser/init.js +0 -317
- package/dist-esm/browser/init.js.map +0 -1
- package/dist-esm/browser/instrumentations.d.ts +0 -67
- package/dist-esm/browser/instrumentations.d.ts.map +0 -1
- package/dist-esm/browser/instrumentations.js +0 -79
- package/dist-esm/browser/instrumentations.js.map +0 -1
- package/dist-esm/browser/logs.d.ts +0 -57
- package/dist-esm/browser/logs.d.ts.map +0 -1
- package/dist-esm/browser/logs.js +0 -80
- package/dist-esm/browser/logs.js.map +0 -1
- package/dist-esm/browser/metrics.d.ts +0 -29
- package/dist-esm/browser/metrics.d.ts.map +0 -1
- package/dist-esm/browser/metrics.js +0 -46
- package/dist-esm/browser/metrics.js.map +0 -1
- package/dist-esm/browser/resilient-exporter.d.ts +0 -43
- package/dist-esm/browser/resilient-exporter.d.ts.map +0 -1
- package/dist-esm/browser/resilient-exporter.js +0 -84
- package/dist-esm/browser/resilient-exporter.js.map +0 -1
- package/dist-esm/browser/sanitizer.d.ts +0 -35
- package/dist-esm/browser/sanitizer.d.ts.map +0 -1
- package/dist-esm/browser/sanitizer.js +0 -207
- package/dist-esm/browser/sanitizer.js.map +0 -1
- package/dist-esm/browser/traced-socket.d.ts +0 -102
- package/dist-esm/browser/traced-socket.d.ts.map +0 -1
- package/dist-esm/browser/traced-socket.js +0 -199
- package/dist-esm/browser/traced-socket.js.map +0 -1
- package/dist-esm/common/contracts/tier2-traces.d.ts +0 -116
- package/dist-esm/common/contracts/tier2-traces.d.ts.map +0 -1
- package/dist-esm/common/contracts/tier2-traces.js +0 -725
- package/dist-esm/common/contracts/tier2-traces.js.map +0 -1
- package/dist-esm/common/deployment-type.d.ts +0 -18
- package/dist-esm/common/deployment-type.d.ts.map +0 -1
- package/dist-esm/common/deployment-type.js +0 -27
- package/dist-esm/common/deployment-type.js.map +0 -1
- package/dist-esm/common/guardrails.d.ts +0 -132
- package/dist-esm/common/guardrails.d.ts.map +0 -1
- package/dist-esm/common/guardrails.js +0 -230
- package/dist-esm/common/guardrails.js.map +0 -1
- package/dist-esm/common/index.d.ts +0 -17
- package/dist-esm/common/index.d.ts.map +0 -1
- package/dist-esm/common/index.js +0 -17
- package/dist-esm/common/index.js.map +0 -1
- package/dist-esm/common/log-sanitizer.d.ts +0 -163
- package/dist-esm/common/log-sanitizer.d.ts.map +0 -1
- package/dist-esm/common/log-sanitizer.js +0 -745
- package/dist-esm/common/log-sanitizer.js.map +0 -1
- package/dist-esm/common/policy-evaluator.d.ts +0 -103
- package/dist-esm/common/policy-evaluator.d.ts.map +0 -1
- package/dist-esm/common/policy-evaluator.js +0 -196
- package/dist-esm/common/policy-evaluator.js.map +0 -1
- package/dist-esm/common/resource.d.ts +0 -79
- package/dist-esm/common/resource.d.ts.map +0 -1
- package/dist-esm/common/resource.js +0 -121
- package/dist-esm/common/resource.js.map +0 -1
- package/dist-esm/common/tier-hints.d.ts +0 -182
- package/dist-esm/common/tier-hints.d.ts.map +0 -1
- package/dist-esm/common/tier-hints.js +0 -199
- package/dist-esm/common/tier-hints.js.map +0 -1
- package/dist-esm/common/trace-sanitizer.d.ts +0 -82
- package/dist-esm/common/trace-sanitizer.d.ts.map +0 -1
- package/dist-esm/common/trace-sanitizer.js +0 -230
- package/dist-esm/common/trace-sanitizer.js.map +0 -1
- package/dist-esm/common/traced-socket-types.d.ts +0 -43
- package/dist-esm/common/traced-socket-types.d.ts.map +0 -1
- package/dist-esm/common/traced-socket-types.js +0 -16
- package/dist-esm/common/traced-socket-types.js.map +0 -1
- package/dist-esm/index.d.ts +0 -45
- package/dist-esm/index.d.ts.map +0 -1
- package/dist-esm/index.js +0 -56
- package/dist-esm/index.js.map +0 -1
- package/dist-esm/lint/forbidden-attributes.d.ts +0 -149
- package/dist-esm/lint/forbidden-attributes.d.ts.map +0 -1
- package/dist-esm/lint/forbidden-attributes.js +0 -210
- package/dist-esm/lint/forbidden-attributes.js.map +0 -1
- package/dist-esm/lint/index.d.ts +0 -9
- package/dist-esm/lint/index.d.ts.map +0 -1
- package/dist-esm/lint/index.js +0 -9
- package/dist-esm/lint/index.js.map +0 -1
- package/dist-esm/llmobs/index.d.ts +0 -22
- package/dist-esm/llmobs/index.d.ts.map +0 -1
- package/dist-esm/llmobs/index.js +0 -22
- package/dist-esm/llmobs/index.js.map +0 -1
- package/dist-esm/llmobs/tier1-exporter.d.ts +0 -146
- package/dist-esm/llmobs/tier1-exporter.d.ts.map +0 -1
- package/dist-esm/llmobs/tier1-exporter.js +0 -193
- package/dist-esm/llmobs/tier1-exporter.js.map +0 -1
- package/dist-esm/llmobs/tier2-summarizer.d.ts +0 -268
- package/dist-esm/llmobs/tier2-summarizer.d.ts.map +0 -1
- package/dist-esm/llmobs/tier2-summarizer.js +0 -652
- package/dist-esm/llmobs/tier2-summarizer.js.map +0 -1
- package/dist-esm/node/dynamic-attribute-processor.d.ts +0 -43
- package/dist-esm/node/dynamic-attribute-processor.d.ts.map +0 -1
- package/dist-esm/node/dynamic-attribute-processor.js +0 -74
- package/dist-esm/node/dynamic-attribute-processor.js.map +0 -1
- package/dist-esm/node/exporters/resilient-exporter.d.ts +0 -91
- package/dist-esm/node/exporters/resilient-exporter.d.ts.map +0 -1
- package/dist-esm/node/exporters/resilient-exporter.js +0 -132
- package/dist-esm/node/exporters/resilient-exporter.js.map +0 -1
- package/dist-esm/node/index.d.ts +0 -13
- package/dist-esm/node/index.d.ts.map +0 -1
- package/dist-esm/node/index.js +0 -13
- package/dist-esm/node/index.js.map +0 -1
- package/dist-esm/node/init.d.ts +0 -97
- package/dist-esm/node/init.d.ts.map +0 -1
- package/dist-esm/node/init.js +0 -359
- package/dist-esm/node/init.js.map +0 -1
- package/dist-esm/node/local-obs-mode.d.ts +0 -17
- package/dist-esm/node/local-obs-mode.d.ts.map +0 -1
- package/dist-esm/node/local-obs-mode.js +0 -19
- package/dist-esm/node/local-obs-mode.js.map +0 -1
- package/dist-esm/node/log-processor.d.ts +0 -132
- package/dist-esm/node/log-processor.d.ts.map +0 -1
- package/dist-esm/node/log-processor.js +0 -389
- package/dist-esm/node/log-processor.js.map +0 -1
- package/dist-esm/node/metrics-client.d.ts +0 -88
- package/dist-esm/node/metrics-client.d.ts.map +0 -1
- package/dist-esm/node/metrics-client.js +0 -205
- package/dist-esm/node/metrics-client.js.map +0 -1
- package/dist-esm/node/safe-logger.d.ts +0 -55
- package/dist-esm/node/safe-logger.d.ts.map +0 -1
- package/dist-esm/node/safe-logger.js +0 -154
- package/dist-esm/node/safe-logger.js.map +0 -1
- package/dist-esm/node/sanitizing-processor.d.ts +0 -67
- package/dist-esm/node/sanitizing-processor.d.ts.map +0 -1
- package/dist-esm/node/sanitizing-processor.js +0 -163
- package/dist-esm/node/sanitizing-processor.js.map +0 -1
- package/dist-esm/node/service-tracers.d.ts +0 -52
- package/dist-esm/node/service-tracers.d.ts.map +0 -1
- package/dist-esm/node/service-tracers.js +0 -78
- package/dist-esm/node/service-tracers.js.map +0 -1
- package/dist-esm/node/traced-socket.d.ts +0 -120
- package/dist-esm/node/traced-socket.d.ts.map +0 -1
- package/dist-esm/node/traced-socket.js +0 -334
- package/dist-esm/node/traced-socket.js.map +0 -1
- package/dist-esm/npm-registry/emitter.d.ts +0 -330
- package/dist-esm/npm-registry/emitter.d.ts.map +0 -1
- package/dist-esm/npm-registry/emitter.js +0 -546
- package/dist-esm/npm-registry/emitter.js.map +0 -1
- package/dist-esm/npm-registry/index.d.ts +0 -12
- package/dist-esm/npm-registry/index.d.ts.map +0 -1
- package/dist-esm/npm-registry/index.js +0 -12
- package/dist-esm/npm-registry/index.js.map +0 -1
- package/dist-esm/npm-registry/sanitize.d.ts +0 -174
- package/dist-esm/npm-registry/sanitize.d.ts.map +0 -1
- package/dist-esm/npm-registry/sanitize.js +0 -331
- package/dist-esm/npm-registry/sanitize.js.map +0 -1
- package/dist-esm/npm-registry/spans.d.ts +0 -61
- package/dist-esm/npm-registry/spans.d.ts.map +0 -1
- package/dist-esm/npm-registry/spans.js +0 -86
- package/dist-esm/npm-registry/spans.js.map +0 -1
- package/dist-esm/package.json +0 -1
- package/dist-esm/testing/in-memory-exporter.d.ts +0 -179
- package/dist-esm/testing/in-memory-exporter.d.ts.map +0 -1
- package/dist-esm/testing/in-memory-exporter.js +0 -250
- package/dist-esm/testing/in-memory-exporter.js.map +0 -1
- package/dist-esm/testing/index.d.ts +0 -9
- package/dist-esm/testing/index.d.ts.map +0 -1
- package/dist-esm/testing/index.js +0 -9
- package/dist-esm/testing/index.js.map +0 -1
- package/dist-esm/testing/metrics-capture.d.ts +0 -29
- package/dist-esm/testing/metrics-capture.d.ts.map +0 -1
- package/dist-esm/testing/metrics-capture.js +0 -71
- package/dist-esm/testing/metrics-capture.js.map +0 -1
- package/dist-esm/testing/test-init.d.ts +0 -80
- package/dist-esm/testing/test-init.d.ts.map +0 -1
- package/dist-esm/testing/test-init.js +0 -137
- package/dist-esm/testing/test-init.js.map +0 -1
- package/dist-esm/types/index.d.ts +0 -84
- package/dist-esm/types/index.d.ts.map +0 -1
- package/dist-esm/types/index.js +0 -7
- package/dist-esm/types/index.js.map +0 -1
- package/dist-esm/types/policy.d.ts +0 -92
- package/dist-esm/types/policy.d.ts.map +0 -1
- package/dist-esm/types/policy.js +0 -122
- package/dist-esm/types/policy.js.map +0 -1
package/dist/browser/logs.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Browser Log Provider
|
|
4
3
|
*
|
|
@@ -8,16 +7,10 @@
|
|
|
8
7
|
*
|
|
9
8
|
* This is the ONLY approved way to init log telemetry in browser contexts.
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
exports.initBrowserLogs = initBrowserLogs;
|
|
16
|
-
exports.resetBrowserLogs = resetBrowserLogs;
|
|
17
|
-
const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
|
|
18
|
-
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
|
19
|
-
const early_console_buffer_js_1 = __importDefault(require("./early-console-buffer.js"));
|
|
20
|
-
const sanitizer_js_1 = require("./sanitizer.js");
|
|
10
|
+
import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
|
|
11
|
+
import { BatchLogRecordProcessor, LoggerProvider, } from "@opentelemetry/sdk-logs";
|
|
12
|
+
import EarlyConsoleBuffer from "./early-console-buffer.js";
|
|
13
|
+
import { createSanitizingLogProcessor } from "./sanitizer.js";
|
|
21
14
|
// Singleton
|
|
22
15
|
let instance;
|
|
23
16
|
function validateConfig(config) {
|
|
@@ -51,22 +44,22 @@ function validateConfig(config) {
|
|
|
51
44
|
* logger.emit({ severityNumber: SeverityNumber.INFO, body: 'hello' });
|
|
52
45
|
* ```
|
|
53
46
|
*/
|
|
54
|
-
function initBrowserLogs(config) {
|
|
47
|
+
export function initBrowserLogs(config) {
|
|
55
48
|
validateConfig(config);
|
|
56
49
|
if (instance) {
|
|
57
50
|
console.warn("[Telemetry] Browser log provider already initialized");
|
|
58
51
|
return instance;
|
|
59
52
|
}
|
|
60
|
-
const exporter = new
|
|
61
|
-
const sanitizer =
|
|
62
|
-
const batchProcessor = new
|
|
63
|
-
const provider = new
|
|
53
|
+
const exporter = new OTLPLogExporter({ url: config.otlpUrl });
|
|
54
|
+
const sanitizer = createSanitizingLogProcessor();
|
|
55
|
+
const batchProcessor = new BatchLogRecordProcessor({ exporter });
|
|
56
|
+
const provider = new LoggerProvider({
|
|
64
57
|
resource: config.resource,
|
|
65
58
|
processors: [sanitizer, batchProcessor],
|
|
66
59
|
});
|
|
67
60
|
// Wire the EarlyConsoleBuffer so buffered pre-init logs are flushed now.
|
|
68
61
|
const otelLogger = provider.getLogger(config.serviceName, "1.0.0");
|
|
69
|
-
|
|
62
|
+
EarlyConsoleBuffer.getInstance().enableOpenTelemetry(otelLogger);
|
|
70
63
|
instance = {
|
|
71
64
|
getLogger: (name) => provider.getLogger(name ?? config.serviceName, "1.0.0"),
|
|
72
65
|
forceFlush: () => provider.forceFlush(),
|
|
@@ -81,7 +74,7 @@ function initBrowserLogs(config) {
|
|
|
81
74
|
* Reset the browser log provider singleton (for testing only).
|
|
82
75
|
* @internal
|
|
83
76
|
*/
|
|
84
|
-
function resetBrowserLogs() {
|
|
77
|
+
export function resetBrowserLogs() {
|
|
85
78
|
instance = undefined;
|
|
86
79
|
}
|
|
87
80
|
//# sourceMappingURL=logs.js.map
|
package/dist/browser/logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/browser/logs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/browser/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,EACL,uBAAuB,EACvB,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,kBAAkB,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAoB9D,YAAY;AACZ,IAAI,QAAyC,CAAC;AAE9C,SAAS,cAAc,CAAC,MAAyB;IAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAyB;IAEzB,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,4BAA4B,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;KACxC,CAAC,CAAC;IAEH,yEAAyE;IACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,kBAAkB,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEjE,QAAQ,GAAG;QACT,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAC3B,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC;QACzD,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE;QACvC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC1B,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC"}
|
package/dist/browser/metrics.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Browser Metrics Bootstrap
|
|
4
3
|
*
|
|
5
4
|
* Initializes a MeterProvider for browser contexts using OTLP HTTP export.
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
|
|
11
|
-
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
6
|
+
import { metrics } from "@opentelemetry/api";
|
|
7
|
+
import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
|
|
8
|
+
import { AggregationTemporality, MeterProvider, PeriodicExportingMetricReader, } from "@opentelemetry/sdk-metrics";
|
|
12
9
|
/**
|
|
13
10
|
* Browser metrics export interval.
|
|
14
11
|
*
|
|
@@ -27,20 +24,20 @@ const BROWSER_EXPORT_INTERVAL_MS = 10_000;
|
|
|
27
24
|
* @param config - Browser metrics configuration
|
|
28
25
|
* @returns Browser metrics instance with getMeter and shutdown
|
|
29
26
|
*/
|
|
30
|
-
function initBrowserMetrics(config) {
|
|
31
|
-
const exporter = new
|
|
27
|
+
export function initBrowserMetrics(config) {
|
|
28
|
+
const exporter = new OTLPMetricExporter({
|
|
32
29
|
url: config.otlpUrl,
|
|
33
|
-
temporalityPreference:
|
|
30
|
+
temporalityPreference: AggregationTemporality.DELTA,
|
|
34
31
|
});
|
|
35
|
-
const reader = new
|
|
32
|
+
const reader = new PeriodicExportingMetricReader({
|
|
36
33
|
exporter,
|
|
37
34
|
exportIntervalMillis: BROWSER_EXPORT_INTERVAL_MS,
|
|
38
35
|
});
|
|
39
|
-
const provider = new
|
|
36
|
+
const provider = new MeterProvider({
|
|
40
37
|
resource: config.resource,
|
|
41
38
|
readers: [reader],
|
|
42
39
|
});
|
|
43
|
-
|
|
40
|
+
metrics.setGlobalMeterProvider(provider);
|
|
44
41
|
return {
|
|
45
42
|
getMeter: (name) => provider.getMeter(name ?? config.serviceName),
|
|
46
43
|
shutdown: () => provider.shutdown(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/browser/metrics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/browser/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAc,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAepC;;;;;;;GAOG;AACH,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;QACtC,GAAG,EAAE,MAAM,CAAC,OAAO;QACnB,qBAAqB,EAAE,sBAAsB,CAAC,KAAK;KACpD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,6BAA6B,CAAC;QAC/C,QAAQ;QACR,oBAAoB,EAAE,0BAA0B;KACjD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB,CAAC,CAAC;IAEH,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEzC,OAAO;QACL,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC;QAC1E,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Simplified resilient exporter for browser environments.
|
|
5
5
|
* Ensures export failures don't affect the main thread.
|
|
6
6
|
*/
|
|
7
|
-
import { ExportResult } from "@opentelemetry/core";
|
|
7
|
+
import { type ExportResult } from "@opentelemetry/core";
|
|
8
8
|
import type { SpanExporter, ReadableSpan } from "@opentelemetry/sdk-trace-base";
|
|
9
9
|
/**
|
|
10
10
|
* Configuration for the browser resilient exporter.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilient-exporter.d.ts","sourceRoot":"","sources":["../../src/browser/resilient-exporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"resilient-exporter.d.ts","sourceRoot":"","sources":["../../src/browser/resilient-exporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,kCAAkC;IAClC,QAAQ,EAAE,YAAY,CAAC;IACvB,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,MAAM,CAAC,EAAE,CACP,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,SAAS,KAC/C,IAAI,CAAC;CACX;AAED;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGb;IAEV,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,8BAA8B;IAOlD;;OAEG;IACH,MAAM,CACJ,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,IAAI;IAiDD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Browser Resilient Exporter
|
|
4
3
|
*
|
|
5
4
|
* Simplified resilient exporter for browser environments.
|
|
6
5
|
* Ensures export failures don't affect the main thread.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
exports.BrowserResilientExporter = void 0;
|
|
10
|
-
const core_1 = require("@opentelemetry/core");
|
|
7
|
+
import { ExportResultCode } from "@opentelemetry/core";
|
|
11
8
|
/**
|
|
12
9
|
* Browser-compatible resilient exporter.
|
|
13
10
|
*
|
|
14
11
|
* CRITICAL: Export failures must never block or affect the main thread.
|
|
15
12
|
* This wrapper catches all errors and timeouts.
|
|
16
13
|
*/
|
|
17
|
-
class BrowserResilientExporter {
|
|
14
|
+
export class BrowserResilientExporter {
|
|
18
15
|
delegate;
|
|
19
16
|
maxQueueSize;
|
|
20
17
|
exportTimeoutMs;
|
|
@@ -33,13 +30,13 @@ class BrowserResilientExporter {
|
|
|
33
30
|
export(spans, resultCallback) {
|
|
34
31
|
// Reject during shutdown
|
|
35
32
|
if (this.shuttingDown) {
|
|
36
|
-
resultCallback({ code:
|
|
33
|
+
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
37
34
|
return;
|
|
38
35
|
}
|
|
39
36
|
// Check backpressure
|
|
40
37
|
if (this.queuedCount + spans.length > this.maxQueueSize) {
|
|
41
38
|
this.onDrop(spans.length, "queue_full");
|
|
42
|
-
resultCallback({ code:
|
|
39
|
+
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
43
40
|
return;
|
|
44
41
|
}
|
|
45
42
|
this.queuedCount += spans.length;
|
|
@@ -51,7 +48,7 @@ class BrowserResilientExporter {
|
|
|
51
48
|
completed = true;
|
|
52
49
|
this.queuedCount -= spans.length;
|
|
53
50
|
this.onDrop(spans.length, "timeout");
|
|
54
|
-
resultCallback({ code:
|
|
51
|
+
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
55
52
|
}, this.exportTimeoutMs);
|
|
56
53
|
try {
|
|
57
54
|
this.delegate.export(spans, (result) => {
|
|
@@ -60,10 +57,10 @@ class BrowserResilientExporter {
|
|
|
60
57
|
completed = true;
|
|
61
58
|
clearTimeout(timeoutId);
|
|
62
59
|
this.queuedCount -= spans.length;
|
|
63
|
-
if (result.code !==
|
|
60
|
+
if (result.code !== ExportResultCode.SUCCESS) {
|
|
64
61
|
this.onDrop(spans.length, "export_failed");
|
|
65
62
|
}
|
|
66
|
-
resultCallback({ code:
|
|
63
|
+
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
67
64
|
});
|
|
68
65
|
}
|
|
69
66
|
catch {
|
|
@@ -73,7 +70,7 @@ class BrowserResilientExporter {
|
|
|
73
70
|
clearTimeout(timeoutId);
|
|
74
71
|
this.queuedCount -= spans.length;
|
|
75
72
|
this.onDrop(spans.length, "export_failed");
|
|
76
|
-
resultCallback({ code:
|
|
73
|
+
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
77
74
|
}
|
|
78
75
|
}
|
|
79
76
|
async shutdown() {
|
|
@@ -84,5 +81,4 @@ class BrowserResilientExporter {
|
|
|
84
81
|
return this.delegate.forceFlush?.() ?? Promise.resolve();
|
|
85
82
|
}
|
|
86
83
|
}
|
|
87
|
-
exports.BrowserResilientExporter = BrowserResilientExporter;
|
|
88
84
|
//# sourceMappingURL=resilient-exporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilient-exporter.js","sourceRoot":"","sources":["../../src/browser/resilient-exporter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resilient-exporter.js","sourceRoot":"","sources":["../../src/browser/resilient-exporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAoB1E;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IAClB,QAAQ,CAAe;IACvB,YAAY,CAAS;IACrB,eAAe,CAAS;IACxB,MAAM,CAGb;IAEF,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,KAAK,CAAC;IAE7B,YAAY,MAAsC;QAChD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,KAAK,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,KAAqB,EACrB,cAA8C;QAE9C,yBAAyB;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACxC,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,kBAAkB;QAClB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACrC,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzB,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;gBACrC,IAAI,SAAS;oBAAE,OAAO;gBACtB,SAAS,GAAG,IAAI,CAAC;gBACjB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;gBAEjC,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAC7C,CAAC;gBAED,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAC3C,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Browser PII Sanitizing Processors
|
|
4
3
|
*
|
|
@@ -11,9 +10,6 @@
|
|
|
11
10
|
* - SanitizingLogProcessor: redacts sensitive log record attributes and
|
|
12
11
|
* replaces email-like patterns in log body text.
|
|
13
12
|
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.createSanitizingSpanProcessor = createSanitizingSpanProcessor;
|
|
16
|
-
exports.createSanitizingLogProcessor = createSanitizingLogProcessor;
|
|
17
13
|
// ============================================================================
|
|
18
14
|
// Constants
|
|
19
15
|
// ============================================================================
|
|
@@ -196,7 +192,7 @@ class BrowserSanitizingLogProcessor {
|
|
|
196
192
|
* @param config - Optional configuration for additional key patterns / URL params
|
|
197
193
|
* @returns A SpanProcessor suitable for use in a browser WebTracerProvider
|
|
198
194
|
*/
|
|
199
|
-
function createSanitizingSpanProcessor(config) {
|
|
195
|
+
export function createSanitizingSpanProcessor(config) {
|
|
200
196
|
return new SanitizingSpanProcessor(config);
|
|
201
197
|
}
|
|
202
198
|
/**
|
|
@@ -205,7 +201,7 @@ function createSanitizingSpanProcessor(config) {
|
|
|
205
201
|
* @param config - Optional configuration for additional key patterns
|
|
206
202
|
* @returns A LogRecordProcessor suitable for use in a browser log provider
|
|
207
203
|
*/
|
|
208
|
-
function createSanitizingLogProcessor(config) {
|
|
204
|
+
export function createSanitizingLogProcessor(config) {
|
|
209
205
|
return new BrowserSanitizingLogProcessor(config);
|
|
210
206
|
}
|
|
211
207
|
//# sourceMappingURL=sanitizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/browser/sanitizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/browser/sanitizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Browser-side TracedSocket for WebSocket tracing.
|
|
4
3
|
*
|
|
@@ -16,13 +15,11 @@
|
|
|
16
15
|
* initBrowserTelemetry() (see browser/init.ts). The carrier is the
|
|
17
16
|
* `request` object itself — the same convention as the server side.
|
|
18
17
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const api_1 = require("@opentelemetry/api");
|
|
22
|
-
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
18
|
+
import { ROOT_CONTEXT, SpanKind, context as otelCtx, propagation, trace, } from "@opentelemetry/api";
|
|
19
|
+
import { SEMATTRS_MESSAGING_DESTINATION_KIND, SEMATTRS_MESSAGING_SYSTEM, } from "@opentelemetry/semantic-conventions";
|
|
23
20
|
const MESSAGING_ATTRS = {
|
|
24
|
-
[
|
|
25
|
-
[
|
|
21
|
+
[SEMATTRS_MESSAGING_SYSTEM]: "ws",
|
|
22
|
+
[SEMATTRS_MESSAGING_DESTINATION_KIND]: "websocket",
|
|
26
23
|
};
|
|
27
24
|
/**
|
|
28
25
|
* BrowserTracedSocket wraps a WebSocket and provides:
|
|
@@ -44,13 +41,13 @@ const MESSAGING_ATTRS = {
|
|
|
44
41
|
* Lifecycle spans (ws.connect, ws.disconnect) are attached automatically via
|
|
45
42
|
* WebSocket open/close event listeners.
|
|
46
43
|
*/
|
|
47
|
-
class BrowserTracedSocket {
|
|
44
|
+
export class BrowserTracedSocket {
|
|
48
45
|
ws;
|
|
49
46
|
tracer;
|
|
50
47
|
connectStartTime;
|
|
51
48
|
constructor(ws, config) {
|
|
52
49
|
this.ws = ws;
|
|
53
|
-
this.tracer = config.tracer ??
|
|
50
|
+
this.tracer = config.tracer ?? trace.getTracer("superblocks-ws", "0.0.0");
|
|
54
51
|
this.connectStartTime = performance.now();
|
|
55
52
|
this.ws.addEventListener("open", this.onOpen);
|
|
56
53
|
this.ws.addEventListener("close", this.onClose);
|
|
@@ -70,7 +67,7 @@ class BrowserTracedSocket {
|
|
|
70
67
|
? performance.now() - this.connectStartTime
|
|
71
68
|
: undefined;
|
|
72
69
|
this.tracer.startActiveSpan("ws.connect", {
|
|
73
|
-
kind:
|
|
70
|
+
kind: SpanKind.CLIENT,
|
|
74
71
|
attributes: {
|
|
75
72
|
...MESSAGING_ATTRS,
|
|
76
73
|
...(durationMs !== undefined
|
|
@@ -91,7 +88,7 @@ class BrowserTracedSocket {
|
|
|
91
88
|
const code = ev.code ?? 1000;
|
|
92
89
|
const reason = ev.reason ?? "";
|
|
93
90
|
this.tracer.startActiveSpan("ws.disconnect", {
|
|
94
|
-
kind:
|
|
91
|
+
kind: SpanKind.CLIENT,
|
|
95
92
|
attributes: {
|
|
96
93
|
...MESSAGING_ATTRS,
|
|
97
94
|
"ws.close_code": code,
|
|
@@ -112,7 +109,7 @@ class BrowserTracedSocket {
|
|
|
112
109
|
*/
|
|
113
110
|
recordReconnect({ attempt }) {
|
|
114
111
|
this.tracer.startActiveSpan("ws.reconnect", {
|
|
115
|
-
kind:
|
|
112
|
+
kind: SpanKind.CLIENT,
|
|
116
113
|
attributes: {
|
|
117
114
|
...MESSAGING_ATTRS,
|
|
118
115
|
"ws.reconnect_attempt": attempt,
|
|
@@ -139,7 +136,7 @@ class BrowserTracedSocket {
|
|
|
139
136
|
if (message.request.traceparent || message.request.tracestate) {
|
|
140
137
|
return message;
|
|
141
138
|
}
|
|
142
|
-
|
|
139
|
+
propagation.inject(otelCtx.active(), message.request);
|
|
143
140
|
return message;
|
|
144
141
|
}
|
|
145
142
|
/**
|
|
@@ -155,7 +152,7 @@ class BrowserTracedSocket {
|
|
|
155
152
|
*/
|
|
156
153
|
traceOutboundCall(method) {
|
|
157
154
|
return this.tracer.startActiveSpan(`WS CLIENT ${method}`, {
|
|
158
|
-
kind:
|
|
155
|
+
kind: SpanKind.CLIENT,
|
|
159
156
|
attributes: {
|
|
160
157
|
...MESSAGING_ATTRS,
|
|
161
158
|
"ws.method": method,
|
|
@@ -177,10 +174,10 @@ class BrowserTracedSocket {
|
|
|
177
174
|
return;
|
|
178
175
|
}
|
|
179
176
|
const method = message.request.method ?? "unknown";
|
|
180
|
-
const parentCtx =
|
|
181
|
-
|
|
177
|
+
const parentCtx = propagation.extract(ROOT_CONTEXT, message.request);
|
|
178
|
+
otelCtx.with(parentCtx, () => {
|
|
182
179
|
this.tracer.startActiveSpan(`WS SERVER ${method}`, {
|
|
183
|
-
kind:
|
|
180
|
+
kind: SpanKind.CONSUMER,
|
|
184
181
|
attributes: {
|
|
185
182
|
...MESSAGING_ATTRS,
|
|
186
183
|
"ws.method": method,
|
|
@@ -199,5 +196,4 @@ class BrowserTracedSocket {
|
|
|
199
196
|
this.ws.removeEventListener("close", this.onClose);
|
|
200
197
|
}
|
|
201
198
|
}
|
|
202
|
-
exports.BrowserTracedSocket = BrowserTracedSocket;
|
|
203
199
|
//# sourceMappingURL=traced-socket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traced-socket.js","sourceRoot":"","sources":["../../src/browser/traced-socket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"traced-socket.js","sourceRoot":"","sources":["../../src/browser/traced-socket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Tier 2 Traces Contract (v0.6.0) — TypeScript mirror.
|
|
4
3
|
*
|
|
@@ -27,18 +26,8 @@
|
|
|
27
26
|
* (ESLint), guardrails (dev-time warnings), and Collector config generation.
|
|
28
27
|
* "request handler *" is a local extension for Express instrumentation (not in the JSON).
|
|
29
28
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
exports.getAttributeName = getAttributeName;
|
|
33
|
-
exports.getTraceContract = getTraceContract;
|
|
34
|
-
exports.getTraceSanitizerAttributeSets = getTraceSanitizerAttributeSets;
|
|
35
|
-
exports.isForbiddenAttribute = isForbiddenAttribute;
|
|
36
|
-
exports.isHashedAttribute = isHashedAttribute;
|
|
37
|
-
exports.isDroppedAttribute = isDroppedAttribute;
|
|
38
|
-
exports.containsForbiddenPattern = containsForbiddenPattern;
|
|
39
|
-
exports.shouldAlwaysSample = shouldAlwaysSample;
|
|
40
|
-
const shared_1 = require("@superblocksteam/shared");
|
|
41
|
-
function getAttributeName(attr) {
|
|
29
|
+
import { DeploymentTypeEnum } from "@superblocksteam/shared";
|
|
30
|
+
export function getAttributeName(attr) {
|
|
42
31
|
return typeof attr === "string" ? attr : attr.name;
|
|
43
32
|
}
|
|
44
33
|
/**
|
|
@@ -210,7 +199,7 @@ const GEN_AI_STREAM_STEP_ATTRIBUTES = [
|
|
|
210
199
|
* Span patterns from tier2-traces.v0.4.0.json.
|
|
211
200
|
* Suffix wildcard only: "HTTP POST *" matches "HTTP POST /api/..." or "POST /api/...".
|
|
212
201
|
*/
|
|
213
|
-
|
|
202
|
+
export const TIER_2_TRACE_CONTRACT = [
|
|
214
203
|
{
|
|
215
204
|
name: "HTTP GET *",
|
|
216
205
|
allowedAttributes: [
|
|
@@ -529,7 +518,7 @@ exports.TIER_2_TRACE_CONTRACT = [
|
|
|
529
518
|
* Cloud trace contract: match-all span name ("*") so no spans are dropped by name.
|
|
530
519
|
* Attribute allowlist is not used when attributeAllowlistPassthrough is true.
|
|
531
520
|
*/
|
|
532
|
-
|
|
521
|
+
export const CLOUD_TRACE_CONTRACT = [
|
|
533
522
|
{ name: "*", allowedAttributes: [] },
|
|
534
523
|
];
|
|
535
524
|
/**
|
|
@@ -537,20 +526,20 @@ exports.CLOUD_TRACE_CONTRACT = [
|
|
|
537
526
|
* Cloud: match-all so no traces are dropped by span name.
|
|
538
527
|
* Cloud-prem: Tier 2 contract (named spans only).
|
|
539
528
|
*/
|
|
540
|
-
function getTraceContract(deploymentType) {
|
|
529
|
+
export function getTraceContract(deploymentType) {
|
|
541
530
|
switch (deploymentType) {
|
|
542
|
-
case
|
|
543
|
-
return
|
|
544
|
-
case
|
|
531
|
+
case DeploymentTypeEnum.CLOUD:
|
|
532
|
+
return CLOUD_TRACE_CONTRACT;
|
|
533
|
+
case DeploymentTypeEnum.CLOUD_PREM:
|
|
545
534
|
default:
|
|
546
|
-
return
|
|
535
|
+
return TIER_2_TRACE_CONTRACT;
|
|
547
536
|
}
|
|
548
537
|
}
|
|
549
538
|
// ---------------------------------------------------------------------------
|
|
550
539
|
// Forbidden / hashed / dropped attribute names (v0.6.0 JSON)
|
|
551
540
|
// ---------------------------------------------------------------------------
|
|
552
541
|
/** Forbidden in Tier 2 (forbiddenAttributes in contract). Collector strips these entirely. */
|
|
553
|
-
|
|
542
|
+
export const FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
|
|
554
543
|
"llmobs.input",
|
|
555
544
|
"llmobs.output",
|
|
556
545
|
"prompt",
|
|
@@ -626,7 +615,7 @@ exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
|
|
|
626
615
|
* NOTE: with no hashConfig, TraceSanitizer.hashValue() emits "[redacted]", so
|
|
627
616
|
* these fail closed and never flow raw until an HMAC key is provisioned.
|
|
628
617
|
*/
|
|
629
|
-
|
|
618
|
+
export const HASHED_TIER_2_SPAN_ATTRIBUTES = [
|
|
630
619
|
"enduser-id",
|
|
631
620
|
"enduser.id",
|
|
632
621
|
"enduser_id",
|
|
@@ -644,7 +633,7 @@ exports.HASHED_TIER_2_SPAN_ATTRIBUTES = [
|
|
|
644
633
|
* pass-through mode); the SDK only hard-drops binding keys. v0.6.0 adds the
|
|
645
634
|
* dotted/kebab spellings of binding_keys for casing parity.
|
|
646
635
|
*/
|
|
647
|
-
|
|
636
|
+
export const DROPPED_HIGH_CARDINALITY_ATTRIBUTES = [
|
|
648
637
|
"binding-keys",
|
|
649
638
|
"binding.keys",
|
|
650
639
|
"binding_keys",
|
|
@@ -652,9 +641,9 @@ exports.DROPPED_HIGH_CARDINALITY_ATTRIBUTES = [
|
|
|
652
641
|
// ---------------------------------------------------------------------------
|
|
653
642
|
// Set views (for lint, guardrails: fast .has() lookup)
|
|
654
643
|
// ---------------------------------------------------------------------------
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
644
|
+
export const TIER2_FORBIDDEN_ATTRIBUTES = new Set(FORBIDDEN_TIER_2_SPAN_ATTRIBUTES);
|
|
645
|
+
export const TIER2_HASHED_ATTRIBUTES = new Set(HASHED_TIER_2_SPAN_ATTRIBUTES);
|
|
646
|
+
export const TIER2_DROPPED_ATTRIBUTES = new Set(DROPPED_HIGH_CARDINALITY_ATTRIBUTES);
|
|
658
647
|
// ---------------------------------------------------------------------------
|
|
659
648
|
// Per-deployment attribute sets (for trace-sanitizer)
|
|
660
649
|
// ---------------------------------------------------------------------------
|
|
@@ -665,10 +654,10 @@ const EMPTY_ATTRIBUTE_SET = new Set();
|
|
|
665
654
|
* Cloud: relaxed policy (no attributes dropped/hashed), match-all span names, pass-through attributes.
|
|
666
655
|
* Cloud-prem: full Tier 2 contract (forbidden/dropped/hashed), named spans only, allowlist enforced.
|
|
667
656
|
*/
|
|
668
|
-
function getTraceSanitizerAttributeSets(deploymentType) {
|
|
657
|
+
export function getTraceSanitizerAttributeSets(deploymentType) {
|
|
669
658
|
const spanDefinitions = getTraceContract(deploymentType);
|
|
670
659
|
switch (deploymentType) {
|
|
671
|
-
case
|
|
660
|
+
case DeploymentTypeEnum.CLOUD:
|
|
672
661
|
return {
|
|
673
662
|
forbiddenAttributes: EMPTY_ATTRIBUTE_SET,
|
|
674
663
|
droppedAttributes: EMPTY_ATTRIBUTE_SET,
|
|
@@ -676,12 +665,12 @@ function getTraceSanitizerAttributeSets(deploymentType) {
|
|
|
676
665
|
spanDefinitions,
|
|
677
666
|
attributeAllowlistPassthrough: true,
|
|
678
667
|
};
|
|
679
|
-
case
|
|
668
|
+
case DeploymentTypeEnum.CLOUD_PREM:
|
|
680
669
|
default:
|
|
681
670
|
return {
|
|
682
|
-
forbiddenAttributes:
|
|
683
|
-
droppedAttributes:
|
|
684
|
-
hashedAttributes:
|
|
671
|
+
forbiddenAttributes: TIER2_FORBIDDEN_ATTRIBUTES,
|
|
672
|
+
droppedAttributes: TIER2_DROPPED_ATTRIBUTES,
|
|
673
|
+
hashedAttributes: TIER2_HASHED_ATTRIBUTES,
|
|
685
674
|
spanDefinitions,
|
|
686
675
|
// Enforce per-span allowlists for cloud-prem: attributes not explicitly
|
|
687
676
|
// listed in the span definition's allowedAttributes are dropped before
|
|
@@ -694,13 +683,13 @@ function getTraceSanitizerAttributeSets(deploymentType) {
|
|
|
694
683
|
// Always-sample and value patterns (v0.3.0 samplingPolicy + lint-time)
|
|
695
684
|
// ---------------------------------------------------------------------------
|
|
696
685
|
/** Spans that should ALWAYS be sampled (samplingPolicy.alwaysSampleSpans in contract). */
|
|
697
|
-
|
|
686
|
+
export const ALWAYS_SAMPLE_SPANS = new Set(["api.execute"]);
|
|
698
687
|
/**
|
|
699
688
|
* Patterns that indicate forbidden content in attribute values (e.g. secrets in strings).
|
|
700
689
|
* No ^/$ anchors so they match secrets embedded anywhere.
|
|
701
690
|
* It's not used by TraceSanitizer, only in guardrails.
|
|
702
691
|
*/
|
|
703
|
-
|
|
692
|
+
export const FORBIDDEN_VALUE_PATTERNS = [
|
|
704
693
|
/eyJ[A-Za-z0-9_-]{10,}\.eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+/,
|
|
705
694
|
/\b(sk|pk)-[a-zA-Z0-9]{32,}\b/,
|
|
706
695
|
/Bearer\s+[A-Za-z0-9._-]{20,}/,
|
|
@@ -716,21 +705,21 @@ exports.FORBIDDEN_VALUE_PATTERNS = [
|
|
|
716
705
|
// ---------------------------------------------------------------------------
|
|
717
706
|
// Helpers (for lint, guardrails)
|
|
718
707
|
// ---------------------------------------------------------------------------
|
|
719
|
-
function isForbiddenAttribute(name) {
|
|
720
|
-
return
|
|
708
|
+
export function isForbiddenAttribute(name) {
|
|
709
|
+
return TIER2_FORBIDDEN_ATTRIBUTES.has(name);
|
|
721
710
|
}
|
|
722
|
-
function isHashedAttribute(name) {
|
|
723
|
-
return
|
|
711
|
+
export function isHashedAttribute(name) {
|
|
712
|
+
return TIER2_HASHED_ATTRIBUTES.has(name);
|
|
724
713
|
}
|
|
725
|
-
function isDroppedAttribute(name) {
|
|
726
|
-
return
|
|
714
|
+
export function isDroppedAttribute(name) {
|
|
715
|
+
return TIER2_DROPPED_ATTRIBUTES.has(name);
|
|
727
716
|
}
|
|
728
|
-
function containsForbiddenPattern(value) {
|
|
717
|
+
export function containsForbiddenPattern(value) {
|
|
729
718
|
if (typeof value !== "string")
|
|
730
719
|
return false;
|
|
731
|
-
return
|
|
720
|
+
return FORBIDDEN_VALUE_PATTERNS.some((pattern) => pattern.test(value));
|
|
732
721
|
}
|
|
733
|
-
function shouldAlwaysSample(spanName) {
|
|
734
|
-
return
|
|
722
|
+
export function shouldAlwaysSample(spanName) {
|
|
723
|
+
return ALWAYS_SAMPLE_SPANS.has(spanName);
|
|
735
724
|
}
|
|
736
725
|
//# sourceMappingURL=tier2-traces.js.map
|