@superblocksteam/telemetry 2.0.93 → 2.0.94-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/README.md +59 -44
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/resilient-exporter.d.ts.map +1 -1
- package/dist/browser/resilient-exporter.js.map +1 -1
- package/dist/common/contracts/tier2-traces.d.ts +62 -50
- package/dist/common/contracts/tier2-traces.d.ts.map +1 -1
- package/dist/common/contracts/tier2-traces.js +484 -138
- package/dist/common/contracts/tier2-traces.js.map +1 -1
- package/dist/common/guardrails.d.ts +2 -2
- package/dist/common/guardrails.d.ts.map +1 -1
- package/dist/common/guardrails.js +7 -7
- package/dist/common/guardrails.js.map +1 -1
- package/dist/common/log-sanitizer.d.ts +88 -0
- package/dist/common/log-sanitizer.d.ts.map +1 -1
- package/dist/common/log-sanitizer.js +304 -6
- package/dist/common/log-sanitizer.js.map +1 -1
- package/dist/common/resource.d.ts +4 -1
- package/dist/common/resource.d.ts.map +1 -1
- package/dist/common/resource.js +4 -2
- package/dist/common/resource.js.map +1 -1
- package/dist/common/trace-sanitizer.d.ts +82 -0
- package/dist/common/trace-sanitizer.d.ts.map +1 -0
- package/dist/common/trace-sanitizer.js +230 -0
- package/dist/common/trace-sanitizer.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -8
- package/dist/index.js.map +1 -1
- package/dist/lint/forbidden-attributes.d.ts +2 -2
- package/dist/lint/forbidden-attributes.d.ts.map +1 -1
- package/dist/lint/forbidden-attributes.js +41 -40
- package/dist/lint/forbidden-attributes.js.map +1 -1
- package/dist/lint/index.d.ts +1 -1
- package/dist/llmobs/index.d.ts +2 -2
- package/dist/llmobs/tier1-exporter.d.ts +2 -2
- package/dist/llmobs/tier1-exporter.d.ts.map +1 -1
- package/dist/llmobs/tier1-exporter.js +17 -14
- package/dist/llmobs/tier1-exporter.js.map +1 -1
- package/dist/llmobs/tier2-summarizer.d.ts.map +1 -1
- package/dist/llmobs/tier2-summarizer.js +10 -4
- package/dist/llmobs/tier2-summarizer.js.map +1 -1
- package/dist/node/exporters/resilient-exporter.d.ts +14 -0
- package/dist/node/exporters/resilient-exporter.d.ts.map +1 -1
- package/dist/node/exporters/resilient-exporter.js +8 -1
- package/dist/node/exporters/resilient-exporter.js.map +1 -1
- package/dist/node/index.d.ts +2 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +7 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/init.d.ts.map +1 -1
- package/dist/node/init.js +61 -12
- package/dist/node/init.js.map +1 -1
- package/dist/node/log-processor.d.ts +41 -6
- package/dist/node/log-processor.d.ts.map +1 -1
- package/dist/node/log-processor.js +152 -61
- package/dist/node/log-processor.js.map +1 -1
- package/dist/node/metrics-client.d.ts.map +1 -1
- package/dist/node/metrics-client.js.map +1 -1
- package/dist/node/safe-logger.d.ts +55 -0
- package/dist/node/safe-logger.d.ts.map +1 -0
- package/dist/node/safe-logger.js +158 -0
- package/dist/node/safe-logger.js.map +1 -0
- package/dist/node/sanitizing-processor.d.ts +56 -0
- package/dist/node/sanitizing-processor.d.ts.map +1 -0
- package/dist/node/sanitizing-processor.js +124 -0
- package/dist/node/sanitizing-processor.js.map +1 -0
- package/dist/node/traced-socket.d.ts +47 -3
- package/dist/node/traced-socket.d.ts.map +1 -1
- package/dist/node/traced-socket.js +96 -19
- package/dist/node/traced-socket.js.map +1 -1
- package/dist/testing/in-memory-exporter.d.ts +3 -3
- package/dist/testing/in-memory-exporter.d.ts.map +1 -1
- package/dist/testing/in-memory-exporter.js +3 -1
- package/dist/testing/in-memory-exporter.js.map +1 -1
- package/dist/testing/index.d.ts +2 -2
- package/dist/types/index.d.ts +28 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist-esm/browser/index.d.ts +2 -2
- package/dist-esm/browser/index.js +2 -2
- package/dist-esm/browser/resilient-exporter.d.ts.map +1 -1
- package/dist-esm/browser/resilient-exporter.js.map +1 -1
- package/dist-esm/common/contracts/tier2-traces.d.ts +62 -50
- package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -1
- package/dist-esm/common/contracts/tier2-traces.js +480 -137
- package/dist-esm/common/contracts/tier2-traces.js.map +1 -1
- package/dist-esm/common/guardrails.d.ts +2 -2
- package/dist-esm/common/guardrails.d.ts.map +1 -1
- package/dist-esm/common/guardrails.js +9 -9
- package/dist-esm/common/guardrails.js.map +1 -1
- package/dist-esm/common/log-sanitizer.d.ts +88 -0
- package/dist-esm/common/log-sanitizer.d.ts.map +1 -1
- package/dist-esm/common/log-sanitizer.js +294 -5
- package/dist-esm/common/log-sanitizer.js.map +1 -1
- package/dist-esm/common/resource.d.ts +4 -1
- package/dist-esm/common/resource.d.ts.map +1 -1
- package/dist-esm/common/resource.js +3 -1
- package/dist-esm/common/resource.js.map +1 -1
- 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 +226 -0
- package/dist-esm/common/trace-sanitizer.js.map +1 -0
- package/dist-esm/index.d.ts +2 -1
- package/dist-esm/index.d.ts.map +1 -1
- package/dist-esm/index.js +2 -1
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/lint/forbidden-attributes.d.ts +2 -2
- package/dist-esm/lint/forbidden-attributes.d.ts.map +1 -1
- package/dist-esm/lint/forbidden-attributes.js +43 -42
- package/dist-esm/lint/forbidden-attributes.js.map +1 -1
- package/dist-esm/lint/index.d.ts +1 -1
- package/dist-esm/lint/index.js +1 -1
- package/dist-esm/llmobs/index.d.ts +2 -2
- package/dist-esm/llmobs/index.js +2 -2
- package/dist-esm/llmobs/tier1-exporter.d.ts +2 -2
- package/dist-esm/llmobs/tier1-exporter.d.ts.map +1 -1
- package/dist-esm/llmobs/tier1-exporter.js +18 -15
- package/dist-esm/llmobs/tier1-exporter.js.map +1 -1
- package/dist-esm/llmobs/tier2-summarizer.d.ts.map +1 -1
- package/dist-esm/llmobs/tier2-summarizer.js +10 -4
- package/dist-esm/llmobs/tier2-summarizer.js.map +1 -1
- package/dist-esm/node/exporters/resilient-exporter.d.ts +14 -0
- package/dist-esm/node/exporters/resilient-exporter.d.ts.map +1 -1
- package/dist-esm/node/exporters/resilient-exporter.js +8 -1
- package/dist-esm/node/exporters/resilient-exporter.js.map +1 -1
- package/dist-esm/node/index.d.ts +2 -1
- package/dist-esm/node/index.d.ts.map +1 -1
- package/dist-esm/node/index.js +2 -1
- package/dist-esm/node/index.js.map +1 -1
- package/dist-esm/node/init.d.ts.map +1 -1
- package/dist-esm/node/init.js +61 -12
- package/dist-esm/node/init.js.map +1 -1
- package/dist-esm/node/log-processor.d.ts +41 -6
- package/dist-esm/node/log-processor.d.ts.map +1 -1
- package/dist-esm/node/log-processor.js +151 -62
- package/dist-esm/node/log-processor.js.map +1 -1
- package/dist-esm/node/metrics-client.d.ts.map +1 -1
- package/dist-esm/node/metrics-client.js.map +1 -1
- 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 +56 -0
- package/dist-esm/node/sanitizing-processor.d.ts.map +1 -0
- package/dist-esm/node/sanitizing-processor.js +120 -0
- package/dist-esm/node/sanitizing-processor.js.map +1 -0
- package/dist-esm/node/traced-socket.d.ts +47 -3
- package/dist-esm/node/traced-socket.d.ts.map +1 -1
- package/dist-esm/node/traced-socket.js +96 -19
- package/dist-esm/node/traced-socket.js.map +1 -1
- package/dist-esm/testing/in-memory-exporter.d.ts +3 -3
- package/dist-esm/testing/in-memory-exporter.d.ts.map +1 -1
- package/dist-esm/testing/in-memory-exporter.js +4 -2
- package/dist-esm/testing/in-memory-exporter.js.map +1 -1
- package/dist-esm/testing/index.d.ts +2 -2
- package/dist-esm/testing/index.js +2 -2
- package/dist-esm/types/index.d.ts +28 -1
- package/dist-esm/types/index.d.ts.map +1 -1
- package/dist-esm/types/index.js +1 -1
- package/package.json +17 -18
package/dist/node/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAS,MAAM,EAAW,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAWvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAS,MAAM,EAAW,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAWvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAapE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,mCAAmC;IACnC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,kCAAkC;IAClC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC,mCAAmC;IACnC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,oEAAoE;IACpE,aAAa,EAAE,aAAa,CAAC;IAC7B,wBAAwB;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAmGD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,eAAe,GACtB,qBAAqB,CAiLvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAO5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist/node/init.js
CHANGED
|
@@ -20,11 +20,13 @@ const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-h
|
|
|
20
20
|
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
|
21
21
|
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
22
22
|
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
23
|
-
const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
24
23
|
const resource_js_1 = require("../common/resource.js");
|
|
25
24
|
const policy_evaluator_js_1 = require("../common/policy-evaluator.js");
|
|
26
25
|
const policy_js_1 = require("../types/policy.js");
|
|
27
26
|
const resilient_exporter_js_1 = require("./exporters/resilient-exporter.js");
|
|
27
|
+
const tier2_traces_js_1 = require("../common/contracts/tier2-traces.js");
|
|
28
|
+
const sanitizing_processor_js_1 = require("./sanitizing-processor.js");
|
|
29
|
+
const trace_sanitizer_js_1 = require("../common/trace-sanitizer.js");
|
|
28
30
|
const log_processor_js_1 = require("./log-processor.js");
|
|
29
31
|
const metrics_client_js_1 = require("./metrics-client.js");
|
|
30
32
|
// Singleton instance
|
|
@@ -57,6 +59,30 @@ function createNoOpInstance(config, policy) {
|
|
|
57
59
|
},
|
|
58
60
|
};
|
|
59
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Fallback logger for SanitizingSpanProcessor when config.logger is not provided.
|
|
64
|
+
* Forwards to console so processor messages are still visible.
|
|
65
|
+
*/
|
|
66
|
+
function createConsoleFallbackLogger() {
|
|
67
|
+
const log = (level) => (a, b) => {
|
|
68
|
+
if (typeof a === "string") {
|
|
69
|
+
if (level === "warn")
|
|
70
|
+
console.warn(a);
|
|
71
|
+
else
|
|
72
|
+
console.error(a);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
if (level === "warn")
|
|
76
|
+
console.warn(b ?? "", a);
|
|
77
|
+
else
|
|
78
|
+
console.error(b ?? "", a);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return {
|
|
82
|
+
error: log("error"),
|
|
83
|
+
warn: log("warn"),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
60
86
|
/**
|
|
61
87
|
* Validate telemetry configuration.
|
|
62
88
|
*
|
|
@@ -142,15 +168,25 @@ function initNodeTelemetry(config, policy) {
|
|
|
142
168
|
droppedSpans += count;
|
|
143
169
|
console.warn(`[Telemetry] Dropped ${count} spans (${reason}). Total dropped: ${droppedSpans}`);
|
|
144
170
|
};
|
|
145
|
-
// Create trace exporter if URL provided and Tier 2 export is enabled
|
|
146
|
-
//
|
|
147
|
-
|
|
171
|
+
// Create trace exporter if URL provided and Tier 2 export is enabled.
|
|
172
|
+
// Traces go through SanitizingSpanProcessor: only contract-compliant spans are exported.
|
|
173
|
+
// Use isExportEnabled (not canExport) - sampling applies at runtime, not initialization.
|
|
174
|
+
let spanProcessor;
|
|
148
175
|
if (config.otlpUrl &&
|
|
149
176
|
policyEvaluator.isExportEnabled(policy_js_1.TelemetryTier.TIER_2_OPERATIONAL)) {
|
|
150
|
-
|
|
177
|
+
const tier2Exporter = new resilient_exporter_js_1.ResilientExporter({
|
|
151
178
|
delegate: new exporter_trace_otlp_http_1.OTLPTraceExporter({ url: `${config.otlpUrl}/v1/traces` }),
|
|
152
179
|
onDrop,
|
|
180
|
+
logger: config.logger,
|
|
153
181
|
});
|
|
182
|
+
const hashConfig = config.traceSanitizerHashConfig ?? null;
|
|
183
|
+
const attributeSets = (0, tier2_traces_js_1.getTraceSanitizerAttributeSets)(policy.deploymentType);
|
|
184
|
+
const traceSanitizer = new trace_sanitizer_js_1.TraceSanitizer({
|
|
185
|
+
hashConfig,
|
|
186
|
+
...attributeSets,
|
|
187
|
+
});
|
|
188
|
+
const spanProcessorLogger = config.logger ?? createConsoleFallbackLogger();
|
|
189
|
+
spanProcessor = new sanitizing_processor_js_1.SanitizingSpanProcessor(policyEvaluator, sanitizing_processor_js_1.noopSpanProcessor, tier2Exporter, traceSanitizer, spanProcessorLogger);
|
|
154
190
|
}
|
|
155
191
|
// Create metric exporter if enabled
|
|
156
192
|
// Use isExportEnabled (not canExport) - sampling applies at runtime, not initialization
|
|
@@ -184,9 +220,7 @@ function initNodeTelemetry(config, policy) {
|
|
|
184
220
|
// Note: instrumentations typed as unknown[] for flexibility with various OTEL instrumentation packages
|
|
185
221
|
const sdk = new sdk_node_1.NodeSDK({
|
|
186
222
|
resource,
|
|
187
|
-
spanProcessor
|
|
188
|
-
? new sdk_trace_base_1.BatchSpanProcessor(traceExporter)
|
|
189
|
-
: undefined,
|
|
223
|
+
spanProcessor,
|
|
190
224
|
metricReader,
|
|
191
225
|
logRecordProcessor: logProcessor,
|
|
192
226
|
contextManager: new context_async_hooks_1.AsyncLocalStorageContextManager(),
|
|
@@ -195,10 +229,25 @@ function initNodeTelemetry(config, policy) {
|
|
|
195
229
|
instrumentations: (config.instrumentations ?? []),
|
|
196
230
|
});
|
|
197
231
|
sdk.start();
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
232
|
+
const tracesEnabled = spanProcessor
|
|
233
|
+
? "enabled (Tier 2 sanitized)"
|
|
234
|
+
: "disabled";
|
|
235
|
+
const metricsEnabled = metricReader ? "enabled" : "disabled";
|
|
236
|
+
const logsEnabled = logProcessor ? "enabled" : "disabled";
|
|
237
|
+
if (typeof config.logger?.info === "function") {
|
|
238
|
+
config.logger.info({
|
|
239
|
+
component: "telemetry",
|
|
240
|
+
deploymentType: policy.deploymentType,
|
|
241
|
+
logs: logsEnabled,
|
|
242
|
+
metrics: metricsEnabled,
|
|
243
|
+
serviceName: config.serviceName,
|
|
244
|
+
traces: tracesEnabled,
|
|
245
|
+
}, "Telemetry initialized");
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
console.info(`[Telemetry] Initialized for ${config.serviceName} (${policy.deploymentType})` +
|
|
249
|
+
` | Traces: ${tracesEnabled} | Metrics: ${metricsEnabled} | Logs: ${logsEnabled}`);
|
|
250
|
+
}
|
|
202
251
|
const defaultMeter = api_1.metrics.getMeter(config.serviceName, config.serviceVersion);
|
|
203
252
|
instance = {
|
|
204
253
|
sdk,
|
package/dist/node/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAkLH,8CAoLC;AAOD,oDAOC;AAKD,wDAEC;AAMD,wCAEC;AAjYD,4CAAmE;AACnE,sDAAuD;AACvD,4EAAqF;AACrF,8CAAgE;AAChE,oFAAyE;AACzE,0FAA+E;AAC/E,sFAA4E;AAC5E,sDAAkE;AAClE,4DAGoC;AACpC,sDAAkD;AAGlD,uDAAwE;AACxE,uEAAyE;AAEzE,kDAAoE;AACpE,6EAAsE;AACtE,yEAAqF;AACrF,uEAGmC;AACnC,qEAA8D;AAC9D,yDAI4B;AAC5B,2DAAoD;AAsBpD,qBAAqB;AACrB,IAAI,QAA2C,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CACzB,MAA2B,EAC3B,MAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,8CAAwB,CAAC,MAAM,CAAC,CAAC;IAE7D,2CAA2C;IAC3C,MAAM,YAAY,GAAG,aAAO,CAAC,QAAQ,CACnC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,cAAc,CACtB,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,SAAS;QACd,eAAe;QACf,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAC3B,WAAK,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACpE,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE,CAC1B,aAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACrE,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAC3B,eAAI,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACnE,aAAa,EAAE,IAAI,iCAAa,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,uCAAuC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B;IAIlC,MAAM,GAAG,GACP,CAAC,KAAuB,EAAE,EAAE,CAC5B,CAAC,CAAkB,EAAE,CAAU,EAAQ,EAAE;QACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;gBACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;;gBAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IACJ,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;QACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;KAClB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,MAA2B;IAC9D,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,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,OAAO,KAAM,KAAe,CAAC,OAAO,GAAG,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,iBAAiB,CAC/B,MAA2B,EAC3B,MAAuB;IAEvB,qBAAqB;IACrB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAEpC,kDAAkD;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,uCAAuC;QACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAC5D,IAAI,cAAc,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CACV,iEAAiE;gBAC/D,cAAc,cAAc,CAAC,cAAc,gBAAgB,MAAM,CAAC,cAAc,KAAK;gBACrF,8BAA8B,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,8CAAwB,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;IAEvC,4CAA4C;IAC5C,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAE3B,wCAAwC;IACxC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;QAC/C,YAAY,IAAI,KAAK,CAAC;QACtB,OAAO,CAAC,IAAI,CACV,uBAAuB,KAAK,WAAW,MAAM,qBAAqB,YAAY,EAAE,CACjF,CAAC;IACJ,CAAC,CAAC;IAEF,sEAAsE;IACtE,yFAAyF;IACzF,yFAAyF;IACzF,IAAI,aAAwC,CAAC;IAC7C,IACE,MAAM,CAAC,OAAO;QACd,eAAe,CAAC,eAAe,CAAC,yBAAa,CAAC,kBAAkB,CAAC,EACjE,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,yCAAiB,CAAC;YAC1C,QAAQ,EAAE,IAAI,4CAAiB,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,YAAY,EAAE,CAAC;YACvE,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,IAAI,IAAI,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAA,gDAA8B,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,IAAI,mCAAc,CAAC;YACxC,UAAU;YACV,GAAG,aAAa;SACjB,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC3E,aAAa,GAAG,IAAI,iDAAuB,CACzC,eAAe,EACf,2CAAiB,EACjB,aAAa,EACb,cAAc,EACd,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,wFAAwF;IACxF,IAAI,YAAuD,CAAC;IAC5D,IACE,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,cAAc,KAAK,KAAK;QAC/B,eAAe,CAAC,eAAe,CAAC,yBAAa,CAAC,kBAAkB,CAAC,EACjE,CAAC;QACD,YAAY,GAAG,IAAI,2CAA6B,CAAC;YAC/C,QAAQ,EAAE,IAAI,+CAAkB,CAAC;gBAC/B,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,aAAa;gBACnC,qBAAqB,EAAE,oCAAsB,CAAC,KAAK;aACpD,CAAC;YACF,oBAAoB,EAAE,KAAK,EAAE,mBAAmB;SACjD,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,4DAA4D;IAC5D,kGAAkG;IAClG,gFAAgF;IAChF,2DAA2D;IAC3D,IAAI,YAAiD,CAAC;IACtD,MAAM,aAAa,GAAG,IAAA,mCAAgB,EAAC,MAAM,CAAC,CAAC;IAE/C,IACE,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,WAAW,KAAK,KAAK;QAC5B,eAAe,CAAC,eAAe,CAAC,yBAAa,CAAC,kBAAkB,CAAC;QACjE,aAAa,CAAC,UAAU,KAAK,gCAAa,CAAC,UAAU,EACrD,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,kCAAuB,CAChD,IAAI,yCAAe,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,UAAU,EAAE,CAAC,CAC1D,CAAC;QACF,YAAY,GAAG,IAAI,0CAAuB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC5E,CAAC;IAED,iBAAiB;IACjB,uGAAuG;IACvG,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC;QACtB,QAAQ;QACR,aAAa;QACb,YAAY;QACZ,kBAAkB,EAAE,YAAY;QAChC,cAAc,EAAE,IAAI,qDAA+B,EAAE;QACrD,iBAAiB,EAAE,IAAI,gCAAyB,EAAE;QAClD,iGAAiG;QACjG,gBAAgB,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAQ;KACzD,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,aAAa,GAAG,aAAa;QACjC,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB;YACE,SAAS,EAAE,WAAW;YACtB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,aAAa;SACtB,EACD,uBAAuB,CACxB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,+BAA+B,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,cAAc,GAAG;YAC5E,cAAc,aAAa,eAAe,cAAc,YAAY,WAAW,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,aAAO,CAAC,QAAQ,CACnC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,cAAc,CACtB,CAAC;IAEF,QAAQ,GAAG;QACT,GAAG;QACH,eAAe;QACf,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAC3B,WAAK,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACpE,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE,CAC1B,aAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACrE,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAC3B,eAAI,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;QACnE,aAAa,EAAE,IAAI,iCAAa,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;YACvB,CAAC;oBAAS,CAAC;gBACT,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAO,QAAQ,KAAK,SAAS,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc;IAC5B,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type { LogRecordProcessor, ReadableLogRecord } from "@opentelemetry/sdk-logs";
|
|
12
12
|
import type { Context } from "@opentelemetry/api";
|
|
13
13
|
import { TelemetryPolicy } from "../types/policy.js";
|
|
14
|
+
import type { SensitivePattern } from "../common/log-sanitizer.js";
|
|
14
15
|
/**
|
|
15
16
|
* Controls what logs are exported via OTEL.
|
|
16
17
|
*/
|
|
@@ -24,15 +25,26 @@ export declare enum LogExportMode {
|
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Logging-specific policy configuration.
|
|
28
|
+
* All sanitization is driven by these fields; when they are empty/off, no redaction is applied.
|
|
27
29
|
*/
|
|
28
30
|
export interface LoggingPolicyConfig {
|
|
29
31
|
/** What logs to export */
|
|
30
32
|
exportMode: LogExportMode;
|
|
31
33
|
/** Maximum log level for local retention */
|
|
32
34
|
localMaxLevel: "trace" | "debug" | "info" | "warn" | "error" | "fatal";
|
|
33
|
-
/**
|
|
35
|
+
/** Patterns to redact from message/body and string values (e.g. JWT, API keys). When empty, no secret redaction. */
|
|
36
|
+
messageSecretPatterns: SensitivePattern[];
|
|
37
|
+
/** Attribute keys (lowercase) that trigger value → [REDACTED]. When empty, no key-based secret redaction. */
|
|
38
|
+
secretFieldNames: Set<string>;
|
|
39
|
+
/** Regex patterns for attribute key names that trigger value → [REDACTED]. When empty, only secretFieldNames apply. */
|
|
40
|
+
secretFieldPatterns: RegExp[];
|
|
41
|
+
/** When true, stack traces in body/attributes are replaced with placeholder. When false, left as-is. */
|
|
42
|
+
redactStackTraces: boolean;
|
|
43
|
+
/** Regex patterns to redact from log content (replaced with [REDACTED]). */
|
|
34
44
|
redactPatterns: RegExp[];
|
|
35
|
-
/**
|
|
45
|
+
/** Pattern+replacement rules for sensitive values (path, email). */
|
|
46
|
+
sensitivePatterns: SensitivePattern[];
|
|
47
|
+
/** Fields to exclude from exported logs (key and value omitted). */
|
|
36
48
|
forbiddenFields: Set<string>;
|
|
37
49
|
}
|
|
38
50
|
/**
|
|
@@ -42,6 +54,30 @@ export interface LoggingPolicyConfig {
|
|
|
42
54
|
* @returns Logging policy configuration
|
|
43
55
|
*/
|
|
44
56
|
export declare function getLoggingPolicy(policy: TelemetryPolicy): LoggingPolicyConfig;
|
|
57
|
+
/**
|
|
58
|
+
* Returns the effective Pino log level from the current logging policy and env level.
|
|
59
|
+
* 1. Applies exportMode: when ERRORS_ONLY, never below warn so export paths never see INFO/DEBUG.
|
|
60
|
+
* 2. Applies localMaxLevel: caps local retention so we never set the logger more verbose than
|
|
61
|
+
* policy.localMaxLevel (e.g. localMaxLevel "debug" prevents trace from being written locally).
|
|
62
|
+
*
|
|
63
|
+
* Use when policy is available (e.g. after initNodeTelemetry) to sync logger level from policy.
|
|
64
|
+
*
|
|
65
|
+
* @param loggingPolicy - Logging policy (e.g. from getLoggingPolicy(telemetryPolicy))
|
|
66
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
67
|
+
* @returns Level to pass to Pino
|
|
68
|
+
*/
|
|
69
|
+
export declare function getMinimumPinoLevelFromLoggingPolicy(loggingPolicy: LoggingPolicyConfig, envLevel: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the effective Pino log level for a deployment given the env-configured level.
|
|
72
|
+
* Used at logger bootstrap when policy is not yet initialized (e.g. server logger module load).
|
|
73
|
+
* Delegates to getMinimumPinoLevelFromLoggingPolicy with a synthetic policy from deployment type
|
|
74
|
+
* so the exportMode → level rule lives in one place.
|
|
75
|
+
*
|
|
76
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
77
|
+
* @param deploymentType - Deployment type from env (e.g. SUPERBLOCKS_DEPLOYMENT_TYPE)
|
|
78
|
+
* @returns Level to pass to Pino (envLevel or 'warn' for cloud-prem when envLevel is below warn)
|
|
79
|
+
*/
|
|
80
|
+
export declare function getMinimumPinoLevelForDeployment(envLevel: string, deploymentType: string): string;
|
|
45
81
|
/**
|
|
46
82
|
* Log processor that filters and sanitizes logs based on policy.
|
|
47
83
|
*
|
|
@@ -58,15 +94,14 @@ export declare class PolicyAwareLogProcessor implements LogRecordProcessor {
|
|
|
58
94
|
* Called when a log record is emitted.
|
|
59
95
|
*/
|
|
60
96
|
onEmit(logRecord: ReadableLogRecord, context?: Context): void;
|
|
97
|
+
/** True when policy has no sanitization (cloud passthrough). */
|
|
98
|
+
private isPassthroughPolicy;
|
|
61
99
|
/**
|
|
62
100
|
* Sanitize a log record for export.
|
|
63
101
|
* Mutates the log record in place to preserve OTEL SDK internal state.
|
|
102
|
+
* All redaction is policy-driven; when config is empty/off, content is left as-is.
|
|
64
103
|
*/
|
|
65
104
|
private sanitizeLogRecord;
|
|
66
|
-
/**
|
|
67
|
-
* Check if a string contains a stack trace.
|
|
68
|
-
*/
|
|
69
|
-
private containsStackTrace;
|
|
70
105
|
/**
|
|
71
106
|
* Sanitize log attributes.
|
|
72
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAyBnE;;GAEG;AACH,oBAAY,aAAa;IACvB,+CAA+C;IAC/C,UAAU,eAAe;IACzB,4DAA4D;IAC5D,WAAW,gBAAgB;IAC3B,6DAA6D;IAC7D,cAAc,mBAAmB;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACvE,oHAAoH;IACpH,qBAAqB,EAAE,gBAAgB,EAAE,CAAC;IAC1C,6GAA6G;IAC7G,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,uHAAuH;IACvH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,wGAAwG;IACxG,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oEAAoE;IACpE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,oEAAoE;IACpE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAoD7E;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,mBAAmB,EAClC,QAAQ,EAAE,MAAM,GACf,MAAM,CAYR;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,MAAM,CAmBR;AAuDD;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAElC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB;IAKrE;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAqB7D,gEAAgE;IAChE,OAAO,CAAC,mBAAmB;IAa3B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA6CzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuE1B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.PolicyAwareLogProcessor = exports.LogExportMode = void 0;
|
|
14
14
|
exports.getLoggingPolicy = getLoggingPolicy;
|
|
15
|
+
exports.getMinimumPinoLevelFromLoggingPolicy = getMinimumPinoLevelFromLoggingPolicy;
|
|
16
|
+
exports.getMinimumPinoLevelForDeployment = getMinimumPinoLevelForDeployment;
|
|
15
17
|
const policy_js_1 = require("../types/policy.js");
|
|
16
18
|
const policy_evaluator_js_1 = require("../common/policy-evaluator.js");
|
|
17
19
|
const log_sanitizer_js_1 = require("../common/log-sanitizer.js");
|
|
@@ -45,34 +47,118 @@ function getLoggingPolicy(policy) {
|
|
|
45
47
|
return {
|
|
46
48
|
exportMode: LogExportMode.LOCAL_ONLY,
|
|
47
49
|
localMaxLevel: "debug",
|
|
50
|
+
messageSecretPatterns: log_sanitizer_js_1.DEFAULT_SECRET_PATTERNS,
|
|
51
|
+
secretFieldNames: log_sanitizer_js_1.SECRET_FIELDS,
|
|
52
|
+
secretFieldPatterns: log_sanitizer_js_1.SECRET_FIELD_PATTERNS,
|
|
53
|
+
redactStackTraces: true,
|
|
48
54
|
redactPatterns: [],
|
|
55
|
+
sensitivePatterns: log_sanitizer_js_1.DEFAULT_SENSITIVE_PATTERNS,
|
|
49
56
|
forbiddenFields: log_sanitizer_js_1.TIER1_FORBIDDEN_LOG_FIELDS,
|
|
50
57
|
};
|
|
51
58
|
}
|
|
52
|
-
// Cloud-prem: export errors only, with full sanitization
|
|
59
|
+
// Cloud-prem: export errors only, with full sanitization (secrets + sensitive patterns)
|
|
53
60
|
if (policy.deploymentType === shared_1.DeploymentTypeEnum.CLOUD_PREM) {
|
|
54
61
|
return {
|
|
55
62
|
exportMode: LogExportMode.ERRORS_ONLY,
|
|
56
63
|
localMaxLevel: "debug",
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
messageSecretPatterns: log_sanitizer_js_1.DEFAULT_SECRET_PATTERNS,
|
|
65
|
+
secretFieldNames: log_sanitizer_js_1.SECRET_FIELDS,
|
|
66
|
+
secretFieldPatterns: log_sanitizer_js_1.SECRET_FIELD_PATTERNS,
|
|
67
|
+
redactStackTraces: true,
|
|
68
|
+
redactPatterns: log_sanitizer_js_1.CLOUD_PREM_REDACT_PATTERNS,
|
|
69
|
+
sensitivePatterns: log_sanitizer_js_1.DEFAULT_SENSITIVE_PATTERNS,
|
|
70
|
+
forbiddenFields: new Set([
|
|
71
|
+
...log_sanitizer_js_1.TIER1_FORBIDDEN_LOG_FIELDS,
|
|
72
|
+
...log_sanitizer_js_1.EXPORT_FORBIDDEN_FIELDS_CLOUD_PREM,
|
|
73
|
+
]),
|
|
66
74
|
};
|
|
67
75
|
}
|
|
68
|
-
// Cloud:
|
|
76
|
+
// Cloud: all sanitization off (logs sent as-is)
|
|
69
77
|
return {
|
|
70
78
|
exportMode: LogExportMode.INFO_AND_ABOVE,
|
|
71
79
|
localMaxLevel: "debug",
|
|
80
|
+
messageSecretPatterns: [],
|
|
81
|
+
secretFieldNames: new Set(),
|
|
82
|
+
secretFieldPatterns: [],
|
|
83
|
+
redactStackTraces: false,
|
|
72
84
|
redactPatterns: [],
|
|
73
|
-
|
|
85
|
+
sensitivePatterns: [],
|
|
86
|
+
forbiddenFields: new Set(),
|
|
74
87
|
};
|
|
75
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Pino levels below WARN; when exportMode is ERRORS_ONLY we never write these to stdout.
|
|
91
|
+
*/
|
|
92
|
+
const LEVELS_BELOW_WARN = new Set(["trace", "debug", "info"]);
|
|
93
|
+
/**
|
|
94
|
+
* Ordered from most verbose (index 0) to least verbose (index 5).
|
|
95
|
+
* Used to compare levels: "more restrictive" = higher index = fewer logs retained.
|
|
96
|
+
*/
|
|
97
|
+
const PINO_LEVEL_ORDER = ["trace", "debug", "info", "warn", "error", "fatal"];
|
|
98
|
+
function levelOrderIndex(level) {
|
|
99
|
+
const normalized = level.toLowerCase();
|
|
100
|
+
const idx = PINO_LEVEL_ORDER.indexOf(normalized);
|
|
101
|
+
return idx >= 0 ? idx : PINO_LEVEL_ORDER.indexOf("info");
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Returns the more restrictive of two levels (the one that retains fewer logs).
|
|
105
|
+
* E.g. moreRestrictiveLevel("trace", "debug") === "debug".
|
|
106
|
+
*/
|
|
107
|
+
function moreRestrictiveLevel(a, b) {
|
|
108
|
+
const idxA = levelOrderIndex(a);
|
|
109
|
+
const idxB = levelOrderIndex(b);
|
|
110
|
+
return PINO_LEVEL_ORDER[Math.max(idxA, idxB)] ?? "info";
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns the effective Pino log level from the current logging policy and env level.
|
|
114
|
+
* 1. Applies exportMode: when ERRORS_ONLY, never below warn so export paths never see INFO/DEBUG.
|
|
115
|
+
* 2. Applies localMaxLevel: caps local retention so we never set the logger more verbose than
|
|
116
|
+
* policy.localMaxLevel (e.g. localMaxLevel "debug" prevents trace from being written locally).
|
|
117
|
+
*
|
|
118
|
+
* Use when policy is available (e.g. after initNodeTelemetry) to sync logger level from policy.
|
|
119
|
+
*
|
|
120
|
+
* @param loggingPolicy - Logging policy (e.g. from getLoggingPolicy(telemetryPolicy))
|
|
121
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
122
|
+
* @returns Level to pass to Pino
|
|
123
|
+
*/
|
|
124
|
+
function getMinimumPinoLevelFromLoggingPolicy(loggingPolicy, envLevel) {
|
|
125
|
+
let level;
|
|
126
|
+
const envLevelNormalized = envLevel.toLowerCase();
|
|
127
|
+
if (loggingPolicy.exportMode === LogExportMode.ERRORS_ONLY &&
|
|
128
|
+
LEVELS_BELOW_WARN.has(envLevelNormalized)) {
|
|
129
|
+
level = "warn";
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
level = envLevel;
|
|
133
|
+
}
|
|
134
|
+
return moreRestrictiveLevel(level, loggingPolicy.localMaxLevel);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Returns the effective Pino log level for a deployment given the env-configured level.
|
|
138
|
+
* Used at logger bootstrap when policy is not yet initialized (e.g. server logger module load).
|
|
139
|
+
* Delegates to getMinimumPinoLevelFromLoggingPolicy with a synthetic policy from deployment type
|
|
140
|
+
* so the exportMode → level rule lives in one place.
|
|
141
|
+
*
|
|
142
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
143
|
+
* @param deploymentType - Deployment type from env (e.g. SUPERBLOCKS_DEPLOYMENT_TYPE)
|
|
144
|
+
* @returns Level to pass to Pino (envLevel or 'warn' for cloud-prem when envLevel is below warn)
|
|
145
|
+
*/
|
|
146
|
+
function getMinimumPinoLevelForDeployment(envLevel, deploymentType) {
|
|
147
|
+
const exportMode = deploymentType === shared_1.DeploymentTypeEnum.CLOUD_PREM
|
|
148
|
+
? LogExportMode.ERRORS_ONLY
|
|
149
|
+
: LogExportMode.INFO_AND_ABOVE;
|
|
150
|
+
return getMinimumPinoLevelFromLoggingPolicy({
|
|
151
|
+
exportMode,
|
|
152
|
+
localMaxLevel: "debug",
|
|
153
|
+
messageSecretPatterns: [],
|
|
154
|
+
secretFieldNames: new Set(),
|
|
155
|
+
secretFieldPatterns: [],
|
|
156
|
+
redactStackTraces: false,
|
|
157
|
+
redactPatterns: [],
|
|
158
|
+
sensitivePatterns: [],
|
|
159
|
+
forbiddenFields: new Set(),
|
|
160
|
+
}, envLevel);
|
|
161
|
+
}
|
|
76
162
|
// ============================================================================
|
|
77
163
|
// Severity Level Utilities
|
|
78
164
|
// ============================================================================
|
|
@@ -147,39 +233,47 @@ class PolicyAwareLogProcessor {
|
|
|
147
233
|
if (!shouldExportSeverity(logRecord.severityNumber, this.policy.exportMode)) {
|
|
148
234
|
return;
|
|
149
235
|
}
|
|
150
|
-
// Sanitize the log record in place before forwarding
|
|
151
|
-
// The logRecord is actually an SdkLogRecord at runtime, we mutate it directly
|
|
236
|
+
// Sanitize the log record in place before forwarding (policy-driven; empty config = passthrough)
|
|
152
237
|
this.sanitizeLogRecord(logRecord);
|
|
153
238
|
// Forward to delegate - cast is safe because logRecord is SdkLogRecord at runtime
|
|
154
239
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
155
240
|
this.delegate.onEmit(logRecord, context);
|
|
156
241
|
}
|
|
242
|
+
/** True when policy has no sanitization (cloud passthrough). */
|
|
243
|
+
isPassthroughPolicy() {
|
|
244
|
+
const p = this.policy;
|
|
245
|
+
return (p.messageSecretPatterns.length === 0 &&
|
|
246
|
+
p.secretFieldNames.size === 0 &&
|
|
247
|
+
p.secretFieldPatterns.length === 0 &&
|
|
248
|
+
!p.redactStackTraces &&
|
|
249
|
+
p.forbiddenFields.size === 0 &&
|
|
250
|
+
p.sensitivePatterns.length === 0 &&
|
|
251
|
+
p.redactPatterns.length === 0);
|
|
252
|
+
}
|
|
157
253
|
/**
|
|
158
254
|
* Sanitize a log record for export.
|
|
159
255
|
* Mutates the log record in place to preserve OTEL SDK internal state.
|
|
256
|
+
* All redaction is policy-driven; when config is empty/off, content is left as-is.
|
|
160
257
|
*/
|
|
161
258
|
sanitizeLogRecord(logRecord) {
|
|
259
|
+
const p = this.policy;
|
|
162
260
|
// Sanitize body - mutate in place
|
|
163
261
|
if (typeof logRecord.body === "string") {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (this.containsStackTrace(sanitizedBody)) {
|
|
172
|
-
// Use setAttribute pattern for LogRecord mutation
|
|
173
|
-
logRecord.body =
|
|
174
|
-
(0, log_sanitizer_js_1.redactStackTrace)(sanitizedBody);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
logRecord.body =
|
|
178
|
-
(0, log_sanitizer_js_1.sanitizeLogMessage)(sanitizedBody);
|
|
262
|
+
let body = p.messageSecretPatterns.length > 0
|
|
263
|
+
? (0, log_sanitizer_js_1.redactSensitivePatterns)(logRecord.body, p.messageSecretPatterns)
|
|
264
|
+
: logRecord.body;
|
|
265
|
+
body = (0, log_sanitizer_js_1.redactSensitivePatterns)(body, p.sensitivePatterns);
|
|
266
|
+
body = (0, log_sanitizer_js_1.applyRedactPatterns)(body, p.redactPatterns);
|
|
267
|
+
if (p.redactStackTraces && (0, log_sanitizer_js_1.containsStackTrace)(body)) {
|
|
268
|
+
body = (0, log_sanitizer_js_1.redactStackTraceForExport)(body, p.sensitivePatterns, p.messageSecretPatterns);
|
|
179
269
|
}
|
|
270
|
+
logRecord.body = body;
|
|
180
271
|
}
|
|
181
272
|
else if (logRecord.body && typeof logRecord.body === "object") {
|
|
182
|
-
|
|
273
|
+
if (!this.isPassthroughPolicy()) {
|
|
274
|
+
logRecord.body =
|
|
275
|
+
(0, log_sanitizer_js_1.sanitizeLogObjectForExport)(logRecord.body, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
276
|
+
}
|
|
183
277
|
}
|
|
184
278
|
// Sanitize attributes - mutate in place
|
|
185
279
|
const attrs = logRecord.attributes;
|
|
@@ -194,24 +288,6 @@ class PolicyAwareLogProcessor {
|
|
|
194
288
|
}
|
|
195
289
|
}
|
|
196
290
|
}
|
|
197
|
-
/**
|
|
198
|
-
* Check if a string contains a stack trace.
|
|
199
|
-
*/
|
|
200
|
-
containsStackTrace(text) {
|
|
201
|
-
// Node.js stack traces
|
|
202
|
-
if (/at .+\(.+:\d+:\d+\)/.test(text))
|
|
203
|
-
return true;
|
|
204
|
-
// Go stack traces
|
|
205
|
-
if (/goroutine \d+ \[.+\]:/.test(text))
|
|
206
|
-
return true;
|
|
207
|
-
// Python stack traces
|
|
208
|
-
if (/File ".+", line \d+/.test(text))
|
|
209
|
-
return true;
|
|
210
|
-
// Java stack traces
|
|
211
|
-
if (/at \w+\.\w+\(.+\.java:\d+\)/.test(text))
|
|
212
|
-
return true;
|
|
213
|
-
return false;
|
|
214
|
-
}
|
|
215
291
|
/**
|
|
216
292
|
* Sanitize log attributes.
|
|
217
293
|
*/
|
|
@@ -219,29 +295,44 @@ class PolicyAwareLogProcessor {
|
|
|
219
295
|
if (!attributes) {
|
|
220
296
|
return {};
|
|
221
297
|
}
|
|
298
|
+
const p = this.policy;
|
|
222
299
|
const sanitized = {};
|
|
223
300
|
for (const [key, value] of Object.entries(attributes)) {
|
|
224
301
|
const lowerKey = key.toLowerCase();
|
|
225
|
-
|
|
226
|
-
|
|
302
|
+
if ((0, log_sanitizer_js_1.isSecretFieldFromPolicy)(key, p.secretFieldNames, p.secretFieldPatterns)) {
|
|
303
|
+
sanitized[key] = log_sanitizer_js_1.REDACTED_PLACEHOLDER;
|
|
227
304
|
continue;
|
|
228
305
|
}
|
|
229
|
-
|
|
230
|
-
if ((0, log_sanitizer_js_1.isSecretField)(key)) {
|
|
306
|
+
if (p.forbiddenFields.has(lowerKey)) {
|
|
231
307
|
continue;
|
|
232
308
|
}
|
|
233
|
-
// Sanitize string values
|
|
234
309
|
if (typeof value === "string") {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
310
|
+
let str = p.messageSecretPatterns.length > 0
|
|
311
|
+
? (0, log_sanitizer_js_1.redactSensitivePatterns)(value, p.messageSecretPatterns)
|
|
312
|
+
: value;
|
|
313
|
+
str = (0, log_sanitizer_js_1.redactSensitivePatterns)(str, p.sensitivePatterns);
|
|
314
|
+
str = (0, log_sanitizer_js_1.applyRedactPatterns)(str, p.redactPatterns);
|
|
315
|
+
if (p.redactStackTraces) {
|
|
316
|
+
if ((0, log_sanitizer_js_1.isStackAttributeKey)(key)) {
|
|
317
|
+
sanitized[key] = (0, log_sanitizer_js_1.containsStackTrace)(str)
|
|
318
|
+
? (0, log_sanitizer_js_1.redactStackTraceForExport)(str, p.sensitivePatterns, p.messageSecretPatterns)
|
|
319
|
+
: log_sanitizer_js_1.STACK_TRACE_REDACTED_PLACEHOLDER;
|
|
320
|
+
}
|
|
321
|
+
else if ((0, log_sanitizer_js_1.containsStackTrace)(str)) {
|
|
322
|
+
sanitized[key] = (0, log_sanitizer_js_1.redactStackTraceForExport)(str, p.sensitivePatterns, p.messageSecretPatterns);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
sanitized[key] = str;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
sanitized[key] = str;
|
|
240
330
|
}
|
|
241
|
-
sanitized[key] = (0, log_sanitizer_js_1.sanitizeLogMessage)(sanitizedValue);
|
|
242
331
|
}
|
|
243
|
-
else if (value &&
|
|
244
|
-
|
|
332
|
+
else if (value &&
|
|
333
|
+
typeof value === "object" &&
|
|
334
|
+
!this.isPassthroughPolicy()) {
|
|
335
|
+
sanitized[key] = (0, log_sanitizer_js_1.sanitizeLogObjectForExport)(value, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
245
336
|
}
|
|
246
337
|
else {
|
|
247
338
|
sanitized[key] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-processor.js","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;
|
|
1
|
+
{"version":3,"file":"log-processor.js","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAiFH,4CAoDC;AA6CD,oFAeC;AAYD,4EAsBC;AA5ND,kDAAoE;AACpE,uEAAyE;AAEzE,iEAiBoC;AACpC,oDAA6D;AAE7D,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,+CAA+C;IAC/C,0CAAyB,CAAA;IACzB,4DAA4D;IAC5D,4CAA2B,CAAA;IAC3B,6DAA6D;IAC7D,kDAAiC,CAAA;AACnC,CAAC,EAPW,aAAa,6BAAb,aAAa,QAOxB;AA+BD;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,MAAuB;IACtD,MAAM,SAAS,GAAG,IAAI,8CAAwB,CAAC,MAAM,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,cAAc,GAAG,SAAS,CAAC,eAAe,CAC9C,yBAAa,CAAC,kBAAkB,CACjC,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,aAAa,EAAE,OAAO;YACtB,qBAAqB,EAAE,0CAAuB;YAC9C,gBAAgB,EAAE,gCAAa;YAC/B,mBAAmB,EAAE,wCAAqB;YAC1C,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,EAAE;YAClB,iBAAiB,EAAE,6CAA0B;YAC7C,eAAe,EAAE,6CAA0B;SAC5C,CAAC;IACJ,CAAC;IAED,wFAAwF;IACxF,IAAI,MAAM,CAAC,cAAc,KAAK,2BAAkB,CAAC,UAAU,EAAE,CAAC;QAC5D,OAAO;YACL,UAAU,EAAE,aAAa,CAAC,WAAW;YACrC,aAAa,EAAE,OAAO;YACtB,qBAAqB,EAAE,0CAAuB;YAC9C,gBAAgB,EAAE,gCAAa;YAC/B,mBAAmB,EAAE,wCAAqB;YAC1C,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,6CAA0B;YAC1C,iBAAiB,EAAE,6CAA0B;YAC7C,eAAe,EAAE,IAAI,GAAG,CAAC;gBACvB,GAAG,6CAA0B;gBAC7B,GAAG,qDAAkC;aACtC,CAAC;SACH,CAAC;IACJ,CAAC;IAED,gDAAgD;IAChD,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,cAAc;QACxC,aAAa,EAAE,OAAO;QACtB,qBAAqB,EAAE,EAAE;QACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,mBAAmB,EAAE,EAAE;QACvB,iBAAiB,EAAE,KAAK;QACxB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,IAAI,GAAG,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,gBAAgB,GAElB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAEzD,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAClC,UAA+C,CAChD,CAAC;IACF,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,CAAS,EAAE,CAAS;IAChD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oCAAoC,CAClD,aAAkC,EAClC,QAAgB;IAEhB,IAAI,KAAa,CAAC;IAClB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClD,IACE,aAAa,CAAC,UAAU,KAAK,aAAa,CAAC,WAAW;QACtD,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACzC,CAAC;QACD,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;IACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,gCAAgC,CAC9C,QAAgB,EAChB,cAAsB;IAEtB,MAAM,UAAU,GACd,cAAc,KAAK,2BAAkB,CAAC,UAAU;QAC9C,CAAC,CAAC,aAAa,CAAC,WAAW;QAC3B,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC;IACnC,OAAO,oCAAoC,CACzC;QACE,UAAU;QACV,aAAa,EAAE,OAAO;QACtB,qBAAqB,EAAE,EAAE;QACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,mBAAmB,EAAE,EAAE;QACvB,iBAAiB,EAAE,KAAK;QACxB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,IAAI,GAAG,EAAE;KAC3B,EACD,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,cAAuB;IAC9C,IAAI,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,cAAc,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,cAAc,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,cAAc,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,cAAc,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,cAAc,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,cAAkC,EAClC,IAAmB;IAEnB,IAAI,IAAI,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAEjD,IAAI,IAAI,KAAK,aAAa,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,CAAC;IAC7E,CAAC;IAED,iBAAiB;IACjB,OAAO,CACL,QAAQ,KAAK,MAAM;QACnB,QAAQ,KAAK,MAAM;QACnB,QAAQ,KAAK,OAAO;QACpB,QAAQ,KAAK,OAAO,CACrB,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAa,uBAAuB;IACjB,MAAM,CAAsB;IAC5B,QAAQ,CAAqB;IAE9C,YAAY,MAA2B,EAAE,QAA4B;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAA4B,EAAE,OAAiB;QACpD,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;YACxD,OAAO,CAAC,wBAAwB;QAClC,CAAC;QAED,6CAA6C;QAC7C,IACE,CAAC,oBAAoB,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EACvE,CAAC;YACD,OAAO;QACT,CAAC;QAED,iGAAiG;QACjG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAElC,kFAAkF;QAClF,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAgB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,gEAAgE;IACxD,mBAAmB;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,OAAO,CACL,CAAC,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC;YACpC,CAAC,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;YAC7B,CAAC,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;YAClC,CAAC,CAAC,CAAC,iBAAiB;YACpB,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC;YAC5B,CAAC,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,SAA4B;QACpD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAEtB,kCAAkC;QAClC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,IAAI,GACN,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;gBAChC,CAAC,CAAC,IAAA,0CAAuB,EAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,qBAAqB,CAAC;gBAClE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,GAAG,IAAA,0CAAuB,EAAC,IAAI,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC1D,IAAI,GAAG,IAAA,sCAAmB,EAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,iBAAiB,IAAI,IAAA,qCAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,IAAI,GAAG,IAAA,4CAAyB,EAC9B,IAAI,EACJ,CAAC,CAAC,iBAAiB,EACnB,CAAC,CAAC,qBAAqB,CACxB,CAAC;YACJ,CAAC;YACA,SAA0C,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1D,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBAC/B,SAA0C,CAAC,IAAI;oBAC9C,IAAA,6CAA0B,EACxB,SAAS,CAAC,IAAI,EACd,CAAC,CAAC,eAAe,EACjB,CAAC,EACD,CAAC,CAAC,iBAAiB,CACpB,CAAC;YACN,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,UAAiD,CAAC;QAC1E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC3D,kCAAkC;YAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC/D,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,UAA+C;QAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,MAAM,SAAS,GAA4B,EAAE,CAAC;QAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAEnC,IACE,IAAA,0CAAuB,EAAC,GAAG,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,mBAAmB,CAAC,EACvE,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,GAAG,uCAAoB,CAAC;gBACtC,SAAS;YACX,CAAC;YAED,IAAI,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,GAAG,GACL,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;oBAChC,CAAC,CAAC,IAAA,0CAAuB,EAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;oBACzD,CAAC,CAAC,KAAK,CAAC;gBACZ,GAAG,GAAG,IAAA,0CAAuB,EAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACxD,GAAG,GAAG,IAAA,sCAAmB,EAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;gBACjD,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;oBACxB,IAAI,IAAA,sCAAmB,EAAC,GAAG,CAAC,EAAE,CAAC;wBAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,qCAAkB,EAAC,GAAG,CAAC;4BACtC,CAAC,CAAC,IAAA,4CAAyB,EACvB,GAAG,EACH,CAAC,CAAC,iBAAiB,EACnB,CAAC,CAAC,qBAAqB,CACxB;4BACH,CAAC,CAAC,mDAAgC,CAAC;oBACvC,CAAC;yBAAM,IAAI,IAAA,qCAAkB,EAAC,GAAG,CAAC,EAAE,CAAC;wBACnC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,4CAAyB,EACxC,GAAG,EACH,CAAC,CAAC,iBAAiB,EACnB,CAAC,CAAC,qBAAqB,CACxB,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBACvB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBACvB,CAAC;YACH,CAAC;iBAAM,IACL,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAC3B,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,6CAA0B,EACzC,KAAK,EACL,CAAC,CAAC,eAAe,EACjB,CAAC,EACD,CAAC,CAAC,iBAAiB,CACpB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;CACF;AAxLD,0DAwLC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-client.d.ts","sourceRoot":"","sources":["../../src/node/metrics-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAkC,MAAM,oBAAoB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics-client.d.ts","sourceRoot":"","sources":["../../src/node/metrics-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAkC,MAAM,oBAAoB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAuHrD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,qBAAa,aAAa;IAMZ,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,WAAW,CAAkC;gBAExB,KAAK,EAAE,KAAK;IAEzC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAapC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IA2BhC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAaxC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,IAAI;IAIlE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3D;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAGpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-client.js","sourceRoot":"","sources":["../../src/node/metrics-client.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,UAAU,GAAe,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAChD,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,oDAAoD;AACtF,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,uBAAuB;AAUpE;;GAEG;AACH,MAAM,WAAW;IAKI;IACA;IALX,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACxC,YAAY,GAA0C,IAAI,CAAC;IAEnE,YACmB,QAAgB,YAAY,EAC5B,aAAqB,iBAAiB;QADtC,UAAK,GAAL,KAAK,CAAuB;QAC5B,eAAU,GAAV,UAAU,CAA4B;QAEvD,yBAAyB;QACzB,IAAI,CAAC,YAAY,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"metrics-client.js","sourceRoot":"","sources":["../../src/node/metrics-client.ts"],"names":[],"mappings":"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"}
|