@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/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,
|
|
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;AAcvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAYpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C;;;;;;;;OAQG;IACH,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACjE,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;AASD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kCAAkC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC3E;AA0GD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,eAAe,GACtB,qBAAqB,CAqPvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAQ5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist/node/init.js
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Node.js Telemetry Bootstrap
|
|
3
4
|
*
|
|
4
5
|
* This is the ONLY approved way to initialize telemetry in Node.js services.
|
|
5
6
|
* Direct NodeSDK usage outside this package is prohibited.
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.initNodeTelemetry = initNodeTelemetry;
|
|
10
|
+
exports.getTelemetryInstance = getTelemetryInstance;
|
|
11
|
+
exports.isTelemetryInitialized = isTelemetryInitialized;
|
|
12
|
+
exports.resetTelemetry = resetTelemetry;
|
|
13
|
+
const api_1 = require("@opentelemetry/api");
|
|
14
|
+
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
15
|
+
const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
|
|
16
|
+
const core_1 = require("@opentelemetry/core");
|
|
17
|
+
const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
|
|
18
|
+
const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
|
|
19
|
+
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
20
|
+
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
|
21
|
+
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
22
|
+
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
23
|
+
const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
24
|
+
const tier2_traces_js_1 = require("../common/contracts/tier2-traces.js");
|
|
25
|
+
const policy_evaluator_js_1 = require("../common/policy-evaluator.js");
|
|
26
|
+
const resource_js_1 = require("../common/resource.js");
|
|
27
|
+
const trace_sanitizer_js_1 = require("../common/trace-sanitizer.js");
|
|
28
|
+
const policy_js_1 = require("../types/policy.js");
|
|
29
|
+
const dynamic_attribute_processor_js_1 = require("./dynamic-attribute-processor.js");
|
|
30
|
+
const resilient_exporter_js_1 = require("./exporters/resilient-exporter.js");
|
|
31
|
+
const local_obs_mode_js_1 = require("./local-obs-mode.js");
|
|
32
|
+
const log_processor_js_1 = require("./log-processor.js");
|
|
33
|
+
const metrics_client_js_1 = require("./metrics-client.js");
|
|
34
|
+
const sanitizing_processor_js_1 = require("./sanitizing-processor.js");
|
|
35
|
+
const service_tracers_js_1 = require("./service-tracers.js");
|
|
30
36
|
function getInstance() {
|
|
31
37
|
return globalThis.__superblocksNodeTelemetryInstance;
|
|
32
38
|
}
|
|
@@ -46,18 +52,18 @@ function setInstance(next) {
|
|
|
46
52
|
* (which returns no-op tracers/meters/loggers when no provider is registered).
|
|
47
53
|
*/
|
|
48
54
|
function createNoOpInstance(config, policy) {
|
|
49
|
-
const policyEvaluator = new TelemetryPolicyEvaluator(policy);
|
|
55
|
+
const policyEvaluator = new policy_evaluator_js_1.TelemetryPolicyEvaluator(policy);
|
|
50
56
|
// Use a no-op meter for the metrics client
|
|
51
|
-
const defaultMeter = metrics.getMeter(config.serviceName, config.serviceVersion);
|
|
57
|
+
const defaultMeter = api_1.metrics.getMeter(config.serviceName, config.serviceVersion);
|
|
52
58
|
return {
|
|
53
59
|
sdk: undefined,
|
|
54
60
|
policyEvaluator,
|
|
55
61
|
// No-op mode has no SDK/exporter, so secondary services collapse to the
|
|
56
62
|
// global (no-op) tracer — options.serviceName is accepted but inert.
|
|
57
|
-
getTracer: (name, _options) => trace.getTracer(name ?? config.serviceName, config.serviceVersion),
|
|
58
|
-
getMeter: (name) => metrics.getMeter(name ?? config.serviceName, config.serviceVersion),
|
|
59
|
-
getLogger: (name) => logs.getLogger(name ?? config.serviceName, config.serviceVersion),
|
|
60
|
-
metricsClient: new MetricsClient(defaultMeter),
|
|
63
|
+
getTracer: (name, _options) => api_1.trace.getTracer(name ?? config.serviceName, config.serviceVersion),
|
|
64
|
+
getMeter: (name) => api_1.metrics.getMeter(name ?? config.serviceName, config.serviceVersion),
|
|
65
|
+
getLogger: (name) => api_logs_1.logs.getLogger(name ?? config.serviceName, config.serviceVersion),
|
|
66
|
+
metricsClient: new metrics_client_js_1.MetricsClient(defaultMeter),
|
|
61
67
|
shutdown: async () => {
|
|
62
68
|
// No-op: nothing to flush or shut down
|
|
63
69
|
},
|
|
@@ -138,7 +144,7 @@ function validateNodeTelemetryConfig(config) {
|
|
|
138
144
|
* const tracer = telemetry.getTracer();
|
|
139
145
|
* ```
|
|
140
146
|
*/
|
|
141
|
-
|
|
147
|
+
function initNodeTelemetry(config, policy) {
|
|
142
148
|
// Policy is required
|
|
143
149
|
if (!policy) {
|
|
144
150
|
throw new Error("[Telemetry] Policy is required. Cannot initialize telemetry without a policy.");
|
|
@@ -170,10 +176,10 @@ export function initNodeTelemetry(config, policy) {
|
|
|
170
176
|
setInstance(noOp);
|
|
171
177
|
return noOp;
|
|
172
178
|
}
|
|
173
|
-
const policyEvaluator = new TelemetryPolicyEvaluator(policy);
|
|
174
|
-
const resource = buildResource(config);
|
|
179
|
+
const policyEvaluator = new policy_evaluator_js_1.TelemetryPolicyEvaluator(policy);
|
|
180
|
+
const resource = (0, resource_js_1.buildResource)(config);
|
|
175
181
|
// Validate resource has required attributes
|
|
176
|
-
validateResource(resource);
|
|
182
|
+
(0, resource_js_1.validateResource)(resource);
|
|
177
183
|
// Track dropped spans for observability
|
|
178
184
|
let droppedSpans = 0;
|
|
179
185
|
const onDrop = (count, reason) => {
|
|
@@ -185,9 +191,9 @@ export function initNodeTelemetry(config, policy) {
|
|
|
185
191
|
// Use isExportEnabled (not canExport) - sampling applies at runtime, not initialization.
|
|
186
192
|
let spanProcessor;
|
|
187
193
|
if (config.otlpUrl &&
|
|
188
|
-
policyEvaluator.isExportEnabled(TelemetryTier.TIER_2_OPERATIONAL)) {
|
|
189
|
-
const tier2Exporter = new ResilientExporter({
|
|
190
|
-
delegate: new OTLPTraceExporter({
|
|
194
|
+
policyEvaluator.isExportEnabled(policy_js_1.TelemetryTier.TIER_2_OPERATIONAL)) {
|
|
195
|
+
const tier2Exporter = new resilient_exporter_js_1.ResilientExporter({
|
|
196
|
+
delegate: new exporter_trace_otlp_http_1.OTLPTraceExporter({
|
|
191
197
|
headers: config.otlpHeaders,
|
|
192
198
|
url: `${config.otlpUrl}/v1/traces`,
|
|
193
199
|
}),
|
|
@@ -195,23 +201,23 @@ export function initNodeTelemetry(config, policy) {
|
|
|
195
201
|
logger: config.logger,
|
|
196
202
|
});
|
|
197
203
|
const hashConfig = config.traceSanitizerHashConfig ?? null;
|
|
198
|
-
const attributeSets = getTraceSanitizerAttributeSets(policy.deploymentType);
|
|
199
|
-
const traceSanitizer = new TraceSanitizer({
|
|
204
|
+
const attributeSets = (0, tier2_traces_js_1.getTraceSanitizerAttributeSets)(policy.deploymentType);
|
|
205
|
+
const traceSanitizer = new trace_sanitizer_js_1.TraceSanitizer({
|
|
200
206
|
hashConfig,
|
|
201
207
|
...attributeSets,
|
|
202
208
|
});
|
|
203
209
|
const spanProcessorLogger = config.logger ?? createConsoleFallbackLogger();
|
|
204
|
-
spanProcessor = new SanitizingSpanProcessor(policyEvaluator, noopSpanProcessor, tier2Exporter, traceSanitizer, spanProcessorLogger);
|
|
210
|
+
spanProcessor = new sanitizing_processor_js_1.SanitizingSpanProcessor(policyEvaluator, sanitizing_processor_js_1.noopSpanProcessor, tier2Exporter, traceSanitizer, spanProcessorLogger);
|
|
205
211
|
// Local-obs override: bypass the sanitizer so the local LGTM stack sees
|
|
206
212
|
// every span (service graph, raw attrs). Same exporter as cloud — only the
|
|
207
213
|
// processor changes.
|
|
208
|
-
if (isLocalObsMode()) {
|
|
209
|
-
spanProcessor = new BatchSpanProcessor(tier2Exporter);
|
|
214
|
+
if ((0, local_obs_mode_js_1.isLocalObsMode)()) {
|
|
215
|
+
spanProcessor = new sdk_trace_base_1.BatchSpanProcessor(tier2Exporter);
|
|
210
216
|
}
|
|
211
217
|
// Stamp late-known identity (e.g. a dev-server's app/user/org, resolved at
|
|
212
218
|
// connect) onto every span without re-initializing the SDK.
|
|
213
219
|
if (config.dynamicAttributes) {
|
|
214
|
-
spanProcessor = new DynamicAttributeSpanProcessor(spanProcessor, config.dynamicAttributes);
|
|
220
|
+
spanProcessor = new dynamic_attribute_processor_js_1.DynamicAttributeSpanProcessor(spanProcessor, config.dynamicAttributes);
|
|
215
221
|
}
|
|
216
222
|
}
|
|
217
223
|
// Create metric exporter if enabled
|
|
@@ -219,11 +225,11 @@ export function initNodeTelemetry(config, policy) {
|
|
|
219
225
|
let metricReader;
|
|
220
226
|
if (config.otlpUrl &&
|
|
221
227
|
config.metricsEnabled !== false &&
|
|
222
|
-
policyEvaluator.isExportEnabled(TelemetryTier.TIER_2_OPERATIONAL)) {
|
|
223
|
-
metricReader = new PeriodicExportingMetricReader({
|
|
224
|
-
exporter: new OTLPMetricExporter({
|
|
228
|
+
policyEvaluator.isExportEnabled(policy_js_1.TelemetryTier.TIER_2_OPERATIONAL)) {
|
|
229
|
+
metricReader = new sdk_metrics_1.PeriodicExportingMetricReader({
|
|
230
|
+
exporter: new exporter_metrics_otlp_http_1.OTLPMetricExporter({
|
|
225
231
|
headers: config.otlpHeaders,
|
|
226
|
-
temporalityPreference: AggregationTemporality.DELTA,
|
|
232
|
+
temporalityPreference: sdk_metrics_1.AggregationTemporality.DELTA,
|
|
227
233
|
url: `${config.otlpUrl}/v1/metrics`,
|
|
228
234
|
}),
|
|
229
235
|
exportIntervalMillis: 10000, // every 10 seconds
|
|
@@ -235,42 +241,42 @@ export function initNodeTelemetry(config, policy) {
|
|
|
235
241
|
// 2. Sanitize log bodies and attributes to remove PII, file paths, stack traces
|
|
236
242
|
// 3. Remove forbidden fields that should never be exported
|
|
237
243
|
let logProcessor;
|
|
238
|
-
let loggingPolicy = getLoggingPolicy(policy);
|
|
244
|
+
let loggingPolicy = (0, log_processor_js_1.getLoggingPolicy)(policy);
|
|
239
245
|
// Local-obs override: ship info+ logs to the local LGTM stack regardless of
|
|
240
246
|
// the deployment policy's export mode (cloud-prem is ERRORS_ONLY). Mirrors the
|
|
241
247
|
// span sanitizer bypass above. See isLocalObsMode for why this is local-only.
|
|
242
|
-
if (isLocalObsMode()) {
|
|
248
|
+
if ((0, local_obs_mode_js_1.isLocalObsMode)()) {
|
|
243
249
|
loggingPolicy = {
|
|
244
250
|
...loggingPolicy,
|
|
245
|
-
exportMode: LogExportMode.INFO_AND_ABOVE,
|
|
251
|
+
exportMode: log_processor_js_1.LogExportMode.INFO_AND_ABOVE,
|
|
246
252
|
};
|
|
247
253
|
}
|
|
248
254
|
if (config.otlpUrl &&
|
|
249
255
|
config.logsEnabled !== false &&
|
|
250
|
-
policyEvaluator.isExportEnabled(TelemetryTier.TIER_2_OPERATIONAL) &&
|
|
251
|
-
loggingPolicy.exportMode !== LogExportMode.LOCAL_ONLY) {
|
|
252
|
-
const batchProcessor = new BatchLogRecordProcessor({
|
|
253
|
-
exporter: new OTLPLogExporter({
|
|
256
|
+
policyEvaluator.isExportEnabled(policy_js_1.TelemetryTier.TIER_2_OPERATIONAL) &&
|
|
257
|
+
loggingPolicy.exportMode !== log_processor_js_1.LogExportMode.LOCAL_ONLY) {
|
|
258
|
+
const batchProcessor = new sdk_logs_1.BatchLogRecordProcessor({
|
|
259
|
+
exporter: new exporter_logs_otlp_http_1.OTLPLogExporter({
|
|
254
260
|
headers: config.otlpHeaders,
|
|
255
261
|
url: `${config.otlpUrl}/v1/logs`,
|
|
256
262
|
}),
|
|
257
263
|
});
|
|
258
|
-
logProcessor = new PolicyAwareLogProcessor(loggingPolicy, batchProcessor);
|
|
264
|
+
logProcessor = new log_processor_js_1.PolicyAwareLogProcessor(loggingPolicy, batchProcessor);
|
|
259
265
|
// Same late-known identity as spans: stamp before the policy processor so
|
|
260
266
|
// sanitization sees (and can redact) the identity attributes.
|
|
261
267
|
if (config.dynamicAttributes) {
|
|
262
|
-
logProcessor = new DynamicAttributeLogRecordProcessor(logProcessor, config.dynamicAttributes);
|
|
268
|
+
logProcessor = new dynamic_attribute_processor_js_1.DynamicAttributeLogRecordProcessor(logProcessor, config.dynamicAttributes);
|
|
263
269
|
}
|
|
264
270
|
}
|
|
265
271
|
// Create the SDK
|
|
266
272
|
// Note: instrumentations typed as unknown[] for flexibility with various OTEL instrumentation packages
|
|
267
|
-
const sdk = new NodeSDK({
|
|
273
|
+
const sdk = new sdk_node_1.NodeSDK({
|
|
268
274
|
resource,
|
|
269
275
|
spanProcessor,
|
|
270
276
|
metricReader,
|
|
271
277
|
logRecordProcessor: logProcessor,
|
|
272
|
-
contextManager: new AsyncLocalStorageContextManager(),
|
|
273
|
-
textMapPropagator: new W3CTraceContextPropagator(),
|
|
278
|
+
contextManager: new context_async_hooks_1.AsyncLocalStorageContextManager(),
|
|
279
|
+
textMapPropagator: new core_1.W3CTraceContextPropagator(),
|
|
274
280
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- OTEL instrumentation types vary
|
|
275
281
|
instrumentations: (config.instrumentations ?? []),
|
|
276
282
|
});
|
|
@@ -294,11 +300,11 @@ export function initNodeTelemetry(config, policy) {
|
|
|
294
300
|
console.info(`[Telemetry] Initialized for ${config.serviceName} (${policy.deploymentType})` +
|
|
295
301
|
` | Traces: ${tracesEnabled} | Metrics: ${metricsEnabled} | Logs: ${logsEnabled}`);
|
|
296
302
|
}
|
|
297
|
-
const defaultMeter = metrics.getMeter(config.serviceName, config.serviceVersion);
|
|
303
|
+
const defaultMeter = api_1.metrics.getMeter(config.serviceName, config.serviceVersion);
|
|
298
304
|
// Secondary-service tracers (e.g. server LLM-Obs spans under
|
|
299
305
|
// `superblocks-ai-code-gen`). They reuse the SAME span processor so
|
|
300
306
|
// sanitization + export are identical; the SDK owns its lifecycle.
|
|
301
|
-
const serviceTracers = createServiceTracers({
|
|
307
|
+
const serviceTracers = (0, service_tracers_js_1.createServiceTracers)({
|
|
302
308
|
baseResource: resource,
|
|
303
309
|
defaultServiceName: config.serviceName,
|
|
304
310
|
serviceVersion: config.serviceVersion,
|
|
@@ -308,9 +314,9 @@ export function initNodeTelemetry(config, policy) {
|
|
|
308
314
|
sdk,
|
|
309
315
|
policyEvaluator,
|
|
310
316
|
getTracer: (name, options) => serviceTracers.getTracer(name ?? config.serviceName, options?.serviceName ?? config.serviceName),
|
|
311
|
-
getMeter: (name) => metrics.getMeter(name ?? config.serviceName, config.serviceVersion),
|
|
312
|
-
getLogger: (name) => logs.getLogger(name ?? config.serviceName, config.serviceVersion),
|
|
313
|
-
metricsClient: new MetricsClient(defaultMeter),
|
|
317
|
+
getMeter: (name) => api_1.metrics.getMeter(name ?? config.serviceName, config.serviceVersion),
|
|
318
|
+
getLogger: (name) => api_logs_1.logs.getLogger(name ?? config.serviceName, config.serviceVersion),
|
|
319
|
+
metricsClient: new metrics_client_js_1.MetricsClient(defaultMeter),
|
|
314
320
|
shutdown: async () => {
|
|
315
321
|
try {
|
|
316
322
|
// Best-effort flush of secondary providers; never let it block the
|
|
@@ -336,7 +342,7 @@ export function initNodeTelemetry(config, policy) {
|
|
|
336
342
|
*
|
|
337
343
|
* @throws Error if not initialized
|
|
338
344
|
*/
|
|
339
|
-
|
|
345
|
+
function getTelemetryInstance() {
|
|
340
346
|
const current = getInstance();
|
|
341
347
|
if (!current) {
|
|
342
348
|
throw new Error("[Telemetry] Not initialized. Call initNodeTelemetry() first.");
|
|
@@ -346,14 +352,14 @@ export function getTelemetryInstance() {
|
|
|
346
352
|
/**
|
|
347
353
|
* Check if telemetry is initialized.
|
|
348
354
|
*/
|
|
349
|
-
|
|
355
|
+
function isTelemetryInitialized() {
|
|
350
356
|
return getInstance() !== undefined;
|
|
351
357
|
}
|
|
352
358
|
/**
|
|
353
359
|
* Reset telemetry (for testing only).
|
|
354
360
|
* @internal
|
|
355
361
|
*/
|
|
356
|
-
|
|
362
|
+
function resetTelemetry() {
|
|
357
363
|
setInstance(undefined);
|
|
358
364
|
}
|
|
359
365
|
//# sourceMappingURL=init.js.map
|
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":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isLocalObsMode = isLocalObsMode;
|
|
1
4
|
/**
|
|
2
5
|
* Local-observability mode toggle for the Node telemetry pipeline.
|
|
3
6
|
*
|
|
@@ -13,7 +16,7 @@
|
|
|
13
16
|
* the info-level log-export override) never activate in a deployed environment
|
|
14
17
|
* and therefore never duplicate log volume into Datadog.
|
|
15
18
|
*/
|
|
16
|
-
|
|
19
|
+
function isLocalObsMode(env = process.env) {
|
|
17
20
|
return env.SUPERBLOCKS_LOCAL_OBS === "true";
|
|
18
21
|
}
|
|
19
22
|
//# sourceMappingURL=local-obs-mode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-obs-mode.js","sourceRoot":"","sources":["../../src/node/local-obs-mode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-obs-mode.js","sourceRoot":"","sources":["../../src/node/local-obs-mode.ts"],"names":[],"mappings":";;AAeA,wCAEC;AAjBD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG;IACjE,OAAO,GAAG,CAAC,qBAAqB,KAAK,MAAM,CAAC;AAC9C,CAAC"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import type { Context } from "@opentelemetry/api";
|
|
12
12
|
import type { LogRecordProcessor, ReadableLogRecord } from "@opentelemetry/sdk-logs";
|
|
13
13
|
import type { SensitivePattern } from "../common/log-sanitizer.js";
|
|
14
|
-
import {
|
|
14
|
+
import { TelemetryPolicy } from "../types/policy.js";
|
|
15
15
|
/**
|
|
16
16
|
* Controls what logs are exported via OTEL.
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAoBnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAoBnE,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAOpE;;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;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,aAAa,GAAG,SAAS,CAS3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,kBAAkB,CAAC,EAAE,aAAa,GACjC,mBAAmB,CAyDrB;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,mBAAmB,EAClC,QAAQ,EAAE,MAAM,GACf,MAAM,CAiBR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,kBAAkB,CAAC,EAAE,aAAa,GACjC,MAAM,CAsBR;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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Policy-Aware Log Processor
|
|
3
4
|
*
|
|
@@ -8,18 +9,24 @@
|
|
|
8
9
|
*
|
|
9
10
|
* @see https://github.com/superblocksteam/engineering/blob/main/projects/o11y-refactor/epics/epic-c4-logging-strategy.md
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.PolicyAwareLogProcessor = exports.LogExportMode = void 0;
|
|
14
|
+
exports.parseLogExportMode = parseLogExportMode;
|
|
15
|
+
exports.getLoggingPolicy = getLoggingPolicy;
|
|
16
|
+
exports.getMinimumPinoLevelFromLoggingPolicy = getMinimumPinoLevelFromLoggingPolicy;
|
|
17
|
+
exports.getMinimumPinoLevelForDeployment = getMinimumPinoLevelForDeployment;
|
|
18
|
+
const shared_1 = require("@superblocksteam/shared");
|
|
19
|
+
const log_sanitizer_js_1 = require("../common/log-sanitizer.js");
|
|
20
|
+
const policy_evaluator_js_1 = require("../common/policy-evaluator.js");
|
|
21
|
+
const policy_js_1 = require("../types/policy.js");
|
|
22
|
+
const local_obs_mode_js_1 = require("./local-obs-mode.js");
|
|
16
23
|
// ============================================================================
|
|
17
24
|
// Log Export Mode
|
|
18
25
|
// ============================================================================
|
|
19
26
|
/**
|
|
20
27
|
* Controls what logs are exported via OTEL.
|
|
21
28
|
*/
|
|
22
|
-
|
|
29
|
+
var LogExportMode;
|
|
23
30
|
(function (LogExportMode) {
|
|
24
31
|
/** No log export - local stdout/stderr only */
|
|
25
32
|
LogExportMode["LOCAL_ONLY"] = "local_only";
|
|
@@ -27,12 +34,12 @@ export var LogExportMode;
|
|
|
27
34
|
LogExportMode["ERRORS_ONLY"] = "errors_only";
|
|
28
35
|
/** Export INFO and above (not recommended for cloud-prem) */
|
|
29
36
|
LogExportMode["INFO_AND_ABOVE"] = "info_and_above";
|
|
30
|
-
})(LogExportMode || (LogExportMode = {}));
|
|
37
|
+
})(LogExportMode || (exports.LogExportMode = LogExportMode = {}));
|
|
31
38
|
/**
|
|
32
39
|
* Parse a string value into a LogExportMode, returning undefined if unrecognized.
|
|
33
40
|
* Used to validate SUPERBLOCKS_LOG_EXPORT_MODE env var values.
|
|
34
41
|
*/
|
|
35
|
-
|
|
42
|
+
function parseLogExportMode(value) {
|
|
36
43
|
if (!value)
|
|
37
44
|
return undefined;
|
|
38
45
|
const normalized = value.toLowerCase();
|
|
@@ -53,42 +60,42 @@ export function parseLogExportMode(value) {
|
|
|
53
60
|
* Cloud-prem sanitization (redaction, forbidden fields) is still applied regardless of override.
|
|
54
61
|
* @returns Logging policy configuration
|
|
55
62
|
*/
|
|
56
|
-
|
|
57
|
-
const evaluator = new TelemetryPolicyEvaluator(policy);
|
|
63
|
+
function getLoggingPolicy(policy, exportModeOverride) {
|
|
64
|
+
const evaluator = new policy_evaluator_js_1.TelemetryPolicyEvaluator(policy);
|
|
58
65
|
// Check if Tier 2 export is allowed.
|
|
59
66
|
// ORDERING IS SECURITY-CRITICAL: this gate MUST come before the cloud-prem branch.
|
|
60
67
|
// exportModeOverride must never escalate a LOCAL_ONLY (Tier 2 disabled) deployment to
|
|
61
68
|
// INFO_AND_ABOVE. Do not move the cloud-prem branch above this check.
|
|
62
|
-
const canExportTier2 = evaluator.isExportEnabled(TelemetryTier.TIER_2_OPERATIONAL);
|
|
69
|
+
const canExportTier2 = evaluator.isExportEnabled(policy_js_1.TelemetryTier.TIER_2_OPERATIONAL);
|
|
63
70
|
if (!canExportTier2) {
|
|
64
71
|
return {
|
|
65
72
|
exportMode: LogExportMode.LOCAL_ONLY,
|
|
66
73
|
localMaxLevel: "debug",
|
|
67
|
-
messageSecretPatterns: DEFAULT_SECRET_PATTERNS,
|
|
68
|
-
secretFieldNames: SECRET_FIELDS,
|
|
69
|
-
secretFieldPatterns: SECRET_FIELD_PATTERNS,
|
|
74
|
+
messageSecretPatterns: log_sanitizer_js_1.DEFAULT_SECRET_PATTERNS,
|
|
75
|
+
secretFieldNames: log_sanitizer_js_1.SECRET_FIELDS,
|
|
76
|
+
secretFieldPatterns: log_sanitizer_js_1.SECRET_FIELD_PATTERNS,
|
|
70
77
|
redactStackTraces: true,
|
|
71
78
|
redactPatterns: [],
|
|
72
|
-
sensitivePatterns: DEFAULT_SENSITIVE_PATTERNS,
|
|
73
|
-
forbiddenFields: TIER1_FORBIDDEN_LOG_FIELDS,
|
|
79
|
+
sensitivePatterns: log_sanitizer_js_1.DEFAULT_SENSITIVE_PATTERNS,
|
|
80
|
+
forbiddenFields: log_sanitizer_js_1.TIER1_FORBIDDEN_LOG_FIELDS,
|
|
74
81
|
};
|
|
75
82
|
}
|
|
76
83
|
// Cloud-prem: export errors only by default, with full sanitization (secrets + sensitive patterns).
|
|
77
84
|
// exportModeOverride allows specific deployments (e.g. trial environments) to opt into INFO_AND_ABOVE
|
|
78
85
|
// for debugging. Sanitization is always applied on cloud-prem regardless of the override.
|
|
79
|
-
if (policy.deploymentType === DeploymentTypeEnum.CLOUD_PREM) {
|
|
86
|
+
if (policy.deploymentType === shared_1.DeploymentTypeEnum.CLOUD_PREM) {
|
|
80
87
|
return {
|
|
81
88
|
exportMode: exportModeOverride ?? LogExportMode.ERRORS_ONLY,
|
|
82
89
|
localMaxLevel: "debug",
|
|
83
|
-
messageSecretPatterns: DEFAULT_SECRET_PATTERNS,
|
|
84
|
-
secretFieldNames: SECRET_FIELDS,
|
|
85
|
-
secretFieldPatterns: SECRET_FIELD_PATTERNS,
|
|
90
|
+
messageSecretPatterns: log_sanitizer_js_1.DEFAULT_SECRET_PATTERNS,
|
|
91
|
+
secretFieldNames: log_sanitizer_js_1.SECRET_FIELDS,
|
|
92
|
+
secretFieldPatterns: log_sanitizer_js_1.SECRET_FIELD_PATTERNS,
|
|
86
93
|
redactStackTraces: true,
|
|
87
|
-
redactPatterns: CLOUD_PREM_REDACT_PATTERNS,
|
|
88
|
-
sensitivePatterns: DEFAULT_SENSITIVE_PATTERNS,
|
|
94
|
+
redactPatterns: log_sanitizer_js_1.CLOUD_PREM_REDACT_PATTERNS,
|
|
95
|
+
sensitivePatterns: log_sanitizer_js_1.DEFAULT_SENSITIVE_PATTERNS,
|
|
89
96
|
forbiddenFields: new Set([
|
|
90
|
-
...TIER1_FORBIDDEN_LOG_FIELDS,
|
|
91
|
-
...EXPORT_FORBIDDEN_FIELDS_CLOUD_PREM,
|
|
97
|
+
...log_sanitizer_js_1.TIER1_FORBIDDEN_LOG_FIELDS,
|
|
98
|
+
...log_sanitizer_js_1.EXPORT_FORBIDDEN_FIELDS_CLOUD_PREM,
|
|
92
99
|
]),
|
|
93
100
|
};
|
|
94
101
|
}
|
|
@@ -140,7 +147,7 @@ function moreRestrictiveLevel(a, b) {
|
|
|
140
147
|
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
141
148
|
* @returns Level to pass to Pino
|
|
142
149
|
*/
|
|
143
|
-
|
|
150
|
+
function getMinimumPinoLevelFromLoggingPolicy(loggingPolicy, envLevel) {
|
|
144
151
|
let level;
|
|
145
152
|
const envLevelNormalized = envLevel.toLowerCase();
|
|
146
153
|
// Under local-obs the OTLP log processor exports INFO+ (see the override in
|
|
@@ -148,7 +155,7 @@ export function getMinimumPinoLevelFromLoggingPolicy(loggingPolicy, envLevel) {
|
|
|
148
155
|
// deployment type keeps the ERRORS_ONLY 'warn' floor and INFO lines are dropped
|
|
149
156
|
// by Pino before they can reach the pino->OTel tee. See isLocalObsMode.
|
|
150
157
|
if (loggingPolicy.exportMode === LogExportMode.ERRORS_ONLY &&
|
|
151
|
-
!isLocalObsMode() &&
|
|
158
|
+
!(0, local_obs_mode_js_1.isLocalObsMode)() &&
|
|
152
159
|
LEVELS_BELOW_WARN.has(envLevelNormalized)) {
|
|
153
160
|
level = "warn";
|
|
154
161
|
}
|
|
@@ -173,8 +180,8 @@ export function getMinimumPinoLevelFromLoggingPolicy(loggingPolicy, envLevel) {
|
|
|
173
180
|
* which always enforces !canExportTier2 before applying the override.
|
|
174
181
|
* @returns Level to pass to Pino (envLevel or 'warn' for cloud-prem when envLevel is below warn)
|
|
175
182
|
*/
|
|
176
|
-
|
|
177
|
-
const isCloudPrem = deploymentType === DeploymentTypeEnum.CLOUD_PREM;
|
|
183
|
+
function getMinimumPinoLevelForDeployment(envLevel, deploymentType, exportModeOverride) {
|
|
184
|
+
const isCloudPrem = deploymentType === shared_1.DeploymentTypeEnum.CLOUD_PREM;
|
|
178
185
|
const deploymentDefault = isCloudPrem
|
|
179
186
|
? LogExportMode.ERRORS_ONLY
|
|
180
187
|
: LogExportMode.INFO_AND_ABOVE;
|
|
@@ -247,7 +254,7 @@ function shouldExportSeverity(severityNumber, mode) {
|
|
|
247
254
|
* 2. Filters by severity level based on exportMode
|
|
248
255
|
* 3. Sanitizes log body and attributes before forwarding
|
|
249
256
|
*/
|
|
250
|
-
|
|
257
|
+
class PolicyAwareLogProcessor {
|
|
251
258
|
policy;
|
|
252
259
|
delegate;
|
|
253
260
|
constructor(policy, delegate) {
|
|
@@ -293,19 +300,19 @@ export class PolicyAwareLogProcessor {
|
|
|
293
300
|
// Sanitize body - mutate in place
|
|
294
301
|
if (typeof logRecord.body === "string") {
|
|
295
302
|
let body = p.messageSecretPatterns.length > 0
|
|
296
|
-
? redactSensitivePatterns(logRecord.body, p.messageSecretPatterns)
|
|
303
|
+
? (0, log_sanitizer_js_1.redactSensitivePatterns)(logRecord.body, p.messageSecretPatterns)
|
|
297
304
|
: logRecord.body;
|
|
298
|
-
body = redactSensitivePatterns(body, p.sensitivePatterns);
|
|
299
|
-
body = applyRedactPatterns(body, p.redactPatterns);
|
|
300
|
-
if (p.redactStackTraces && containsStackTrace(body)) {
|
|
301
|
-
body = redactStackTraceForExport(body, p.sensitivePatterns, p.messageSecretPatterns);
|
|
305
|
+
body = (0, log_sanitizer_js_1.redactSensitivePatterns)(body, p.sensitivePatterns);
|
|
306
|
+
body = (0, log_sanitizer_js_1.applyRedactPatterns)(body, p.redactPatterns);
|
|
307
|
+
if (p.redactStackTraces && (0, log_sanitizer_js_1.containsStackTrace)(body)) {
|
|
308
|
+
body = (0, log_sanitizer_js_1.redactStackTraceForExport)(body, p.sensitivePatterns, p.messageSecretPatterns);
|
|
302
309
|
}
|
|
303
310
|
logRecord.body = body;
|
|
304
311
|
}
|
|
305
312
|
else if (logRecord.body && typeof logRecord.body === "object") {
|
|
306
313
|
if (!this.isPassthroughPolicy()) {
|
|
307
314
|
logRecord.body =
|
|
308
|
-
sanitizeLogObjectForExport(logRecord.body, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
315
|
+
(0, log_sanitizer_js_1.sanitizeLogObjectForExport)(logRecord.body, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
309
316
|
}
|
|
310
317
|
}
|
|
311
318
|
// Sanitize attributes - mutate in place
|
|
@@ -332,8 +339,8 @@ export class PolicyAwareLogProcessor {
|
|
|
332
339
|
const sanitized = {};
|
|
333
340
|
for (const [key, value] of Object.entries(attributes)) {
|
|
334
341
|
const lowerKey = key.toLowerCase();
|
|
335
|
-
if (isSecretFieldFromPolicy(key, p.secretFieldNames, p.secretFieldPatterns)) {
|
|
336
|
-
sanitized[key] = REDACTED_PLACEHOLDER;
|
|
342
|
+
if ((0, log_sanitizer_js_1.isSecretFieldFromPolicy)(key, p.secretFieldNames, p.secretFieldPatterns)) {
|
|
343
|
+
sanitized[key] = log_sanitizer_js_1.REDACTED_PLACEHOLDER;
|
|
337
344
|
continue;
|
|
338
345
|
}
|
|
339
346
|
if (p.forbiddenFields.has(lowerKey)) {
|
|
@@ -341,18 +348,18 @@ export class PolicyAwareLogProcessor {
|
|
|
341
348
|
}
|
|
342
349
|
if (typeof value === "string") {
|
|
343
350
|
let str = p.messageSecretPatterns.length > 0
|
|
344
|
-
? redactSensitivePatterns(value, p.messageSecretPatterns)
|
|
351
|
+
? (0, log_sanitizer_js_1.redactSensitivePatterns)(value, p.messageSecretPatterns)
|
|
345
352
|
: value;
|
|
346
|
-
str = redactSensitivePatterns(str, p.sensitivePatterns);
|
|
347
|
-
str = applyRedactPatterns(str, p.redactPatterns);
|
|
353
|
+
str = (0, log_sanitizer_js_1.redactSensitivePatterns)(str, p.sensitivePatterns);
|
|
354
|
+
str = (0, log_sanitizer_js_1.applyRedactPatterns)(str, p.redactPatterns);
|
|
348
355
|
if (p.redactStackTraces) {
|
|
349
|
-
if (isStackAttributeKey(key)) {
|
|
350
|
-
sanitized[key] = containsStackTrace(str)
|
|
351
|
-
? redactStackTraceForExport(str, p.sensitivePatterns, p.messageSecretPatterns)
|
|
352
|
-
: STACK_TRACE_REDACTED_PLACEHOLDER;
|
|
356
|
+
if ((0, log_sanitizer_js_1.isStackAttributeKey)(key)) {
|
|
357
|
+
sanitized[key] = (0, log_sanitizer_js_1.containsStackTrace)(str)
|
|
358
|
+
? (0, log_sanitizer_js_1.redactStackTraceForExport)(str, p.sensitivePatterns, p.messageSecretPatterns)
|
|
359
|
+
: log_sanitizer_js_1.STACK_TRACE_REDACTED_PLACEHOLDER;
|
|
353
360
|
}
|
|
354
|
-
else if (containsStackTrace(str)) {
|
|
355
|
-
sanitized[key] = redactStackTraceForExport(str, p.sensitivePatterns, p.messageSecretPatterns);
|
|
361
|
+
else if ((0, log_sanitizer_js_1.containsStackTrace)(str)) {
|
|
362
|
+
sanitized[key] = (0, log_sanitizer_js_1.redactStackTraceForExport)(str, p.sensitivePatterns, p.messageSecretPatterns);
|
|
356
363
|
}
|
|
357
364
|
else {
|
|
358
365
|
sanitized[key] = str;
|
|
@@ -365,7 +372,7 @@ export class PolicyAwareLogProcessor {
|
|
|
365
372
|
else if (value &&
|
|
366
373
|
typeof value === "object" &&
|
|
367
374
|
!this.isPassthroughPolicy()) {
|
|
368
|
-
sanitized[key] = sanitizeLogObjectForExport(value, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
375
|
+
sanitized[key] = (0, log_sanitizer_js_1.sanitizeLogObjectForExport)(value, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
369
376
|
}
|
|
370
377
|
else {
|
|
371
378
|
sanitized[key] = value;
|
|
@@ -386,4 +393,5 @@ export class PolicyAwareLogProcessor {
|
|
|
386
393
|
return this.delegate.forceFlush();
|
|
387
394
|
}
|
|
388
395
|
}
|
|
396
|
+
exports.PolicyAwareLogProcessor = PolicyAwareLogProcessor;
|
|
389
397
|
//# sourceMappingURL=log-processor.js.map
|