@superblocksteam/telemetry 2.0.173-next.4 → 2.0.174
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 +7 -2
- package/dist/browser/console-logging.js.map +1 -1
- package/dist/browser/early-console-buffer.js +14 -12
- package/dist/browser/early-console-buffer.js.map +1 -1
- package/dist/browser/index.js +41 -12
- 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 +52 -42
- package/dist/browser/init.js.map +1 -1
- package/dist/browser/instrumentations.js +15 -11
- 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 +18 -11
- package/dist/browser/logs.js.map +1 -1
- package/dist/browser/metrics.js +12 -9
- 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 +12 -8
- package/dist/browser/resilient-exporter.js.map +1 -1
- package/dist/browser/sanitizer.js +6 -2
- package/dist/browser/sanitizer.js.map +1 -1
- package/dist/browser/traced-socket.js +18 -14
- package/dist/browser/traced-socket.js.map +1 -1
- package/dist/common/contracts/tier2-traces.js +44 -33
- package/dist/common/contracts/tier2-traces.js.map +1 -1
- package/dist/common/deployment-type.js +8 -5
- package/dist/common/deployment-type.js.map +1 -1
- package/dist/common/guardrails.js +38 -26
- package/dist/common/guardrails.js.map +1 -1
- package/dist/common/index.js +24 -8
- package/dist/common/index.js.map +1 -1
- package/dist/common/log-sanitizer.js +55 -37
- 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 +9 -5
- package/dist/common/policy-evaluator.js.map +1 -1
- package/dist/common/resource.js +25 -18
- package/dist/common/resource.js.map +1 -1
- package/dist/common/tier-hints.js +22 -12
- package/dist/common/tier-hints.js.map +1 -1
- package/dist/common/trace-sanitizer.js +10 -6
- package/dist/common/trace-sanitizer.js.map +1 -1
- package/dist/common/traced-socket-types.js +2 -1
- package/dist/common/traced-socket-types.js.map +1 -1
- package/dist/index.js +38 -6
- package/dist/index.js.map +1 -1
- package/dist/lint/forbidden-attributes.js +24 -19
- package/dist/lint/forbidden-attributes.js.map +1 -1
- package/dist/lint/index.js +8 -1
- package/dist/lint/index.js.map +1 -1
- package/dist/llmobs/index.js +9 -2
- package/dist/llmobs/index.js.map +1 -1
- package/dist/llmobs/tier1-exporter.js +12 -6
- package/dist/llmobs/tier1-exporter.js.map +1 -1
- package/dist/llmobs/tier2-summarizer.js +5 -1
- package/dist/llmobs/tier2-summarizer.js.map +1 -1
- package/dist/node/dynamic-attribute-processor.js +7 -2
- 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 +12 -8
- package/dist/node/exporters/resilient-exporter.js.map +1 -1
- package/dist/node/index.js +26 -7
- 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 +72 -66
- package/dist/node/init.js.map +1 -1
- package/dist/node/local-obs-mode.js +4 -1
- 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 +55 -47
- package/dist/node/log-processor.js.map +1 -1
- package/dist/node/metrics-client.js +5 -1
- package/dist/node/metrics-client.js.map +1 -1
- package/dist/node/safe-logger.js +12 -8
- 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 +10 -6
- package/dist/node/sanitizing-processor.js.map +1 -1
- package/dist/node/service-tracers.js +10 -7
- 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 +52 -48
- package/dist/node/traced-socket.js.map +1 -1
- package/dist/npm-registry/emitter.js +47 -34
- package/dist/npm-registry/emitter.js.map +1 -1
- package/dist/npm-registry/index.js +19 -3
- package/dist/npm-registry/index.js.map +1 -1
- package/dist/npm-registry/sanitize.js +27 -16
- package/dist/npm-registry/sanitize.js.map +1 -1
- package/dist/npm-registry/spans.js +12 -7
- 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 +12 -6
- package/dist/testing/in-memory-exporter.js.map +1 -1
- package/dist/testing/index.js +15 -3
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/metrics-capture.js +15 -12
- package/dist/testing/metrics-capture.js.map +1 -1
- package/dist/testing/test-init.js +31 -24
- package/dist/testing/test-init.js.map +1 -1
- package/dist/types/index.js +17 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/policy.js +24 -21
- package/dist/types/policy.js.map +1 -1
- package/dist-esm/browser/console-logging.d.ts +18 -0
- package/dist-esm/browser/console-logging.d.ts.map +1 -0
- package/dist-esm/browser/console-logging.js +27 -0
- package/dist-esm/browser/console-logging.js.map +1 -0
- package/dist-esm/browser/early-console-buffer.d.ts +49 -0
- package/dist-esm/browser/early-console-buffer.d.ts.map +1 -0
- package/dist-esm/browser/early-console-buffer.js +181 -0
- package/dist-esm/browser/early-console-buffer.js.map +1 -0
- package/dist-esm/browser/index.d.ts +18 -0
- package/dist-esm/browser/index.d.ts.map +1 -0
- package/dist-esm/browser/index.js +23 -0
- package/dist-esm/browser/index.js.map +1 -0
- package/dist-esm/browser/init.d.ts +100 -0
- package/dist-esm/browser/init.d.ts.map +1 -0
- package/dist-esm/browser/init.js +317 -0
- package/dist-esm/browser/init.js.map +1 -0
- package/dist-esm/browser/instrumentations.d.ts +67 -0
- package/dist-esm/browser/instrumentations.d.ts.map +1 -0
- package/dist-esm/browser/instrumentations.js +79 -0
- package/dist-esm/browser/instrumentations.js.map +1 -0
- package/dist-esm/browser/logs.d.ts +57 -0
- package/dist-esm/browser/logs.d.ts.map +1 -0
- package/dist-esm/browser/logs.js +80 -0
- package/dist-esm/browser/logs.js.map +1 -0
- package/dist-esm/browser/metrics.d.ts +29 -0
- package/dist-esm/browser/metrics.d.ts.map +1 -0
- package/dist-esm/browser/metrics.js +46 -0
- package/dist-esm/browser/metrics.js.map +1 -0
- package/dist-esm/browser/resilient-exporter.d.ts +43 -0
- package/dist-esm/browser/resilient-exporter.d.ts.map +1 -0
- package/dist-esm/browser/resilient-exporter.js +84 -0
- package/dist-esm/browser/resilient-exporter.js.map +1 -0
- package/dist-esm/browser/sanitizer.d.ts +35 -0
- package/dist-esm/browser/sanitizer.d.ts.map +1 -0
- package/dist-esm/browser/sanitizer.js +207 -0
- package/dist-esm/browser/sanitizer.js.map +1 -0
- package/dist-esm/browser/traced-socket.d.ts +102 -0
- package/dist-esm/browser/traced-socket.d.ts.map +1 -0
- package/dist-esm/browser/traced-socket.js +199 -0
- package/dist-esm/browser/traced-socket.js.map +1 -0
- package/dist-esm/common/contracts/tier2-traces.d.ts +116 -0
- package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -0
- package/dist-esm/common/contracts/tier2-traces.js +725 -0
- package/dist-esm/common/contracts/tier2-traces.js.map +1 -0
- package/dist-esm/common/deployment-type.d.ts +18 -0
- package/dist-esm/common/deployment-type.d.ts.map +1 -0
- package/dist-esm/common/deployment-type.js +27 -0
- package/dist-esm/common/deployment-type.js.map +1 -0
- package/dist-esm/common/guardrails.d.ts +132 -0
- package/dist-esm/common/guardrails.d.ts.map +1 -0
- package/dist-esm/common/guardrails.js +230 -0
- package/dist-esm/common/guardrails.js.map +1 -0
- package/dist-esm/common/index.d.ts +17 -0
- package/dist-esm/common/index.d.ts.map +1 -0
- package/dist-esm/common/index.js +17 -0
- package/dist-esm/common/index.js.map +1 -0
- package/dist-esm/common/log-sanitizer.d.ts +163 -0
- package/dist-esm/common/log-sanitizer.d.ts.map +1 -0
- package/dist-esm/common/log-sanitizer.js +745 -0
- package/dist-esm/common/log-sanitizer.js.map +1 -0
- package/dist-esm/common/policy-evaluator.d.ts +103 -0
- package/dist-esm/common/policy-evaluator.d.ts.map +1 -0
- package/dist-esm/common/policy-evaluator.js +196 -0
- package/dist-esm/common/policy-evaluator.js.map +1 -0
- package/dist-esm/common/resource.d.ts +79 -0
- package/dist-esm/common/resource.d.ts.map +1 -0
- package/dist-esm/common/resource.js +121 -0
- package/dist-esm/common/resource.js.map +1 -0
- package/dist-esm/common/tier-hints.d.ts +182 -0
- package/dist-esm/common/tier-hints.d.ts.map +1 -0
- package/dist-esm/common/tier-hints.js +199 -0
- package/dist-esm/common/tier-hints.js.map +1 -0
- package/dist-esm/common/trace-sanitizer.d.ts +82 -0
- package/dist-esm/common/trace-sanitizer.d.ts.map +1 -0
- package/dist-esm/common/trace-sanitizer.js +230 -0
- package/dist-esm/common/trace-sanitizer.js.map +1 -0
- package/dist-esm/common/traced-socket-types.d.ts +43 -0
- package/dist-esm/common/traced-socket-types.d.ts.map +1 -0
- package/dist-esm/common/traced-socket-types.js +16 -0
- package/dist-esm/common/traced-socket-types.js.map +1 -0
- package/dist-esm/index.d.ts +45 -0
- package/dist-esm/index.d.ts.map +1 -0
- package/dist-esm/index.js +56 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/lint/forbidden-attributes.d.ts +149 -0
- package/dist-esm/lint/forbidden-attributes.d.ts.map +1 -0
- package/dist-esm/lint/forbidden-attributes.js +210 -0
- package/dist-esm/lint/forbidden-attributes.js.map +1 -0
- package/dist-esm/lint/index.d.ts +9 -0
- package/dist-esm/lint/index.d.ts.map +1 -0
- package/dist-esm/lint/index.js +9 -0
- package/dist-esm/lint/index.js.map +1 -0
- package/dist-esm/llmobs/index.d.ts +22 -0
- package/dist-esm/llmobs/index.d.ts.map +1 -0
- package/dist-esm/llmobs/index.js +22 -0
- package/dist-esm/llmobs/index.js.map +1 -0
- package/dist-esm/llmobs/tier1-exporter.d.ts +146 -0
- package/dist-esm/llmobs/tier1-exporter.d.ts.map +1 -0
- package/dist-esm/llmobs/tier1-exporter.js +193 -0
- package/dist-esm/llmobs/tier1-exporter.js.map +1 -0
- package/dist-esm/llmobs/tier2-summarizer.d.ts +268 -0
- package/dist-esm/llmobs/tier2-summarizer.d.ts.map +1 -0
- package/dist-esm/llmobs/tier2-summarizer.js +652 -0
- package/dist-esm/llmobs/tier2-summarizer.js.map +1 -0
- package/dist-esm/node/dynamic-attribute-processor.d.ts +43 -0
- package/dist-esm/node/dynamic-attribute-processor.d.ts.map +1 -0
- package/dist-esm/node/dynamic-attribute-processor.js +74 -0
- package/dist-esm/node/dynamic-attribute-processor.js.map +1 -0
- package/dist-esm/node/exporters/resilient-exporter.d.ts +91 -0
- package/dist-esm/node/exporters/resilient-exporter.d.ts.map +1 -0
- package/dist-esm/node/exporters/resilient-exporter.js +132 -0
- package/dist-esm/node/exporters/resilient-exporter.js.map +1 -0
- package/dist-esm/node/index.d.ts +13 -0
- package/dist-esm/node/index.d.ts.map +1 -0
- package/dist-esm/node/index.js +13 -0
- package/dist-esm/node/index.js.map +1 -0
- package/dist-esm/node/init.d.ts +97 -0
- package/dist-esm/node/init.d.ts.map +1 -0
- package/dist-esm/node/init.js +359 -0
- package/dist-esm/node/init.js.map +1 -0
- package/dist-esm/node/local-obs-mode.d.ts +17 -0
- package/dist-esm/node/local-obs-mode.d.ts.map +1 -0
- package/dist-esm/node/local-obs-mode.js +19 -0
- package/dist-esm/node/local-obs-mode.js.map +1 -0
- package/dist-esm/node/log-processor.d.ts +132 -0
- package/dist-esm/node/log-processor.d.ts.map +1 -0
- package/dist-esm/node/log-processor.js +389 -0
- package/dist-esm/node/log-processor.js.map +1 -0
- package/dist-esm/node/metrics-client.d.ts +88 -0
- package/dist-esm/node/metrics-client.d.ts.map +1 -0
- package/dist-esm/node/metrics-client.js +205 -0
- package/dist-esm/node/metrics-client.js.map +1 -0
- package/dist-esm/node/safe-logger.d.ts +55 -0
- package/dist-esm/node/safe-logger.d.ts.map +1 -0
- package/dist-esm/node/safe-logger.js +154 -0
- package/dist-esm/node/safe-logger.js.map +1 -0
- package/dist-esm/node/sanitizing-processor.d.ts +67 -0
- package/dist-esm/node/sanitizing-processor.d.ts.map +1 -0
- package/dist-esm/node/sanitizing-processor.js +163 -0
- package/dist-esm/node/sanitizing-processor.js.map +1 -0
- package/dist-esm/node/service-tracers.d.ts +52 -0
- package/dist-esm/node/service-tracers.d.ts.map +1 -0
- package/dist-esm/node/service-tracers.js +78 -0
- package/dist-esm/node/service-tracers.js.map +1 -0
- package/dist-esm/node/traced-socket.d.ts +120 -0
- package/dist-esm/node/traced-socket.d.ts.map +1 -0
- package/dist-esm/node/traced-socket.js +334 -0
- package/dist-esm/node/traced-socket.js.map +1 -0
- package/dist-esm/npm-registry/emitter.d.ts +330 -0
- package/dist-esm/npm-registry/emitter.d.ts.map +1 -0
- package/dist-esm/npm-registry/emitter.js +546 -0
- package/dist-esm/npm-registry/emitter.js.map +1 -0
- package/dist-esm/npm-registry/index.d.ts +12 -0
- package/dist-esm/npm-registry/index.d.ts.map +1 -0
- package/dist-esm/npm-registry/index.js +12 -0
- package/dist-esm/npm-registry/index.js.map +1 -0
- package/dist-esm/npm-registry/sanitize.d.ts +174 -0
- package/dist-esm/npm-registry/sanitize.d.ts.map +1 -0
- package/dist-esm/npm-registry/sanitize.js +331 -0
- package/dist-esm/npm-registry/sanitize.js.map +1 -0
- package/dist-esm/npm-registry/spans.d.ts +61 -0
- package/dist-esm/npm-registry/spans.d.ts.map +1 -0
- package/dist-esm/npm-registry/spans.js +86 -0
- package/dist-esm/npm-registry/spans.js.map +1 -0
- package/dist-esm/package.json +1 -0
- package/dist-esm/testing/in-memory-exporter.d.ts +179 -0
- package/dist-esm/testing/in-memory-exporter.d.ts.map +1 -0
- package/dist-esm/testing/in-memory-exporter.js +250 -0
- package/dist-esm/testing/in-memory-exporter.js.map +1 -0
- package/dist-esm/testing/index.d.ts +9 -0
- package/dist-esm/testing/index.d.ts.map +1 -0
- package/dist-esm/testing/index.js +9 -0
- package/dist-esm/testing/index.js.map +1 -0
- package/dist-esm/testing/metrics-capture.d.ts +29 -0
- package/dist-esm/testing/metrics-capture.d.ts.map +1 -0
- package/dist-esm/testing/metrics-capture.js +71 -0
- package/dist-esm/testing/metrics-capture.js.map +1 -0
- package/dist-esm/testing/test-init.d.ts +80 -0
- package/dist-esm/testing/test-init.d.ts.map +1 -0
- package/dist-esm/testing/test-init.js +137 -0
- package/dist-esm/testing/test-init.js.map +1 -0
- package/dist-esm/types/index.d.ts +84 -0
- package/dist-esm/types/index.d.ts.map +1 -0
- package/dist-esm/types/index.js +7 -0
- package/dist-esm/types/index.js.map +1 -0
- package/dist-esm/types/policy.d.ts +92 -0
- package/dist-esm/types/policy.d.ts.map +1 -0
- package/dist-esm/types/policy.js +122 -0
- package/dist-esm/types/policy.js.map +1 -0
- package/package.json +17 -11
package/dist/browser/logs.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Browser Log Provider
|
|
3
4
|
*
|
|
@@ -7,10 +8,16 @@
|
|
|
7
8
|
*
|
|
8
9
|
* This is the ONLY approved way to init log telemetry in browser contexts.
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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");
|
|
14
21
|
// Singleton
|
|
15
22
|
let instance;
|
|
16
23
|
function validateConfig(config) {
|
|
@@ -44,22 +51,22 @@ function validateConfig(config) {
|
|
|
44
51
|
* logger.emit({ severityNumber: SeverityNumber.INFO, body: 'hello' });
|
|
45
52
|
* ```
|
|
46
53
|
*/
|
|
47
|
-
|
|
54
|
+
function initBrowserLogs(config) {
|
|
48
55
|
validateConfig(config);
|
|
49
56
|
if (instance) {
|
|
50
57
|
console.warn("[Telemetry] Browser log provider already initialized");
|
|
51
58
|
return instance;
|
|
52
59
|
}
|
|
53
|
-
const exporter = new OTLPLogExporter({ url: config.otlpUrl });
|
|
54
|
-
const sanitizer = createSanitizingLogProcessor();
|
|
55
|
-
const batchProcessor = new BatchLogRecordProcessor({ exporter });
|
|
56
|
-
const provider = new LoggerProvider({
|
|
60
|
+
const exporter = new exporter_logs_otlp_http_1.OTLPLogExporter({ url: config.otlpUrl });
|
|
61
|
+
const sanitizer = (0, sanitizer_js_1.createSanitizingLogProcessor)();
|
|
62
|
+
const batchProcessor = new sdk_logs_1.BatchLogRecordProcessor({ exporter });
|
|
63
|
+
const provider = new sdk_logs_1.LoggerProvider({
|
|
57
64
|
resource: config.resource,
|
|
58
65
|
processors: [sanitizer, batchProcessor],
|
|
59
66
|
});
|
|
60
67
|
// Wire the EarlyConsoleBuffer so buffered pre-init logs are flushed now.
|
|
61
68
|
const otelLogger = provider.getLogger(config.serviceName, "1.0.0");
|
|
62
|
-
|
|
69
|
+
early_console_buffer_js_1.default.getInstance().enableOpenTelemetry(otelLogger);
|
|
63
70
|
instance = {
|
|
64
71
|
getLogger: (name) => provider.getLogger(name ?? config.serviceName, "1.0.0"),
|
|
65
72
|
forceFlush: () => provider.forceFlush(),
|
|
@@ -74,7 +81,7 @@ export function initBrowserLogs(config) {
|
|
|
74
81
|
* Reset the browser log provider singleton (for testing only).
|
|
75
82
|
* @internal
|
|
76
83
|
*/
|
|
77
|
-
|
|
84
|
+
function resetBrowserLogs() {
|
|
78
85
|
instance = undefined;
|
|
79
86
|
}
|
|
80
87
|
//# 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":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/browser/logs.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;AAkEH,0CAkCC;AAMD,4CAEC;AAzGD,oFAAyE;AAEzE,sDAGiC;AAEjC,wFAA2D;AAC3D,iDAA8D;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,SAAgB,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,yCAAe,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAA,2CAA4B,GAAE,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,kCAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,IAAI,yBAAc,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,iCAAkB,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,SAAgB,gBAAgB;IAC9B,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC"}
|
package/dist/browser/metrics.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Browser Metrics Bootstrap
|
|
3
4
|
*
|
|
4
5
|
* Initializes a MeterProvider for browser contexts using OTLP HTTP export.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.initBrowserMetrics = initBrowserMetrics;
|
|
9
|
+
const api_1 = require("@opentelemetry/api");
|
|
10
|
+
const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
|
|
11
|
+
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
9
12
|
/**
|
|
10
13
|
* Browser metrics export interval.
|
|
11
14
|
*
|
|
@@ -24,20 +27,20 @@ const BROWSER_EXPORT_INTERVAL_MS = 10_000;
|
|
|
24
27
|
* @param config - Browser metrics configuration
|
|
25
28
|
* @returns Browser metrics instance with getMeter and shutdown
|
|
26
29
|
*/
|
|
27
|
-
|
|
28
|
-
const exporter = new OTLPMetricExporter({
|
|
30
|
+
function initBrowserMetrics(config) {
|
|
31
|
+
const exporter = new exporter_metrics_otlp_http_1.OTLPMetricExporter({
|
|
29
32
|
url: config.otlpUrl,
|
|
30
|
-
temporalityPreference: AggregationTemporality.DELTA,
|
|
33
|
+
temporalityPreference: sdk_metrics_1.AggregationTemporality.DELTA,
|
|
31
34
|
});
|
|
32
|
-
const reader = new PeriodicExportingMetricReader({
|
|
35
|
+
const reader = new sdk_metrics_1.PeriodicExportingMetricReader({
|
|
33
36
|
exporter,
|
|
34
37
|
exportIntervalMillis: BROWSER_EXPORT_INTERVAL_MS,
|
|
35
38
|
});
|
|
36
|
-
const provider = new MeterProvider({
|
|
39
|
+
const provider = new sdk_metrics_1.MeterProvider({
|
|
37
40
|
resource: config.resource,
|
|
38
41
|
readers: [reader],
|
|
39
42
|
});
|
|
40
|
-
metrics.setGlobalMeterProvider(provider);
|
|
43
|
+
api_1.metrics.setGlobalMeterProvider(provider);
|
|
41
44
|
return {
|
|
42
45
|
getMeter: (name) => provider.getMeter(name ?? config.serviceName),
|
|
43
46
|
shutdown: () => provider.shutdown(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/browser/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/browser/metrics.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA2CH,gDAwBC;AAjED,4CAAyD;AACzD,0FAA+E;AAE/E,4DAIoC;AAepC;;;;;;;GAOG;AACH,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAChC,MAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,+CAAkB,CAAC;QACtC,GAAG,EAAE,MAAM,CAAC,OAAO;QACnB,qBAAqB,EAAE,oCAAsB,CAAC,KAAK;KACpD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,2CAA6B,CAAC;QAC/C,QAAQ;QACR,oBAAoB,EAAE,0BAA0B;KACjD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,2BAAa,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB,CAAC,CAAC;IAEH,aAAO,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 {
|
|
7
|
+
import { 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,
|
|
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;AACrE,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,17 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Browser Resilient Exporter
|
|
3
4
|
*
|
|
4
5
|
* Simplified resilient exporter for browser environments.
|
|
5
6
|
* Ensures export failures don't affect the main thread.
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BrowserResilientExporter = void 0;
|
|
10
|
+
const core_1 = require("@opentelemetry/core");
|
|
8
11
|
/**
|
|
9
12
|
* Browser-compatible resilient exporter.
|
|
10
13
|
*
|
|
11
14
|
* CRITICAL: Export failures must never block or affect the main thread.
|
|
12
15
|
* This wrapper catches all errors and timeouts.
|
|
13
16
|
*/
|
|
14
|
-
|
|
17
|
+
class BrowserResilientExporter {
|
|
15
18
|
delegate;
|
|
16
19
|
maxQueueSize;
|
|
17
20
|
exportTimeoutMs;
|
|
@@ -30,13 +33,13 @@ export class BrowserResilientExporter {
|
|
|
30
33
|
export(spans, resultCallback) {
|
|
31
34
|
// Reject during shutdown
|
|
32
35
|
if (this.shuttingDown) {
|
|
33
|
-
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
36
|
+
resultCallback({ code: core_1.ExportResultCode.SUCCESS });
|
|
34
37
|
return;
|
|
35
38
|
}
|
|
36
39
|
// Check backpressure
|
|
37
40
|
if (this.queuedCount + spans.length > this.maxQueueSize) {
|
|
38
41
|
this.onDrop(spans.length, "queue_full");
|
|
39
|
-
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
42
|
+
resultCallback({ code: core_1.ExportResultCode.SUCCESS });
|
|
40
43
|
return;
|
|
41
44
|
}
|
|
42
45
|
this.queuedCount += spans.length;
|
|
@@ -48,7 +51,7 @@ export class BrowserResilientExporter {
|
|
|
48
51
|
completed = true;
|
|
49
52
|
this.queuedCount -= spans.length;
|
|
50
53
|
this.onDrop(spans.length, "timeout");
|
|
51
|
-
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
54
|
+
resultCallback({ code: core_1.ExportResultCode.SUCCESS });
|
|
52
55
|
}, this.exportTimeoutMs);
|
|
53
56
|
try {
|
|
54
57
|
this.delegate.export(spans, (result) => {
|
|
@@ -57,10 +60,10 @@ export class BrowserResilientExporter {
|
|
|
57
60
|
completed = true;
|
|
58
61
|
clearTimeout(timeoutId);
|
|
59
62
|
this.queuedCount -= spans.length;
|
|
60
|
-
if (result.code !== ExportResultCode.SUCCESS) {
|
|
63
|
+
if (result.code !== core_1.ExportResultCode.SUCCESS) {
|
|
61
64
|
this.onDrop(spans.length, "export_failed");
|
|
62
65
|
}
|
|
63
|
-
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
66
|
+
resultCallback({ code: core_1.ExportResultCode.SUCCESS });
|
|
64
67
|
});
|
|
65
68
|
}
|
|
66
69
|
catch {
|
|
@@ -70,7 +73,7 @@ export class BrowserResilientExporter {
|
|
|
70
73
|
clearTimeout(timeoutId);
|
|
71
74
|
this.queuedCount -= spans.length;
|
|
72
75
|
this.onDrop(spans.length, "export_failed");
|
|
73
|
-
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
76
|
+
resultCallback({ code: core_1.ExportResultCode.SUCCESS });
|
|
74
77
|
}
|
|
75
78
|
}
|
|
76
79
|
async shutdown() {
|
|
@@ -81,4 +84,5 @@ export class BrowserResilientExporter {
|
|
|
81
84
|
return this.delegate.forceFlush?.() ?? Promise.resolve();
|
|
82
85
|
}
|
|
83
86
|
}
|
|
87
|
+
exports.BrowserResilientExporter = BrowserResilientExporter;
|
|
84
88
|
//# sourceMappingURL=resilient-exporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilient-exporter.js","sourceRoot":"","sources":["../../src/browser/resilient-exporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"resilient-exporter.js","sourceRoot":"","sources":["../../src/browser/resilient-exporter.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8CAAqE;AAoBrE;;;;;GAKG;AACH,MAAa,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,uBAAgB,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,uBAAgB,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,uBAAgB,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,uBAAgB,CAAC,OAAO,EAAE,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAC7C,CAAC;gBAED,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,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,uBAAgB,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;AAlFD,4DAkFC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Browser PII Sanitizing Processors
|
|
3
4
|
*
|
|
@@ -10,6 +11,9 @@
|
|
|
10
11
|
* - SanitizingLogProcessor: redacts sensitive log record attributes and
|
|
11
12
|
* replaces email-like patterns in log body text.
|
|
12
13
|
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createSanitizingSpanProcessor = createSanitizingSpanProcessor;
|
|
16
|
+
exports.createSanitizingLogProcessor = createSanitizingLogProcessor;
|
|
13
17
|
// ============================================================================
|
|
14
18
|
// Constants
|
|
15
19
|
// ============================================================================
|
|
@@ -192,7 +196,7 @@ class BrowserSanitizingLogProcessor {
|
|
|
192
196
|
* @param config - Optional configuration for additional key patterns / URL params
|
|
193
197
|
* @returns A SpanProcessor suitable for use in a browser WebTracerProvider
|
|
194
198
|
*/
|
|
195
|
-
|
|
199
|
+
function createSanitizingSpanProcessor(config) {
|
|
196
200
|
return new SanitizingSpanProcessor(config);
|
|
197
201
|
}
|
|
198
202
|
/**
|
|
@@ -201,7 +205,7 @@ export function createSanitizingSpanProcessor(config) {
|
|
|
201
205
|
* @param config - Optional configuration for additional key patterns
|
|
202
206
|
* @returns A LogRecordProcessor suitable for use in a browser log provider
|
|
203
207
|
*/
|
|
204
|
-
|
|
208
|
+
function createSanitizingLogProcessor(config) {
|
|
205
209
|
return new BrowserSanitizingLogProcessor(config);
|
|
206
210
|
}
|
|
207
211
|
//# sourceMappingURL=sanitizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/browser/sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/browser/sanitizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Browser-side TracedSocket for WebSocket tracing.
|
|
3
4
|
*
|
|
@@ -15,11 +16,13 @@
|
|
|
15
16
|
* initBrowserTelemetry() (see browser/init.ts). The carrier is the
|
|
16
17
|
* `request` object itself — the same convention as the server side.
|
|
17
18
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.BrowserTracedSocket = void 0;
|
|
21
|
+
const api_1 = require("@opentelemetry/api");
|
|
22
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
20
23
|
const MESSAGING_ATTRS = {
|
|
21
|
-
[SEMATTRS_MESSAGING_SYSTEM]: "ws",
|
|
22
|
-
[SEMATTRS_MESSAGING_DESTINATION_KIND]: "websocket",
|
|
24
|
+
[semantic_conventions_1.SEMATTRS_MESSAGING_SYSTEM]: "ws",
|
|
25
|
+
[semantic_conventions_1.SEMATTRS_MESSAGING_DESTINATION_KIND]: "websocket",
|
|
23
26
|
};
|
|
24
27
|
/**
|
|
25
28
|
* BrowserTracedSocket wraps a WebSocket and provides:
|
|
@@ -41,13 +44,13 @@ const MESSAGING_ATTRS = {
|
|
|
41
44
|
* Lifecycle spans (ws.connect, ws.disconnect) are attached automatically via
|
|
42
45
|
* WebSocket open/close event listeners.
|
|
43
46
|
*/
|
|
44
|
-
|
|
47
|
+
class BrowserTracedSocket {
|
|
45
48
|
ws;
|
|
46
49
|
tracer;
|
|
47
50
|
connectStartTime;
|
|
48
51
|
constructor(ws, config) {
|
|
49
52
|
this.ws = ws;
|
|
50
|
-
this.tracer = config.tracer ?? trace.getTracer("superblocks-ws", "0.0.0");
|
|
53
|
+
this.tracer = config.tracer ?? api_1.trace.getTracer("superblocks-ws", "0.0.0");
|
|
51
54
|
this.connectStartTime = performance.now();
|
|
52
55
|
this.ws.addEventListener("open", this.onOpen);
|
|
53
56
|
this.ws.addEventListener("close", this.onClose);
|
|
@@ -67,7 +70,7 @@ export class BrowserTracedSocket {
|
|
|
67
70
|
? performance.now() - this.connectStartTime
|
|
68
71
|
: undefined;
|
|
69
72
|
this.tracer.startActiveSpan("ws.connect", {
|
|
70
|
-
kind: SpanKind.CLIENT,
|
|
73
|
+
kind: api_1.SpanKind.CLIENT,
|
|
71
74
|
attributes: {
|
|
72
75
|
...MESSAGING_ATTRS,
|
|
73
76
|
...(durationMs !== undefined
|
|
@@ -88,7 +91,7 @@ export class BrowserTracedSocket {
|
|
|
88
91
|
const code = ev.code ?? 1000;
|
|
89
92
|
const reason = ev.reason ?? "";
|
|
90
93
|
this.tracer.startActiveSpan("ws.disconnect", {
|
|
91
|
-
kind: SpanKind.CLIENT,
|
|
94
|
+
kind: api_1.SpanKind.CLIENT,
|
|
92
95
|
attributes: {
|
|
93
96
|
...MESSAGING_ATTRS,
|
|
94
97
|
"ws.close_code": code,
|
|
@@ -109,7 +112,7 @@ export class BrowserTracedSocket {
|
|
|
109
112
|
*/
|
|
110
113
|
recordReconnect({ attempt }) {
|
|
111
114
|
this.tracer.startActiveSpan("ws.reconnect", {
|
|
112
|
-
kind: SpanKind.CLIENT,
|
|
115
|
+
kind: api_1.SpanKind.CLIENT,
|
|
113
116
|
attributes: {
|
|
114
117
|
...MESSAGING_ATTRS,
|
|
115
118
|
"ws.reconnect_attempt": attempt,
|
|
@@ -136,7 +139,7 @@ export class BrowserTracedSocket {
|
|
|
136
139
|
if (message.request.traceparent || message.request.tracestate) {
|
|
137
140
|
return message;
|
|
138
141
|
}
|
|
139
|
-
propagation.inject(
|
|
142
|
+
api_1.propagation.inject(api_1.context.active(), message.request);
|
|
140
143
|
return message;
|
|
141
144
|
}
|
|
142
145
|
/**
|
|
@@ -152,7 +155,7 @@ export class BrowserTracedSocket {
|
|
|
152
155
|
*/
|
|
153
156
|
traceOutboundCall(method) {
|
|
154
157
|
return this.tracer.startActiveSpan(`WS CLIENT ${method}`, {
|
|
155
|
-
kind: SpanKind.CLIENT,
|
|
158
|
+
kind: api_1.SpanKind.CLIENT,
|
|
156
159
|
attributes: {
|
|
157
160
|
...MESSAGING_ATTRS,
|
|
158
161
|
"ws.method": method,
|
|
@@ -174,10 +177,10 @@ export class BrowserTracedSocket {
|
|
|
174
177
|
return;
|
|
175
178
|
}
|
|
176
179
|
const method = message.request.method ?? "unknown";
|
|
177
|
-
const parentCtx = propagation.extract(ROOT_CONTEXT, message.request);
|
|
178
|
-
|
|
180
|
+
const parentCtx = api_1.propagation.extract(api_1.ROOT_CONTEXT, message.request);
|
|
181
|
+
api_1.context.with(parentCtx, () => {
|
|
179
182
|
this.tracer.startActiveSpan(`WS SERVER ${method}`, {
|
|
180
|
-
kind: SpanKind.CONSUMER,
|
|
183
|
+
kind: api_1.SpanKind.CONSUMER,
|
|
181
184
|
attributes: {
|
|
182
185
|
...MESSAGING_ATTRS,
|
|
183
186
|
"ws.method": method,
|
|
@@ -196,4 +199,5 @@ export class BrowserTracedSocket {
|
|
|
196
199
|
this.ws.removeEventListener("close", this.onClose);
|
|
197
200
|
}
|
|
198
201
|
}
|
|
202
|
+
exports.BrowserTracedSocket = BrowserTracedSocket;
|
|
199
203
|
//# sourceMappingURL=traced-socket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traced-socket.js","sourceRoot":"","sources":["../../src/browser/traced-socket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG
|
|
1
|
+
{"version":3,"file":"traced-socket.js","sourceRoot":"","sources":["../../src/browser/traced-socket.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,4CAO4B;AAC5B,8EAG6C;AAsB7C,MAAM,eAAe,GAAG;IACtB,CAAC,gDAAyB,CAAC,EAAE,IAAI;IACjC,CAAC,0DAAmC,CAAC,EAAE,WAAW;CAC1C,CAAC;AAEX;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,mBAAmB;IAKX;IAJF,MAAM,CAAS;IACxB,gBAAgB,CAAqB;IAE7C,YACmB,EAAiB,EAClC,MAAiC;QADhB,OAAE,GAAF,EAAE,CAAe;QAGlC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,WAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAE1C,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,4EAA4E;QAC5E,2EAA2E;QAC3E,mDAAmD;QACnD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,qBAAqB;IACrB,qEAAqE;IAEpD,MAAM,GAAG,CAAC,MAAe,EAAQ,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB;gBACtC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB;gBAC3C,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,CAAC,MAAM,CAAC,eAAe,CACzB,YAAY,EACZ;gBACE,IAAI,EAAE,cAAQ,CAAC,MAAM;gBACrB,UAAU,EAAE;oBACV,GAAG,eAAe;oBAClB,GAAG,CAAC,UAAU,KAAK,SAAS;wBAC1B,CAAC,CAAC,EAAE,wBAAwB,EAAE,UAAU,EAAE;wBAC1C,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,EACD,CAAC,IAAI,EAAE,EAAE;gBACP,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IAEe,OAAO,GAAG,CAAC,KAAc,EAAQ,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,KAA2C,CAAC;YACvD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;YAE/B,IAAI,CAAC,MAAM,CAAC,eAAe,CACzB,eAAe,EACf;gBACE,IAAI,EAAE,cAAQ,CAAC,MAAM;gBACrB,UAAU,EAAE;oBACV,GAAG,eAAe;oBAClB,eAAe,EAAE,IAAI;oBACrB,iBAAiB,EAAE,MAAM;iBAC1B;aACF,EACD,CAAC,IAAI,EAAE,EAAE;gBACP,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;IAEF;;;;OAIG;IACI,eAAe,CAAC,EAAE,OAAO,EAAuB;QACrD,IAAI,CAAC,MAAM,CAAC,eAAe,CACzB,cAAc,EACd;YACE,IAAI,EAAE,cAAQ,CAAC,MAAM;YACrB,UAAU,EAAE;gBACV,GAAG,eAAe;gBAClB,sBAAsB,EAAE,OAAO;aAChC;SACF,EACD,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC,CACF,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,WAAW;IACX,qEAAqE;IAErE;;;;;;OAMG;IACI,gBAAgB,CACrB,OAA8B;QAE9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,iEAAiE;QACjE,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,iBAAW,CAAC,MAAM,CAChB,aAAO,CAAC,MAAM,EAAE,EAChB,OAAO,CAAC,OAA6C,CACtD,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;OAUG;IACI,iBAAiB,CAAC,MAAc;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAChC,aAAa,MAAM,EAAE,EACrB;YACE,IAAI,EAAE,cAAQ,CAAC,MAAM;YACrB,UAAU,EAAE;gBACV,GAAG,eAAe;gBAClB,WAAW,EAAE,MAAM;aACpB;SACF,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CACf,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,UAAU;IACV,qEAAqE;IAErE;;;;;;OAMG;IACI,aAAa,CAAC,OAA8B;QACjD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;QACnD,MAAM,SAAS,GAAG,iBAAW,CAAC,OAAO,CACnC,kBAAY,EACZ,OAAO,CAAC,OAA4C,CACrD,CAAC;QAEF,aAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,eAAe,CACzB,aAAa,MAAM,EAAE,EACrB;gBACE,IAAI,EAAE,cAAQ,CAAC,QAAQ;gBACvB,UAAU,EAAE;oBACV,GAAG,eAAe;oBAClB,WAAW,EAAE,MAAM;iBACpB;aACF,EACD,CAAC,IAAI,EAAE,EAAE;gBACP,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,UAAU;IACV,qEAAqE;IAErE,qEAAqE;IAC9D,OAAO;QACZ,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;CACF;AAvMD,kDAuMC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Tier 2 Traces Contract (v0.6.0) — TypeScript mirror.
|
|
3
4
|
*
|
|
@@ -26,8 +27,18 @@
|
|
|
26
27
|
* (ESLint), guardrails (dev-time warnings), and Collector config generation.
|
|
27
28
|
* "request handler *" is a local extension for Express instrumentation (not in the JSON).
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.FORBIDDEN_VALUE_PATTERNS = exports.ALWAYS_SAMPLE_SPANS = exports.TIER2_DROPPED_ATTRIBUTES = exports.TIER2_HASHED_ATTRIBUTES = exports.TIER2_FORBIDDEN_ATTRIBUTES = exports.DROPPED_HIGH_CARDINALITY_ATTRIBUTES = exports.HASHED_TIER_2_SPAN_ATTRIBUTES = exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = exports.CLOUD_TRACE_CONTRACT = exports.TIER_2_TRACE_CONTRACT = void 0;
|
|
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) {
|
|
31
42
|
return typeof attr === "string" ? attr : attr.name;
|
|
32
43
|
}
|
|
33
44
|
/**
|
|
@@ -199,7 +210,7 @@ const GEN_AI_STREAM_STEP_ATTRIBUTES = [
|
|
|
199
210
|
* Span patterns from tier2-traces.v0.4.0.json.
|
|
200
211
|
* Suffix wildcard only: "HTTP POST *" matches "HTTP POST /api/..." or "POST /api/...".
|
|
201
212
|
*/
|
|
202
|
-
|
|
213
|
+
exports.TIER_2_TRACE_CONTRACT = [
|
|
203
214
|
{
|
|
204
215
|
name: "HTTP GET *",
|
|
205
216
|
allowedAttributes: [
|
|
@@ -518,7 +529,7 @@ export const TIER_2_TRACE_CONTRACT = [
|
|
|
518
529
|
* Cloud trace contract: match-all span name ("*") so no spans are dropped by name.
|
|
519
530
|
* Attribute allowlist is not used when attributeAllowlistPassthrough is true.
|
|
520
531
|
*/
|
|
521
|
-
|
|
532
|
+
exports.CLOUD_TRACE_CONTRACT = [
|
|
522
533
|
{ name: "*", allowedAttributes: [] },
|
|
523
534
|
];
|
|
524
535
|
/**
|
|
@@ -526,20 +537,20 @@ export const CLOUD_TRACE_CONTRACT = [
|
|
|
526
537
|
* Cloud: match-all so no traces are dropped by span name.
|
|
527
538
|
* Cloud-prem: Tier 2 contract (named spans only).
|
|
528
539
|
*/
|
|
529
|
-
|
|
540
|
+
function getTraceContract(deploymentType) {
|
|
530
541
|
switch (deploymentType) {
|
|
531
|
-
case DeploymentTypeEnum.CLOUD:
|
|
532
|
-
return CLOUD_TRACE_CONTRACT;
|
|
533
|
-
case DeploymentTypeEnum.CLOUD_PREM:
|
|
542
|
+
case shared_1.DeploymentTypeEnum.CLOUD:
|
|
543
|
+
return exports.CLOUD_TRACE_CONTRACT;
|
|
544
|
+
case shared_1.DeploymentTypeEnum.CLOUD_PREM:
|
|
534
545
|
default:
|
|
535
|
-
return TIER_2_TRACE_CONTRACT;
|
|
546
|
+
return exports.TIER_2_TRACE_CONTRACT;
|
|
536
547
|
}
|
|
537
548
|
}
|
|
538
549
|
// ---------------------------------------------------------------------------
|
|
539
550
|
// Forbidden / hashed / dropped attribute names (v0.6.0 JSON)
|
|
540
551
|
// ---------------------------------------------------------------------------
|
|
541
552
|
/** Forbidden in Tier 2 (forbiddenAttributes in contract). Collector strips these entirely. */
|
|
542
|
-
|
|
553
|
+
exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
|
|
543
554
|
"llmobs.input",
|
|
544
555
|
"llmobs.output",
|
|
545
556
|
"prompt",
|
|
@@ -615,7 +626,7 @@ export const FORBIDDEN_TIER_2_SPAN_ATTRIBUTES = [
|
|
|
615
626
|
* NOTE: with no hashConfig, TraceSanitizer.hashValue() emits "[redacted]", so
|
|
616
627
|
* these fail closed and never flow raw until an HMAC key is provisioned.
|
|
617
628
|
*/
|
|
618
|
-
|
|
629
|
+
exports.HASHED_TIER_2_SPAN_ATTRIBUTES = [
|
|
619
630
|
"enduser-id",
|
|
620
631
|
"enduser.id",
|
|
621
632
|
"enduser_id",
|
|
@@ -633,7 +644,7 @@ export const HASHED_TIER_2_SPAN_ATTRIBUTES = [
|
|
|
633
644
|
* pass-through mode); the SDK only hard-drops binding keys. v0.6.0 adds the
|
|
634
645
|
* dotted/kebab spellings of binding_keys for casing parity.
|
|
635
646
|
*/
|
|
636
|
-
|
|
647
|
+
exports.DROPPED_HIGH_CARDINALITY_ATTRIBUTES = [
|
|
637
648
|
"binding-keys",
|
|
638
649
|
"binding.keys",
|
|
639
650
|
"binding_keys",
|
|
@@ -641,9 +652,9 @@ export const DROPPED_HIGH_CARDINALITY_ATTRIBUTES = [
|
|
|
641
652
|
// ---------------------------------------------------------------------------
|
|
642
653
|
// Set views (for lint, guardrails: fast .has() lookup)
|
|
643
654
|
// ---------------------------------------------------------------------------
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
655
|
+
exports.TIER2_FORBIDDEN_ATTRIBUTES = new Set(exports.FORBIDDEN_TIER_2_SPAN_ATTRIBUTES);
|
|
656
|
+
exports.TIER2_HASHED_ATTRIBUTES = new Set(exports.HASHED_TIER_2_SPAN_ATTRIBUTES);
|
|
657
|
+
exports.TIER2_DROPPED_ATTRIBUTES = new Set(exports.DROPPED_HIGH_CARDINALITY_ATTRIBUTES);
|
|
647
658
|
// ---------------------------------------------------------------------------
|
|
648
659
|
// Per-deployment attribute sets (for trace-sanitizer)
|
|
649
660
|
// ---------------------------------------------------------------------------
|
|
@@ -654,10 +665,10 @@ const EMPTY_ATTRIBUTE_SET = new Set();
|
|
|
654
665
|
* Cloud: relaxed policy (no attributes dropped/hashed), match-all span names, pass-through attributes.
|
|
655
666
|
* Cloud-prem: full Tier 2 contract (forbidden/dropped/hashed), named spans only, allowlist enforced.
|
|
656
667
|
*/
|
|
657
|
-
|
|
668
|
+
function getTraceSanitizerAttributeSets(deploymentType) {
|
|
658
669
|
const spanDefinitions = getTraceContract(deploymentType);
|
|
659
670
|
switch (deploymentType) {
|
|
660
|
-
case DeploymentTypeEnum.CLOUD:
|
|
671
|
+
case shared_1.DeploymentTypeEnum.CLOUD:
|
|
661
672
|
return {
|
|
662
673
|
forbiddenAttributes: EMPTY_ATTRIBUTE_SET,
|
|
663
674
|
droppedAttributes: EMPTY_ATTRIBUTE_SET,
|
|
@@ -665,12 +676,12 @@ export function getTraceSanitizerAttributeSets(deploymentType) {
|
|
|
665
676
|
spanDefinitions,
|
|
666
677
|
attributeAllowlistPassthrough: true,
|
|
667
678
|
};
|
|
668
|
-
case DeploymentTypeEnum.CLOUD_PREM:
|
|
679
|
+
case shared_1.DeploymentTypeEnum.CLOUD_PREM:
|
|
669
680
|
default:
|
|
670
681
|
return {
|
|
671
|
-
forbiddenAttributes: TIER2_FORBIDDEN_ATTRIBUTES,
|
|
672
|
-
droppedAttributes: TIER2_DROPPED_ATTRIBUTES,
|
|
673
|
-
hashedAttributes: TIER2_HASHED_ATTRIBUTES,
|
|
682
|
+
forbiddenAttributes: exports.TIER2_FORBIDDEN_ATTRIBUTES,
|
|
683
|
+
droppedAttributes: exports.TIER2_DROPPED_ATTRIBUTES,
|
|
684
|
+
hashedAttributes: exports.TIER2_HASHED_ATTRIBUTES,
|
|
674
685
|
spanDefinitions,
|
|
675
686
|
// Enforce per-span allowlists for cloud-prem: attributes not explicitly
|
|
676
687
|
// listed in the span definition's allowedAttributes are dropped before
|
|
@@ -683,13 +694,13 @@ export function getTraceSanitizerAttributeSets(deploymentType) {
|
|
|
683
694
|
// Always-sample and value patterns (v0.3.0 samplingPolicy + lint-time)
|
|
684
695
|
// ---------------------------------------------------------------------------
|
|
685
696
|
/** Spans that should ALWAYS be sampled (samplingPolicy.alwaysSampleSpans in contract). */
|
|
686
|
-
|
|
697
|
+
exports.ALWAYS_SAMPLE_SPANS = new Set(["api.execute"]);
|
|
687
698
|
/**
|
|
688
699
|
* Patterns that indicate forbidden content in attribute values (e.g. secrets in strings).
|
|
689
700
|
* No ^/$ anchors so they match secrets embedded anywhere.
|
|
690
701
|
* It's not used by TraceSanitizer, only in guardrails.
|
|
691
702
|
*/
|
|
692
|
-
|
|
703
|
+
exports.FORBIDDEN_VALUE_PATTERNS = [
|
|
693
704
|
/eyJ[A-Za-z0-9_-]{10,}\.eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+/,
|
|
694
705
|
/\b(sk|pk)-[a-zA-Z0-9]{32,}\b/,
|
|
695
706
|
/Bearer\s+[A-Za-z0-9._-]{20,}/,
|
|
@@ -705,21 +716,21 @@ export const FORBIDDEN_VALUE_PATTERNS = [
|
|
|
705
716
|
// ---------------------------------------------------------------------------
|
|
706
717
|
// Helpers (for lint, guardrails)
|
|
707
718
|
// ---------------------------------------------------------------------------
|
|
708
|
-
|
|
709
|
-
return TIER2_FORBIDDEN_ATTRIBUTES.has(name);
|
|
719
|
+
function isForbiddenAttribute(name) {
|
|
720
|
+
return exports.TIER2_FORBIDDEN_ATTRIBUTES.has(name);
|
|
710
721
|
}
|
|
711
|
-
|
|
712
|
-
return TIER2_HASHED_ATTRIBUTES.has(name);
|
|
722
|
+
function isHashedAttribute(name) {
|
|
723
|
+
return exports.TIER2_HASHED_ATTRIBUTES.has(name);
|
|
713
724
|
}
|
|
714
|
-
|
|
715
|
-
return TIER2_DROPPED_ATTRIBUTES.has(name);
|
|
725
|
+
function isDroppedAttribute(name) {
|
|
726
|
+
return exports.TIER2_DROPPED_ATTRIBUTES.has(name);
|
|
716
727
|
}
|
|
717
|
-
|
|
728
|
+
function containsForbiddenPattern(value) {
|
|
718
729
|
if (typeof value !== "string")
|
|
719
730
|
return false;
|
|
720
|
-
return FORBIDDEN_VALUE_PATTERNS.some((pattern) => pattern.test(value));
|
|
731
|
+
return exports.FORBIDDEN_VALUE_PATTERNS.some((pattern) => pattern.test(value));
|
|
721
732
|
}
|
|
722
|
-
|
|
723
|
-
return ALWAYS_SAMPLE_SPANS.has(spanName);
|
|
733
|
+
function shouldAlwaysSample(spanName) {
|
|
734
|
+
return exports.ALWAYS_SAMPLE_SPANS.has(spanName);
|
|
724
735
|
}
|
|
725
736
|
//# sourceMappingURL=tier2-traces.js.map
|