autotel 4.3.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -103
- package/dist/analysis.cjs +87 -0
- package/dist/analysis.cjs.map +1 -0
- package/dist/analysis.d.cts +87 -0
- package/dist/analysis.d.cts.map +1 -0
- package/dist/analysis.d.ts +87 -0
- package/dist/analysis.d.ts.map +1 -0
- package/dist/analysis.js +85 -0
- package/dist/analysis.js.map +1 -0
- package/dist/{attribute-redacting-processor-DtTS9xxh.d.ts → attribute-redacting-processor-Pk7lAzWd.d.cts} +13 -8
- package/dist/attribute-redacting-processor-Pk7lAzWd.d.cts.map +1 -0
- package/dist/{attribute-redacting-processor-DtTS9xxh.d.cts → attribute-redacting-processor-Pk7lAzWd.d.ts} +13 -8
- package/dist/attribute-redacting-processor-Pk7lAzWd.d.ts.map +1 -0
- package/dist/attribute-redacting-processor.cjs +4 -4
- package/dist/attribute-redacting-processor.cjs.map +1 -1
- package/dist/attribute-redacting-processor.d.cts +1 -1
- package/dist/attribute-redacting-processor.d.ts +1 -1
- package/dist/attribute-redacting-processor.js +4 -4
- package/dist/attribute-redacting-processor.js.map +1 -1
- package/dist/attributes.d.cts +1 -1
- package/dist/attributes.d.ts +1 -1
- package/dist/auto.cjs +1 -1
- package/dist/auto.cjs.map +1 -1
- package/dist/auto.d.cts +1 -1
- package/dist/auto.d.ts +1 -1
- package/dist/auto.js +1 -1
- package/dist/auto.js.map +1 -1
- package/dist/business-baggage.d.cts +2 -3
- package/dist/business-baggage.d.cts.map +1 -1
- package/dist/business-baggage.d.ts +2 -3
- package/dist/business-baggage.d.ts.map +1 -1
- package/dist/{canonical-log-line-processor-xvjMgtpF.d.cts → canonical-log-line-processor-B4WgG-VS.d.cts} +2 -3
- package/dist/canonical-log-line-processor-B4WgG-VS.d.cts.map +1 -0
- package/dist/{canonical-log-line-processor-BcRuAdRk.d.ts → canonical-log-line-processor-CL_J7gb5.d.ts} +2 -3
- package/dist/canonical-log-line-processor-CL_J7gb5.d.ts.map +1 -0
- package/dist/{canonical-log-line-processor-CcrDi6TO.cjs → canonical-log-line-processor-DOjb6Kxy.cjs} +5 -5
- package/dist/canonical-log-line-processor-DOjb6Kxy.cjs.map +1 -0
- package/dist/{canonical-log-line-processor-FLezvFCB.js → canonical-log-line-processor-mKABvGP0.js} +5 -5
- package/dist/canonical-log-line-processor-mKABvGP0.js.map +1 -0
- package/dist/config.d.cts +12 -7
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.ts +12 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/correlation-id.cjs +9 -9
- package/dist/correlation-id.d.cts +0 -1
- package/dist/correlation-id.d.cts.map +1 -1
- package/dist/correlation-id.d.ts +0 -1
- package/dist/correlation-id.d.ts.map +1 -1
- package/dist/correlation-id.js +1 -1
- package/dist/db.d.cts.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/decorators.cjs +2 -2
- package/dist/decorators.cjs.map +1 -1
- package/dist/decorators.d.cts +1 -2
- package/dist/decorators.d.cts.map +1 -1
- package/dist/decorators.d.ts +1 -2
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +1 -1
- package/dist/decorators.js.map +1 -1
- package/dist/{define-event-CreknLm3.d.ts → define-event-B2z1SBe7.d.ts} +2 -3
- package/dist/define-event-B2z1SBe7.d.ts.map +1 -0
- package/dist/{define-event-HZRizPwz.d.cts → define-event-CGG048HE.d.cts} +2 -3
- package/dist/define-event-CGG048HE.d.cts.map +1 -0
- package/dist/diagnostics.cjs +10 -1
- package/dist/diagnostics.cjs.map +1 -1
- package/dist/diagnostics.d.cts +0 -1
- package/dist/diagnostics.d.cts.map +1 -1
- package/dist/diagnostics.d.ts +0 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +10 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/drain-pipeline.d.cts +12 -5
- package/dist/drain-pipeline.d.cts.map +1 -1
- package/dist/drain-pipeline.d.ts +12 -5
- package/dist/drain-pipeline.d.ts.map +1 -1
- package/dist/enrichers.d.cts.map +1 -1
- package/dist/enrichers.d.ts.map +1 -1
- package/dist/{event-subscriber-D1XLkPzi.d.ts → event-subscriber-CWh8sTGh.d.cts} +2 -2
- package/dist/event-subscriber-CWh8sTGh.d.cts.map +1 -0
- package/dist/{event-subscriber-D1XLkPzi.d.cts → event-subscriber-CWh8sTGh.d.ts} +2 -2
- package/dist/event-subscriber-CWh8sTGh.d.ts.map +1 -0
- package/dist/event-subscriber.d.cts +1 -1
- package/dist/event-subscriber.d.ts +1 -1
- package/dist/{event-testing-CfFs3to2.d.ts → event-testing-CA2mIx1E.d.ts} +2 -3
- package/dist/event-testing-CA2mIx1E.d.ts.map +1 -0
- package/dist/{event-testing-BqRnI0z4.d.cts → event-testing-D0qWfqAy.d.cts} +2 -3
- package/dist/event-testing-D0qWfqAy.d.cts.map +1 -0
- package/dist/event-testing.d.cts +1 -1
- package/dist/event-testing.d.ts +1 -1
- package/dist/event.cjs +4 -4
- package/dist/event.d.cts +3 -4
- package/dist/event.d.cts.map +1 -1
- package/dist/event.d.ts +3 -4
- package/dist/event.d.ts.map +1 -1
- package/dist/event.js +1 -1
- package/dist/exporters.d.cts +0 -4
- package/dist/exporters.d.cts.map +1 -1
- package/dist/exporters.d.ts +0 -4
- package/dist/exporters.d.ts.map +1 -1
- package/dist/{filtering-span-processor-B8R8B7Uk.d.ts → filtering-span-processor-BpDagWNa.d.cts} +1 -2
- package/dist/filtering-span-processor-BpDagWNa.d.cts.map +1 -0
- package/dist/{filtering-span-processor-B8R8B7Uk.d.cts → filtering-span-processor-BpDagWNa.d.ts} +1 -2
- package/dist/filtering-span-processor-BpDagWNa.d.ts.map +1 -0
- package/dist/filtering-span-processor.d.cts +1 -1
- package/dist/filtering-span-processor.d.ts +1 -1
- package/dist/functional-BnDUxnSl.js +838 -0
- package/dist/functional-BnDUxnSl.js.map +1 -0
- package/dist/functional-DcLBuCPz.cjs +888 -0
- package/dist/functional-DcLBuCPz.cjs.map +1 -0
- package/dist/functional.cjs +2 -2
- package/dist/functional.d.cts +79 -130
- package/dist/functional.d.cts.map +1 -1
- package/dist/functional.d.ts +79 -130
- package/dist/functional.d.ts.map +1 -1
- package/dist/functional.js +2 -2
- package/dist/http.cjs +6 -6
- package/dist/http.cjs.map +1 -1
- package/dist/http.d.cts +4 -5
- package/dist/http.d.cts.map +1 -1
- package/dist/http.d.ts +4 -5
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +5 -5
- package/dist/http.js.map +1 -1
- package/dist/{index-eKuioqT1.d.cts → index-BPcxVucm.d.cts} +2 -3
- package/dist/index-BPcxVucm.d.cts.map +1 -0
- package/dist/{index-Ck06vlW2.d.ts → index-DolOVX6F.d.ts} +2 -3
- package/dist/index-DolOVX6F.d.ts.map +1 -0
- package/dist/index.cjs +25 -167
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -14
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +14 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -148
- package/dist/index.js.map +1 -1
- package/dist/init-C3RApHKJ.cjs +3371 -0
- package/dist/init-C3RApHKJ.cjs.map +1 -0
- package/dist/{init-DSrRmVnz.d.cts → init-D6n2diBy.d.ts} +46 -20
- package/dist/init-D6n2diBy.d.ts.map +1 -0
- package/dist/init-R-gSEXkJ.js +3190 -0
- package/dist/init-R-gSEXkJ.js.map +1 -0
- package/dist/{init-B7u-DjxM.d.ts → init-XzXzrarP.d.cts} +46 -20
- package/dist/init-XzXzrarP.d.cts.map +1 -0
- package/dist/instrumentation.cjs +7 -13
- package/dist/instrumentation.cjs.map +1 -1
- package/dist/instrumentation.d.cts +0 -1
- package/dist/instrumentation.d.cts.map +1 -1
- package/dist/instrumentation.d.ts +0 -1
- package/dist/instrumentation.d.ts.map +1 -1
- package/dist/instrumentation.js +8 -14
- package/dist/instrumentation.js.map +1 -1
- package/dist/{logger-BauSUhUv.d.ts → logger-CN4xpzMd.d.cts} +1 -2
- package/dist/logger-CN4xpzMd.d.cts.map +1 -0
- package/dist/{logger-BauSUhUv.d.cts → logger-CN4xpzMd.d.ts} +1 -2
- package/dist/logger-CN4xpzMd.d.ts.map +1 -0
- package/dist/logger-D3Ej3DII.js.map +1 -1
- package/dist/logger-thMPLpOG.cjs.map +1 -1
- package/dist/logger.d.cts +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/messaging-adapters.cjs.map +1 -1
- package/dist/messaging-adapters.d.cts +0 -1
- package/dist/messaging-adapters.d.cts.map +1 -1
- package/dist/messaging-adapters.d.ts +0 -1
- package/dist/messaging-adapters.d.ts.map +1 -1
- package/dist/messaging-adapters.js.map +1 -1
- package/dist/messaging-testing.d.cts +0 -1
- package/dist/messaging-testing.d.cts.map +1 -1
- package/dist/messaging-testing.d.ts +0 -1
- package/dist/messaging-testing.d.ts.map +1 -1
- package/dist/messaging.cjs +27 -10
- package/dist/messaging.cjs.map +1 -1
- package/dist/messaging.d.cts +6 -7
- package/dist/messaging.d.cts.map +1 -1
- package/dist/messaging.d.ts +6 -7
- package/dist/messaging.d.ts.map +1 -1
- package/dist/messaging.js +27 -10
- package/dist/messaging.js.map +1 -1
- package/dist/metric-helpers.d.cts +0 -1
- package/dist/metric-helpers.d.cts.map +1 -1
- package/dist/metric-helpers.d.ts +0 -1
- package/dist/metric-helpers.d.ts.map +1 -1
- package/dist/{metric-testing-DXdK3-Q3.d.ts → metric-testing-CWm6UhaR.d.ts} +2 -3
- package/dist/metric-testing-CWm6UhaR.d.ts.map +1 -0
- package/dist/{metric-testing-MxvzChDp.d.cts → metric-testing-CpvP3ZIa.d.cts} +2 -3
- package/dist/metric-testing-CpvP3ZIa.d.cts.map +1 -0
- package/dist/metric-testing.d.cts +1 -1
- package/dist/metric-testing.d.ts +1 -1
- package/dist/metric.d.cts +3 -4
- package/dist/metric.d.cts.map +1 -1
- package/dist/metric.d.ts +3 -4
- package/dist/metric.d.ts.map +1 -1
- package/dist/parse-error.d.cts.map +1 -1
- package/dist/parse-error.d.ts.map +1 -1
- package/dist/processors.cjs +1 -1
- package/dist/processors.d.cts +1 -1
- package/dist/processors.d.ts +1 -1
- package/dist/processors.js +1 -1
- package/dist/register.d.cts +1 -1
- package/dist/register.d.ts +1 -1
- package/dist/{sampling-DfYhDJij.d.cts → sampling-BR9fkSwx.d.cts} +127 -10
- package/dist/sampling-BR9fkSwx.d.cts.map +1 -0
- package/dist/{sampling-CR0Va1VB.d.ts → sampling-CP3e7-Yr.d.ts} +127 -10
- package/dist/sampling-CP3e7-Yr.d.ts.map +1 -0
- package/dist/sampling.cjs +160 -12
- package/dist/sampling.cjs.map +1 -1
- package/dist/sampling.d.cts +2 -2
- package/dist/sampling.d.ts +2 -2
- package/dist/sampling.js +157 -13
- package/dist/sampling.js.map +1 -1
- package/dist/security-schema.d.cts +9 -4
- package/dist/security-schema.d.cts.map +1 -1
- package/dist/security-schema.d.ts +9 -4
- package/dist/security-schema.d.ts.map +1 -1
- package/dist/semantic-conventions-FhSxv-bK.d.cts.map +1 -1
- package/dist/semantic-conventions-FhSxv-bK.d.ts.map +1 -1
- package/dist/semantic-conventions.cjs.map +1 -1
- package/dist/semantic-conventions.js.map +1 -1
- package/dist/semantic-helpers.cjs +85 -304
- package/dist/semantic-helpers.cjs.map +1 -1
- package/dist/semantic-helpers.d.cts +21 -12
- package/dist/semantic-helpers.d.cts.map +1 -1
- package/dist/semantic-helpers.d.ts +21 -12
- package/dist/semantic-helpers.d.ts.map +1 -1
- package/dist/semantic-helpers.js +85 -304
- package/dist/semantic-helpers.js.map +1 -1
- package/dist/slo.cjs +225 -0
- package/dist/slo.cjs.map +1 -0
- package/dist/slo.d.cts +97 -0
- package/dist/slo.d.cts.map +1 -0
- package/dist/slo.d.ts +97 -0
- package/dist/slo.d.ts.map +1 -0
- package/dist/slo.js +223 -0
- package/dist/slo.js.map +1 -0
- package/dist/{span-name-normalizer-8ZOGJuwv.d.ts → span-name-normalizer-CN1-8C76.d.cts} +1 -2
- package/dist/span-name-normalizer-CN1-8C76.d.cts.map +1 -0
- package/dist/{span-name-normalizer-8ZOGJuwv.d.cts → span-name-normalizer-CN1-8C76.d.ts} +1 -2
- package/dist/span-name-normalizer-CN1-8C76.d.ts.map +1 -0
- package/dist/span-name-normalizer.cjs.map +1 -1
- package/dist/span-name-normalizer.d.cts +1 -1
- package/dist/span-name-normalizer.d.ts +1 -1
- package/dist/span-name-normalizer.js.map +1 -1
- package/dist/tail-sampling-processor.d.cts +0 -1
- package/dist/tail-sampling-processor.d.cts.map +1 -1
- package/dist/tail-sampling-processor.d.ts +0 -1
- package/dist/tail-sampling-processor.d.ts.map +1 -1
- package/dist/test-span-collector.cjs.map +1 -1
- package/dist/test-span-collector.d.cts +0 -1
- package/dist/test-span-collector.d.cts.map +1 -1
- package/dist/test-span-collector.d.ts +0 -1
- package/dist/test-span-collector.d.ts.map +1 -1
- package/dist/test-span-collector.js.map +1 -1
- package/dist/testing.cjs +76 -11
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +30 -5
- package/dist/testing.d.cts.map +1 -1
- package/dist/testing.d.ts +30 -5
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +73 -12
- package/dist/testing.js.map +1 -1
- package/dist/{trace-context-Cijqoi6e.d.ts → trace-context-IuyoPyNq.d.cts} +9 -9
- package/dist/trace-context-IuyoPyNq.d.cts.map +1 -0
- package/dist/{trace-context-Cijqoi6e.d.cts → trace-context-IuyoPyNq.d.ts} +9 -9
- package/dist/trace-context-IuyoPyNq.d.ts.map +1 -0
- package/dist/trace-factory-validation-BjVAinz6.js +13 -0
- package/dist/trace-factory-validation-BjVAinz6.js.map +1 -0
- package/dist/trace-factory-validation-Dc8epn87.cjs +19 -0
- package/dist/trace-factory-validation-Dc8epn87.cjs.map +1 -0
- package/dist/trace-helpers.cjs +7 -7
- package/dist/trace-helpers.cjs.map +1 -1
- package/dist/trace-helpers.d.cts +6 -7
- package/dist/trace-helpers.d.cts.map +1 -1
- package/dist/trace-helpers.d.ts +6 -7
- package/dist/trace-helpers.d.ts.map +1 -1
- package/dist/trace-helpers.js +7 -7
- package/dist/trace-helpers.js.map +1 -1
- package/dist/tracer-provider.d.cts +0 -1
- package/dist/tracer-provider.d.cts.map +1 -1
- package/dist/tracer-provider.d.ts +0 -1
- package/dist/tracer-provider.d.ts.map +1 -1
- package/dist/validate.cjs.map +1 -1
- package/dist/validate.d.cts +1 -2
- package/dist/validate.d.cts.map +1 -1
- package/dist/validate.d.ts +1 -2
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js.map +1 -1
- package/dist/validation-attributes.d.cts +17 -8
- package/dist/validation-attributes.d.cts.map +1 -1
- package/dist/validation-attributes.d.ts +17 -8
- package/dist/validation-attributes.d.ts.map +1 -1
- package/dist/webhook.cjs +5 -4
- package/dist/webhook.cjs.map +1 -1
- package/dist/webhook.d.cts +4 -4
- package/dist/webhook.d.cts.map +1 -1
- package/dist/webhook.d.ts +4 -4
- package/dist/webhook.d.ts.map +1 -1
- package/dist/webhook.js +5 -4
- package/dist/webhook.js.map +1 -1
- package/dist/workflow-distributed.cjs +5 -5
- package/dist/workflow-distributed.cjs.map +1 -1
- package/dist/workflow-distributed.d.cts +25 -15
- package/dist/workflow-distributed.d.cts.map +1 -1
- package/dist/workflow-distributed.d.ts +25 -15
- package/dist/workflow-distributed.d.ts.map +1 -1
- package/dist/workflow-distributed.js +5 -5
- package/dist/workflow-distributed.js.map +1 -1
- package/dist/workflow.cjs +24 -30
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +11 -6
- package/dist/workflow.d.cts.map +1 -1
- package/dist/workflow.d.ts +11 -6
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +24 -30
- package/dist/workflow.js.map +1 -1
- package/dist/yaml-config.d.cts +2 -3
- package/dist/yaml-config.d.cts.map +1 -1
- package/dist/yaml-config.d.ts +2 -3
- package/dist/yaml-config.d.ts.map +1 -1
- package/package.json +24 -16
- package/dist/attribute-redacting-processor-DtTS9xxh.d.cts.map +0 -1
- package/dist/attribute-redacting-processor-DtTS9xxh.d.ts.map +0 -1
- package/dist/canonical-log-line-processor-BcRuAdRk.d.ts.map +0 -1
- package/dist/canonical-log-line-processor-CcrDi6TO.cjs.map +0 -1
- package/dist/canonical-log-line-processor-FLezvFCB.js.map +0 -1
- package/dist/canonical-log-line-processor-xvjMgtpF.d.cts.map +0 -1
- package/dist/define-event-CreknLm3.d.ts.map +0 -1
- package/dist/define-event-HZRizPwz.d.cts.map +0 -1
- package/dist/event-BEm5IJ8U.js +0 -761
- package/dist/event-BEm5IJ8U.js.map +0 -1
- package/dist/event-rzA1X5h3.cjs +0 -778
- package/dist/event-rzA1X5h3.cjs.map +0 -1
- package/dist/event-subscriber-D1XLkPzi.d.cts.map +0 -1
- package/dist/event-subscriber-D1XLkPzi.d.ts.map +0 -1
- package/dist/event-testing-BqRnI0z4.d.cts.map +0 -1
- package/dist/event-testing-CfFs3to2.d.ts.map +0 -1
- package/dist/filtering-span-processor-B8R8B7Uk.d.cts.map +0 -1
- package/dist/filtering-span-processor-B8R8B7Uk.d.ts.map +0 -1
- package/dist/functional-CwsPyc4l.cjs +0 -1298
- package/dist/functional-CwsPyc4l.cjs.map +0 -1
- package/dist/functional-dAYhXQPA.js +0 -1248
- package/dist/functional-dAYhXQPA.js.map +0 -1
- package/dist/index-Ck06vlW2.d.ts.map +0 -1
- package/dist/index-eKuioqT1.d.cts.map +0 -1
- package/dist/init-B7u-DjxM.d.ts.map +0 -1
- package/dist/init-BvBB45-T.js +0 -1034
- package/dist/init-BvBB45-T.js.map +0 -1
- package/dist/init-BxJEJ9Tn.cjs +0 -1111
- package/dist/init-BxJEJ9Tn.cjs.map +0 -1
- package/dist/init-DSrRmVnz.d.cts.map +0 -1
- package/dist/logger-BauSUhUv.d.cts.map +0 -1
- package/dist/logger-BauSUhUv.d.ts.map +0 -1
- package/dist/metric-testing-DXdK3-Q3.d.ts.map +0 -1
- package/dist/metric-testing-MxvzChDp.d.cts.map +0 -1
- package/dist/operation-context-CKBoA4Qy.js +0 -59
- package/dist/operation-context-CKBoA4Qy.js.map +0 -1
- package/dist/operation-context-hzKbTKnt.cjs +0 -72
- package/dist/operation-context-hzKbTKnt.cjs.map +0 -1
- package/dist/sampling-CR0Va1VB.d.ts.map +0 -1
- package/dist/sampling-DfYhDJij.d.cts.map +0 -1
- package/dist/span-name-normalizer-8ZOGJuwv.d.cts.map +0 -1
- package/dist/span-name-normalizer-8ZOGJuwv.d.ts.map +0 -1
- package/dist/trace-context-Cijqoi6e.d.cts.map +0 -1
- package/dist/trace-context-Cijqoi6e.d.ts.map +0 -1
- package/dist/track-D7O7oIZa.js +0 -1115
- package/dist/track-D7O7oIZa.js.map +0 -1
- package/dist/track-eovhCJ-I.cjs +0 -1218
- package/dist/track-eovhCJ-I.cjs.map +0 -1
- package/skills/analyze-traces/SKILL.md +0 -180
- package/skills/autotel-core/SKILL.md +0 -159
- package/skills/autotel-events/SKILL.md +0 -84
- package/skills/autotel-frameworks/SKILL.md +0 -90
- package/skills/autotel-instrumentation/SKILL.md +0 -145
- package/skills/autotel-request-logging/SKILL.md +0 -94
- package/skills/autotel-structured-errors/SKILL.md +0 -125
- package/skills/build-audit-trails/SKILL.md +0 -460
- package/skills/build-audit-trails/references/audit-queries.md +0 -73
- package/skills/build-audit-trails/references/framework-wiring.md +0 -196
- package/skills/debug-missing-spans/SKILL.md +0 -250
- package/skills/migrate-to-autotel/SKILL.md +0 -269
- package/skills/review-otel-patterns/SKILL.md +0 -538
- package/skills/review-otel-patterns/references/code-review.md +0 -76
- package/skills/review-otel-patterns/references/processor-pipeline.md +0 -205
- package/skills/review-otel-patterns/references/structured-errors.md +0 -102
- package/skills/review-otel-patterns/references/wide-spans.md +0 -85
- package/skills/tune-sampling/SKILL.md +0 -215
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","names":[],"sources":["../src/http.ts"],"sourcesContent":["/**\n * HTTP Instrumentation Helpers\n *\n * Optional import: Not included in main bundle\n * Import from: 'autotel/http'\n *\n * Provides decorators and utilities for HTTP client instrumentation.\n * Works with fetch, axios, and other HTTP clients.\n *\n * @example\n * ```typescript\n * import { HttpInstrumented } from 'autotel/http'\n *\n * @HttpInstrumented()\n * class ApiClient {\n * async getUser(id: string) {\n * return fetch(`/api/users/${id}`)\n * }\n * }\n * ```\n */\n\nimport { SpanStatusCode, context, propagation } from '@opentelemetry/api';\nimport { getConfig } from './config';\nimport { getActiveContextWithBaggage } from './trace-context';\n\nexport interface HttpInstrumentedOptions {\n /** Service name for HTTP calls (default: 'http-client') */\n serviceName?: string;\n /** Extract URL from method arguments (default: first arg) */\n urlExtractor?: (args: unknown[]) => string | undefined;\n /** Extract HTTP method from method name or args */\n methodExtractor?: (methodName: string, args: unknown[]) => string;\n /** Add custom attributes to spans */\n attributesFromArgs?: (args: unknown[]) => Record<string, string | number>;\n /** Slow request threshold in milliseconds (adds warning attribute) - default: 3000ms */\n slowRequestThresholdMs?: number;\n}\n\n/**\n * Decorator for auto-instrumenting HTTP client methods\n *\n * @example Basic usage\n * ```typescript\n * @HttpInstrumented()\n * class ApiClient {\n * async fetchUser(userId: string) {\n * const res = await fetch(`https://api.example.com/users/${userId}`)\n * return res.json()\n * }\n *\n * async createOrder(order: Order) {\n * const res = await fetch('https://api.example.com/orders', {\n * method: 'POST',\n * body: JSON.stringify(order)\n * })\n * return res.json()\n * }\n * }\n * ```\n *\n * @example Advanced usage with custom extractors\n * ```typescript\n * @HttpInstrumented({\n * serviceName: 'payment-gateway',\n * urlExtractor: (args) => {\n * const config = args[0] as RequestConfig\n * return config.url\n * },\n * attributesFromArgs: (args) => ({\n * 'http.request_id': args[0]?.requestId,\n * 'http.retry_count': args[0]?.retryCount || 0\n * })\n * })\n * class PaymentClient {\n * async charge(config: RequestConfig) {\n * return axios(config)\n * }\n * }\n * ```\n */\nexport function HttpInstrumented(options: HttpInstrumentedOptions = {}) {\n const serviceName = options.serviceName || 'http-client';\n const slowRequestThresholdMs = options.slowRequestThresholdMs ?? 3000;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type\n return function <T extends { new (...args: any[]): {} }>(\n target: T,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _context: ClassDecoratorContext,\n ) {\n return class extends target {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args: any[]) {\n super(...args);\n\n const proto = target.prototype;\n const methodNames = Object.getOwnPropertyNames(proto).filter(\n (name) =>\n name !== 'constructor' &&\n typeof proto[name] === 'function' &&\n !name.startsWith('_'),\n );\n\n for (const methodName of methodNames) {\n const originalMethod = proto[methodName];\n\n if (\n originalMethod.constructor.name === 'AsyncFunction' ||\n originalMethod.toString().startsWith('async ')\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const wrappedMethod = async (...args: any[]) => {\n const config = getConfig();\n const tracer = config.tracer;\n\n const url = options.urlExtractor\n ? options.urlExtractor(args)\n : (args[0] as string | undefined);\n\n const method = options.methodExtractor\n ? options.methodExtractor(methodName, args)\n : inferHttpMethod(methodName);\n\n const spanName = url\n ? `HTTP ${method} ${extractPath(url)}`\n : `HTTP ${method}`;\n\n return tracer.startActiveSpan(spanName, async (span) => {\n const startTime = performance.now();\n\n try {\n span.setAttributes({\n 'http.method': method,\n 'http.url': url || 'unknown',\n 'service.name': serviceName,\n 'operation.name': `${serviceName}.${methodName}`,\n });\n\n if (url) {\n const urlObj = parseUrl(url);\n span.setAttributes({\n 'http.scheme': urlObj.protocol,\n 'http.host': urlObj.host,\n 'http.target': urlObj.path,\n });\n }\n\n if (options.attributesFromArgs) {\n span.setAttributes(options.attributesFromArgs(args));\n }\n\n const result = await originalMethod.apply(this, args);\n\n const duration = performance.now() - startTime;\n\n // Extract status code from response\n const statusCode = extractStatusCode(result);\n if (statusCode) {\n span.setAttribute('http.status_code', statusCode);\n\n if (statusCode >= 400) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: `HTTP ${statusCode}`,\n });\n } else {\n span.setStatus({ code: SpanStatusCode.OK });\n }\n } else {\n span.setStatus({ code: SpanStatusCode.OK });\n }\n\n span.setAttributes({\n 'http.duration_ms': duration,\n });\n\n // Mark slow requests for investigation\n if (duration > slowRequestThresholdMs) {\n span.setAttribute('http.slow_request', true);\n span.setAttribute(\n 'http.slow_request_threshold_ms',\n slowRequestThresholdMs,\n );\n }\n\n return result;\n } catch (error) {\n const duration = performance.now() - startTime;\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message:\n error instanceof Error ? error.message : 'Unknown error',\n });\n\n span.setAttributes({\n 'http.duration_ms': duration,\n 'error.type':\n error instanceof Error\n ? error.constructor.name\n : 'Unknown',\n 'error.message':\n error instanceof Error ? error.message : 'Unknown error',\n });\n\n throw error;\n } finally {\n span.end();\n }\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this as any)[methodName] = wrappedMethod;\n }\n }\n }\n };\n };\n}\n\n/**\n * Helper: Trace a single HTTP request\n *\n * @example\n * ```typescript\n * import { traceHttpRequest } from 'autotel/http'\n *\n * const data = await traceHttpRequest(\n * 'GET /api/users',\n * () => fetch('https://api.example.com/users')\n * )\n * ```\n */\nexport async function traceHttpRequest<T>(\n spanName: string,\n fn: () => Promise<T>,\n attributes?: Record<string, string | number>,\n): Promise<T> {\n const config = getConfig();\n const tracer = config.tracer;\n\n return tracer.startActiveSpan(spanName, async (span) => {\n try {\n if (attributes) {\n span.setAttributes(attributes);\n }\n\n const result = await fn();\n span.setStatus({ code: SpanStatusCode.OK });\n return result;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n } finally {\n span.end();\n }\n });\n}\n\n// Helper functions\n\nfunction inferHttpMethod(methodName: string): string {\n const lower = methodName.toLowerCase();\n if (\n lower.includes('get') ||\n lower.includes('fetch') ||\n lower.includes('list')\n )\n return 'GET';\n if (lower.includes('post') || lower.includes('create')) return 'POST';\n if (lower.includes('put') || lower.includes('update')) return 'PUT';\n if (lower.includes('delete') || lower.includes('remove')) return 'DELETE';\n if (lower.includes('patch')) return 'PATCH';\n return 'GET'; // Default\n}\n\nfunction extractPath(url: string): string {\n try {\n const urlObj = new URL(url);\n return urlObj.pathname;\n } catch {\n // Relative URL or invalid\n return url.split('?')[0] || url;\n }\n}\n\nfunction parseUrl(url: string): {\n protocol: string;\n host: string;\n path: string;\n} {\n try {\n const urlObj = new URL(url);\n return {\n protocol: urlObj.protocol.replace(':', ''),\n host: urlObj.host,\n path: urlObj.pathname + urlObj.search,\n };\n } catch {\n return {\n protocol: 'http',\n host: 'unknown',\n path: url,\n };\n }\n}\n\nfunction extractStatusCode(result: unknown): number | undefined {\n if (result && typeof result === 'object') {\n // Check for Response.status (fetch API)\n if ('status' in result && typeof result.status === 'number') {\n return result.status;\n }\n // Check for statusCode (axios, node http)\n if ('statusCode' in result && typeof result.statusCode === 'number') {\n return result.statusCode;\n }\n }\n return undefined;\n}\n\n/**\n * Inject trace context into HTTP headers (for distributed tracing)\n *\n * This includes W3C Trace Context (traceparent, tracestate) and W3C Baggage headers.\n * Uses OpenTelemetry's propagation system for full compatibility.\n *\n * @example\n * ```typescript\n * import { injectTraceContext } from 'autotel/http'\n *\n * const headers = injectTraceContext({\n * 'Content-Type': 'application/json'\n * })\n *\n * fetch('/api/users', { headers })\n * ```\n *\n * @example With baggage\n * ```typescript\n * import { trace, withBaggage, injectTraceContext } from 'autotel'\n *\n * export const createOrder = trace((ctx) => async (order: Order) => {\n * return await withBaggage({\n * baggage: { 'tenant.id': order.tenantId },\n * fn: async () => {\n * const headers = injectTraceContext();\n * // Headers now include 'baggage' header with tenant.id\n * await fetch('/api/charge', { headers });\n * },\n * });\n * });\n * ```\n */\nexport function injectTraceContext(\n headers: Record<string, string> = {},\n): Record<string, string> {\n // Use getActiveContextWithBaggage to check stored context (from baggage setters)\n // This ensures ctx.setBaggage() changes are included in injected headers\n const currentContext = getActiveContextWithBaggage();\n\n // Use OpenTelemetry's propagation.inject for full W3C support\n // This includes traceparent, tracestate, and baggage headers\n propagation.inject(currentContext, headers);\n\n return headers;\n}\n\n/**\n * Extract trace context from HTTP headers (for distributed tracing)\n *\n * This extracts W3C Trace Context (traceparent, tracestate) and W3C Baggage headers.\n * Uses OpenTelemetry's propagation system for full compatibility.\n *\n * Returns a context that can be used with context.with() to run code\n * with the extracted trace context and baggage.\n *\n * @example\n * ```typescript\n * import { extractTraceContext, trace } from 'autotel'\n * import { context } from 'autotel'\n *\n * // In Express middleware\n * app.use((req, res, next) => {\n * const extractedContext = extractTraceContext(req.headers);\n * context.with(extractedContext, () => {\n * next();\n * });\n * });\n * ```\n *\n * @example In a traced function\n * ```typescript\n * export const handleWebhook = trace((ctx) => async (req: Request) => {\n * const extractedContext = extractTraceContext(req.headers);\n * return await context.with(extractedContext, async () => {\n * // Now ctx.getBaggage() will return baggage from the incoming request\n * const tenantId = ctx.getBaggage('tenant.id');\n * await processWebhook(req.body);\n * });\n * });\n * ```\n */\nexport function extractTraceContext(\n headers: Record<string, string | string[] | undefined>,\n): ReturnType<typeof context.active> {\n const carrier: Record<string, string> = {};\n\n // Convert headers to flat string format expected by propagation\n for (const [key, value] of Object.entries(headers)) {\n if (value !== undefined) {\n carrier[key] = Array.isArray(value) ? (value[0] ?? '') : value;\n }\n }\n\n // Extract context using OpenTelemetry's propagation system\n // Returns a Context that can be used with context.with()\n return propagation.extract(context.active(), carrier);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","names":[],"sources":["../src/http.ts"],"sourcesContent":["/**\n * HTTP Instrumentation Helpers\n *\n * Optional import: Not included in main bundle\n * Import from: 'autotel/http'\n *\n * Provides decorators and utilities for HTTP client instrumentation.\n * Works with fetch, axios, and other HTTP clients.\n *\n * @example\n * ```typescript\n * import { HttpInstrumented } from 'autotel/http'\n *\n * @HttpInstrumented()\n * class ApiClient {\n * async getUser(id: string) {\n * return fetch(`/api/users/${id}`)\n * }\n * }\n * ```\n */\n\nimport { SpanStatusCode, context, propagation } from '@opentelemetry/api';\nimport { getConfig } from './config';\nimport { getActiveContextWithBaggage } from './trace-context';\n\nexport interface HttpInstrumentedOptions {\n /** Service name for HTTP calls (default: 'http-client') */\n serviceName?: string;\n /** Extract URL from method arguments (default: first arg) */\n urlExtractor?: (args: unknown[]) => string | undefined;\n /** Extract HTTP method from method name or args */\n methodExtractor?: (methodName: string, args: unknown[]) => string;\n /** Add custom attributes to spans */\n attributesFromArgs?: (args: unknown[]) => Record<string, string | number>;\n /** Slow request threshold in milliseconds (adds warning attribute) - default: 3000ms */\n slowRequestThresholdMs?: number;\n}\n\n/**\n * Decorator for auto-instrumenting HTTP client methods\n *\n * @example Basic usage\n * ```typescript\n * @HttpInstrumented()\n * class ApiClient {\n * async fetchUser(userId: string) {\n * const res = await fetch(`https://api.example.com/users/${userId}`)\n * return res.json()\n * }\n *\n * async createOrder(order: Order) {\n * const res = await fetch('https://api.example.com/orders', {\n * method: 'POST',\n * body: JSON.stringify(order)\n * })\n * return res.json()\n * }\n * }\n * ```\n *\n * @example Advanced usage with custom extractors\n * ```typescript\n * @HttpInstrumented({\n * serviceName: 'payment-gateway',\n * urlExtractor: (args) => {\n * const config = args[0] as RequestConfig\n * return config.url\n * },\n * attributesFromArgs: (args) => ({\n * 'http.request_id': args[0]?.requestId,\n * 'http.retry_count': args[0]?.retryCount || 0\n * })\n * })\n * class PaymentClient {\n * async charge(config: RequestConfig) {\n * return axios(config)\n * }\n * }\n * ```\n */\nexport function HttpInstrumented(options: HttpInstrumentedOptions = {}) {\n const serviceName = options.serviceName || 'http-client';\n const slowRequestThresholdMs = options.slowRequestThresholdMs ?? 3000;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type\n return function <T extends { new (...args: any[]): {} }>(\n target: T,\n _context: ClassDecoratorContext,\n ) {\n return class extends target {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args: any[]) {\n super(...args);\n\n const proto = target.prototype;\n const methodNames = Object.getOwnPropertyNames(proto).filter(\n (name) =>\n name !== 'constructor' &&\n typeof proto[name] === 'function' &&\n !name.startsWith('_'),\n );\n\n for (const methodName of methodNames) {\n const originalMethod = proto[methodName];\n\n if (\n originalMethod.constructor.name === 'AsyncFunction' ||\n originalMethod.toString().startsWith('async ')\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const wrappedMethod = async (...args: any[]) => {\n const config = getConfig();\n const tracer = config.tracer;\n\n const url = options.urlExtractor\n ? options.urlExtractor(args)\n : (args[0] as string | undefined);\n\n const method = options.methodExtractor\n ? options.methodExtractor(methodName, args)\n : inferHttpMethod(methodName);\n\n const spanName = url\n ? `HTTP ${method} ${extractPath(url)}`\n : `HTTP ${method}`;\n\n return tracer.startActiveSpan(spanName, async (span) => {\n const startTime = performance.now();\n\n try {\n span.setAttributes({\n 'http.method': method,\n 'http.url': url || 'unknown',\n 'service.name': serviceName,\n 'operation.name': `${serviceName}.${methodName}`,\n });\n\n if (url) {\n const urlObj = parseUrl(url);\n span.setAttributes({\n 'http.scheme': urlObj.protocol,\n 'http.host': urlObj.host,\n 'http.target': urlObj.path,\n });\n }\n\n if (options.attributesFromArgs) {\n span.setAttributes(options.attributesFromArgs(args));\n }\n\n const result = await originalMethod.apply(this, args);\n\n const duration = performance.now() - startTime;\n\n // Extract status code from response\n const statusCode = extractStatusCode(result);\n if (statusCode) {\n span.setAttribute('http.status_code', statusCode);\n\n if (statusCode >= 400) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: `HTTP ${statusCode}`,\n });\n } else {\n span.setStatus({ code: SpanStatusCode.OK });\n }\n } else {\n span.setStatus({ code: SpanStatusCode.OK });\n }\n\n span.setAttributes({\n 'http.duration_ms': duration,\n });\n\n // Mark slow requests for investigation\n if (duration > slowRequestThresholdMs) {\n span.setAttribute('http.slow_request', true);\n span.setAttribute(\n 'http.slow_request_threshold_ms',\n slowRequestThresholdMs,\n );\n }\n\n return result;\n } catch (error) {\n const duration = performance.now() - startTime;\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message:\n error instanceof Error ? error.message : 'Unknown error',\n });\n\n span.setAttributes({\n 'http.duration_ms': duration,\n 'error.type':\n error instanceof Error\n ? error.constructor.name\n : 'Unknown',\n 'error.message':\n error instanceof Error ? error.message : 'Unknown error',\n });\n\n throw error;\n } finally {\n span.end();\n }\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this as any)[methodName] = wrappedMethod;\n }\n }\n }\n };\n };\n}\n\n/**\n * Helper: Trace a single HTTP request\n *\n * @example\n * ```typescript\n * import { traceHttpRequest } from 'autotel/http'\n *\n * const data = await traceHttpRequest(\n * 'GET /api/users',\n * () => fetch('https://api.example.com/users')\n * )\n * ```\n */\nexport async function traceHttpRequest<T>(\n spanName: string,\n fn: () => Promise<T>,\n attributes?: Record<string, string | number>,\n): Promise<T> {\n const config = getConfig();\n const tracer = config.tracer;\n\n return tracer.startActiveSpan(spanName, async (span) => {\n try {\n if (attributes) {\n span.setAttributes(attributes);\n }\n\n const result = await fn();\n span.setStatus({ code: SpanStatusCode.OK });\n return result;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n } finally {\n span.end();\n }\n });\n}\n\n// Helper functions\n\nfunction inferHttpMethod(methodName: string): string {\n const lower = methodName.toLowerCase();\n if (\n lower.includes('get') ||\n lower.includes('fetch') ||\n lower.includes('list')\n )\n return 'GET';\n if (lower.includes('post') || lower.includes('create')) return 'POST';\n if (lower.includes('put') || lower.includes('update')) return 'PUT';\n if (lower.includes('delete') || lower.includes('remove')) return 'DELETE';\n if (lower.includes('patch')) return 'PATCH';\n return 'GET'; // Default\n}\n\nfunction extractPath(url: string): string {\n try {\n const urlObj = new URL(url);\n return urlObj.pathname;\n } catch {\n // Relative URL or invalid\n return url.split('?')[0] || url;\n }\n}\n\nfunction parseUrl(url: string): {\n protocol: string;\n host: string;\n path: string;\n} {\n try {\n const urlObj = new URL(url);\n return {\n protocol: urlObj.protocol.replace(':', ''),\n host: urlObj.host,\n path: urlObj.pathname + urlObj.search,\n };\n } catch {\n return {\n protocol: 'http',\n host: 'unknown',\n path: url,\n };\n }\n}\n\nfunction extractStatusCode(result: unknown): number | undefined {\n if (result && typeof result === 'object') {\n // Check for Response.status (fetch API)\n if ('status' in result && typeof result.status === 'number') {\n return result.status;\n }\n // Check for statusCode (axios, node http)\n if ('statusCode' in result && typeof result.statusCode === 'number') {\n return result.statusCode;\n }\n }\n return undefined;\n}\n\n/**\n * Inject trace context into HTTP headers (for distributed tracing)\n *\n * This includes W3C Trace Context (traceparent, tracestate) and W3C Baggage headers.\n * Uses OpenTelemetry's propagation system for full compatibility.\n *\n * @example\n * ```typescript\n * import { injectTraceContext } from 'autotel/http'\n *\n * const headers = injectTraceContext({\n * 'Content-Type': 'application/json'\n * })\n *\n * fetch('/api/users', { headers })\n * ```\n *\n * @example With baggage\n * ```typescript\n * import { trace, withTracing, withBaggage, injectTraceContext } from 'autotel'\n *\n * export const createOrder = withTracing({})((ctx) => async (order: Order) => {\n * return await withBaggage({\n * baggage: { 'tenant.id': order.tenantId },\n * fn: async () => {\n * const headers = injectTraceContext();\n * // Headers now include 'baggage' header with tenant.id\n * await fetch('/api/charge', { headers });\n * },\n * });\n * });\n * ```\n */\nexport function injectTraceContext(\n headers: Record<string, string> = {},\n): Record<string, string> {\n // Use getActiveContextWithBaggage to check stored context (from baggage setters)\n // This ensures ctx.setBaggage() changes are included in injected headers\n const currentContext = getActiveContextWithBaggage();\n\n // Use OpenTelemetry's propagation.inject for full W3C support\n // This includes traceparent, tracestate, and baggage headers\n propagation.inject(currentContext, headers);\n\n return headers;\n}\n\n/**\n * Extract trace context from HTTP headers (for distributed tracing)\n *\n * This extracts W3C Trace Context (traceparent, tracestate) and W3C Baggage headers.\n * Uses OpenTelemetry's propagation system for full compatibility.\n *\n * Returns a context that can be used with context.with() to run code\n * with the extracted trace context and baggage.\n *\n * @example\n * ```typescript\n * import { extractTraceContext, trace, withTracing } from 'autotel'\n * import { context } from 'autotel'\n *\n * // In Express middleware\n * app.use((req, res, next) => {\n * const extractedContext = extractTraceContext(req.headers);\n * context.with(extractedContext, () => {\n * next();\n * });\n * });\n * ```\n *\n * @example In a traced function\n * ```typescript\n * export const handleWebhook = withTracing({})((ctx) => async (req: Request) => {\n * const extractedContext = extractTraceContext(req.headers);\n * return await context.with(extractedContext, async () => {\n * // Now ctx.getBaggage() will return baggage from the incoming request\n * const tenantId = ctx.getBaggage('tenant.id');\n * await processWebhook(req.body);\n * });\n * });\n * ```\n */\nexport function extractTraceContext(\n headers: Record<string, string | string[] | undefined>,\n): ReturnType<typeof context.active> {\n const carrier: Record<string, string> = {};\n\n // Convert headers to flat string format expected by propagation\n for (const [key, value] of Object.entries(headers)) {\n if (value !== undefined) {\n carrier[key] = Array.isArray(value) ? (value[0] ?? '') : value;\n }\n }\n\n // Extract context using OpenTelemetry's propagation system\n // Returns a Context that can be used with context.with()\n return propagation.extract(context.active(), carrier);\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-
|
|
1
|
+
import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-IuyoPyNq.cjs";
|
|
2
2
|
import { Span } from "@opentelemetry/api";
|
|
3
3
|
import { Resource } from "@opentelemetry/resources";
|
|
4
|
-
|
|
5
4
|
//#region src/attributes/types.d.ts
|
|
6
5
|
interface UserAttrs {
|
|
7
6
|
id?: string;
|
|
@@ -675,4 +674,4 @@ declare function mergeAttrs(...attrSets: Array<Record<string, unknown> | undefin
|
|
|
675
674
|
declare function safeSetAttributes(span: AttributeSetter, attrs: Record<string, unknown>, policy?: AttributePolicy): void;
|
|
676
675
|
//#endregion
|
|
677
676
|
export { ExceptionAttrs as A, PeerAttrs as B, CloudAttrs as C, DeploymentAttrs as D, DBAttrs as E, HTTPServerAttrs as F, SessionAttrs as G, RPCAttrs as H, K8sAttrs as I, URLAttrs as J, TLSAttrs as K, MessagingAttrs as L, FeatureFlagAttrs as M, GraphQLAttrs as N, DeviceAttrs as O, HTTPClientAttrs as P, NetworkAttrs as R, ClientAttrs as S, ContainerAttrs as T, ServerAddressAttrs as U, ProcessAttrs as V, ServiceAttrs as W, UserAttrs as Y, autoRedactPII as _, httpClient as a, validateAttribute as b, mergeServiceResource as c, setError as d, setException as f, AttributePolicy as g, AttributeGuardrails as h, dbClient as i, FaaSAttrs as j, ErrorAttrs as k, request as l, setUser as m, safeSetAttributes as n, httpServer as o, setSession as p, ThreadAttrs as q, transaction as r, identify as s, mergeAttrs as t, setDevice as u, checkDeprecatedAttribute as v, CodeAttrs as w, attrs as x, defaultGuardrails as y, OTelAttrs as z };
|
|
678
|
-
//# sourceMappingURL=index-
|
|
677
|
+
//# sourceMappingURL=index-BPcxVucm.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BPcxVucm.d.cts","names":[],"sources":["../src/attributes/types.ts","../src/attributes/builders.ts","../src/attributes/validators.ts","../src/attributes/attachers.ts","../src/attributes/domains.ts","../src/attributes/utils.ts"],"mappings":";;;;UAOiB;EACf;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;;;cC/IW;;aAEG,KAAA;;;aACG,QAAA;;;aACD,OAAA;;;aACI,WAAA;;;aACJ,OAAA;;;aACC,QAAA;;;aAEF,OAAA,MAAA,cAAS;;;aAcV,KAAA;;;aACQ,aAAA;;;aAEP,OAAA,MAAA,iBAAY;;;aAUb,KAAA;;;aACU,eAAA;;;aAGG,kBAAA;;;aAGN,YAAA;;;aAEN,OAAA,MAAA,gBAAW;;;;eAeN,SAAA;;;eACQ,iBAAA;;;eAGH,cAAA;;;eAGP,OAAA;;;eACI,WAAA;;;;;eAME,aAAA;;;eAGN,OAAA;;;eACI,WAAA;;;;aAKL,QAAA;;;aACU,kBAAA;;;aAIV,SAAA,MAAA,oBAAe;aAkBf,SAAA,MAAA,oBAAe;;;;eAaZ,SAAA;;;eACG,YAAA;;;eACK,iBAAA;;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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-
|
|
1
|
+
import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-IuyoPyNq.js";
|
|
2
2
|
import { Resource } from "@opentelemetry/resources";
|
|
3
3
|
import { Span } from "@opentelemetry/api";
|
|
4
|
-
|
|
5
4
|
//#region src/attributes/types.d.ts
|
|
6
5
|
interface UserAttrs {
|
|
7
6
|
id?: string;
|
|
@@ -675,4 +674,4 @@ declare function mergeAttrs(...attrSets: Array<Record<string, unknown> | undefin
|
|
|
675
674
|
declare function safeSetAttributes(span: AttributeSetter, attrs: Record<string, unknown>, policy?: AttributePolicy): void;
|
|
676
675
|
//#endregion
|
|
677
676
|
export { ExceptionAttrs as A, PeerAttrs as B, CloudAttrs as C, DeploymentAttrs as D, DBAttrs as E, HTTPServerAttrs as F, SessionAttrs as G, RPCAttrs as H, K8sAttrs as I, URLAttrs as J, TLSAttrs as K, MessagingAttrs as L, FeatureFlagAttrs as M, GraphQLAttrs as N, DeviceAttrs as O, HTTPClientAttrs as P, NetworkAttrs as R, ClientAttrs as S, ContainerAttrs as T, ServerAddressAttrs as U, ProcessAttrs as V, ServiceAttrs as W, UserAttrs as Y, autoRedactPII as _, httpClient as a, validateAttribute as b, mergeServiceResource as c, setError as d, setException as f, AttributePolicy as g, AttributeGuardrails as h, dbClient as i, FaaSAttrs as j, ErrorAttrs as k, request as l, setUser as m, safeSetAttributes as n, httpServer as o, setSession as p, ThreadAttrs as q, transaction as r, identify as s, mergeAttrs as t, setDevice as u, checkDeprecatedAttribute as v, CodeAttrs as w, attrs as x, defaultGuardrails as y, OTelAttrs as z };
|
|
678
|
-
//# sourceMappingURL=index-
|
|
677
|
+
//# sourceMappingURL=index-DolOVX6F.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DolOVX6F.d.ts","names":[],"sources":["../src/attributes/types.ts","../src/attributes/builders.ts","../src/attributes/validators.ts","../src/attributes/attachers.ts","../src/attributes/domains.ts","../src/attributes/utils.ts"],"mappings":";;;;UAOiB;EACf;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;;;cC/IW;;aAEG,KAAA;;;aACG,QAAA;;;aACD,OAAA;;;aACI,WAAA;;;aACJ,OAAA;;;aACC,QAAA;;;aAEF,OAAA,MAAA,cAAS;;;aAcV,KAAA;;;aACQ,aAAA;;;aAEP,OAAA,MAAA,iBAAY;;;aAUb,KAAA;;;aACU,eAAA;;;aAGG,kBAAA;;;aAGN,YAAA;;;aAEN,OAAA,MAAA,gBAAW;;;;eAeN,SAAA;;;eACQ,iBAAA;;;eAGH,cAAA;;;eAGP,OAAA;;;eACI,WAAA;;;;;eAME,aAAA;;;eAGN,OAAA;;;eACI,WAAA;;;;aAKL,QAAA;;;aACU,kBAAA;;;aAIV,SAAA,MAAA,oBAAe;aAkBf,SAAA,MAAA,oBAAe;;;;eAaZ,SAAA;;;eACG,YAAA;;;eACK,iBAAA;;;eAGL,YAAA;;;eACA,YAAA;;;eACG,eAAA;;;eACH,YAAA;;;eACK,iBAAA;;;eAGF,eAAA;;;eAIT,OAAA,MAAA,YAAO;;;;aA6BR,OAAA;;;aACI,WAAA;;;aACD,UAAA;;;aAEJ,OAAA,MAAA,iBAAY;;;aAYJ,cAAA;;;aAGH,WAAA;;;aACC,YAAA;;;aACG,eAAA;;;aAGG,kBAAA;;;aAIZ,OAAA,MAAA,iBAAY;;;aAiBR,UAAA;;;aACH,OAAA;;;aACS,gBAAA;;;aAIV,OAAA,MAAA,uBAAkB;;;aAaf,SAAA;;;aACF,OAAA;;;aACA,OAAA;;;aACC,QAAA;;;aACG,WAAA;;;aAEL,OAAA,MAAA,aAAQ;;;aAaP,OAAA;;;aACG,UAAA;;;aACG,aAAA;;;aACN,OAAA;;;aAED,OAAA,MAAA,eAAU;;;aAaN,UAAA;;;aACA,UAAA;;;aACG,aAAA;;;aAGN,OAAA;;;aACM,aAAA;;;aAIP,OAAA,MAAA,mBAAc;;;aAgBd,MAAA;;;aACW,iBAAA;;;aAGP,UAAA;;;aACF,QAAA;;;aAEF,OAAA,MAAA,iBAAY;;;aAcb,KAAA;;;aACE,OAAA;;;;;aAIF,KAAA;;;aACE,OAAA;;;aACC,QAAA;;;aACF,MAAA;;;aAEA,OAAA,MAAA,mBAAc;;;aAYV,UAAA;;;aACM,gBAAA;;;aAGC,iBAAA;;;aAGT,QAAA;;;;;aAIG,WAAA;;;aACC,YAAA;;;aACH,SAAA;;;aACU,mBAAA;;;aAGR,WAAA;;;aAEL,OAAA,MAAA,eAAU;;;aAiBT,OAAA;;;aACG,UAAA;;;aACC,WAAA;;;aACC,YAAA;;;aACA,YAAA;;;;;aAIN,MAAA;;;aACK,WAAA;;;aACD,UAAA;;;;;aAID,SAAA;;;aACK,cAAA;;;aAGF,YAAA;;;aAGA,YAAA;;;aACK,iBAAA;;;aAIX,OAAA,MAAA,mBAAc;;;aAoBX,SAAA;;;aACC,UAAA;;;aACD,SAAA;;;aACQ,iBAAA;;;;;aAMN,WAAA;;;aACK,gBAAA;;;aAGA,gBAAA;;;;;aAMF,cAAA;;;aACG,iBAAA;;;aAGJ,aAAA;;;;;aAID,YAAA;;;aACD,WAAA;;;aACA,WAAA;;;aACH,QAAA;;;aACC,SAAA;;;aACA,SAAA;;;aACI,aAAA;;;aACA,aAAA;;;aACF,WAAA;;;;;aAIO,kBAAA;;;aAGT,SAAA;;;aACG,YAAA;;;aACF,UAAA;;;;;;;;;;;UCvgBJ;;EAEf;;EAGA;;EAGA;;EAGA;;EAGA,qBAAqB;;UAGN;EACf,aAAa;;EAEb,qBAAqB;;iBA0CP,kBACd,aACA,gBACA,SAAQ;iBAsIM,yBACd,aACA,SAAQ;iBAqCM,cACd,YAAY,yBACZ,SAAQ,kBACP;iBAUa,qBAAqB;;;iBCnPrB,QACd,eAAe,OAAO,cACtB,MADsB,WAEtB,aADwB;iBAOV,WACd,eAAe,OAAO,cACtB,MADsB,cAEtB,aADwB;iBAOV,UACd,eAAe,OAAO,cACtB,MADsB,aAEtB,aADwB;iBAOV,WACd,eAAe,OAAO,cACtB,MADsB,iBAEtB,aADwB;iBAaV,WACd,eAAe,OAAO,cACtB,MADsB,iBAEtB,aADwB;iBAOV,SACd,eAAe,OAAO,cACtB,MADsB,SAEtB,aADwB;;;;;;;;;;;;;;;;;;;;iBA0BV,qBACd,UAAU,UACV,MADU,eAET;iBAKa,SACd,eAAe,OAAO,cACtB;EACE,OAFoB;EAGpB,UADyB;EAEzB,SAD4B;GAG9B,aAF6B;iBAwBf,QACd,eAAe,OAAO,cACtB,MADsB;EAEpB;GAEF,aAHwB;iBAWV,SACd,eAAe,OAAO,cACtB,MADsB,YAEtB,aADwB;iBAOV,aACd,eAAe,OAAO,cACtB,MADsB,gBAEtB,aADwB;;;;;;;iBCnJV,YACd,eADc,cAEd;EACE,OAFwC;EAGxC,UADyB;EAEzB;EACA;EACA;EACA;GAEF,aAN8B;;;KCG3B;EACH,gBAAgB,OAAO,eAAe;;iBAGxB,cACX,UAAU,MAAM,uCAClB;iBAUa,kBACd,MAAM,iBACN,OAAO,yBACP,SAAS"}
|
package/dist/index.cjs
CHANGED
|
@@ -2,19 +2,16 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_rolldown_runtime = require('./rolldown-runtime-C_NdSu1c.cjs');
|
|
3
3
|
const require_tracer_provider = require('./tracer-provider.cjs');
|
|
4
4
|
const require_sampling = require('./sampling.cjs');
|
|
5
|
-
const require_init = require('./init-
|
|
5
|
+
const require_init = require('./init-C3RApHKJ.cjs');
|
|
6
6
|
const require_filtering_span_processor = require('./filtering-span-processor.cjs');
|
|
7
7
|
const require_span_name_normalizer = require('./span-name-normalizer.cjs');
|
|
8
8
|
const require_attribute_redacting_processor = require('./attribute-redacting-processor.cjs');
|
|
9
|
-
const require_canonical_log_line_processor = require('./canonical-log-line-processor-
|
|
10
|
-
const require_track = require('./track-eovhCJ-I.cjs');
|
|
9
|
+
const require_canonical_log_line_processor = require('./canonical-log-line-processor-DOjb6Kxy.cjs');
|
|
11
10
|
const require_structured_error = require('./structured-error-CHg7DoIQ.cjs');
|
|
11
|
+
const require_metric = require('./metric.cjs');
|
|
12
12
|
const require_trace_helpers = require('./trace-helpers.cjs');
|
|
13
|
-
const
|
|
14
|
-
const require_functional = require('./functional-CwsPyc4l.cjs');
|
|
13
|
+
const require_functional = require('./functional-DcLBuCPz.cjs');
|
|
15
14
|
const require_stable_hash = require('./stable-hash-CS9BxvVQ.cjs');
|
|
16
|
-
const require_event = require('./event-rzA1X5h3.cjs');
|
|
17
|
-
const require_metric = require('./metric.cjs');
|
|
18
15
|
const require_correlated_events = require('./correlated-events-kSwLo3mi.cjs');
|
|
19
16
|
const require_parse_error = require('./parse-error.cjs');
|
|
20
17
|
const require_drain_pipeline = require('./drain-pipeline.cjs');
|
|
@@ -73,150 +70,11 @@ function defineEvent(name, schema, options = {}) {
|
|
|
73
70
|
track(payload) {
|
|
74
71
|
const parsed = schema.safeParse(payload);
|
|
75
72
|
if (!parsed.success) throw new Error(`Invalid payload for event "${name}". Schema validation failed.`);
|
|
76
|
-
|
|
73
|
+
require_init.track(name, parsed.data, schemaMetadata ? { schema: schemaMetadata } : void 0);
|
|
77
74
|
}
|
|
78
75
|
};
|
|
79
76
|
}
|
|
80
77
|
|
|
81
|
-
//#endregion
|
|
82
|
-
//#region src/shutdown.ts
|
|
83
|
-
/**
|
|
84
|
-
* Graceful shutdown with flush and cleanup
|
|
85
|
-
*/
|
|
86
|
-
/**
|
|
87
|
-
* Flush all pending telemetry
|
|
88
|
-
*
|
|
89
|
-
* Flushes both events events and OpenTelemetry spans to their destinations.
|
|
90
|
-
* Includes timeout protection to prevent hanging in serverless environments.
|
|
91
|
-
*
|
|
92
|
-
* Safe to call multiple times.
|
|
93
|
-
*
|
|
94
|
-
* @param options - Optional configuration
|
|
95
|
-
* @param options.timeout - Timeout in milliseconds (default: 2000ms)
|
|
96
|
-
* @param options.forShutdown - If true, permanently disables the events queue after flush (used internally by shutdown())
|
|
97
|
-
*
|
|
98
|
-
* @example Manual flush in serverless
|
|
99
|
-
* ```typescript
|
|
100
|
-
* import { flush } from 'autotel';
|
|
101
|
-
*
|
|
102
|
-
* export const handler = async (event) => {
|
|
103
|
-
* // ... process event
|
|
104
|
-
* await flush(); // Flush before function returns
|
|
105
|
-
* return result;
|
|
106
|
-
* };
|
|
107
|
-
* ```
|
|
108
|
-
*
|
|
109
|
-
* @example With custom timeout
|
|
110
|
-
* ```typescript
|
|
111
|
-
* await flush({ timeout: 5000 }); // 5 second timeout
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
async function flush(options) {
|
|
115
|
-
const timeout = options?.timeout ?? 2e3;
|
|
116
|
-
const forShutdown = options?.forShutdown ?? false;
|
|
117
|
-
const doFlush = async () => {
|
|
118
|
-
const eventsQueue = require_track.getEventQueue();
|
|
119
|
-
if (eventsQueue) if (forShutdown) await eventsQueue.shutdown();
|
|
120
|
-
else await eventsQueue.flush();
|
|
121
|
-
try {
|
|
122
|
-
const tracerProvider = require_tracer_provider.getForceFlushableProvider(require_init.getSdk());
|
|
123
|
-
if (tracerProvider) await tracerProvider.forceFlush();
|
|
124
|
-
} catch {}
|
|
125
|
-
};
|
|
126
|
-
let timeoutHandle;
|
|
127
|
-
try {
|
|
128
|
-
await Promise.race([doFlush().finally(() => {
|
|
129
|
-
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
130
|
-
}), new Promise((_, reject) => {
|
|
131
|
-
timeoutHandle = setTimeout(() => reject(/* @__PURE__ */ new Error("Flush timeout")), timeout);
|
|
132
|
-
timeoutHandle.unref();
|
|
133
|
-
})]);
|
|
134
|
-
} catch (error) {
|
|
135
|
-
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
136
|
-
require_init.getLogger().error({ err: error instanceof Error ? error : new Error(String(error)) }, "[autotel] Flush error");
|
|
137
|
-
throw error;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Shutdown telemetry and cleanup resources
|
|
142
|
-
*
|
|
143
|
-
* - Flushes all pending data
|
|
144
|
-
* - Shuts down OpenTelemetry SDK
|
|
145
|
-
* - Cleans up resources
|
|
146
|
-
*
|
|
147
|
-
* Call this before process exit.
|
|
148
|
-
*
|
|
149
|
-
* Always performs cleanup even if flush fails, preventing resource leaks
|
|
150
|
-
* in serverless handlers or tests.
|
|
151
|
-
*
|
|
152
|
-
* @example Express server
|
|
153
|
-
* ```typescript
|
|
154
|
-
* const server = app.listen(3000)
|
|
155
|
-
*
|
|
156
|
-
* process.on('SIGTERM', async () => {
|
|
157
|
-
* await server.close()
|
|
158
|
-
* await shutdown()
|
|
159
|
-
* process.exit(0)
|
|
160
|
-
* })
|
|
161
|
-
* ```
|
|
162
|
-
*/
|
|
163
|
-
async function shutdown() {
|
|
164
|
-
const logger = require_init.getLogger();
|
|
165
|
-
let shutdownError = null;
|
|
166
|
-
try {
|
|
167
|
-
await flush({ forShutdown: true });
|
|
168
|
-
} catch (error) {
|
|
169
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
170
|
-
shutdownError = err;
|
|
171
|
-
logger.error({ err }, "[autotel] Flush failed during shutdown, continuing cleanup");
|
|
172
|
-
}
|
|
173
|
-
try {
|
|
174
|
-
const sdk = require_init.getSdk();
|
|
175
|
-
if (sdk) await sdk.shutdown();
|
|
176
|
-
} catch (error) {
|
|
177
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
178
|
-
if (!(typeof error === "object" && error !== null && "code" in error && error.code === "ECONNREFUSED")) {
|
|
179
|
-
if (!shutdownError) shutdownError = err;
|
|
180
|
-
logger.error({ err }, "[autotel] SDK shutdown failed");
|
|
181
|
-
}
|
|
182
|
-
} finally {
|
|
183
|
-
await require_init._closeEmbeddedDevtools();
|
|
184
|
-
const eventsQueue = require_track.getEventQueue();
|
|
185
|
-
if (eventsQueue && typeof eventsQueue.cleanup === "function") eventsQueue.cleanup();
|
|
186
|
-
require_event.resetEvents();
|
|
187
|
-
require_metric.resetMetrics();
|
|
188
|
-
require_track.resetEventQueue();
|
|
189
|
-
}
|
|
190
|
-
if (shutdownError) throw shutdownError;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Register automatic shutdown hooks for common signals
|
|
194
|
-
*
|
|
195
|
-
* Handles:
|
|
196
|
-
* - SIGTERM (Docker/K8s graceful shutdown)
|
|
197
|
-
* - SIGINT (Ctrl+C)
|
|
198
|
-
*
|
|
199
|
-
* @internal Called automatically on module load
|
|
200
|
-
*/
|
|
201
|
-
function registerShutdownHooks() {
|
|
202
|
-
if (typeof process === "undefined") return;
|
|
203
|
-
const signals = ["SIGTERM", "SIGINT"];
|
|
204
|
-
let shuttingDown = false;
|
|
205
|
-
for (const signal of signals) process.on(signal, async () => {
|
|
206
|
-
if (shuttingDown) return;
|
|
207
|
-
shuttingDown = true;
|
|
208
|
-
if (process.env.NODE_ENV !== "test") require_init.getLogger().info({}, `[autotel] Received ${signal}, flushing telemetry...`);
|
|
209
|
-
try {
|
|
210
|
-
await shutdown();
|
|
211
|
-
} catch (error) {
|
|
212
|
-
require_init.getLogger().error({ err: error instanceof Error ? error : void 0 }, "[autotel] Error during shutdown");
|
|
213
|
-
} finally {
|
|
214
|
-
process.exit(0);
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
registerShutdownHooks();
|
|
219
|
-
|
|
220
78
|
//#endregion
|
|
221
79
|
//#region src/request-logger.ts
|
|
222
80
|
const POST_EMIT_FORK_HINT = "For intentional background work tied to this request, use log.fork('label', fn) when available.";
|
|
@@ -243,7 +101,7 @@ function resolveContext(ctx) {
|
|
|
243
101
|
if (stored) return stored;
|
|
244
102
|
const span = _opentelemetry_api.trace.getActiveSpan();
|
|
245
103
|
if (!span) throw new Error("[autotel] getRequestLogger() requires an active span or runWithRequestContext(). Wrap your handler with trace() or use runWithRequestContext().");
|
|
246
|
-
return
|
|
104
|
+
return require_init.createTraceContext(span);
|
|
247
105
|
}
|
|
248
106
|
function getRequestLogger(ctx, options) {
|
|
249
107
|
const activeContext = resolveContext(ctx);
|
|
@@ -337,7 +195,7 @@ function getRequestLogger(ctx, options) {
|
|
|
337
195
|
const lifecycle = forkOptions?.lifecycle;
|
|
338
196
|
tracer.startActiveSpan(`request.fork:${label}`, (childSpan) => {
|
|
339
197
|
const childContext = {
|
|
340
|
-
...
|
|
198
|
+
...require_init.createTraceContext(childSpan),
|
|
341
199
|
correlationId: crypto.randomUUID()
|
|
342
200
|
};
|
|
343
201
|
requestContextStore.run(childContext, () => {
|
|
@@ -651,8 +509,8 @@ exports.AlwaysSampler = require_sampling.AlwaysSampler;
|
|
|
651
509
|
exports.AttributeRedactingProcessor = require_attribute_redacting_processor.AttributeRedactingProcessor;
|
|
652
510
|
exports.BaggageSpanProcessor = require_init.BaggageSpanProcessor;
|
|
653
511
|
exports.BusinessBaggage = require_business_baggage.BusinessBaggage;
|
|
654
|
-
exports.CORRELATION_ID_BAGGAGE_KEY =
|
|
655
|
-
exports.Event =
|
|
512
|
+
exports.CORRELATION_ID_BAGGAGE_KEY = require_init.CORRELATION_ID_BAGGAGE_KEY;
|
|
513
|
+
exports.Event = require_init.Event;
|
|
656
514
|
exports.FilteringSpanProcessor = require_filtering_span_processor.FilteringSpanProcessor;
|
|
657
515
|
exports.HTTPAttributes = require_registry.HTTPAttributes;
|
|
658
516
|
exports.Metric = require_metric.Metric;
|
|
@@ -709,7 +567,7 @@ exports.createUpDownCounter = require_metric_helpers.createUpDownCounter;
|
|
|
709
567
|
exports.ctx = require_functional.ctx;
|
|
710
568
|
exports.dbClient = require_attributes.dbClient;
|
|
711
569
|
exports.defineAuditCatalog = defineAuditCatalog;
|
|
712
|
-
exports.defineBaggageSchema =
|
|
570
|
+
exports.defineBaggageSchema = require_init.defineBaggageSchema;
|
|
713
571
|
exports.defineDrain = defineDrain;
|
|
714
572
|
exports.defineEnricher = defineEnricher;
|
|
715
573
|
exports.defineErrorCatalog = defineErrorCatalog;
|
|
@@ -720,22 +578,23 @@ exports.extractLinksFromBatch = require_sampling.extractLinksFromBatch;
|
|
|
720
578
|
exports.finalizeSpan = require_trace_helpers.finalizeSpan;
|
|
721
579
|
exports.flattenMetadata = require_trace_helpers.flattenMetadata;
|
|
722
580
|
exports.flattenToAttributes = require_structured_error.flattenToAttributes;
|
|
723
|
-
exports.flush = flush;
|
|
581
|
+
exports.flush = require_init.flush;
|
|
724
582
|
exports.formatDuration = require_canonical_log_line_processor.formatDuration;
|
|
725
|
-
exports.generateCorrelationId =
|
|
583
|
+
exports.generateCorrelationId = require_init.generateCorrelationId;
|
|
726
584
|
exports.getActiveContext = require_trace_helpers.getActiveContext;
|
|
727
585
|
exports.getActiveSpan = require_trace_helpers.getActiveSpan;
|
|
586
|
+
exports.getActiveTraceContext = require_functional.getActiveTraceContext;
|
|
728
587
|
exports.getAutotelTracer = require_tracer_provider.getAutotelTracer;
|
|
729
588
|
exports.getAutotelTracerProvider = require_tracer_provider.getAutotelTracerProvider;
|
|
730
589
|
exports.getCatalogCode = getCatalogCode;
|
|
731
|
-
exports.getCorrelationId =
|
|
590
|
+
exports.getCorrelationId = require_init.getCorrelationId;
|
|
732
591
|
exports.getCurrentWorkflowContext = require_workflow.getCurrentWorkflowContext;
|
|
733
|
-
exports.getEventQueue =
|
|
734
|
-
exports.getEvents =
|
|
592
|
+
exports.getEventQueue = require_init.getEventQueue;
|
|
593
|
+
exports.getEvents = require_init.getEvents;
|
|
735
594
|
exports.getMeter = require_metric_helpers.getMeter;
|
|
736
595
|
exports.getMetrics = require_metric.getMetrics;
|
|
737
|
-
exports.getOperationContext =
|
|
738
|
-
exports.getOrCreateCorrelationId =
|
|
596
|
+
exports.getOperationContext = require_init.getOperationContext;
|
|
597
|
+
exports.getOrCreateCorrelationId = require_init.getOrCreateCorrelationId;
|
|
739
598
|
exports.getRequestLogger = getRequestLogger;
|
|
740
599
|
exports.getRequestLoggerSafe = getRequestLoggerSafe;
|
|
741
600
|
exports.getStructuredErrorAttributes = require_structured_error.getStructuredErrorAttributes;
|
|
@@ -755,7 +614,6 @@ exports.isInitialized = require_init.isInitialized;
|
|
|
755
614
|
exports.isLoggerLocked = require_init.isLoggerLocked;
|
|
756
615
|
exports.isTracing = require_trace_helpers.isTracing;
|
|
757
616
|
exports.lockLogger = require_init.lockLogger;
|
|
758
|
-
exports.markAsImmediate = require_functional.markAsImmediate;
|
|
759
617
|
exports.mergeAttrs = require_attributes.mergeAttrs;
|
|
760
618
|
exports.mergeServiceResource = require_attributes.mergeServiceResource;
|
|
761
619
|
exports.normalizeAttributeRedactorConfig = require_attribute_redacting_processor.normalizeAttributeRedactorConfig;
|
|
@@ -774,25 +632,25 @@ Object.defineProperty(exports, 'propagation', {
|
|
|
774
632
|
});
|
|
775
633
|
exports.recordStructuredError = require_structured_error.recordStructuredError;
|
|
776
634
|
exports.request = require_attributes.request;
|
|
777
|
-
exports.resetEvents =
|
|
635
|
+
exports.resetEvents = require_init.resetEvents;
|
|
778
636
|
exports.resetMetrics = require_metric.resetMetrics;
|
|
779
637
|
exports.resolveSamplingPreset = require_sampling.resolveSamplingPreset;
|
|
780
638
|
exports.resolveTraceUrl = require_trace_helpers.resolveTraceUrl;
|
|
781
|
-
exports.runInOperationContext =
|
|
782
|
-
exports.runWithCorrelationId =
|
|
639
|
+
exports.runInOperationContext = require_init.runInOperationContext;
|
|
640
|
+
exports.runWithCorrelationId = require_init.runWithCorrelationId;
|
|
783
641
|
exports.runWithRequestContext = runWithRequestContext;
|
|
784
642
|
exports.runWithSpan = require_trace_helpers.runWithSpan;
|
|
785
643
|
exports.safeSetAttributes = require_attributes.safeSetAttributes;
|
|
786
644
|
exports.samplingPresets = require_sampling.samplingPresets;
|
|
787
645
|
exports.setAutotelTracerProvider = require_tracer_provider.setAutotelTracerProvider;
|
|
788
|
-
exports.setCorrelationId =
|
|
789
|
-
exports.setCorrelationIdInBaggage =
|
|
646
|
+
exports.setCorrelationId = require_init.setCorrelationId;
|
|
647
|
+
exports.setCorrelationIdInBaggage = require_init.setCorrelationIdInBaggage;
|
|
790
648
|
exports.setDevice = require_attributes.setDevice;
|
|
791
649
|
exports.setError = require_attributes.setError;
|
|
792
650
|
exports.setException = require_attributes.setException;
|
|
793
651
|
exports.setSession = require_attributes.setSession;
|
|
794
652
|
exports.setUser = require_attributes.setUser;
|
|
795
|
-
exports.shutdown = shutdown;
|
|
653
|
+
exports.shutdown = require_init.shutdown;
|
|
796
654
|
exports.span = require_functional.span;
|
|
797
655
|
exports.structuredErrorToJSON = require_structured_error.structuredErrorToJSON;
|
|
798
656
|
exports.toAttributeValue = require_structured_error.toAttributeValue;
|
|
@@ -804,7 +662,7 @@ exports.traceMessaging = require_semantic_helpers.traceMessaging;
|
|
|
804
662
|
exports.traceProducer = require_messaging.traceProducer;
|
|
805
663
|
exports.traceStep = require_workflow.traceStep;
|
|
806
664
|
exports.traceWorkflow = require_workflow.traceWorkflow;
|
|
807
|
-
exports.track =
|
|
665
|
+
exports.track = require_init.track;
|
|
808
666
|
exports.validateAttribute = require_attributes.validateAttribute;
|
|
809
667
|
exports.withBaggage = require_functional.withBaggage;
|
|
810
668
|
exports.withNewContext = require_functional.withNewContext;
|