@newrelic/preflight 0.0.1-pre.1 → 1.0.1
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 +183 -0
- package/README.md +498 -0
- package/dist/alerts/alert-log.d.ts +24 -0
- package/dist/alerts/alert-log.d.ts.map +1 -0
- package/dist/alerts/alert-log.js +159 -0
- package/dist/alerts/alert-log.js.map +1 -0
- package/dist/alerts/alert-snapshot-collector.d.ts +168 -0
- package/dist/alerts/alert-snapshot-collector.d.ts.map +1 -0
- package/dist/alerts/alert-snapshot-collector.js +243 -0
- package/dist/alerts/alert-snapshot-collector.js.map +1 -0
- package/dist/alerts/local-alert-engine.d.ts +86 -0
- package/dist/alerts/local-alert-engine.d.ts.map +1 -0
- package/dist/alerts/local-alert-engine.js +466 -0
- package/dist/alerts/local-alert-engine.js.map +1 -0
- package/dist/alerts/local-alert-rule.d.ts +439 -0
- package/dist/alerts/local-alert-rule.d.ts.map +1 -0
- package/dist/alerts/local-alert-rule.js +139 -0
- package/dist/alerts/local-alert-rule.js.map +1 -0
- package/dist/alerts/os-notifier.d.ts +39 -0
- package/dist/alerts/os-notifier.d.ts.map +1 -0
- package/dist/alerts/os-notifier.js +170 -0
- package/dist/alerts/os-notifier.js.map +1 -0
- package/dist/alerts/types.d.ts +35 -0
- package/dist/alerts/types.d.ts.map +1 -0
- package/dist/alerts/types.js +8 -0
- package/dist/alerts/types.js.map +1 -0
- package/dist/config.d.ts +169 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +868 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard/dashboard-server.d.ts +38 -0
- package/dist/dashboard/dashboard-server.d.ts.map +1 -0
- package/dist/dashboard/dashboard-server.js +207 -0
- package/dist/dashboard/dashboard-server.js.map +1 -0
- package/dist/dashboard/index.d.ts +3 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +2 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/live-event-bus.d.ts +99 -0
- package/dist/dashboard/live-event-bus.d.ts.map +1 -0
- package/dist/dashboard/live-event-bus.js +56 -0
- package/dist/dashboard/live-event-bus.js.map +1 -0
- package/dist/dashboard/routes/api-handler.d.ts +122 -0
- package/dist/dashboard/routes/api-handler.d.ts.map +1 -0
- package/dist/dashboard/routes/api-handler.js +1414 -0
- package/dist/dashboard/routes/api-handler.js.map +1 -0
- package/dist/dashboard/routes/replay-analyzer.d.ts +15 -0
- package/dist/dashboard/routes/replay-analyzer.d.ts.map +1 -0
- package/dist/dashboard/routes/replay-analyzer.js +227 -0
- package/dist/dashboard/routes/replay-analyzer.js.map +1 -0
- package/dist/dashboard/routes/sse-handler.d.ts +4 -0
- package/dist/dashboard/routes/sse-handler.d.ts.map +1 -0
- package/dist/dashboard/routes/sse-handler.js +122 -0
- package/dist/dashboard/routes/sse-handler.js.map +1 -0
- package/dist/dashboard/routes/static-handler.d.ts +3 -0
- package/dist/dashboard/routes/static-handler.d.ts.map +1 -0
- package/dist/dashboard/routes/static-handler.js +123 -0
- package/dist/dashboard/routes/static-handler.js.map +1 -0
- package/dist/data/alerts/conditions/01-daily-cost-spike.json +16 -0
- package/dist/data/alerts/conditions/02-low-efficiency-score.json +16 -0
- package/dist/data/alerts/conditions/03-stuck-loop-rate.json +16 -0
- package/dist/data/alerts/conditions/04-anti-pattern-rate.json +16 -0
- package/dist/data/alerts/conditions/05-session-cost-budget.json +16 -0
- package/dist/data/alerts/conditions-personal/01-personal-daily-cost.json +16 -0
- package/dist/data/alerts/conditions-personal/02-personal-session-cost.json +16 -0
- package/dist/data/alerts/conditions-personal/03-personal-low-efficiency.json +16 -0
- package/dist/data/alerts/conditions-personal/04-personal-anti-pattern-rate.json +16 -0
- package/dist/data/alerts/conditions-personal/05-personal-stuck-loop.json +16 -0
- package/dist/data/alerts/policy.json +4 -0
- package/dist/data/dashboards/ai-coding-assistant-manager-view.json +103 -0
- package/dist/data/dashboards/ai-coding-assistant-overview.json +239 -0
- package/dist/data/dashboards/ai-coding-assistant-personal.json +442 -0
- package/dist/data/dashboards/ai-coding-assistant-platform-comparison.json +320 -0
- package/dist/data/dashboards/ai-coding-assistant-security.json +275 -0
- package/dist/data/dashboards/ai-coding-assistant-session-detail.json +296 -0
- package/dist/data/dashboards/ai-coding-assistant-team-view.json +345 -0
- package/dist/deploy/data-paths.d.ts +22 -0
- package/dist/deploy/data-paths.d.ts.map +1 -0
- package/dist/deploy/data-paths.js +69 -0
- package/dist/deploy/data-paths.js.map +1 -0
- package/dist/deploy/deploy-alerts.d.ts +58 -0
- package/dist/deploy/deploy-alerts.d.ts.map +1 -0
- package/dist/deploy/deploy-alerts.js +371 -0
- package/dist/deploy/deploy-alerts.js.map +1 -0
- package/dist/deploy/deploy-dashboards.d.ts +92 -0
- package/dist/deploy/deploy-dashboards.d.ts.map +1 -0
- package/dist/deploy/deploy-dashboards.js +282 -0
- package/dist/deploy/deploy-dashboards.js.map +1 -0
- package/dist/digest/digest-formatter.d.ts +3 -0
- package/dist/digest/digest-formatter.d.ts.map +1 -0
- package/dist/digest/digest-formatter.js +37 -0
- package/dist/digest/digest-formatter.js.map +1 -0
- package/dist/digest/digest-sender.d.ts +2 -0
- package/dist/digest/digest-sender.d.ts.map +1 -0
- package/dist/digest/digest-sender.js +29 -0
- package/dist/digest/digest-sender.js.map +1 -0
- package/dist/hooks/bash-classifier.d.ts +26 -0
- package/dist/hooks/bash-classifier.d.ts.map +1 -0
- package/dist/hooks/bash-classifier.js +409 -0
- package/dist/hooks/bash-classifier.js.map +1 -0
- package/dist/hooks/collector-script.d.ts +47 -0
- package/dist/hooks/collector-script.d.ts.map +1 -0
- package/dist/hooks/collector-script.js +662 -0
- package/dist/hooks/collector-script.js.map +1 -0
- package/dist/hooks/event-processor.d.ts +65 -0
- package/dist/hooks/event-processor.d.ts.map +1 -0
- package/dist/hooks/event-processor.js +342 -0
- package/dist/hooks/event-processor.js.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/session-resolver.d.ts +66 -0
- package/dist/hooks/session-resolver.d.ts.map +1 -0
- package/dist/hooks/session-resolver.js +196 -0
- package/dist/hooks/session-resolver.js.map +1 -0
- package/dist/hooks/tool-parsers.d.ts +19 -0
- package/dist/hooks/tool-parsers.d.ts.map +1 -0
- package/dist/hooks/tool-parsers.js +260 -0
- package/dist/hooks/tool-parsers.js.map +1 -0
- package/dist/index.d.ts +107 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1505 -0
- package/dist/index.js.map +1 -0
- package/dist/install/cli.d.ts +11 -0
- package/dist/install/cli.d.ts.map +1 -0
- package/dist/install/cli.js +365 -0
- package/dist/install/cli.js.map +1 -0
- package/dist/install/index.d.ts +4 -0
- package/dist/install/index.d.ts.map +1 -0
- package/dist/install/index.js +3 -0
- package/dist/install/index.js.map +1 -0
- package/dist/install/install-helper.d.ts +35 -0
- package/dist/install/install-helper.d.ts.map +1 -0
- package/dist/install/install-helper.js +227 -0
- package/dist/install/install-helper.js.map +1 -0
- package/dist/install/key-validator.d.ts +19 -0
- package/dist/install/key-validator.d.ts.map +1 -0
- package/dist/install/key-validator.js +122 -0
- package/dist/install/key-validator.js.map +1 -0
- package/dist/install/migrate.d.ts +12 -0
- package/dist/install/migrate.d.ts.map +1 -0
- package/dist/install/migrate.js +115 -0
- package/dist/install/migrate.js.map +1 -0
- package/dist/install/schedule.d.ts +11 -0
- package/dist/install/schedule.d.ts.map +1 -0
- package/dist/install/schedule.js +114 -0
- package/dist/install/schedule.js.map +1 -0
- package/dist/install/setup-wizard.d.ts +40 -0
- package/dist/install/setup-wizard.d.ts.map +1 -0
- package/dist/install/setup-wizard.js +489 -0
- package/dist/install/setup-wizard.js.map +1 -0
- package/dist/lib/date.d.ts +54 -0
- package/dist/lib/date.d.ts.map +1 -0
- package/dist/lib/date.js +85 -0
- package/dist/lib/date.js.map +1 -0
- package/dist/metrics/anti-patterns.d.ts +62 -0
- package/dist/metrics/anti-patterns.d.ts.map +1 -0
- package/dist/metrics/anti-patterns.js +301 -0
- package/dist/metrics/anti-patterns.js.map +1 -0
- package/dist/metrics/api-failure-tracker.d.ts +82 -0
- package/dist/metrics/api-failure-tracker.d.ts.map +1 -0
- package/dist/metrics/api-failure-tracker.js +202 -0
- package/dist/metrics/api-failure-tracker.js.map +1 -0
- package/dist/metrics/budget-tracker.d.ts +60 -0
- package/dist/metrics/budget-tracker.d.ts.map +1 -0
- package/dist/metrics/budget-tracker.js +130 -0
- package/dist/metrics/budget-tracker.js.map +1 -0
- package/dist/metrics/claudemd-tracker.d.ts +108 -0
- package/dist/metrics/claudemd-tracker.d.ts.map +1 -0
- package/dist/metrics/claudemd-tracker.js +337 -0
- package/dist/metrics/claudemd-tracker.js.map +1 -0
- package/dist/metrics/collaboration-profile.d.ts +65 -0
- package/dist/metrics/collaboration-profile.d.ts.map +1 -0
- package/dist/metrics/collaboration-profile.js +231 -0
- package/dist/metrics/collaboration-profile.js.map +1 -0
- package/dist/metrics/context-composition-tracker.d.ts +74 -0
- package/dist/metrics/context-composition-tracker.d.ts.map +1 -0
- package/dist/metrics/context-composition-tracker.js +202 -0
- package/dist/metrics/context-composition-tracker.js.map +1 -0
- package/dist/metrics/context-tracker.d.ts +78 -0
- package/dist/metrics/context-tracker.d.ts.map +1 -0
- package/dist/metrics/context-tracker.js +222 -0
- package/dist/metrics/context-tracker.js.map +1 -0
- package/dist/metrics/context-window-tracker.d.ts +18 -0
- package/dist/metrics/context-window-tracker.d.ts.map +1 -0
- package/dist/metrics/context-window-tracker.js +35 -0
- package/dist/metrics/context-window-tracker.js.map +1 -0
- package/dist/metrics/cost-forecast.d.ts +36 -0
- package/dist/metrics/cost-forecast.d.ts.map +1 -0
- package/dist/metrics/cost-forecast.js +91 -0
- package/dist/metrics/cost-forecast.js.map +1 -0
- package/dist/metrics/cost-per-outcome.d.ts +102 -0
- package/dist/metrics/cost-per-outcome.d.ts.map +1 -0
- package/dist/metrics/cost-per-outcome.js +266 -0
- package/dist/metrics/cost-per-outcome.js.map +1 -0
- package/dist/metrics/cost-tracker.d.ts +78 -0
- package/dist/metrics/cost-tracker.d.ts.map +1 -0
- package/dist/metrics/cost-tracker.js +169 -0
- package/dist/metrics/cost-tracker.js.map +1 -0
- package/dist/metrics/decision-tracker.d.ts +49 -0
- package/dist/metrics/decision-tracker.d.ts.map +1 -0
- package/dist/metrics/decision-tracker.js +161 -0
- package/dist/metrics/decision-tracker.js.map +1 -0
- package/dist/metrics/efficiency-score.d.ts +80 -0
- package/dist/metrics/efficiency-score.d.ts.map +1 -0
- package/dist/metrics/efficiency-score.js +219 -0
- package/dist/metrics/efficiency-score.js.map +1 -0
- package/dist/metrics/git-efficiency-tracker.d.ts +165 -0
- package/dist/metrics/git-efficiency-tracker.d.ts.map +1 -0
- package/dist/metrics/git-efficiency-tracker.js +1056 -0
- package/dist/metrics/git-efficiency-tracker.js.map +1 -0
- package/dist/metrics/index.d.ts +26 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +14 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/instruction-drift-tracker.d.ts +69 -0
- package/dist/metrics/instruction-drift-tracker.d.ts.map +1 -0
- package/dist/metrics/instruction-drift-tracker.js +213 -0
- package/dist/metrics/instruction-drift-tracker.js.map +1 -0
- package/dist/metrics/latency-decomposition.d.ts +50 -0
- package/dist/metrics/latency-decomposition.d.ts.map +1 -0
- package/dist/metrics/latency-decomposition.js +112 -0
- package/dist/metrics/latency-decomposition.js.map +1 -0
- package/dist/metrics/latency-tracker.d.ts +33 -0
- package/dist/metrics/latency-tracker.d.ts.map +1 -0
- package/dist/metrics/latency-tracker.js +93 -0
- package/dist/metrics/latency-tracker.js.map +1 -0
- package/dist/metrics/live-session-registry.d.ts +29 -0
- package/dist/metrics/live-session-registry.d.ts.map +1 -0
- package/dist/metrics/live-session-registry.js +103 -0
- package/dist/metrics/live-session-registry.js.map +1 -0
- package/dist/metrics/model-usage-tracker.d.ts +21 -0
- package/dist/metrics/model-usage-tracker.d.ts.map +1 -0
- package/dist/metrics/model-usage-tracker.js +53 -0
- package/dist/metrics/model-usage-tracker.js.map +1 -0
- package/dist/metrics/percentile.d.ts +5 -0
- package/dist/metrics/percentile.d.ts.map +1 -0
- package/dist/metrics/percentile.js +10 -0
- package/dist/metrics/percentile.js.map +1 -0
- package/dist/metrics/personal-coach.d.ts +47 -0
- package/dist/metrics/personal-coach.d.ts.map +1 -0
- package/dist/metrics/personal-coach.js +241 -0
- package/dist/metrics/personal-coach.js.map +1 -0
- package/dist/metrics/prompt-feedback.d.ts +75 -0
- package/dist/metrics/prompt-feedback.d.ts.map +1 -0
- package/dist/metrics/prompt-feedback.js +286 -0
- package/dist/metrics/prompt-feedback.js.map +1 -0
- package/dist/metrics/proxy-metrics.d.ts +54 -0
- package/dist/metrics/proxy-metrics.d.ts.map +1 -0
- package/dist/metrics/proxy-metrics.js +228 -0
- package/dist/metrics/proxy-metrics.js.map +1 -0
- package/dist/metrics/quality-proxy-tracker.d.ts +51 -0
- package/dist/metrics/quality-proxy-tracker.d.ts.map +1 -0
- package/dist/metrics/quality-proxy-tracker.js +162 -0
- package/dist/metrics/quality-proxy-tracker.js.map +1 -0
- package/dist/metrics/recommendation-engine.d.ts +72 -0
- package/dist/metrics/recommendation-engine.d.ts.map +1 -0
- package/dist/metrics/recommendation-engine.js +207 -0
- package/dist/metrics/recommendation-engine.js.map +1 -0
- package/dist/metrics/retry-detector.d.ts +43 -0
- package/dist/metrics/retry-detector.d.ts.map +1 -0
- package/dist/metrics/retry-detector.js +179 -0
- package/dist/metrics/retry-detector.js.map +1 -0
- package/dist/metrics/session-tracker.d.ts +75 -0
- package/dist/metrics/session-tracker.d.ts.map +1 -0
- package/dist/metrics/session-tracker.js +249 -0
- package/dist/metrics/session-tracker.js.map +1 -0
- package/dist/metrics/task-completion-tracker.d.ts +15 -0
- package/dist/metrics/task-completion-tracker.d.ts.map +1 -0
- package/dist/metrics/task-completion-tracker.js +27 -0
- package/dist/metrics/task-completion-tracker.js.map +1 -0
- package/dist/metrics/task-detector.d.ts +84 -0
- package/dist/metrics/task-detector.d.ts.map +1 -0
- package/dist/metrics/task-detector.js +302 -0
- package/dist/metrics/task-detector.js.map +1 -0
- package/dist/metrics/tool-selection-scorer.d.ts +39 -0
- package/dist/metrics/tool-selection-scorer.d.ts.map +1 -0
- package/dist/metrics/tool-selection-scorer.js +193 -0
- package/dist/metrics/tool-selection-scorer.js.map +1 -0
- package/dist/metrics/trend-analyzer.d.ts +92 -0
- package/dist/metrics/trend-analyzer.d.ts.map +1 -0
- package/dist/metrics/trend-analyzer.js +293 -0
- package/dist/metrics/trend-analyzer.js.map +1 -0
- package/dist/metrics/turn-cost-attributor.d.ts +41 -0
- package/dist/metrics/turn-cost-attributor.d.ts.map +1 -0
- package/dist/metrics/turn-cost-attributor.js +118 -0
- package/dist/metrics/turn-cost-attributor.js.map +1 -0
- package/dist/metrics/turn-tracker.d.ts +49 -0
- package/dist/metrics/turn-tracker.d.ts.map +1 -0
- package/dist/metrics/turn-tracker.js +192 -0
- package/dist/metrics/turn-tracker.js.map +1 -0
- package/dist/platforms/amazon-q-adapter.d.ts +10 -0
- package/dist/platforms/amazon-q-adapter.d.ts.map +1 -0
- package/dist/platforms/amazon-q-adapter.js +75 -0
- package/dist/platforms/amazon-q-adapter.js.map +1 -0
- package/dist/platforms/claude-code-adapter.d.ts +10 -0
- package/dist/platforms/claude-code-adapter.d.ts.map +1 -0
- package/dist/platforms/claude-code-adapter.js +48 -0
- package/dist/platforms/claude-code-adapter.js.map +1 -0
- package/dist/platforms/continue-adapter.d.ts +10 -0
- package/dist/platforms/continue-adapter.d.ts.map +1 -0
- package/dist/platforms/continue-adapter.js +73 -0
- package/dist/platforms/continue-adapter.js.map +1 -0
- package/dist/platforms/copilot-adapter.d.ts +37 -0
- package/dist/platforms/copilot-adapter.d.ts.map +1 -0
- package/dist/platforms/copilot-adapter.js +66 -0
- package/dist/platforms/copilot-adapter.js.map +1 -0
- package/dist/platforms/cursor-adapter.d.ts +10 -0
- package/dist/platforms/cursor-adapter.d.ts.map +1 -0
- package/dist/platforms/cursor-adapter.js +60 -0
- package/dist/platforms/cursor-adapter.js.map +1 -0
- package/dist/platforms/generic-mcp-adapter.d.ts +113 -0
- package/dist/platforms/generic-mcp-adapter.d.ts.map +1 -0
- package/dist/platforms/generic-mcp-adapter.js +139 -0
- package/dist/platforms/generic-mcp-adapter.js.map +1 -0
- package/dist/platforms/index.d.ts +15 -0
- package/dist/platforms/index.d.ts.map +1 -0
- package/dist/platforms/index.js +12 -0
- package/dist/platforms/index.js.map +1 -0
- package/dist/platforms/platform-registry.d.ts +11 -0
- package/dist/platforms/platform-registry.d.ts.map +1 -0
- package/dist/platforms/platform-registry.js +54 -0
- package/dist/platforms/platform-registry.js.map +1 -0
- package/dist/platforms/types.d.ts +36 -0
- package/dist/platforms/types.d.ts.map +1 -0
- package/dist/platforms/types.js +2 -0
- package/dist/platforms/types.js.map +1 -0
- package/dist/platforms/windsurf-adapter.d.ts +10 -0
- package/dist/platforms/windsurf-adapter.d.ts.map +1 -0
- package/dist/platforms/windsurf-adapter.js +63 -0
- package/dist/platforms/windsurf-adapter.js.map +1 -0
- package/dist/platforms/zed-adapter.d.ts +10 -0
- package/dist/platforms/zed-adapter.d.ts.map +1 -0
- package/dist/platforms/zed-adapter.js +72 -0
- package/dist/platforms/zed-adapter.js.map +1 -0
- package/dist/proxy/index.d.ts +7 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +5 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/otlp-receiver.d.ts +28 -0
- package/dist/proxy/otlp-receiver.d.ts.map +1 -0
- package/dist/proxy/otlp-receiver.js +319 -0
- package/dist/proxy/otlp-receiver.js.map +1 -0
- package/dist/proxy/proxy-manager.d.ts +47 -0
- package/dist/proxy/proxy-manager.d.ts.map +1 -0
- package/dist/proxy/proxy-manager.js +338 -0
- package/dist/proxy/proxy-manager.js.map +1 -0
- package/dist/proxy/types.d.ts +72 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +33 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/proxy/upstream-http.d.ts +26 -0
- package/dist/proxy/upstream-http.d.ts.map +1 -0
- package/dist/proxy/upstream-http.js +209 -0
- package/dist/proxy/upstream-http.js.map +1 -0
- package/dist/proxy/upstream-stdio.d.ts +25 -0
- package/dist/proxy/upstream-stdio.d.ts.map +1 -0
- package/dist/proxy/upstream-stdio.js +256 -0
- package/dist/proxy/upstream-stdio.js.map +1 -0
- package/dist/security/audit-trail.d.ts +74 -0
- package/dist/security/audit-trail.d.ts.map +1 -0
- package/dist/security/audit-trail.js +338 -0
- package/dist/security/audit-trail.js.map +1 -0
- package/dist/security/index.d.ts +5 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +4 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/ssrf.d.ts +2 -0
- package/dist/security/ssrf.d.ts.map +1 -0
- package/dist/security/ssrf.js +126 -0
- package/dist/security/ssrf.js.map +1 -0
- package/dist/server.d.ts +14 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +117 -0
- package/dist/server.js.map +1 -0
- package/dist/shared/__test-utils__/log-output.d.ts +49 -0
- package/dist/shared/__test-utils__/log-output.d.ts.map +1 -0
- package/dist/shared/__test-utils__/log-output.js +38 -0
- package/dist/shared/__test-utils__/log-output.js.map +1 -0
- package/dist/shared/config.d.ts +56 -0
- package/dist/shared/config.d.ts.map +1 -0
- package/dist/shared/config.js +290 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/errors.d.ts +139 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +406 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/events/factory.d.ts +143 -0
- package/dist/shared/events/factory.d.ts.map +1 -0
- package/dist/shared/events/factory.js +351 -0
- package/dist/shared/events/factory.js.map +1 -0
- package/dist/shared/events/index.d.ts +6 -0
- package/dist/shared/events/index.d.ts.map +1 -0
- package/dist/shared/events/index.js +3 -0
- package/dist/shared/events/index.js.map +1 -0
- package/dist/shared/events/serialize.d.ts +87 -0
- package/dist/shared/events/serialize.d.ts.map +1 -0
- package/dist/shared/events/serialize.js +510 -0
- package/dist/shared/events/serialize.js.map +1 -0
- package/dist/shared/events/types.d.ts +139 -0
- package/dist/shared/events/types.d.ts.map +1 -0
- package/dist/shared/events/types.js +2 -0
- package/dist/shared/events/types.js.map +1 -0
- package/dist/shared/harvest/event-buffer.d.ts +59 -0
- package/dist/shared/harvest/event-buffer.d.ts.map +1 -0
- package/dist/shared/harvest/event-buffer.js +100 -0
- package/dist/shared/harvest/event-buffer.js.map +1 -0
- package/dist/shared/harvest/harvest-scheduler.d.ts +200 -0
- package/dist/shared/harvest/harvest-scheduler.d.ts.map +1 -0
- package/dist/shared/harvest/harvest-scheduler.js +647 -0
- package/dist/shared/harvest/harvest-scheduler.js.map +1 -0
- package/dist/shared/harvest/index.d.ts +7 -0
- package/dist/shared/harvest/index.d.ts.map +1 -0
- package/dist/shared/harvest/index.js +4 -0
- package/dist/shared/harvest/index.js.map +1 -0
- package/dist/shared/harvest/metric-aggregator.d.ts +115 -0
- package/dist/shared/harvest/metric-aggregator.d.ts.map +1 -0
- package/dist/shared/harvest/metric-aggregator.js +247 -0
- package/dist/shared/harvest/metric-aggregator.js.map +1 -0
- package/dist/shared/index.d.ts +22 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +13 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/logger.d.ts +57 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +166 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/pricing-data.d.ts +4 -0
- package/dist/shared/pricing-data.d.ts.map +1 -0
- package/dist/shared/pricing-data.js +473 -0
- package/dist/shared/pricing-data.js.map +1 -0
- package/dist/shared/pricing.d.ts +148 -0
- package/dist/shared/pricing.d.ts.map +1 -0
- package/dist/shared/pricing.js +528 -0
- package/dist/shared/pricing.js.map +1 -0
- package/dist/shared/redact.d.ts +33 -0
- package/dist/shared/redact.d.ts.map +1 -0
- package/dist/shared/redact.js +110 -0
- package/dist/shared/redact.js.map +1 -0
- package/dist/shared/timing.d.ts +96 -0
- package/dist/shared/timing.d.ts.map +1 -0
- package/dist/shared/timing.js +173 -0
- package/dist/shared/timing.js.map +1 -0
- package/dist/shared/tokens.d.ts +145 -0
- package/dist/shared/tokens.d.ts.map +1 -0
- package/dist/shared/tokens.js +492 -0
- package/dist/shared/tokens.js.map +1 -0
- package/dist/shared/transport/events-api.d.ts +14 -0
- package/dist/shared/transport/events-api.d.ts.map +1 -0
- package/dist/shared/transport/events-api.js +29 -0
- package/dist/shared/transport/events-api.js.map +1 -0
- package/dist/shared/transport/http-client.d.ts +49 -0
- package/dist/shared/transport/http-client.d.ts.map +1 -0
- package/dist/shared/transport/http-client.js +381 -0
- package/dist/shared/transport/http-client.js.map +1 -0
- package/dist/shared/transport/index.d.ts +10 -0
- package/dist/shared/transport/index.d.ts.map +1 -0
- package/dist/shared/transport/index.js +6 -0
- package/dist/shared/transport/index.js.map +1 -0
- package/dist/shared/transport/logs-api.d.ts +29 -0
- package/dist/shared/transport/logs-api.d.ts.map +1 -0
- package/dist/shared/transport/logs-api.js +40 -0
- package/dist/shared/transport/logs-api.js.map +1 -0
- package/dist/shared/transport/metric-api.d.ts +9 -0
- package/dist/shared/transport/metric-api.d.ts.map +1 -0
- package/dist/shared/transport/metric-api.js +39 -0
- package/dist/shared/transport/metric-api.js.map +1 -0
- package/dist/shared/transport/otlp-event-bridge.d.ts +22 -0
- package/dist/shared/transport/otlp-event-bridge.d.ts.map +1 -0
- package/dist/shared/transport/otlp-event-bridge.js +50 -0
- package/dist/shared/transport/otlp-event-bridge.js.map +1 -0
- package/dist/shared/transport/otlp-shared.d.ts +14 -0
- package/dist/shared/transport/otlp-shared.d.ts.map +1 -0
- package/dist/shared/transport/otlp-shared.js +49 -0
- package/dist/shared/transport/otlp-shared.js.map +1 -0
- package/dist/shared/transport/otlp-transport.d.ts +58 -0
- package/dist/shared/transport/otlp-transport.d.ts.map +1 -0
- package/dist/shared/transport/otlp-transport.js +236 -0
- package/dist/shared/transport/otlp-transport.js.map +1 -0
- package/dist/shared/transport/types.d.ts +129 -0
- package/dist/shared/transport/types.d.ts.map +1 -0
- package/dist/shared/transport/types.js +2 -0
- package/dist/shared/transport/types.js.map +1 -0
- package/dist/shared/version.d.ts +2 -0
- package/dist/shared/version.d.ts.map +1 -0
- package/dist/shared/version.js +2 -0
- package/dist/shared/version.js.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +4 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/local-store.d.ts +153 -0
- package/dist/storage/local-store.d.ts.map +1 -0
- package/dist/storage/local-store.js +719 -0
- package/dist/storage/local-store.js.map +1 -0
- package/dist/storage/retention.d.ts +2 -0
- package/dist/storage/retention.d.ts.map +1 -0
- package/dist/storage/retention.js +53 -0
- package/dist/storage/retention.js.map +1 -0
- package/dist/storage/session-store.d.ts +97 -0
- package/dist/storage/session-store.d.ts.map +1 -0
- package/dist/storage/session-store.js +391 -0
- package/dist/storage/session-store.js.map +1 -0
- package/dist/storage/types.d.ts +64 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/storage/weekly-summary.d.ts +61 -0
- package/dist/storage/weekly-summary.d.ts.map +1 -0
- package/dist/storage/weekly-summary.js +243 -0
- package/dist/storage/weekly-summary.js.map +1 -0
- package/dist/tools/analytics-tools.d.ts +101 -0
- package/dist/tools/analytics-tools.d.ts.map +1 -0
- package/dist/tools/analytics-tools.js +71 -0
- package/dist/tools/analytics-tools.js.map +1 -0
- package/dist/tools/cost-tools.d.ts +121 -0
- package/dist/tools/cost-tools.d.ts.map +1 -0
- package/dist/tools/cost-tools.js +174 -0
- package/dist/tools/cost-tools.js.map +1 -0
- package/dist/tools/cross-session-tools.d.ts +376 -0
- package/dist/tools/cross-session-tools.d.ts.map +1 -0
- package/dist/tools/cross-session-tools.js +820 -0
- package/dist/tools/cross-session-tools.js.map +1 -0
- package/dist/tools/extended-analytics-tools.d.ts +164 -0
- package/dist/tools/extended-analytics-tools.d.ts.map +1 -0
- package/dist/tools/extended-analytics-tools.js +121 -0
- package/dist/tools/extended-analytics-tools.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/session-stats.d.ts +162 -0
- package/dist/tools/session-stats.d.ts.map +1 -0
- package/dist/tools/session-stats.js +1054 -0
- package/dist/tools/session-stats.js.map +1 -0
- package/dist/tools/workflow-tools.d.ts +126 -0
- package/dist/tools/workflow-tools.d.ts.map +1 -0
- package/dist/tools/workflow-tools.js +274 -0
- package/dist/tools/workflow-tools.js.map +1 -0
- package/dist/tracing/mcp-tracer.d.ts +4 -0
- package/dist/tracing/mcp-tracer.d.ts.map +1 -0
- package/dist/tracing/mcp-tracer.js +14 -0
- package/dist/tracing/mcp-tracer.js.map +1 -0
- package/dist/tracing/session-span.d.ts +14 -0
- package/dist/tracing/session-span.d.ts.map +1 -0
- package/dist/tracing/session-span.js +53 -0
- package/dist/tracing/session-span.js.map +1 -0
- package/dist/tracing/task-span-tracker.d.ts +11 -0
- package/dist/tracing/task-span-tracker.d.ts.map +1 -0
- package/dist/tracing/task-span-tracker.js +59 -0
- package/dist/tracing/task-span-tracker.js.map +1 -0
- package/dist/tracing/tool-call-span.d.ts +4 -0
- package/dist/tracing/tool-call-span.d.ts.map +1 -0
- package/dist/tracing/tool-call-span.js +60 -0
- package/dist/tracing/tool-call-span.js.map +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +2 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/log-ingest.d.ts +42 -0
- package/dist/transport/log-ingest.d.ts.map +1 -0
- package/dist/transport/log-ingest.js +151 -0
- package/dist/transport/log-ingest.js.map +1 -0
- package/dist/transport/nr-ingest.d.ts +171 -0
- package/dist/transport/nr-ingest.d.ts.map +1 -0
- package/dist/transport/nr-ingest.js +659 -0
- package/dist/transport/nr-ingest.js.map +1 -0
- package/dist/types.d.ts +45 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/web/assets/index-BrL281N-.css +2 -0
- package/dist/web/assets/index-CcaYZzXm.js +42 -0
- package/dist/web/favicon.svg +15 -0
- package/dist/web/index.html +15 -0
- package/examples/local-alert-rules.json +106 -0
- package/package.json +129 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harvest-scheduler.js","sourceRoot":"","sources":["../../../src/shared/harvest/harvest-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { EventBuffer } from './event-buffer.js';
|
|
2
|
+
export type { EventBufferOptions } from './event-buffer.js';
|
|
3
|
+
export { MetricAggregator, snapshotsToNrMetrics } from './metric-aggregator.js';
|
|
4
|
+
export type { MetricAccumulator, MetricAttributeValue, MetricSnapshot, } from './metric-aggregator.js';
|
|
5
|
+
export { HarvestScheduler } from './harvest-scheduler.js';
|
|
6
|
+
export type { HarvestSchedulerOptions } from './harvest-scheduler.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/harvest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/harvest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAMhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { NrMetric } from '../transport/types.js';
|
|
2
|
+
export interface MetricAccumulator {
|
|
3
|
+
readonly count: number;
|
|
4
|
+
readonly sum: number;
|
|
5
|
+
readonly min: number;
|
|
6
|
+
readonly max: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Allowed attribute value types. Restricted at compile time to the three
|
|
10
|
+
* primitives NR ingest can faithfully round-trip; runtime validation in
|
|
11
|
+
* {@link MetricAggregator.record} enforces the same shape against JS callers
|
|
12
|
+
* that bypass the type system.
|
|
13
|
+
*/
|
|
14
|
+
export type MetricAttributeValue = string | number | boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Snapshot of a single bucket — the full identity (name + attributes) plus
|
|
17
|
+
* the four aggregator values. Returned by {@link MetricAggregator.harvestSnapshots}
|
|
18
|
+
* and accepted by {@link MetricAggregator.merge}, allowing the harvest
|
|
19
|
+
* scheduler to retain pre-explosion form across failed-send retries
|
|
20
|
+
* so that the next harvest's `record()` calls fold into
|
|
21
|
+
* the same bucket instead of producing a second set of data points.
|
|
22
|
+
*/
|
|
23
|
+
export interface MetricSnapshot extends MetricAccumulator {
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly attributes: Record<string, MetricAttributeValue>;
|
|
26
|
+
}
|
|
27
|
+
export declare class MetricAggregator {
|
|
28
|
+
private buckets;
|
|
29
|
+
/**
|
|
30
|
+
* Number of `record()` calls rejected since the last `drainDropCount()`.
|
|
31
|
+
* Incremented on non-finite values and invalid attribute types
|
|
32
|
+
*. Mirrors the pattern in `EventBuffer.dropCount` so
|
|
33
|
+
* `HarvestScheduler` can emit a `nr.ai.dropped_metrics` self-monitoring
|
|
34
|
+
* gauge each harvest tick — operators currently see only `logger.warn`
|
|
35
|
+
* spam, with no aggregate count of "we silently dropped N samples".
|
|
36
|
+
*/
|
|
37
|
+
private droppedCount;
|
|
38
|
+
constructor();
|
|
39
|
+
/**
|
|
40
|
+
* Record a single sample.
|
|
41
|
+
*
|
|
42
|
+
* Returns `true` when the sample was accepted into a bucket, and `false`
|
|
43
|
+
* when it was rejected (non-finite value or invalid attribute type) per
|
|
44
|
+
* the §4.8 strict validation contract. The boolean return surface
|
|
45
|
+
* exposes the rejection signal so callers can implement backpressure or
|
|
46
|
+
* surface invalid-input metrics. Existing callers
|
|
47
|
+
* that ignore the return value see unchanged behavior.
|
|
48
|
+
*/
|
|
49
|
+
record(name: string, value: number, attributes?: Record<string, MetricAttributeValue>): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Drain all buckets and return their accumulator snapshots. The aggregator
|
|
52
|
+
* is reset to empty afterwards. Use {@link snapshotsToNrMetrics} to convert
|
|
53
|
+
* to wire form, or {@link merge} on a fresh harvest cycle to fold the
|
|
54
|
+
* snapshots back in if a send failed.
|
|
55
|
+
*
|
|
56
|
+
* retaining snapshot form across the failed-send
|
|
57
|
+
* boundary is what lets the next harvest produce a single rolled-up
|
|
58
|
+
* data point per name+attrs combination instead of two separate ones
|
|
59
|
+
* with different timestamps.
|
|
60
|
+
*/
|
|
61
|
+
harvestSnapshots(): MetricSnapshot[];
|
|
62
|
+
/**
|
|
63
|
+
* Fold pre-rolled snapshots back into the aggregator, accumulating into
|
|
64
|
+
* existing buckets when the (name, attributes) key matches. Used on the
|
|
65
|
+
* retry path to merge a failed-send batch with the next harvest interval's
|
|
66
|
+
* data so the result is a single rolled-up data point.
|
|
67
|
+
*/
|
|
68
|
+
merge(snapshots: readonly MetricSnapshot[]): void;
|
|
69
|
+
harvest(intervalMs: number): NrMetric[];
|
|
70
|
+
/**
|
|
71
|
+
* Total number of `record()` calls rejected since the last
|
|
72
|
+
* `drainDropCount()` (or aggregator construction). Includes both
|
|
73
|
+
* non-finite-value rejections and invalid-attribute-type rejections
|
|
74
|
+
*. Read-only — call `drainDropCount()` to read and
|
|
75
|
+
* reset atomically.
|
|
76
|
+
*/
|
|
77
|
+
get dropCount(): number;
|
|
78
|
+
/**
|
|
79
|
+
* Read the current `dropCount` and reset it to zero. Mirrors
|
|
80
|
+
* `EventBuffer.drainDropCount()` so `HarvestScheduler` can emit one
|
|
81
|
+
* `nr.ai.dropped_metrics` gauge per harvest tick without double-counting
|
|
82
|
+
* across cycles. Returns the value before the reset.
|
|
83
|
+
*/
|
|
84
|
+
drainDropCount(): number;
|
|
85
|
+
/**
|
|
86
|
+
* Number of distinct (name, attributes) buckets currently held in memory.
|
|
87
|
+
*
|
|
88
|
+
* Public so consumers can build self-monitoring metrics on top of the
|
|
89
|
+
* aggregator (e.g. emit `harvest.metric_aggregator.bucket_count` to NR
|
|
90
|
+
* each tick to detect cardinality explosions). Used internally by
|
|
91
|
+
* `metric-aggregator.test.ts` to verify post-`harvest()` state.
|
|
92
|
+
*
|
|
93
|
+
* Not used by `HarvestScheduler` today; surfacing it (rather than dropping
|
|
94
|
+
* the accessor per 10) keeps the surface stable for the
|
|
95
|
+
* self-monitoring work tracked under §4.25.
|
|
96
|
+
*/
|
|
97
|
+
get bucketCount(): number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Convert each {@link MetricSnapshot} to a single wire-format `NrMetric` of
|
|
101
|
+
* type `'summary'`.
|
|
102
|
+
*
|
|
103
|
+
* Pre-§4.9 this function emitted four separate metrics per snapshot
|
|
104
|
+
* (`{name}.count`, `.sum`, `.min`, `.max`) — three of them as `gauge` (which
|
|
105
|
+
* is semantically wrong for a delta-aggregated value) and one as `count`
|
|
106
|
+
* (without the required `interval.ms` field). The summary type collapses
|
|
107
|
+
* those four into one record carrying `{ count, sum, min, max }` plus the
|
|
108
|
+
* harvest interval, halving payload cardinality and producing correct
|
|
109
|
+
* NR-side aggregate stats.
|
|
110
|
+
*
|
|
111
|
+
* @param intervalMs Harvest interval in ms — appears on the wire as
|
|
112
|
+
* `interval.ms` per NR's Metric API contract.
|
|
113
|
+
*/
|
|
114
|
+
export declare function snapshotsToNrMetrics(snapshots: readonly MetricSnapshot[], intervalMs: number, timestamp?: number): NrMetric[];
|
|
115
|
+
//# sourceMappingURL=metric-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric-aggregator.d.ts","sourceRoot":"","sources":["../../../src/shared/harvest/metric-aggregator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC3D;AAuDD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAsB;IACrC;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,CAAK;;IAMzB;;;;;;;;;OASG;IACH,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAM,GACpD,OAAO;IAgDV;;;;;;;;;;OAUG;IACH,gBAAgB,IAAI,cAAc,EAAE;IAiBpC;;;;;OAKG;IACH,KAAK,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI;IAkCjD,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIvC;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;OAKG;IACH,cAAc,IAAI,MAAM;IAMxB;;;;;;;;;;;OAWG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAmB,GAC7B,QAAQ,EAAE,CAkBZ"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { createLogger } from '../logger.js';
|
|
2
|
+
const logger = createLogger('metric-aggregator');
|
|
3
|
+
function isValidAttributeValue(v) {
|
|
4
|
+
const t = typeof v;
|
|
5
|
+
if (t === 'string' || t === 'boolean')
|
|
6
|
+
return true;
|
|
7
|
+
if (t === 'number')
|
|
8
|
+
return Number.isFinite(v);
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Encode an attribute value into the bucket key with a one-character type
|
|
13
|
+
* sigil so `5` (number) and `"5"` (string), or `true` (boolean) and `"true"`
|
|
14
|
+
* (string), produce distinct keys instead of silently sharing a bucket
|
|
15
|
+
*.
|
|
16
|
+
*/
|
|
17
|
+
function encodeAttributeValue(v) {
|
|
18
|
+
switch (typeof v) {
|
|
19
|
+
case 'string':
|
|
20
|
+
return `s:${v}`;
|
|
21
|
+
case 'number':
|
|
22
|
+
return `n:${v}`;
|
|
23
|
+
case 'boolean':
|
|
24
|
+
return `b:${v}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// §11.10: escape the separator characters used by makeKey so that a metric
|
|
28
|
+
// name containing '|' (or an attribute key containing '=' or '&') cannot
|
|
29
|
+
// produce a key string that collides with a different (name, attributes) pair.
|
|
30
|
+
// The type-sigil prefix on values ('s:', 'n:', 'b:') already prevents
|
|
31
|
+
// value-side collisions, so only name and attribute keys need escaping.
|
|
32
|
+
function escapeKeyPart(s) {
|
|
33
|
+
return s.replace(/[|=&]/g, (c) => '%' + c.charCodeAt(0).toString(16).toUpperCase());
|
|
34
|
+
}
|
|
35
|
+
function makeKey(name, attributes) {
|
|
36
|
+
const sorted = Object.entries(attributes).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
37
|
+
return (escapeKeyPart(name) +
|
|
38
|
+
'|' +
|
|
39
|
+
sorted.map(([k, v]) => `${escapeKeyPart(k)}=${encodeAttributeValue(v)}`).join('&'));
|
|
40
|
+
}
|
|
41
|
+
export class MetricAggregator {
|
|
42
|
+
buckets;
|
|
43
|
+
/**
|
|
44
|
+
* Number of `record()` calls rejected since the last `drainDropCount()`.
|
|
45
|
+
* Incremented on non-finite values and invalid attribute types
|
|
46
|
+
*. Mirrors the pattern in `EventBuffer.dropCount` so
|
|
47
|
+
* `HarvestScheduler` can emit a `nr.ai.dropped_metrics` self-monitoring
|
|
48
|
+
* gauge each harvest tick — operators currently see only `logger.warn`
|
|
49
|
+
* spam, with no aggregate count of "we silently dropped N samples".
|
|
50
|
+
*/
|
|
51
|
+
droppedCount = 0;
|
|
52
|
+
constructor() {
|
|
53
|
+
this.buckets = new Map();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Record a single sample.
|
|
57
|
+
*
|
|
58
|
+
* Returns `true` when the sample was accepted into a bucket, and `false`
|
|
59
|
+
* when it was rejected (non-finite value or invalid attribute type) per
|
|
60
|
+
* the §4.8 strict validation contract. The boolean return surface
|
|
61
|
+
* exposes the rejection signal so callers can implement backpressure or
|
|
62
|
+
* surface invalid-input metrics. Existing callers
|
|
63
|
+
* that ignore the return value see unchanged behavior.
|
|
64
|
+
*/
|
|
65
|
+
record(name, value, attributes = {}) {
|
|
66
|
+
if (!Number.isFinite(value)) {
|
|
67
|
+
logger.warn('MetricAggregator.record: non-finite value ignored', { name, value });
|
|
68
|
+
this.droppedCount++;
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
// Defense-in-depth: the type signature constrains attributes to
|
|
72
|
+
// string | number | boolean, but JS callers bypass that. Drop the
|
|
73
|
+
// entire sample when any attribute fails validation — silently
|
|
74
|
+
// coercing `null` → `"null"` or `{}` → `"[object Object]"` would
|
|
75
|
+
// produce ambiguous keys that collide with legitimate string values
|
|
76
|
+
//.
|
|
77
|
+
for (const [k, v] of Object.entries(attributes)) {
|
|
78
|
+
if (!isValidAttributeValue(v)) {
|
|
79
|
+
logger.warn('MetricAggregator.record: invalid attribute value — sample dropped', {
|
|
80
|
+
name,
|
|
81
|
+
attribute: k,
|
|
82
|
+
type: typeof v,
|
|
83
|
+
});
|
|
84
|
+
this.droppedCount++;
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const key = makeKey(name, attributes);
|
|
89
|
+
let bucket = this.buckets.get(key);
|
|
90
|
+
if (!bucket) {
|
|
91
|
+
bucket = {
|
|
92
|
+
name,
|
|
93
|
+
// Shallow-clone so caller mutations after record() don't alias bucket state (§MA1).
|
|
94
|
+
attributes: { ...attributes },
|
|
95
|
+
count: 0,
|
|
96
|
+
sum: 0,
|
|
97
|
+
min: Infinity,
|
|
98
|
+
max: -Infinity,
|
|
99
|
+
};
|
|
100
|
+
this.buckets.set(key, bucket);
|
|
101
|
+
}
|
|
102
|
+
bucket.count++;
|
|
103
|
+
bucket.sum += value;
|
|
104
|
+
bucket.min = Math.min(bucket.min, value);
|
|
105
|
+
bucket.max = Math.max(bucket.max, value);
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Drain all buckets and return their accumulator snapshots. The aggregator
|
|
110
|
+
* is reset to empty afterwards. Use {@link snapshotsToNrMetrics} to convert
|
|
111
|
+
* to wire form, or {@link merge} on a fresh harvest cycle to fold the
|
|
112
|
+
* snapshots back in if a send failed.
|
|
113
|
+
*
|
|
114
|
+
* retaining snapshot form across the failed-send
|
|
115
|
+
* boundary is what lets the next harvest produce a single rolled-up
|
|
116
|
+
* data point per name+attrs combination instead of two separate ones
|
|
117
|
+
* with different timestamps.
|
|
118
|
+
*/
|
|
119
|
+
harvestSnapshots() {
|
|
120
|
+
const drained = this.buckets;
|
|
121
|
+
this.buckets = new Map();
|
|
122
|
+
const snapshots = [];
|
|
123
|
+
for (const bucket of drained.values()) {
|
|
124
|
+
snapshots.push({
|
|
125
|
+
name: bucket.name,
|
|
126
|
+
attributes: { ...bucket.attributes }, // snapshot is a value, not a window (§MA1)
|
|
127
|
+
count: bucket.count,
|
|
128
|
+
sum: bucket.sum,
|
|
129
|
+
min: bucket.min,
|
|
130
|
+
max: bucket.max,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return snapshots;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Fold pre-rolled snapshots back into the aggregator, accumulating into
|
|
137
|
+
* existing buckets when the (name, attributes) key matches. Used on the
|
|
138
|
+
* retry path to merge a failed-send batch with the next harvest interval's
|
|
139
|
+
* data so the result is a single rolled-up data point.
|
|
140
|
+
*/
|
|
141
|
+
merge(snapshots) {
|
|
142
|
+
for (const s of snapshots) {
|
|
143
|
+
// Guard against corrupt snapshots (e.g. built manually — the type is
|
|
144
|
+
// exported). A negative count or non-finite sum would permanently corrupt
|
|
145
|
+
// the bucket's accumulators (§MAC1).
|
|
146
|
+
if (!Number.isFinite(s.sum) ||
|
|
147
|
+
!Number.isFinite(s.min) ||
|
|
148
|
+
!Number.isFinite(s.max) ||
|
|
149
|
+
!Number.isFinite(s.count) ||
|
|
150
|
+
s.count < 0) {
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const key = makeKey(s.name, s.attributes);
|
|
154
|
+
const existing = this.buckets.get(key);
|
|
155
|
+
if (existing) {
|
|
156
|
+
existing.count += s.count;
|
|
157
|
+
existing.sum += s.sum;
|
|
158
|
+
existing.min = Math.min(existing.min, s.min);
|
|
159
|
+
existing.max = Math.max(existing.max, s.max);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.buckets.set(key, {
|
|
163
|
+
name: s.name,
|
|
164
|
+
attributes: { ...s.attributes }, // defensive clone (§MA1)
|
|
165
|
+
count: s.count,
|
|
166
|
+
sum: s.sum,
|
|
167
|
+
min: s.min,
|
|
168
|
+
max: s.max,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
harvest(intervalMs) {
|
|
174
|
+
return snapshotsToNrMetrics(this.harvestSnapshots(), intervalMs);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Total number of `record()` calls rejected since the last
|
|
178
|
+
* `drainDropCount()` (or aggregator construction). Includes both
|
|
179
|
+
* non-finite-value rejections and invalid-attribute-type rejections
|
|
180
|
+
*. Read-only — call `drainDropCount()` to read and
|
|
181
|
+
* reset atomically.
|
|
182
|
+
*/
|
|
183
|
+
get dropCount() {
|
|
184
|
+
return this.droppedCount;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Read the current `dropCount` and reset it to zero. Mirrors
|
|
188
|
+
* `EventBuffer.drainDropCount()` so `HarvestScheduler` can emit one
|
|
189
|
+
* `nr.ai.dropped_metrics` gauge per harvest tick without double-counting
|
|
190
|
+
* across cycles. Returns the value before the reset.
|
|
191
|
+
*/
|
|
192
|
+
drainDropCount() {
|
|
193
|
+
const dropped = this.droppedCount;
|
|
194
|
+
this.droppedCount = 0;
|
|
195
|
+
return dropped;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Number of distinct (name, attributes) buckets currently held in memory.
|
|
199
|
+
*
|
|
200
|
+
* Public so consumers can build self-monitoring metrics on top of the
|
|
201
|
+
* aggregator (e.g. emit `harvest.metric_aggregator.bucket_count` to NR
|
|
202
|
+
* each tick to detect cardinality explosions). Used internally by
|
|
203
|
+
* `metric-aggregator.test.ts` to verify post-`harvest()` state.
|
|
204
|
+
*
|
|
205
|
+
* Not used by `HarvestScheduler` today; surfacing it (rather than dropping
|
|
206
|
+
* the accessor per 10) keeps the surface stable for the
|
|
207
|
+
* self-monitoring work tracked under §4.25.
|
|
208
|
+
*/
|
|
209
|
+
get bucketCount() {
|
|
210
|
+
return this.buckets.size;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Convert each {@link MetricSnapshot} to a single wire-format `NrMetric` of
|
|
215
|
+
* type `'summary'`.
|
|
216
|
+
*
|
|
217
|
+
* Pre-§4.9 this function emitted four separate metrics per snapshot
|
|
218
|
+
* (`{name}.count`, `.sum`, `.min`, `.max`) — three of them as `gauge` (which
|
|
219
|
+
* is semantically wrong for a delta-aggregated value) and one as `count`
|
|
220
|
+
* (without the required `interval.ms` field). The summary type collapses
|
|
221
|
+
* those four into one record carrying `{ count, sum, min, max }` plus the
|
|
222
|
+
* harvest interval, halving payload cardinality and producing correct
|
|
223
|
+
* NR-side aggregate stats.
|
|
224
|
+
*
|
|
225
|
+
* @param intervalMs Harvest interval in ms — appears on the wire as
|
|
226
|
+
* `interval.ms` per NR's Metric API contract.
|
|
227
|
+
*/
|
|
228
|
+
export function snapshotsToNrMetrics(snapshots, intervalMs, timestamp = Date.now()) {
|
|
229
|
+
const metrics = [];
|
|
230
|
+
for (const s of snapshots) {
|
|
231
|
+
metrics.push({
|
|
232
|
+
type: 'summary',
|
|
233
|
+
name: s.name,
|
|
234
|
+
timestamp,
|
|
235
|
+
intervalMs,
|
|
236
|
+
attributes: s.attributes,
|
|
237
|
+
value: {
|
|
238
|
+
count: s.count,
|
|
239
|
+
sum: s.sum,
|
|
240
|
+
min: s.min,
|
|
241
|
+
max: s.max,
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return metrics;
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=metric-aggregator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric-aggregator.js","sourceRoot":"","sources":["../../../src/shared/harvest/metric-aggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { VERSION } from './version.js';
|
|
2
|
+
export { createLogger } from './logger.js';
|
|
3
|
+
export type { Logger, LogLevel } from './logger.js';
|
|
4
|
+
export { redact, safeForLog } from './redact.js';
|
|
5
|
+
export { loadConfig } from './config.js';
|
|
6
|
+
export type { AgentConfig, AgentConfigInput } from './config.js';
|
|
7
|
+
export { createAiRequest, createAiResponse, createAiMessage, createAiAgentTaskSummary, createAiAntiPattern, createAiAgentMessage, createAiContextReset, aiRequestToNrEvent, aiResponseToNrEvent, aiMessageToNrEvent, aiAgentTaskSummaryToNrEvent, aiAntiPatternToNrEvent, aiAgentMessageToNrEvent, aiContextResetToNrEvent, EVENT_SCHEMA_VERSION, } from './events/index.js';
|
|
8
|
+
export type { AiProvider, AiRequestMethod, AiRequest, AiResponse, AiMessageRole, AiMessage, NrEventData, AiAgentTaskSummary, AntiPatternType, AiAntiPattern, AiAgentMessage, AiContextReset, CreateAiRequestParams, CreateAiResponseParams, CreateAiMessageParams, CreateAiAgentTaskSummaryParams, CreateAiAntiPatternParams, CreateAiAgentMessageParams, CreateAiContextResetParams, SerializeOptions, } from './events/index.js';
|
|
9
|
+
export { extractAnthropicTokens, extractGeminiTokens, extractOpenAITokens, extractBedrockTokens, extractMistralTokens, extractCohereTokens, extractStreamTokens, safeInt, TokenAccumulator, } from './tokens.js';
|
|
10
|
+
export type { TokenUsage, AnthropicResponse, GeminiResponse, OpenAIResponse, BedrockResponse, MistralResponse, CohereResponse, } from './tokens.js';
|
|
11
|
+
export { calculateCost, resolveModelPricing, initPricing, loadCustomPricing, PricingTable, } from './pricing.js';
|
|
12
|
+
export { DEFAULT_PRICING_TABLE } from './pricing-data.js';
|
|
13
|
+
export type { ModelPricing, CostBreakdown } from './pricing.js';
|
|
14
|
+
export { RequestTimer } from './timing.js';
|
|
15
|
+
export type { RequestTimerMetrics, ThinkingPhase } from './timing.js';
|
|
16
|
+
export { sendEvents, sendMetrics, sendLogs, OtlpTransport, OtlpEventBridge, } from './transport/index.js';
|
|
17
|
+
export type { NrMetric, NrLogEntry, TransportMode, TransportOptions, TransportResult, OtlpTransportOptions, OtlpEventBridgeOptions, } from './transport/index.js';
|
|
18
|
+
export { EventBuffer, MetricAggregator, HarvestScheduler, snapshotsToNrMetrics, } from './harvest/index.js';
|
|
19
|
+
export type { EventBufferOptions, MetricAccumulator, MetricAttributeValue, MetricSnapshot, HarvestSchedulerOptions, } from './harvest/index.js';
|
|
20
|
+
export { AiErrorClassification, classifyError, classifyErrorDetailed, isRetryable, RETRYABLE, extractRateLimitHeaders, truncateErrorMessage, } from './errors.js';
|
|
21
|
+
export type { RateLimitInfo, ClassifiedError } from './errors.js';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { VERSION } from './version.js';
|
|
2
|
+
export { createLogger } from './logger.js';
|
|
3
|
+
export { redact, safeForLog } from './redact.js';
|
|
4
|
+
export { loadConfig } from './config.js';
|
|
5
|
+
export { createAiRequest, createAiResponse, createAiMessage, createAiAgentTaskSummary, createAiAntiPattern, createAiAgentMessage, createAiContextReset, aiRequestToNrEvent, aiResponseToNrEvent, aiMessageToNrEvent, aiAgentTaskSummaryToNrEvent, aiAntiPatternToNrEvent, aiAgentMessageToNrEvent, aiContextResetToNrEvent, EVENT_SCHEMA_VERSION, } from './events/index.js';
|
|
6
|
+
export { extractAnthropicTokens, extractGeminiTokens, extractOpenAITokens, extractBedrockTokens, extractMistralTokens, extractCohereTokens, extractStreamTokens, safeInt, TokenAccumulator, } from './tokens.js';
|
|
7
|
+
export { calculateCost, resolveModelPricing, initPricing, loadCustomPricing, PricingTable, } from './pricing.js';
|
|
8
|
+
export { DEFAULT_PRICING_TABLE } from './pricing-data.js';
|
|
9
|
+
export { RequestTimer } from './timing.js';
|
|
10
|
+
export { sendEvents, sendMetrics, sendLogs, OtlpTransport, OtlpEventBridge, } from './transport/index.js';
|
|
11
|
+
export { EventBuffer, MetricAggregator, HarvestScheduler, snapshotsToNrMetrics, } from './harvest/index.js';
|
|
12
|
+
export { AiErrorClassification, classifyError, classifyErrorDetailed, isRetryable, RETRYABLE, extractRateLimitHeaders, truncateErrorMessage, } from './errors.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAuB3B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAUrB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
2
|
+
/**
|
|
3
|
+
* Re-arm the env-resolved log level cache so the next `createLogger()`
|
|
4
|
+
* call reads `NEW_RELIC_AI_LOG_LEVEL` again.
|
|
5
|
+
*
|
|
6
|
+
* @internal Test-only. The double-underscore prefix signals that this is NOT
|
|
7
|
+
* part of the public API and MUST NOT be called in production code — calling it
|
|
8
|
+
* in a running agent would cause all loggers to re-read the log level env var
|
|
9
|
+
* on the next emit, defeating the intentional caching behaviour.
|
|
10
|
+
*/
|
|
11
|
+
export declare function __resetLogLevelCache(): void;
|
|
12
|
+
export interface Logger {
|
|
13
|
+
debug(message: string, data?: Record<string, unknown>): void;
|
|
14
|
+
info(message: string, data?: Record<string, unknown>): void;
|
|
15
|
+
warn(message: string, data?: Record<string, unknown>): void;
|
|
16
|
+
error(message: string, data?: Record<string, unknown>): void;
|
|
17
|
+
/**
|
|
18
|
+
* Return a child logger that pre-binds `context` onto every emitted entry
|
|
19
|
+
*. Per-call `data` still wins on key collision. Useful
|
|
20
|
+
* for tracing one harvest cycle / one request through multiple log lines
|
|
21
|
+
* without manually threading the same `requestId` through every call.
|
|
22
|
+
*
|
|
23
|
+
* const reqLogger = logger.child({ requestId: 'abc-12345' });
|
|
24
|
+
* reqLogger.warn('Bad gateway', { statusCode: 502 });
|
|
25
|
+
* // → { ..., requestId: 'abc-12345', statusCode: 502, ... }
|
|
26
|
+
*
|
|
27
|
+
* Calling `child` on a child re-merges (per-call wins), so chains compose.
|
|
28
|
+
*
|
|
29
|
+
* **Level inheritance.** The child inherits the parent's fixed `levelOverride`
|
|
30
|
+
* (set at `createLogger` time). Canonical fields (`level`, `message`,
|
|
31
|
+
* `component`, `timestamp`, `epoch_ms`) cannot be overridden via either
|
|
32
|
+
* bound context or per-call `data` — they always reflect the call site values
|
|
33
|
+
* (§LR4).
|
|
34
|
+
*/
|
|
35
|
+
child(context: Record<string, unknown>): Logger;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a logger.
|
|
39
|
+
*
|
|
40
|
+
* @param component Identifier emitted as `component` on every log entry.
|
|
41
|
+
* Convention: kebab-case module name (e.g. `'harvest-scheduler'`).
|
|
42
|
+
* @param levelOverride
|
|
43
|
+
* Optional per-component minimum level. Pins this
|
|
44
|
+
* logger to the specified level for its lifetime, ignoring the
|
|
45
|
+
* process-wide `NEW_RELIC_AI_LOG_LEVEL` env var. Use this when one
|
|
46
|
+
* noisy module needs to be quieter (or louder) than the rest of the
|
|
47
|
+
* library — e.g.:
|
|
48
|
+
*
|
|
49
|
+
* const logger = createLogger('http-client', 'error');
|
|
50
|
+
*
|
|
51
|
+
* makes the http-client module emit only errors regardless of how the
|
|
52
|
+
* rest of the process is configured. Without an override, the level
|
|
53
|
+
* resolves from the env (cached, see 5) and tracks
|
|
54
|
+
* process-wide changes via `__resetLogLevelCache()`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function createLogger(component: string, levelOverride?: LogLevel): Logger;
|
|
57
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAsD3D;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEhF"}
|