@superblocksteam/telemetry 2.0.0-SNAPSHOT.329be19cb7ca892b
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/LICENSE.txt +87 -0
- package/README.md +298 -0
- package/dist/browser/console-logging.d.ts +18 -0
- package/dist/browser/console-logging.d.ts.map +1 -0
- package/dist/browser/console-logging.js +32 -0
- package/dist/browser/console-logging.js.map +1 -0
- package/dist/browser/early-console-buffer.d.ts +49 -0
- package/dist/browser/early-console-buffer.d.ts.map +1 -0
- package/dist/browser/early-console-buffer.js +182 -0
- package/dist/browser/early-console-buffer.js.map +1 -0
- package/dist/browser/index.d.ts +17 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +50 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/init.d.ts +101 -0
- package/dist/browser/init.d.ts.map +1 -0
- package/dist/browser/init.js +329 -0
- package/dist/browser/init.js.map +1 -0
- package/dist/browser/instrumentations.d.ts +67 -0
- package/dist/browser/instrumentations.d.ts.map +1 -0
- package/dist/browser/instrumentations.js +83 -0
- package/dist/browser/instrumentations.js.map +1 -0
- package/dist/browser/logs.d.ts +55 -0
- package/dist/browser/logs.d.ts.map +1 -0
- package/dist/browser/logs.js +86 -0
- package/dist/browser/logs.js.map +1 -0
- package/dist/browser/metrics.d.ts +29 -0
- package/dist/browser/metrics.d.ts.map +1 -0
- package/dist/browser/metrics.js +49 -0
- package/dist/browser/metrics.js.map +1 -0
- package/dist/browser/resilient-exporter.d.ts +43 -0
- package/dist/browser/resilient-exporter.d.ts.map +1 -0
- package/dist/browser/resilient-exporter.js +88 -0
- package/dist/browser/resilient-exporter.js.map +1 -0
- package/dist/browser/sanitizer.d.ts +35 -0
- package/dist/browser/sanitizer.d.ts.map +1 -0
- package/dist/browser/sanitizer.js +211 -0
- package/dist/browser/sanitizer.js.map +1 -0
- package/dist/browser/traced-socket.d.ts +102 -0
- package/dist/browser/traced-socket.d.ts.map +1 -0
- package/dist/browser/traced-socket.js +203 -0
- package/dist/browser/traced-socket.js.map +1 -0
- package/dist/common/contracts/tier2-traces.d.ts +116 -0
- package/dist/common/contracts/tier2-traces.d.ts.map +1 -0
- package/dist/common/contracts/tier2-traces.js +736 -0
- package/dist/common/contracts/tier2-traces.js.map +1 -0
- package/dist/common/deployment-type.d.ts +18 -0
- package/dist/common/deployment-type.d.ts.map +1 -0
- package/dist/common/deployment-type.js +30 -0
- package/dist/common/deployment-type.js.map +1 -0
- package/dist/common/guardrails.d.ts +116 -0
- package/dist/common/guardrails.d.ts.map +1 -0
- package/dist/common/guardrails.js +189 -0
- package/dist/common/guardrails.js.map +1 -0
- package/dist/common/index.d.ts +18 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +34 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/log-sanitizer.d.ts +170 -0
- package/dist/common/log-sanitizer.d.ts.map +1 -0
- package/dist/common/log-sanitizer.js +690 -0
- package/dist/common/log-sanitizer.js.map +1 -0
- package/dist/common/normalize-metric-path.d.ts +2 -0
- package/dist/common/normalize-metric-path.d.ts.map +1 -0
- package/dist/common/normalize-metric-path.js +22 -0
- package/dist/common/normalize-metric-path.js.map +1 -0
- package/dist/common/policy-evaluator.d.ts +103 -0
- package/dist/common/policy-evaluator.d.ts.map +1 -0
- package/dist/common/policy-evaluator.js +200 -0
- package/dist/common/policy-evaluator.js.map +1 -0
- package/dist/common/resource.d.ts +79 -0
- package/dist/common/resource.d.ts.map +1 -0
- package/dist/common/resource.js +128 -0
- package/dist/common/resource.js.map +1 -0
- package/dist/common/tier-hints.d.ts +182 -0
- package/dist/common/tier-hints.d.ts.map +1 -0
- package/dist/common/tier-hints.js +209 -0
- package/dist/common/tier-hints.js.map +1 -0
- 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 +234 -0
- package/dist/common/trace-sanitizer.js.map +1 -0
- package/dist/common/traced-socket-types.d.ts +43 -0
- package/dist/common/traced-socket-types.d.ts.map +1 -0
- package/dist/common/traced-socket-types.js +17 -0
- package/dist/common/traced-socket-types.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +88 -0
- package/dist/index.js.map +1 -0
- package/dist/lint/forbidden-attributes.d.ts +149 -0
- package/dist/lint/forbidden-attributes.d.ts.map +1 -0
- package/dist/lint/forbidden-attributes.js +215 -0
- package/dist/lint/forbidden-attributes.js.map +1 -0
- package/dist/lint/index.d.ts +9 -0
- package/dist/lint/index.d.ts.map +1 -0
- package/dist/lint/index.js +16 -0
- package/dist/lint/index.js.map +1 -0
- package/dist/llmobs/index.d.ts +22 -0
- package/dist/llmobs/index.d.ts.map +1 -0
- package/dist/llmobs/index.js +29 -0
- package/dist/llmobs/index.js.map +1 -0
- package/dist/llmobs/tier1-exporter.d.ts +146 -0
- package/dist/llmobs/tier1-exporter.d.ts.map +1 -0
- package/dist/llmobs/tier1-exporter.js +199 -0
- package/dist/llmobs/tier1-exporter.js.map +1 -0
- package/dist/llmobs/tier2-summarizer.d.ts +268 -0
- package/dist/llmobs/tier2-summarizer.d.ts.map +1 -0
- package/dist/llmobs/tier2-summarizer.js +656 -0
- package/dist/llmobs/tier2-summarizer.js.map +1 -0
- package/dist/node/dynamic-attribute-processor.d.ts +43 -0
- package/dist/node/dynamic-attribute-processor.d.ts.map +1 -0
- package/dist/node/dynamic-attribute-processor.js +79 -0
- package/dist/node/dynamic-attribute-processor.js.map +1 -0
- package/dist/node/exporters/resilient-exporter.d.ts +91 -0
- package/dist/node/exporters/resilient-exporter.d.ts.map +1 -0
- package/dist/node/exporters/resilient-exporter.js +136 -0
- package/dist/node/exporters/resilient-exporter.js.map +1 -0
- package/dist/node/index.d.ts +13 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +32 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/init.d.ts +97 -0
- package/dist/node/init.d.ts.map +1 -0
- package/dist/node/init.js +365 -0
- package/dist/node/init.js.map +1 -0
- package/dist/node/local-obs-mode.d.ts +17 -0
- package/dist/node/local-obs-mode.d.ts.map +1 -0
- package/dist/node/local-obs-mode.js +22 -0
- package/dist/node/local-obs-mode.js.map +1 -0
- package/dist/node/log-processor.d.ts +132 -0
- package/dist/node/log-processor.d.ts.map +1 -0
- package/dist/node/log-processor.js +397 -0
- package/dist/node/log-processor.js.map +1 -0
- package/dist/node/metrics-client.d.ts +88 -0
- package/dist/node/metrics-client.d.ts.map +1 -0
- package/dist/node/metrics-client.js +209 -0
- package/dist/node/metrics-client.js.map +1 -0
- 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 +67 -0
- package/dist/node/sanitizing-processor.d.ts.map +1 -0
- package/dist/node/sanitizing-processor.js +167 -0
- package/dist/node/sanitizing-processor.js.map +1 -0
- package/dist/node/service-tracers.d.ts +52 -0
- package/dist/node/service-tracers.d.ts.map +1 -0
- package/dist/node/service-tracers.js +81 -0
- package/dist/node/service-tracers.js.map +1 -0
- package/dist/node/traced-socket.d.ts +120 -0
- package/dist/node/traced-socket.d.ts.map +1 -0
- package/dist/node/traced-socket.js +338 -0
- package/dist/node/traced-socket.js.map +1 -0
- package/dist/npm-registry/emitter.d.ts +310 -0
- package/dist/npm-registry/emitter.d.ts.map +1 -0
- package/dist/npm-registry/emitter.js +537 -0
- package/dist/npm-registry/emitter.js.map +1 -0
- package/dist/npm-registry/index.d.ts +12 -0
- package/dist/npm-registry/index.d.ts.map +1 -0
- package/dist/npm-registry/index.js +28 -0
- package/dist/npm-registry/index.js.map +1 -0
- package/dist/npm-registry/sanitize.d.ts +174 -0
- package/dist/npm-registry/sanitize.d.ts.map +1 -0
- package/dist/npm-registry/sanitize.js +342 -0
- package/dist/npm-registry/sanitize.js.map +1 -0
- package/dist/npm-registry/spans.d.ts +61 -0
- package/dist/npm-registry/spans.d.ts.map +1 -0
- package/dist/npm-registry/spans.js +91 -0
- package/dist/npm-registry/spans.js.map +1 -0
- package/dist/testing/in-memory-exporter.d.ts +179 -0
- package/dist/testing/in-memory-exporter.d.ts.map +1 -0
- package/dist/testing/in-memory-exporter.js +256 -0
- package/dist/testing/in-memory-exporter.js.map +1 -0
- package/dist/testing/index.d.ts +9 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +21 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/metrics-capture.d.ts +29 -0
- package/dist/testing/metrics-capture.d.ts.map +1 -0
- package/dist/testing/metrics-capture.js +74 -0
- package/dist/testing/metrics-capture.js.map +1 -0
- package/dist/testing/test-init.d.ts +80 -0
- package/dist/testing/test-init.d.ts.map +1 -0
- package/dist/testing/test-init.js +144 -0
- package/dist/testing/test-init.js.map +1 -0
- package/dist/types/index.d.ts +84 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/policy.d.ts +92 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +125 -0
- package/dist/types/policy.js.map +1 -0
- 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 +180 -0
- package/dist-esm/browser/early-console-buffer.js.map +1 -0
- package/dist-esm/browser/index.d.ts +17 -0
- package/dist-esm/browser/index.d.ts.map +1 -0
- package/dist-esm/browser/index.js +22 -0
- package/dist-esm/browser/index.js.map +1 -0
- package/dist-esm/browser/init.d.ts +101 -0
- package/dist-esm/browser/init.d.ts.map +1 -0
- package/dist-esm/browser/init.js +319 -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 +55 -0
- package/dist-esm/browser/logs.d.ts.map +1 -0
- package/dist-esm/browser/logs.js +79 -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 +116 -0
- package/dist-esm/common/guardrails.d.ts.map +1 -0
- package/dist-esm/common/guardrails.js +179 -0
- package/dist-esm/common/guardrails.js.map +1 -0
- package/dist-esm/common/index.d.ts +18 -0
- package/dist-esm/common/index.d.ts.map +1 -0
- package/dist-esm/common/index.js +18 -0
- package/dist-esm/common/index.js.map +1 -0
- package/dist-esm/common/log-sanitizer.d.ts +170 -0
- package/dist-esm/common/log-sanitizer.d.ts.map +1 -0
- package/dist-esm/common/log-sanitizer.js +672 -0
- package/dist-esm/common/log-sanitizer.js.map +1 -0
- package/dist-esm/common/normalize-metric-path.d.ts +2 -0
- package/dist-esm/common/normalize-metric-path.d.ts.map +1 -0
- package/dist-esm/common/normalize-metric-path.js +19 -0
- package/dist-esm/common/normalize-metric-path.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 +310 -0
- package/dist-esm/npm-registry/emitter.d.ts.map +1 -0
- package/dist-esm/npm-registry/emitter.js +525 -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 +102 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Early Console Buffer
|
|
4
|
+
*
|
|
5
|
+
* Patches console.log/info/debug/warn/error as early as possible (before OTel
|
|
6
|
+
* initialises) to capture logs in a ring buffer. On OTel init, the buffer is
|
|
7
|
+
* flushed to the OTel Logger and all subsequent console calls are forwarded
|
|
8
|
+
* directly.
|
|
9
|
+
*
|
|
10
|
+
* IMPORTANT: Each patched method ALWAYS calls through to the original console
|
|
11
|
+
* method first, so downstream patchers (Datadog RUM, PostHog, etc.) that wrap
|
|
12
|
+
* console after us continue to receive every call.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
16
|
+
const console_logging_js_1 = require("./console-logging.js");
|
|
17
|
+
function mergeAllConsoleLogAttributes(args) {
|
|
18
|
+
if (args.length === 0)
|
|
19
|
+
return undefined;
|
|
20
|
+
return args.reduce((merged, arg) => {
|
|
21
|
+
if (arg instanceof console_logging_js_1.ConsoleLogAttributes) {
|
|
22
|
+
return { ...merged, ...arg.attributes };
|
|
23
|
+
}
|
|
24
|
+
return merged;
|
|
25
|
+
}, {});
|
|
26
|
+
}
|
|
27
|
+
class EarlyConsoleBuffer {
|
|
28
|
+
static instance;
|
|
29
|
+
buffer = [];
|
|
30
|
+
maxBufferSize = 1000;
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
32
|
+
originalMethods = {};
|
|
33
|
+
otelLogger = undefined;
|
|
34
|
+
isPatched = false;
|
|
35
|
+
disabled = false;
|
|
36
|
+
static getInstance() {
|
|
37
|
+
if (!EarlyConsoleBuffer.instance) {
|
|
38
|
+
EarlyConsoleBuffer.instance = new EarlyConsoleBuffer();
|
|
39
|
+
}
|
|
40
|
+
return EarlyConsoleBuffer.instance;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Patch console methods immediately with buffering.
|
|
44
|
+
* Safe to call multiple times — subsequent calls are no-ops.
|
|
45
|
+
*/
|
|
46
|
+
patchEarly() {
|
|
47
|
+
if (this.isPatched || this.disabled)
|
|
48
|
+
return;
|
|
49
|
+
// Capture current console methods (which may already be patched by Datadog
|
|
50
|
+
// RUM or PostHog). We keep calling through to whatever was here at the time
|
|
51
|
+
// patchEarly() was invoked.
|
|
52
|
+
// eslint-disable-next-line no-console
|
|
53
|
+
this.originalMethods.log = console.log.bind(console);
|
|
54
|
+
this.originalMethods.info = console.info.bind(console);
|
|
55
|
+
this.originalMethods.debug = console.debug.bind(console);
|
|
56
|
+
this.originalMethods.warn = console.warn.bind(console);
|
|
57
|
+
this.originalMethods.error = console.error.bind(console);
|
|
58
|
+
this.patchMethod("log");
|
|
59
|
+
this.patchMethod("info");
|
|
60
|
+
this.patchMethod("debug");
|
|
61
|
+
this.patchMethod("warn");
|
|
62
|
+
this.patchMethod("error");
|
|
63
|
+
this.isPatched = true;
|
|
64
|
+
// Announce via original info to avoid touching the newly patched method
|
|
65
|
+
// (which would buffer this diagnostic message unnecessarily).
|
|
66
|
+
this.originalMethods.info("[EarlyConsoleBuffer] Console patching enabled — buffering logs until OpenTelemetry initializes");
|
|
67
|
+
}
|
|
68
|
+
patchMethod(level) {
|
|
69
|
+
const originalMethod = this.originalMethods[level];
|
|
70
|
+
console[level] = (...args) => {
|
|
71
|
+
// ALWAYS call through to the original first so downstream patchers work.
|
|
72
|
+
originalMethod(...args);
|
|
73
|
+
// Route to OTel or buffer depending on initialization state.
|
|
74
|
+
if (this.otelLogger) {
|
|
75
|
+
this.sendToOpenTelemetry(level, args);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.bufferLog(level, args);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
bufferLog(level, args) {
|
|
83
|
+
if (this.buffer.length >= this.maxBufferSize) {
|
|
84
|
+
this.buffer.shift(); // drop oldest entry
|
|
85
|
+
}
|
|
86
|
+
this.buffer.push({ level, args, timestamp: Date.now() });
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Disable the buffer without forwarding to OTel. Discards buffered entries
|
|
90
|
+
* and removes the buffering wrapper so subsequent console calls go straight
|
|
91
|
+
* to the original methods (no memory leak from the ever-growing ring buffer).
|
|
92
|
+
*
|
|
93
|
+
* Use this when log export is disabled (e.g. on-premise deployments) so the
|
|
94
|
+
* buffer-and-evict path doesn't run indefinitely.
|
|
95
|
+
*/
|
|
96
|
+
disable() {
|
|
97
|
+
this.disabled = true;
|
|
98
|
+
if (!this.isPatched)
|
|
99
|
+
return;
|
|
100
|
+
for (const level of ["log", "info", "debug", "warn", "error"]) {
|
|
101
|
+
if (this.originalMethods[level]) {
|
|
102
|
+
console[level] =
|
|
103
|
+
this.originalMethods[level];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const count = this.buffer.length;
|
|
107
|
+
this.buffer = [];
|
|
108
|
+
this.isPatched = false;
|
|
109
|
+
// Use restored console.info directly
|
|
110
|
+
console.info(`[EarlyConsoleBuffer] Disabled — discarded ${count} buffered entries (log export not enabled)`);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Called once OTel is ready. Flushes buffered entries then routes all future
|
|
114
|
+
* console calls directly to the OTel logger.
|
|
115
|
+
*/
|
|
116
|
+
enableOpenTelemetry(otelLogger) {
|
|
117
|
+
console.info("[EarlyConsoleBuffer] Enabling OpenTelemetry integration");
|
|
118
|
+
this.otelLogger = otelLogger;
|
|
119
|
+
this.flushBuffer();
|
|
120
|
+
}
|
|
121
|
+
flushBuffer() {
|
|
122
|
+
if (!this.otelLogger)
|
|
123
|
+
return;
|
|
124
|
+
const count = this.buffer.length;
|
|
125
|
+
if (count === 0) {
|
|
126
|
+
console.info("[EarlyConsoleBuffer] No buffered logs to flush");
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
console.info(`[EarlyConsoleBuffer] Flushing ${count} buffered logs to OpenTelemetry`);
|
|
130
|
+
for (const entry of this.buffer) {
|
|
131
|
+
this.sendToOpenTelemetry(entry.level, entry.args, entry.timestamp, true);
|
|
132
|
+
}
|
|
133
|
+
this.buffer = [];
|
|
134
|
+
console.info(`[EarlyConsoleBuffer] Successfully sent ${count} buffered logs to OpenTelemetry logger`);
|
|
135
|
+
}
|
|
136
|
+
sendToOpenTelemetry(level, args, timestamp, fromBuffer) {
|
|
137
|
+
if (!this.otelLogger)
|
|
138
|
+
return;
|
|
139
|
+
const severityMap = {
|
|
140
|
+
debug: api_logs_1.SeverityNumber.DEBUG,
|
|
141
|
+
log: api_logs_1.SeverityNumber.INFO,
|
|
142
|
+
info: api_logs_1.SeverityNumber.INFO,
|
|
143
|
+
warn: api_logs_1.SeverityNumber.WARN,
|
|
144
|
+
error: api_logs_1.SeverityNumber.ERROR,
|
|
145
|
+
};
|
|
146
|
+
const attributes = {
|
|
147
|
+
...(fromBuffer ? { source: "early-console-buffer" } : {}),
|
|
148
|
+
...mergeAllConsoleLogAttributes(args),
|
|
149
|
+
};
|
|
150
|
+
this.otelLogger.emit({
|
|
151
|
+
severityNumber: severityMap[level],
|
|
152
|
+
severityText: level,
|
|
153
|
+
body: this.formatConsoleArgs(args),
|
|
154
|
+
timestamp,
|
|
155
|
+
attributes: attributes,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
formatConsoleArgs(args) {
|
|
159
|
+
return args
|
|
160
|
+
.filter((arg) => !(arg instanceof console_logging_js_1.ConsoleLogAttributes))
|
|
161
|
+
.map((arg) => {
|
|
162
|
+
if (typeof arg === "string")
|
|
163
|
+
return arg;
|
|
164
|
+
if (arg === null)
|
|
165
|
+
return "null";
|
|
166
|
+
if (arg === undefined)
|
|
167
|
+
return "undefined";
|
|
168
|
+
if (typeof arg === "object") {
|
|
169
|
+
try {
|
|
170
|
+
return JSON.stringify(arg, null, 2);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return "[object Object]";
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return String(arg);
|
|
177
|
+
})
|
|
178
|
+
.join(" ");
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.default = EarlyConsoleBuffer;
|
|
182
|
+
//# sourceMappingURL=early-console-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"early-console-buffer.js","sourceRoot":"","sources":["../../src/browser/early-console-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Telemetry Bootstrap
|
|
3
|
+
*
|
|
4
|
+
* This is the ONLY approved way to initialize telemetry in browser contexts.
|
|
5
|
+
*/
|
|
6
|
+
export { initBrowserTelemetry, getBrowserTelemetryInstance, isBrowserTelemetryInitialized, resetBrowserTelemetry, getEnvironmentFromHostname, type BrowserTelemetryInstance, } from "./init.js";
|
|
7
|
+
export { initBrowserLogs, resetBrowserLogs, type BrowserLogsConfig, type BrowserLogsInstance, } from "./logs.js";
|
|
8
|
+
export { initBrowserMetrics, type BrowserMetricsConfig, type BrowserMetricsInstance, } from "./metrics.js";
|
|
9
|
+
export { createSanitizingSpanProcessor, createSanitizingLogProcessor, type SanitizingConfig, } from "./sanitizer.js";
|
|
10
|
+
export { createBrowserInstrumentations, registerBrowserContextManager, type BrowserInstrumentationConfig, } from "./instrumentations.js";
|
|
11
|
+
export { ConsoleLogAttributes, consoleLogAttributes, } from "./console-logging.js";
|
|
12
|
+
export { default as EarlyConsoleBuffer } from "./early-console-buffer.js";
|
|
13
|
+
export { getDefaultPolicy, DeploymentType } from "../types/policy.js";
|
|
14
|
+
export { BrowserTracedSocket, type BrowserTracedSocketConfig, type WebSocketLike, } from "./traced-socket.js";
|
|
15
|
+
export { BatchSpanProcessor, SimpleSpanProcessor, type SpanProcessor, type SpanExporter, type ReadableSpan, } from "@opentelemetry/sdk-trace-base";
|
|
16
|
+
export { type ExportResult, ExportResultCode, hrTimeToMicroseconds, } from "@opentelemetry/core";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,YAAY,EACjB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Browser Telemetry Bootstrap
|
|
4
|
+
*
|
|
5
|
+
* This is the ONLY approved way to initialize telemetry in browser contexts.
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.hrTimeToMicroseconds = exports.ExportResultCode = exports.SimpleSpanProcessor = exports.BatchSpanProcessor = exports.BrowserTracedSocket = exports.DeploymentType = exports.getDefaultPolicy = exports.EarlyConsoleBuffer = exports.consoleLogAttributes = exports.ConsoleLogAttributes = exports.registerBrowserContextManager = exports.createBrowserInstrumentations = exports.createSanitizingLogProcessor = exports.createSanitizingSpanProcessor = exports.initBrowserMetrics = exports.resetBrowserLogs = exports.initBrowserLogs = exports.getEnvironmentFromHostname = exports.resetBrowserTelemetry = exports.isBrowserTelemetryInitialized = exports.getBrowserTelemetryInstance = exports.initBrowserTelemetry = void 0;
|
|
12
|
+
var init_js_1 = require("./init.js");
|
|
13
|
+
Object.defineProperty(exports, "initBrowserTelemetry", { enumerable: true, get: function () { return init_js_1.initBrowserTelemetry; } });
|
|
14
|
+
Object.defineProperty(exports, "getBrowserTelemetryInstance", { enumerable: true, get: function () { return init_js_1.getBrowserTelemetryInstance; } });
|
|
15
|
+
Object.defineProperty(exports, "isBrowserTelemetryInitialized", { enumerable: true, get: function () { return init_js_1.isBrowserTelemetryInitialized; } });
|
|
16
|
+
Object.defineProperty(exports, "resetBrowserTelemetry", { enumerable: true, get: function () { return init_js_1.resetBrowserTelemetry; } });
|
|
17
|
+
Object.defineProperty(exports, "getEnvironmentFromHostname", { enumerable: true, get: function () { return init_js_1.getEnvironmentFromHostname; } });
|
|
18
|
+
var logs_js_1 = require("./logs.js");
|
|
19
|
+
Object.defineProperty(exports, "initBrowserLogs", { enumerable: true, get: function () { return logs_js_1.initBrowserLogs; } });
|
|
20
|
+
Object.defineProperty(exports, "resetBrowserLogs", { enumerable: true, get: function () { return logs_js_1.resetBrowserLogs; } });
|
|
21
|
+
var metrics_js_1 = require("./metrics.js");
|
|
22
|
+
Object.defineProperty(exports, "initBrowserMetrics", { enumerable: true, get: function () { return metrics_js_1.initBrowserMetrics; } });
|
|
23
|
+
var sanitizer_js_1 = require("./sanitizer.js");
|
|
24
|
+
Object.defineProperty(exports, "createSanitizingSpanProcessor", { enumerable: true, get: function () { return sanitizer_js_1.createSanitizingSpanProcessor; } });
|
|
25
|
+
Object.defineProperty(exports, "createSanitizingLogProcessor", { enumerable: true, get: function () { return sanitizer_js_1.createSanitizingLogProcessor; } });
|
|
26
|
+
var instrumentations_js_1 = require("./instrumentations.js");
|
|
27
|
+
Object.defineProperty(exports, "createBrowserInstrumentations", { enumerable: true, get: function () { return instrumentations_js_1.createBrowserInstrumentations; } });
|
|
28
|
+
Object.defineProperty(exports, "registerBrowserContextManager", { enumerable: true, get: function () { return instrumentations_js_1.registerBrowserContextManager; } });
|
|
29
|
+
var console_logging_js_1 = require("./console-logging.js");
|
|
30
|
+
Object.defineProperty(exports, "ConsoleLogAttributes", { enumerable: true, get: function () { return console_logging_js_1.ConsoleLogAttributes; } });
|
|
31
|
+
Object.defineProperty(exports, "consoleLogAttributes", { enumerable: true, get: function () { return console_logging_js_1.consoleLogAttributes; } });
|
|
32
|
+
var early_console_buffer_js_1 = require("./early-console-buffer.js");
|
|
33
|
+
Object.defineProperty(exports, "EarlyConsoleBuffer", { enumerable: true, get: function () { return __importDefault(early_console_buffer_js_1).default; } });
|
|
34
|
+
// Re-export policy utilities for convenience
|
|
35
|
+
var policy_js_1 = require("../types/policy.js");
|
|
36
|
+
Object.defineProperty(exports, "getDefaultPolicy", { enumerable: true, get: function () { return policy_js_1.getDefaultPolicy; } });
|
|
37
|
+
Object.defineProperty(exports, "DeploymentType", { enumerable: true, get: function () { return policy_js_1.DeploymentType; } });
|
|
38
|
+
var traced_socket_js_1 = require("./traced-socket.js");
|
|
39
|
+
Object.defineProperty(exports, "BrowserTracedSocket", { enumerable: true, get: function () { return traced_socket_js_1.BrowserTracedSocket; } });
|
|
40
|
+
// Re-export OTel SDK primitives that consumers need to register custom processors
|
|
41
|
+
// against the provider owned by this package. Consumers must construct these from
|
|
42
|
+
// the version bundled here, not from their own @opentelemetry/sdk-trace-base, so
|
|
43
|
+
// the Span/Context types match the provider.
|
|
44
|
+
var sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
45
|
+
Object.defineProperty(exports, "BatchSpanProcessor", { enumerable: true, get: function () { return sdk_trace_base_1.BatchSpanProcessor; } });
|
|
46
|
+
Object.defineProperty(exports, "SimpleSpanProcessor", { enumerable: true, get: function () { return sdk_trace_base_1.SimpleSpanProcessor; } });
|
|
47
|
+
var core_1 = require("@opentelemetry/core");
|
|
48
|
+
Object.defineProperty(exports, "ExportResultCode", { enumerable: true, get: function () { return core_1.ExportResultCode; } });
|
|
49
|
+
Object.defineProperty(exports, "hrTimeToMicroseconds", { enumerable: true, get: function () { return core_1.hrTimeToMicroseconds; } });
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,qCAOmB;AANjB,+GAAA,oBAAoB,OAAA;AACpB,sHAAA,2BAA2B,OAAA;AAC3B,wHAAA,6BAA6B,OAAA;AAC7B,gHAAA,qBAAqB,OAAA;AACrB,qHAAA,0BAA0B,OAAA;AAI5B,qCAKmB;AAJjB,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAKlB,2CAIsB;AAHpB,gHAAA,kBAAkB,OAAA;AAKpB,+CAIwB;AAHtB,6HAAA,6BAA6B,OAAA;AAC7B,4HAAA,4BAA4B,OAAA;AAI9B,6DAI+B;AAH7B,oIAAA,6BAA6B,OAAA;AAC7B,oIAAA,6BAA6B,OAAA;AAI/B,2DAG8B;AAF5B,0HAAA,oBAAoB,OAAA;AACpB,0HAAA,oBAAoB,OAAA;AAGtB,qEAA0E;AAAjE,8IAAA,OAAO,OAAsB;AAEtC,6CAA6C;AAC7C,gDAAsE;AAA7D,6GAAA,gBAAgB,OAAA;AAAE,2GAAA,cAAc,OAAA;AAEzC,uDAI4B;AAH1B,uHAAA,mBAAmB,OAAA;AAKrB,kFAAkF;AAClF,kFAAkF;AAClF,iFAAiF;AACjF,6CAA6C;AAC7C,gEAMuC;AALrC,oHAAA,kBAAkB,OAAA;AAClB,qHAAA,mBAAmB,OAAA;AAMrB,4CAI6B;AAF3B,wGAAA,gBAAgB,OAAA;AAChB,4GAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Telemetry Bootstrap
|
|
3
|
+
*
|
|
4
|
+
* This is the ONLY approved way to initialize telemetry in browser contexts.
|
|
5
|
+
* Direct WebTracerProvider usage outside this package is prohibited.
|
|
6
|
+
*
|
|
7
|
+
* Composes all browser signals: traces, metrics, logs, sanitizers, and
|
|
8
|
+
* auto-instrumentations into a single init call.
|
|
9
|
+
*/
|
|
10
|
+
import { type Tracer } from "@opentelemetry/api";
|
|
11
|
+
import type { Meter } from "@opentelemetry/api";
|
|
12
|
+
import type { Logger } from "@opentelemetry/api-logs";
|
|
13
|
+
import { type SpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
14
|
+
import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
|
|
15
|
+
import { TelemetryPolicyEvaluator } from "../common/policy-evaluator.js";
|
|
16
|
+
import type { BrowserTelemetryConfig } from "../types/index.js";
|
|
17
|
+
import { TelemetryPolicy } from "../types/policy.js";
|
|
18
|
+
/**
|
|
19
|
+
* Browser telemetry instance.
|
|
20
|
+
*/
|
|
21
|
+
export interface BrowserTelemetryInstance {
|
|
22
|
+
/** The underlying WebTracerProvider */
|
|
23
|
+
provider: WebTracerProvider;
|
|
24
|
+
/** Policy evaluator for runtime decisions */
|
|
25
|
+
policyEvaluator: TelemetryPolicyEvaluator;
|
|
26
|
+
/** Get a tracer */
|
|
27
|
+
getTracer: (name?: string) => Tracer;
|
|
28
|
+
/** Get a meter for recording metrics */
|
|
29
|
+
getMeter: (name?: string) => Meter;
|
|
30
|
+
/** Get a logger for emitting log records */
|
|
31
|
+
getLogger: (name?: string) => Logger;
|
|
32
|
+
/** Set attributes that are injected into every new span (dynamic context like org, user) */
|
|
33
|
+
setGlobalSpanAttributes: (attrs: Record<string, string>) => void;
|
|
34
|
+
/** Register an additional SpanProcessor on the provider (e.g. LocalStorageExporter) */
|
|
35
|
+
addSpanProcessor: (processor: SpanProcessor) => void;
|
|
36
|
+
/** Flush pending spans without tearing down (e.g. on pagehide) */
|
|
37
|
+
forceFlush: () => Promise<void>;
|
|
38
|
+
/** Graceful shutdown */
|
|
39
|
+
shutdown: () => Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Initialize browser telemetry with policy enforcement.
|
|
43
|
+
*
|
|
44
|
+
* Browser telemetry is always sanitized (Tier 2) since it runs in untrusted context.
|
|
45
|
+
* Full fidelity Tier 1 data should never be emitted from the browser.
|
|
46
|
+
*
|
|
47
|
+
* Composes:
|
|
48
|
+
* - Traces: WebTracerProvider with sanitizing + batch processors
|
|
49
|
+
* - Metrics: MeterProvider via initBrowserMetrics
|
|
50
|
+
* - Logs: LoggerProvider via initBrowserLogs (with EarlyConsoleBuffer)
|
|
51
|
+
* - Sanitizers: PII redaction for spans and logs
|
|
52
|
+
* - Instrumentations: XHR + Fetch auto-instrumentation
|
|
53
|
+
* - Context: StackContextManager for async context propagation
|
|
54
|
+
*
|
|
55
|
+
* @param config - Browser configuration (otlpUrl is treated as base URL)
|
|
56
|
+
* @param policy - Telemetry policy (REQUIRED)
|
|
57
|
+
* @returns Browser telemetry instance
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* import { initBrowserTelemetry } from '@superblocksteam/telemetry/browser';
|
|
62
|
+
* import { getDefaultPolicy, DeploymentType } from '@superblocksteam/shared';
|
|
63
|
+
*
|
|
64
|
+
* const policy = getDefaultPolicy(DeploymentType.CLOUD);
|
|
65
|
+
* const telemetry = initBrowserTelemetry({
|
|
66
|
+
* serviceName: 'superblocks-ui',
|
|
67
|
+
* serviceVersion: '1.0.0',
|
|
68
|
+
* environment: 'production',
|
|
69
|
+
* otlpUrl: 'https://app.superblocks.com/api',
|
|
70
|
+
* }, policy);
|
|
71
|
+
*
|
|
72
|
+
* const tracer = telemetry.getTracer();
|
|
73
|
+
* const meter = telemetry.getMeter();
|
|
74
|
+
* const logger = telemetry.getLogger();
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare function initBrowserTelemetry(config: BrowserTelemetryConfig, policy: TelemetryPolicy): BrowserTelemetryInstance;
|
|
78
|
+
/**
|
|
79
|
+
* Get the current browser telemetry instance.
|
|
80
|
+
*
|
|
81
|
+
* @throws Error if not initialized
|
|
82
|
+
*/
|
|
83
|
+
export declare function getBrowserTelemetryInstance(): BrowserTelemetryInstance;
|
|
84
|
+
/**
|
|
85
|
+
* Check if browser telemetry is initialized.
|
|
86
|
+
*/
|
|
87
|
+
export declare function isBrowserTelemetryInitialized(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Reset browser telemetry (for testing only).
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
export declare function resetBrowserTelemetry(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Derive environment from hostname.
|
|
95
|
+
* Utility for browser context where env vars aren't available.
|
|
96
|
+
*
|
|
97
|
+
* @param hostname - The hostname to analyze
|
|
98
|
+
* @returns Environment string
|
|
99
|
+
*/
|
|
100
|
+
export declare function getEnvironmentFromHostname(hostname: string): string;
|
|
101
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/browser/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAQtD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAWpE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,6CAA6C;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,mBAAmB;IACnB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,wCAAwC;IACxC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC,4CAA4C;IAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,4FAA4F;IAC5F,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,uFAAuF;IACvF,gBAAgB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,kEAAkE;IAClE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,wBAAwB;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AA2GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,eAAe,GACtB,wBAAwB,CAoJ1B;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAOtE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWnE"}
|