autotel 3.5.0 → 3.7.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/dist/attribute-redacting-processor-DtTS9xxh.d.cts +175 -0
- package/dist/attribute-redacting-processor-DtTS9xxh.d.cts.map +1 -0
- package/dist/attribute-redacting-processor-DtTS9xxh.d.ts +175 -0
- package/dist/attribute-redacting-processor-DtTS9xxh.d.ts.map +1 -0
- package/dist/attribute-redacting-processor.cjs +374 -33
- package/dist/attribute-redacting-processor.cjs.map +1 -1
- package/dist/attribute-redacting-processor.d.cts +2 -207
- package/dist/attribute-redacting-processor.d.ts +2 -207
- package/dist/attribute-redacting-processor.js +368 -2
- package/dist/attribute-redacting-processor.js.map +1 -1
- package/dist/attributes-D3etyRVc.cjs +713 -0
- package/dist/attributes-D3etyRVc.cjs.map +1 -0
- package/dist/attributes-ksn4HVbd.js +600 -0
- package/dist/attributes-ksn4HVbd.js.map +1 -0
- package/dist/attributes.cjs +21 -85
- package/dist/attributes.d.cts +2 -20
- package/dist/attributes.d.ts +2 -20
- package/dist/attributes.js +3 -5
- package/dist/auto.cjs +50 -28
- package/dist/auto.cjs.map +1 -1
- package/dist/auto.d.cts +1 -2
- package/dist/auto.d.ts +1 -2
- package/dist/auto.js +49 -23
- package/dist/auto.js.map +1 -1
- package/dist/business-baggage.cjs +357 -13
- package/dist/business-baggage.cjs.map +1 -1
- package/dist/business-baggage.d.cts +106 -139
- package/dist/business-baggage.d.cts.map +1 -0
- package/dist/business-baggage.d.ts +106 -139
- package/dist/business-baggage.d.ts.map +1 -0
- package/dist/business-baggage.js +357 -2
- package/dist/business-baggage.js.map +1 -1
- package/dist/canonical-log-line-processor--RlFDHhm.cjs +377 -0
- package/dist/canonical-log-line-processor--RlFDHhm.cjs.map +1 -0
- package/dist/canonical-log-line-processor-BcRuAdRk.d.ts +147 -0
- package/dist/canonical-log-line-processor-BcRuAdRk.d.ts.map +1 -0
- package/dist/canonical-log-line-processor-DbBQT5vY.js +366 -0
- package/dist/canonical-log-line-processor-DbBQT5vY.js.map +1 -0
- package/dist/canonical-log-line-processor-xvjMgtpF.d.cts +147 -0
- package/dist/canonical-log-line-processor-xvjMgtpF.d.cts.map +1 -0
- package/dist/config.cjs +118 -22
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +33 -45
- package/dist/config.d.cts.map +1 -0
- package/dist/config.d.ts +33 -45
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +116 -3
- package/dist/config.js.map +1 -1
- package/dist/correlated-events-Bzh5y-UB.js +28 -0
- package/dist/correlated-events-Bzh5y-UB.js.map +1 -0
- package/dist/correlated-events-kSwLo3mi.cjs +34 -0
- package/dist/correlated-events-kSwLo3mi.cjs.map +1 -0
- package/dist/correlation-id.cjs +11 -53
- package/dist/correlation-id.d.cts +6 -5
- package/dist/correlation-id.d.cts.map +1 -0
- package/dist/correlation-id.d.ts +6 -5
- package/dist/correlation-id.d.ts.map +1 -0
- package/dist/correlation-id.js +3 -16
- package/dist/db.cjs +244 -209
- package/dist/db.cjs.map +1 -1
- package/dist/db.d.cts +28 -26
- package/dist/db.d.cts.map +1 -0
- package/dist/db.d.ts +28 -26
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +243 -207
- package/dist/db.js.map +1 -1
- package/dist/decorators.cjs +39 -65
- package/dist/decorators.cjs.map +1 -1
- package/dist/decorators.d.cts +10 -37
- package/dist/decorators.d.cts.map +1 -0
- package/dist/decorators.d.ts +10 -37
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +38 -63
- package/dist/decorators.js.map +1 -1
- package/dist/define-event-CreknLm3.d.ts +25 -0
- package/dist/define-event-CreknLm3.d.ts.map +1 -0
- package/dist/define-event-HZRizPwz.d.cts +25 -0
- package/dist/define-event-HZRizPwz.d.cts.map +1 -0
- package/dist/drain-pipeline.cjs +111 -9
- package/dist/drain-pipeline.cjs.map +1 -1
- package/dist/drain-pipeline.d.cts +27 -32
- package/dist/drain-pipeline.d.cts.map +1 -0
- package/dist/drain-pipeline.d.ts +27 -32
- package/dist/drain-pipeline.d.ts.map +1 -0
- package/dist/drain-pipeline.js +111 -2
- package/dist/drain-pipeline.js.map +1 -1
- package/dist/enrichers.cjs +59 -66
- package/dist/enrichers.cjs.map +1 -1
- package/dist/enrichers.d.cts +15 -13
- package/dist/enrichers.d.cts.map +1 -0
- package/dist/enrichers.d.ts +15 -13
- package/dist/enrichers.d.ts.map +1 -0
- package/dist/enrichers.js +58 -65
- package/dist/enrichers.js.map +1 -1
- package/dist/event-Dlqr4ZNL.cjs +778 -0
- package/dist/event-Dlqr4ZNL.cjs.map +1 -0
- package/dist/event-_58ryBjh.js +761 -0
- package/dist/event-_58ryBjh.js.map +1 -0
- package/dist/event-subscriber-D1XLkPzi.d.cts +223 -0
- package/dist/event-subscriber-D1XLkPzi.d.cts.map +1 -0
- package/dist/event-subscriber-D1XLkPzi.d.ts +223 -0
- package/dist/event-subscriber-D1XLkPzi.d.ts.map +1 -0
- package/dist/event-subscriber.cjs +0 -6
- package/dist/event-subscriber.d.cts +2 -221
- package/dist/event-subscriber.d.ts +2 -221
- package/dist/event-subscriber.js +1 -3
- package/dist/event-testing-BqRnI0z4.d.cts +106 -0
- package/dist/event-testing-BqRnI0z4.d.cts.map +1 -0
- package/dist/event-testing-CfFs3to2.d.ts +106 -0
- package/dist/event-testing-CfFs3to2.d.ts.map +1 -0
- package/dist/event-testing.cjs +93 -17
- package/dist/event-testing.cjs.map +1 -1
- package/dist/event-testing.d.cts +2 -110
- package/dist/event-testing.d.ts +2 -110
- package/dist/event-testing.js +91 -2
- package/dist/event-testing.js.map +1 -1
- package/dist/event.cjs +5 -36
- package/dist/event.d.cts +295 -340
- package/dist/event.d.cts.map +1 -0
- package/dist/event.d.ts +295 -340
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js +3 -20
- package/dist/exporters.cjs +12 -16
- package/dist/exporters.d.cts +86 -111
- package/dist/exporters.d.cts.map +1 -0
- package/dist/exporters.d.ts +86 -111
- package/dist/exporters.d.ts.map +1 -0
- package/dist/exporters.js +4 -4
- package/dist/filtering-span-processor-B8R8B7Uk.d.cts +59 -0
- package/dist/filtering-span-processor-B8R8B7Uk.d.cts.map +1 -0
- package/dist/filtering-span-processor-B8R8B7Uk.d.ts +59 -0
- package/dist/filtering-span-processor-B8R8B7Uk.d.ts.map +1 -0
- package/dist/filtering-span-processor.cjs +49 -9
- package/dist/filtering-span-processor.cjs.map +1 -1
- package/dist/filtering-span-processor.d.cts +2 -80
- package/dist/filtering-span-processor.d.ts +2 -80
- package/dist/filtering-span-processor.js +49 -2
- package/dist/filtering-span-processor.js.map +1 -1
- package/dist/functional-BGkT8J-h.js +1265 -0
- package/dist/functional-BGkT8J-h.js.map +1 -0
- package/dist/functional-C4CzoVrX.cjs +1312 -0
- package/dist/functional-C4CzoVrX.cjs.map +1 -0
- package/dist/functional.cjs +11 -56
- package/dist/functional.d.cts +96 -97
- package/dist/functional.d.cts.map +1 -0
- package/dist/functional.d.ts +96 -97
- package/dist/functional.d.ts.map +1 -0
- package/dist/functional.js +3 -19
- package/dist/http.cjs +276 -175
- package/dist/http.cjs.map +1 -1
- package/dist/http.d.cts +17 -37
- package/dist/http.d.cts.map +1 -0
- package/dist/http.d.ts +17 -37
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +275 -173
- package/dist/http.js.map +1 -1
- package/dist/index-CX0aG1Uh.d.ts +708 -0
- package/dist/index-CX0aG1Uh.d.ts.map +1 -0
- package/dist/index-DIWZFKUS.d.cts +708 -0
- package/dist/index-DIWZFKUS.d.cts.map +1 -0
- package/dist/index.cjs +1050 -1184
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +401 -570
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +401 -570
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +913 -725
- package/dist/index.js.map +1 -1
- package/dist/init-CNp-ee80.d.cts +1157 -0
- package/dist/init-CNp-ee80.d.cts.map +1 -0
- package/dist/init-Ch6t7MNI.js +1015 -0
- package/dist/init-Ch6t7MNI.js.map +1 -0
- package/dist/init-DJQOdVlN.d.ts +1157 -0
- package/dist/init-DJQOdVlN.d.ts.map +1 -0
- package/dist/init-DvapOXCc.cjs +1092 -0
- package/dist/init-DvapOXCc.cjs.map +1 -0
- package/dist/instrumentation.cjs +159 -185
- package/dist/instrumentation.cjs.map +1 -1
- package/dist/instrumentation.d.cts +42 -40
- package/dist/instrumentation.d.cts.map +1 -0
- package/dist/instrumentation.d.ts +42 -40
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +158 -183
- package/dist/instrumentation.js.map +1 -1
- package/dist/logger-BauSUhUv.d.cts +313 -0
- package/dist/logger-BauSUhUv.d.cts.map +1 -0
- package/dist/logger-BauSUhUv.d.ts +313 -0
- package/dist/logger-BauSUhUv.d.ts.map +1 -0
- package/dist/logger.cjs +225 -25
- package/dist/logger.cjs.map +1 -1
- package/dist/logger.d.cts +2 -348
- package/dist/logger.d.ts +2 -348
- package/dist/logger.js +204 -4
- package/dist/logger.js.map +1 -1
- package/dist/messaging-adapters.cjs +292 -187
- package/dist/messaging-adapters.cjs.map +1 -1
- package/dist/messaging-adapters.d.cts +28 -66
- package/dist/messaging-adapters.d.cts.map +1 -0
- package/dist/messaging-adapters.d.ts +28 -66
- package/dist/messaging-adapters.d.ts.map +1 -0
- package/dist/messaging-adapters.js +291 -185
- package/dist/messaging-adapters.js.map +1 -1
- package/dist/messaging-testing.cjs +306 -372
- package/dist/messaging-testing.cjs.map +1 -1
- package/dist/messaging-testing.d.cts +194 -223
- package/dist/messaging-testing.d.cts.map +1 -0
- package/dist/messaging-testing.d.ts +194 -223
- package/dist/messaging-testing.d.ts.map +1 -0
- package/dist/messaging-testing.js +305 -371
- package/dist/messaging-testing.js.map +1 -1
- package/dist/messaging.cjs +757 -35
- package/dist/messaging.cjs.map +1 -1
- package/dist/messaging.d.cts +603 -644
- package/dist/messaging.d.cts.map +1 -0
- package/dist/messaging.d.ts +603 -644
- package/dist/messaging.d.ts.map +1 -0
- package/dist/messaging.js +756 -20
- package/dist/messaging.js.map +1 -1
- package/dist/metric-helpers.cjs +27 -27
- package/dist/metric-helpers.cjs.map +1 -1
- package/dist/metric-helpers.d.cts +4 -2
- package/dist/metric-helpers.d.cts.map +1 -0
- package/dist/metric-helpers.d.ts +4 -2
- package/dist/metric-helpers.d.ts.map +1 -0
- package/dist/metric-helpers.js +24 -4
- package/dist/metric-helpers.js.map +1 -1
- package/dist/metric-testing-DXdK3-Q3.d.ts +106 -0
- package/dist/metric-testing-DXdK3-Q3.d.ts.map +1 -0
- package/dist/metric-testing-MxvzChDp.d.cts +106 -0
- package/dist/metric-testing-MxvzChDp.d.cts.map +1 -0
- package/dist/metric-testing.cjs +93 -17
- package/dist/metric-testing.cjs.map +1 -1
- package/dist/metric-testing.d.cts +2 -110
- package/dist/metric-testing.d.ts +2 -110
- package/dist/metric-testing.js +91 -2
- package/dist/metric-testing.js.map +1 -1
- package/dist/metric.cjs +306 -22
- package/dist/metric.cjs.map +1 -1
- package/dist/metric.d.cts +170 -198
- package/dist/metric.d.cts.map +1 -0
- package/dist/metric.d.ts +170 -198
- package/dist/metric.d.ts.map +1 -0
- package/dist/metric.js +277 -7
- package/dist/metric.js.map +1 -1
- package/dist/node-require-DF5QBX6z.cjs +99 -0
- package/dist/node-require-DF5QBX6z.cjs.map +1 -0
- package/dist/node-require-Db1oDpLj.js +88 -0
- package/dist/node-require-Db1oDpLj.js.map +1 -0
- package/dist/operation-context-C-2hmmtP.js +59 -0
- package/dist/operation-context-C-2hmmtP.js.map +1 -0
- package/dist/operation-context-n4_obUwq.cjs +70 -0
- package/dist/operation-context-n4_obUwq.cjs.map +1 -0
- package/dist/parse-error.cjs +55 -9
- package/dist/parse-error.cjs.map +1 -1
- package/dist/parse-error.d.cts +12 -10
- package/dist/parse-error.d.cts.map +1 -0
- package/dist/parse-error.d.ts +12 -10
- package/dist/parse-error.d.ts.map +1 -0
- package/dist/parse-error.js +55 -2
- package/dist/parse-error.js.map +1 -1
- package/dist/pretty-console-exporter-CMzlrRNg.cjs +232 -0
- package/dist/pretty-console-exporter-CMzlrRNg.cjs.map +1 -0
- package/dist/pretty-console-exporter-DqKl_q9z.js +227 -0
- package/dist/pretty-console-exporter-DqKl_q9z.js.map +1 -0
- package/dist/processors.cjs +13 -17
- package/dist/processors.d.cts +3 -171
- package/dist/processors.d.ts +3 -171
- package/dist/processors.js +4 -4
- package/dist/register.cjs +35 -6
- package/dist/register.cjs.map +1 -1
- package/dist/register.d.cts +1 -2
- package/dist/register.d.ts +1 -2
- package/dist/register.js +36 -3
- package/dist/register.js.map +1 -1
- package/dist/registry-DfXA3R1L.js +184 -0
- package/dist/registry-DfXA3R1L.js.map +1 -0
- package/dist/registry-JZg2J3RZ.cjs +334 -0
- package/dist/registry-JZg2J3RZ.cjs.map +1 -0
- package/dist/sampling-CR0Va1VB.d.ts +351 -0
- package/dist/sampling-CR0Va1VB.d.ts.map +1 -0
- package/dist/sampling-DfYhDJij.d.cts +351 -0
- package/dist/sampling-DfYhDJij.d.cts.map +1 -0
- package/dist/sampling.cjs +452 -60
- package/dist/sampling.cjs.map +1 -1
- package/dist/sampling.d.cts +2 -379
- package/dist/sampling.d.ts +2 -379
- package/dist/sampling.js +441 -5
- package/dist/sampling.js.map +1 -1
- package/dist/security-schema.cjs +65 -46
- package/dist/security-schema.cjs.map +1 -1
- package/dist/security-schema.d.cts +23 -26
- package/dist/security-schema.d.cts.map +1 -0
- package/dist/security-schema.d.ts +23 -26
- package/dist/security-schema.d.ts.map +1 -0
- package/dist/security-schema.js +64 -45
- package/dist/security-schema.js.map +1 -1
- package/dist/semantic-conventions-FhSxv-bK.d.cts +32 -0
- package/dist/semantic-conventions-FhSxv-bK.d.cts.map +1 -0
- package/dist/semantic-conventions-FhSxv-bK.d.ts +32 -0
- package/dist/semantic-conventions-FhSxv-bK.d.ts.map +1 -0
- package/dist/semantic-conventions.cjs +15 -26
- package/dist/semantic-conventions.cjs.map +1 -1
- package/dist/semantic-conventions.d.cts +2 -29
- package/dist/semantic-conventions.d.ts +2 -29
- package/dist/semantic-conventions.js +12 -3
- package/dist/semantic-conventions.js.map +1 -1
- package/dist/semantic-helpers.cjs +440 -38
- package/dist/semantic-helpers.cjs.map +1 -1
- package/dist/semantic-helpers.d.cts +38 -45
- package/dist/semantic-helpers.d.cts.map +1 -0
- package/dist/semantic-helpers.d.ts +38 -45
- package/dist/semantic-helpers.d.ts.map +1 -0
- package/dist/semantic-helpers.js +438 -19
- package/dist/semantic-helpers.js.map +1 -1
- package/dist/span-name-normalizer-8ZOGJuwv.d.cts +70 -0
- package/dist/span-name-normalizer-8ZOGJuwv.d.cts.map +1 -0
- package/dist/span-name-normalizer-8ZOGJuwv.d.ts +70 -0
- package/dist/span-name-normalizer-8ZOGJuwv.d.ts.map +1 -0
- package/dist/span-name-normalizer.cjs +95 -17
- package/dist/span-name-normalizer.cjs.map +1 -1
- package/dist/span-name-normalizer.d.cts +2 -94
- package/dist/span-name-normalizer.d.ts +2 -94
- package/dist/span-name-normalizer.js +93 -2
- package/dist/span-name-normalizer.js.map +1 -1
- package/dist/stable-hash-BNTMrmdB.cjs +28 -0
- package/dist/stable-hash-BNTMrmdB.cjs.map +1 -0
- package/dist/stable-hash-Cg5cT34Q.js +23 -0
- package/dist/stable-hash-Cg5cT34Q.js.map +1 -0
- package/dist/structured-error-9--cxBay.js +143 -0
- package/dist/structured-error-9--cxBay.js.map +1 -0
- package/dist/structured-error-CHg7DoIQ.cjs +178 -0
- package/dist/structured-error-CHg7DoIQ.cjs.map +1 -0
- package/dist/tail-sampling-processor.cjs +26 -13
- package/dist/tail-sampling-processor.cjs.map +1 -1
- package/dist/tail-sampling-processor.d.cts +11 -23
- package/dist/tail-sampling-processor.d.cts.map +1 -0
- package/dist/tail-sampling-processor.d.ts +11 -23
- package/dist/tail-sampling-processor.d.ts.map +1 -0
- package/dist/tail-sampling-processor.js +27 -6
- package/dist/tail-sampling-processor.js.map +1 -1
- package/dist/test-span-collector.cjs +70 -72
- package/dist/test-span-collector.cjs.map +1 -1
- package/dist/test-span-collector.d.cts +25 -43
- package/dist/test-span-collector.d.cts.map +1 -0
- package/dist/test-span-collector.d.ts +25 -43
- package/dist/test-span-collector.d.ts.map +1 -0
- package/dist/test-span-collector.js +69 -70
- package/dist/test-span-collector.js.map +1 -1
- package/dist/testing.cjs +389 -278
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +39 -62
- package/dist/testing.d.cts.map +1 -0
- package/dist/testing.d.ts +39 -62
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +386 -265
- package/dist/testing.js.map +1 -1
- package/dist/trace-context-Cijqoi6e.d.cts +212 -0
- package/dist/trace-context-Cijqoi6e.d.cts.map +1 -0
- package/dist/trace-context-Cijqoi6e.d.ts +212 -0
- package/dist/trace-context-Cijqoi6e.d.ts.map +1 -0
- package/dist/trace-helpers.cjs +634 -54
- package/dist/trace-helpers.cjs.map +1 -1
- package/dist/trace-helpers.d.cts +17 -49
- package/dist/trace-helpers.d.cts.map +1 -0
- package/dist/trace-helpers.d.ts +17 -49
- package/dist/trace-helpers.d.ts.map +1 -0
- package/dist/trace-helpers.js +624 -3
- package/dist/trace-helpers.js.map +1 -1
- package/dist/tracer-provider.cjs +227 -16
- package/dist/tracer-provider.cjs.map +1 -1
- package/dist/tracer-provider.d.cts +5 -4
- package/dist/tracer-provider.d.cts.map +1 -0
- package/dist/tracer-provider.d.ts +5 -4
- package/dist/tracer-provider.d.ts.map +1 -0
- package/dist/tracer-provider.js +227 -2
- package/dist/tracer-provider.js.map +1 -1
- package/dist/track-3HY4NGV-.cjs +1212 -0
- package/dist/track-3HY4NGV-.cjs.map +1 -0
- package/dist/track-nsKVy-pj.js +1111 -0
- package/dist/track-nsKVy-pj.js.map +1 -0
- package/dist/validate.cjs +201 -0
- package/dist/validate.cjs.map +1 -0
- package/dist/validate.d.cts +105 -0
- package/dist/validate.d.cts.map +1 -0
- package/dist/validate.d.ts +105 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +197 -0
- package/dist/validate.js.map +1 -0
- package/dist/validation-attributes.cjs +45 -0
- package/dist/validation-attributes.cjs.map +1 -0
- package/dist/validation-attributes.d.cts +33 -0
- package/dist/validation-attributes.d.cts.map +1 -0
- package/dist/validation-attributes.d.ts +33 -0
- package/dist/validation-attributes.d.ts.map +1 -0
- package/dist/validation-attributes.js +41 -0
- package/dist/validation-attributes.js.map +1 -0
- package/dist/webhook.cjs +286 -255
- package/dist/webhook.cjs.map +1 -1
- package/dist/webhook.d.cts +157 -192
- package/dist/webhook.d.cts.map +1 -0
- package/dist/webhook.d.ts +157 -192
- package/dist/webhook.d.ts.map +1 -0
- package/dist/webhook.js +285 -253
- package/dist/webhook.js.map +1 -1
- package/dist/workflow-distributed.cjs +498 -411
- package/dist/workflow-distributed.cjs.map +1 -1
- package/dist/workflow-distributed.d.cts +163 -173
- package/dist/workflow-distributed.d.cts.map +1 -0
- package/dist/workflow-distributed.d.ts +163 -173
- package/dist/workflow-distributed.d.ts.map +1 -0
- package/dist/workflow-distributed.js +497 -409
- package/dist/workflow-distributed.js.map +1 -1
- package/dist/workflow.cjs +405 -39
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +78 -131
- package/dist/workflow.d.cts.map +1 -0
- package/dist/workflow.d.ts +78 -131
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +403 -20
- package/dist/workflow.js.map +1 -1
- package/dist/yaml-config-B3dQ82GR.cjs +272 -0
- package/dist/yaml-config-B3dQ82GR.cjs.map +1 -0
- package/dist/yaml-config.cjs +5 -24
- package/dist/yaml-config.d.cts +30 -64
- package/dist/yaml-config.d.cts.map +1 -0
- package/dist/yaml-config.d.ts +30 -64
- package/dist/yaml-config.d.ts.map +1 -0
- package/dist/yaml-config.js +226 -7
- package/dist/yaml-config.js.map +1 -1
- package/package.json +14 -4
- package/src/define-event.ts +2 -21
- package/src/index.ts +3 -0
- package/src/request-logger.test.ts +53 -1
- package/src/request-logger.ts +58 -0
- package/src/stable-hash.ts +27 -0
- package/src/validate.test.ts +287 -0
- package/src/validate.ts +307 -0
- package/src/validation-attributes.ts +43 -0
- package/dist/attributes.cjs.map +0 -1
- package/dist/attributes.js.map +0 -1
- package/dist/chunk-2ZKEORFN.cjs +0 -14
- package/dist/chunk-2ZKEORFN.cjs.map +0 -1
- package/dist/chunk-3QXBFGKP.js +0 -344
- package/dist/chunk-3QXBFGKP.js.map +0 -1
- package/dist/chunk-454CH4OV.js +0 -744
- package/dist/chunk-454CH4OV.js.map +0 -1
- package/dist/chunk-4A53YIAX.js +0 -180
- package/dist/chunk-4A53YIAX.js.map +0 -1
- package/dist/chunk-4IFSYQVX.js +0 -337
- package/dist/chunk-4IFSYQVX.js.map +0 -1
- package/dist/chunk-4P6ZOARG.cjs +0 -33
- package/dist/chunk-4P6ZOARG.cjs.map +0 -1
- package/dist/chunk-55ER2KD5.js +0 -228
- package/dist/chunk-55ER2KD5.js.map +0 -1
- package/dist/chunk-5ZN622AO.js +0 -73
- package/dist/chunk-5ZN622AO.js.map +0 -1
- package/dist/chunk-6S5RUKU3.cjs +0 -347
- package/dist/chunk-6S5RUKU3.cjs.map +0 -1
- package/dist/chunk-6UQRVUN3.js +0 -222
- package/dist/chunk-6UQRVUN3.js.map +0 -1
- package/dist/chunk-7552UTQW.js +0 -11
- package/dist/chunk-7552UTQW.js.map +0 -1
- package/dist/chunk-7EQ4G4SI.cjs +0 -146
- package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
- package/dist/chunk-7SAWIN74.js +0 -285
- package/dist/chunk-7SAWIN74.js.map +0 -1
- package/dist/chunk-A4E5AQFK.js +0 -30
- package/dist/chunk-A4E5AQFK.js.map +0 -1
- package/dist/chunk-AC5GNZKB.cjs +0 -344
- package/dist/chunk-AC5GNZKB.cjs.map +0 -1
- package/dist/chunk-ALPYR2GC.js +0 -1061
- package/dist/chunk-ALPYR2GC.js.map +0 -1
- package/dist/chunk-BZHG5IZ4.js +0 -73
- package/dist/chunk-BZHG5IZ4.js.map +0 -1
- package/dist/chunk-CEAQK2QY.cjs +0 -32
- package/dist/chunk-CEAQK2QY.cjs.map +0 -1
- package/dist/chunk-CMHVQR6P.js +0 -170
- package/dist/chunk-CMHVQR6P.js.map +0 -1
- package/dist/chunk-CU6IDACR.cjs +0 -224
- package/dist/chunk-CU6IDACR.cjs.map +0 -1
- package/dist/chunk-DPSA4QLA.js +0 -344
- package/dist/chunk-DPSA4QLA.js.map +0 -1
- package/dist/chunk-DQEHQNQE.js +0 -795
- package/dist/chunk-DQEHQNQE.js.map +0 -1
- package/dist/chunk-ESLWRGAG.cjs +0 -92
- package/dist/chunk-ESLWRGAG.cjs.map +0 -1
- package/dist/chunk-ESMHTKLJ.cjs +0 -206
- package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
- package/dist/chunk-FGNDN2FD.cjs +0 -1242
- package/dist/chunk-FGNDN2FD.cjs.map +0 -1
- package/dist/chunk-FU6R566Y.cjs +0 -236
- package/dist/chunk-FU6R566Y.cjs.map +0 -1
- package/dist/chunk-GBFTC7Q7.cjs +0 -837
- package/dist/chunk-GBFTC7Q7.cjs.map +0 -1
- package/dist/chunk-GYR5K654.js +0 -91
- package/dist/chunk-GYR5K654.js.map +0 -1
- package/dist/chunk-HA2WBOGQ.js +0 -57
- package/dist/chunk-HA2WBOGQ.js.map +0 -1
- package/dist/chunk-HT5JQKN2.js +0 -118
- package/dist/chunk-HT5JQKN2.js.map +0 -1
- package/dist/chunk-INJD3G4K.cjs +0 -340
- package/dist/chunk-INJD3G4K.cjs.map +0 -1
- package/dist/chunk-IOYFAFHJ.cjs +0 -95
- package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
- package/dist/chunk-J5QENANM.js +0 -87
- package/dist/chunk-J5QENANM.js.map +0 -1
- package/dist/chunk-J7VGRIAJ.js +0 -64
- package/dist/chunk-J7VGRIAJ.js.map +0 -1
- package/dist/chunk-KFOHQK7X.js +0 -144
- package/dist/chunk-KFOHQK7X.js.map +0 -1
- package/dist/chunk-KIL5CUN6.js +0 -31
- package/dist/chunk-KIL5CUN6.js.map +0 -1
- package/dist/chunk-LITNXTTT.js +0 -3
- package/dist/chunk-LITNXTTT.js.map +0 -1
- package/dist/chunk-M3LFHHTN.cjs +0 -764
- package/dist/chunk-M3LFHHTN.cjs.map +0 -1
- package/dist/chunk-NEIB3TLD.cjs +0 -360
- package/dist/chunk-NEIB3TLD.cjs.map +0 -1
- package/dist/chunk-NVAI5CCN.cjs +0 -39
- package/dist/chunk-NVAI5CCN.cjs.map +0 -1
- package/dist/chunk-NVGPMGI4.js +0 -95
- package/dist/chunk-NVGPMGI4.js.map +0 -1
- package/dist/chunk-NZ72VDNY.cjs +0 -4
- package/dist/chunk-NZ72VDNY.cjs.map +0 -1
- package/dist/chunk-O4JZUCUE.js +0 -1174
- package/dist/chunk-O4JZUCUE.js.map +0 -1
- package/dist/chunk-O7JOKRN2.js +0 -833
- package/dist/chunk-O7JOKRN2.js.map +0 -1
- package/dist/chunk-OPPXYVEZ.cjs +0 -131
- package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
- package/dist/chunk-Q4EULJQY.js +0 -35
- package/dist/chunk-Q4EULJQY.js.map +0 -1
- package/dist/chunk-QWW3E3JM.cjs +0 -178
- package/dist/chunk-QWW3E3JM.cjs.map +0 -1
- package/dist/chunk-R7QYGZUP.cjs +0 -1075
- package/dist/chunk-R7QYGZUP.cjs.map +0 -1
- package/dist/chunk-RUPKBKUF.js +0 -352
- package/dist/chunk-RUPKBKUF.js.map +0 -1
- package/dist/chunk-SEO6NAQT.js +0 -14
- package/dist/chunk-SEO6NAQT.js.map +0 -1
- package/dist/chunk-T4B5LB6E.cjs +0 -66
- package/dist/chunk-T4B5LB6E.cjs.map +0 -1
- package/dist/chunk-TC5ZPWM4.cjs +0 -289
- package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
- package/dist/chunk-TQ5UWA7S.js +0 -26
- package/dist/chunk-TQ5UWA7S.js.map +0 -1
- package/dist/chunk-URHPSJW2.js +0 -339
- package/dist/chunk-URHPSJW2.js.map +0 -1
- package/dist/chunk-UY3UYPBZ.cjs +0 -77
- package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
- package/dist/chunk-VG2ABKJX.cjs +0 -100
- package/dist/chunk-VG2ABKJX.cjs.map +0 -1
- package/dist/chunk-VH77IPJN.cjs +0 -358
- package/dist/chunk-VH77IPJN.cjs.map +0 -1
- package/dist/chunk-VQTCQKHQ.cjs +0 -17
- package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
- package/dist/chunk-WGWSHJ2N.js +0 -38
- package/dist/chunk-WGWSHJ2N.js.map +0 -1
- package/dist/chunk-WJH6IYU2.cjs +0 -32
- package/dist/chunk-WJH6IYU2.cjs.map +0 -1
- package/dist/chunk-YREV3LGG.cjs +0 -61
- package/dist/chunk-YREV3LGG.cjs.map +0 -1
- package/dist/chunk-YTXEZ4SD.cjs +0 -77
- package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
- package/dist/chunk-YWCESU4Y.js +0 -1233
- package/dist/chunk-YWCESU4Y.js.map +0 -1
- package/dist/chunk-Z6HRSM2Y.cjs +0 -799
- package/dist/chunk-Z6HRSM2Y.cjs.map +0 -1
- package/dist/chunk-Z7PW3KHL.cjs +0 -1198
- package/dist/chunk-Z7PW3KHL.cjs.map +0 -1
- package/dist/chunk-ZNMBW67B.cjs +0 -40
- package/dist/chunk-ZNMBW67B.cjs.map +0 -1
- package/dist/correlation-id.cjs.map +0 -1
- package/dist/correlation-id.js.map +0 -1
- package/dist/event-subscriber.cjs.map +0 -1
- package/dist/event-subscriber.js.map +0 -1
- package/dist/event.cjs.map +0 -1
- package/dist/event.js.map +0 -1
- package/dist/exporters.cjs.map +0 -1
- package/dist/exporters.js.map +0 -1
- package/dist/functional.cjs.map +0 -1
- package/dist/functional.js.map +0 -1
- package/dist/init-DIowiiCh.d.ts +0 -1167
- package/dist/init-j-A1zI16.d.cts +0 -1167
- package/dist/processors.cjs.map +0 -1
- package/dist/processors.js.map +0 -1
- package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
- package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
- package/dist/utils-BahBCFtJ.d.cts +0 -712
- package/dist/utils-CLKwaUlG.d.ts +0 -712
- package/dist/yaml-config.cjs.map +0 -1
package/dist/chunk-ALPYR2GC.js
DELETED
|
@@ -1,1061 +0,0 @@
|
|
|
1
|
-
import { loadYamlConfig } from './chunk-CMHVQR6P.js';
|
|
2
|
-
import { TailSamplingSpanProcessor } from './chunk-A4E5AQFK.js';
|
|
3
|
-
import { FilteringSpanProcessor } from './chunk-WGWSHJ2N.js';
|
|
4
|
-
import { SpanNameNormalizingProcessor } from './chunk-GYR5K654.js';
|
|
5
|
-
import { REDACTOR_PRESETS, normalizeAttributeRedactorConfig, AttributeRedactingProcessor } from './chunk-RUPKBKUF.js';
|
|
6
|
-
import { PrettyConsoleExporter } from './chunk-6UQRVUN3.js';
|
|
7
|
-
import { CanonicalLogLineProcessor } from './chunk-3QXBFGKP.js';
|
|
8
|
-
import { requireModule, safeRequire } from './chunk-Q4EULJQY.js';
|
|
9
|
-
import { resolveSamplingPreset, samplingPresets } from './chunk-DPSA4QLA.js';
|
|
10
|
-
import { propagation, context } from '@opentelemetry/api';
|
|
11
|
-
import { NodeSDK } from '@opentelemetry/sdk-node';
|
|
12
|
-
import { BatchSpanProcessor, SimpleSpanProcessor, ConsoleSpanExporter, SamplingDecision, ParentBasedSampler, TraceIdRatioBasedSampler, AlwaysOffSampler, AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';
|
|
13
|
-
import { resourceFromAttributes } from '@opentelemetry/resources';
|
|
14
|
-
import { ATTR_SERVICE_VERSION, ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
|
|
15
|
-
import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
|
|
16
|
-
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
|
|
17
|
-
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
18
|
-
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
19
|
-
import { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs';
|
|
20
|
-
|
|
21
|
-
var BaggageSpanProcessor = class {
|
|
22
|
-
prefix;
|
|
23
|
-
constructor(options = {}) {
|
|
24
|
-
this.prefix = options.prefix ?? "baggage.";
|
|
25
|
-
}
|
|
26
|
-
onStart(span, parentContext) {
|
|
27
|
-
let baggage = propagation.getBaggage(parentContext);
|
|
28
|
-
if (!baggage) {
|
|
29
|
-
baggage = propagation.getBaggage(context.active());
|
|
30
|
-
}
|
|
31
|
-
if (!baggage) {
|
|
32
|
-
try {
|
|
33
|
-
const { getActiveContextWithBaggage } = requireModule("./trace-context");
|
|
34
|
-
const storedContext = getActiveContextWithBaggage();
|
|
35
|
-
baggage = propagation.getBaggage(storedContext);
|
|
36
|
-
} catch {
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
if (!baggage) return;
|
|
40
|
-
for (const [key, entry] of baggage.getAllEntries()) {
|
|
41
|
-
span.setAttribute(`${this.prefix}${key}`, entry.value);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
45
|
-
onEnd(_span) {
|
|
46
|
-
}
|
|
47
|
-
async shutdown() {
|
|
48
|
-
}
|
|
49
|
-
async forceFlush() {
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
// src/redact-values.ts
|
|
54
|
-
function createStringRedactor(config2) {
|
|
55
|
-
const resolved = typeof config2 === "string" ? REDACTOR_PRESETS[config2] : config2;
|
|
56
|
-
const valuePatterns = resolved.valuePatterns ?? [];
|
|
57
|
-
const defaultReplacement = resolved.replacement ?? "[REDACTED]";
|
|
58
|
-
return (value) => {
|
|
59
|
-
let result = value;
|
|
60
|
-
for (const { pattern, replacement, mask } of valuePatterns) {
|
|
61
|
-
pattern.lastIndex = 0;
|
|
62
|
-
if (mask) {
|
|
63
|
-
result = result.replaceAll(pattern, (match) => mask(match));
|
|
64
|
-
} else {
|
|
65
|
-
result = result.replaceAll(pattern, replacement ?? defaultReplacement);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return result;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// src/posthog-logs.ts
|
|
73
|
-
var RedactingLogRecordProcessor = class {
|
|
74
|
-
constructor(wrapped, redact) {
|
|
75
|
-
this.wrapped = wrapped;
|
|
76
|
-
this.redact = redact;
|
|
77
|
-
}
|
|
78
|
-
wrapped;
|
|
79
|
-
redact;
|
|
80
|
-
onEmit(logRecord, context) {
|
|
81
|
-
if (logRecord.body && typeof logRecord.body === "string") {
|
|
82
|
-
logRecord.body = this.redact(logRecord.body);
|
|
83
|
-
}
|
|
84
|
-
if (logRecord.attributes) {
|
|
85
|
-
for (const [key, value] of Object.entries(logRecord.attributes)) {
|
|
86
|
-
if (typeof value === "string") {
|
|
87
|
-
logRecord.attributes[key] = this.redact(value);
|
|
88
|
-
} else if (Array.isArray(value)) {
|
|
89
|
-
logRecord.attributes[key] = value.map(
|
|
90
|
-
(item) => typeof item === "string" ? this.redact(item) : item
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
this.wrapped.onEmit(logRecord, context);
|
|
96
|
-
}
|
|
97
|
-
shutdown() {
|
|
98
|
-
return this.wrapped.shutdown();
|
|
99
|
-
}
|
|
100
|
-
forceFlush() {
|
|
101
|
-
return this.wrapped.forceFlush();
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
function buildPostHogLogProcessors(config2, stringRedactor) {
|
|
105
|
-
const url = config2?.url || process.env.POSTHOG_LOGS_URL;
|
|
106
|
-
if (!url) return [];
|
|
107
|
-
const sdkLogs = safeRequire("@opentelemetry/sdk-logs");
|
|
108
|
-
const exporterModule = safeRequire("@opentelemetry/exporter-logs-otlp-http");
|
|
109
|
-
if (!sdkLogs || !exporterModule) return [];
|
|
110
|
-
const exporter = new exporterModule.OTLPLogExporter({ url });
|
|
111
|
-
let processor = new sdkLogs.BatchLogRecordProcessor(
|
|
112
|
-
exporter
|
|
113
|
-
);
|
|
114
|
-
if (stringRedactor) {
|
|
115
|
-
processor = new RedactingLogRecordProcessor(processor, stringRedactor);
|
|
116
|
-
}
|
|
117
|
-
return [processor];
|
|
118
|
-
}
|
|
119
|
-
function isValidUrl(urlString) {
|
|
120
|
-
try {
|
|
121
|
-
const url = new URL(urlString);
|
|
122
|
-
return url.protocol === "http:" || url.protocol === "https:";
|
|
123
|
-
} catch {
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
function resolveOtelEnv() {
|
|
128
|
-
const env = {};
|
|
129
|
-
if (process.env.OTEL_SERVICE_NAME) {
|
|
130
|
-
const value = process.env.OTEL_SERVICE_NAME.trim();
|
|
131
|
-
if (value) {
|
|
132
|
-
env.OTEL_SERVICE_NAME = value;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
|
136
|
-
const value = process.env.OTEL_EXPORTER_OTLP_ENDPOINT.trim();
|
|
137
|
-
if (value && isValidUrl(value)) {
|
|
138
|
-
env.OTEL_EXPORTER_OTLP_ENDPOINT = value;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (process.env.OTEL_EXPORTER_OTLP_HEADERS) {
|
|
142
|
-
const value = process.env.OTEL_EXPORTER_OTLP_HEADERS.trim();
|
|
143
|
-
if (value) {
|
|
144
|
-
env.OTEL_EXPORTER_OTLP_HEADERS = value;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
if (process.env.OTEL_RESOURCE_ATTRIBUTES) {
|
|
148
|
-
const value = process.env.OTEL_RESOURCE_ATTRIBUTES.trim();
|
|
149
|
-
if (value) {
|
|
150
|
-
env.OTEL_RESOURCE_ATTRIBUTES = value;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (process.env.OTEL_EXPORTER_OTLP_PROTOCOL) {
|
|
154
|
-
const value = process.env.OTEL_EXPORTER_OTLP_PROTOCOL.trim().toLowerCase();
|
|
155
|
-
if (value === "http" || value === "grpc") {
|
|
156
|
-
env.OTEL_EXPORTER_OTLP_PROTOCOL = value;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (process.env.OTEL_TRACES_SAMPLER) {
|
|
160
|
-
const value = process.env.OTEL_TRACES_SAMPLER.trim();
|
|
161
|
-
if (value) {
|
|
162
|
-
env.OTEL_TRACES_SAMPLER = value;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
if (process.env.OTEL_TRACES_SAMPLER_ARG) {
|
|
166
|
-
const value = process.env.OTEL_TRACES_SAMPLER_ARG.trim();
|
|
167
|
-
if (value) {
|
|
168
|
-
env.OTEL_TRACES_SAMPLER_ARG = value;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return env;
|
|
172
|
-
}
|
|
173
|
-
function parseRatioSamplerArg(samplerName, samplerArg) {
|
|
174
|
-
if (samplerArg === void 0) {
|
|
175
|
-
return 1;
|
|
176
|
-
}
|
|
177
|
-
const ratio = Number(samplerArg);
|
|
178
|
-
if (!Number.isFinite(ratio) || ratio < 0 || ratio > 1) {
|
|
179
|
-
console.error(
|
|
180
|
-
`[autotel] Invalid OTEL_TRACES_SAMPLER_ARG="${samplerArg}" for ${samplerName}. Expected a number in [0..1]. Falling back to 1.0.`
|
|
181
|
-
);
|
|
182
|
-
return 1;
|
|
183
|
-
}
|
|
184
|
-
return ratio;
|
|
185
|
-
}
|
|
186
|
-
function warnOnUnusedSamplerArg(samplerName, samplerArg) {
|
|
187
|
-
if (samplerArg !== void 0) {
|
|
188
|
-
console.error(
|
|
189
|
-
`[autotel] OTEL_TRACES_SAMPLER_ARG is not used by OTEL_TRACES_SAMPLER="${samplerName}". Ignoring value "${samplerArg}".`
|
|
190
|
-
);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
function createSamplerFromEnv(env) {
|
|
194
|
-
const samplerName = env.OTEL_TRACES_SAMPLER;
|
|
195
|
-
if (!samplerName) {
|
|
196
|
-
return void 0;
|
|
197
|
-
}
|
|
198
|
-
switch (samplerName) {
|
|
199
|
-
case "always_on":
|
|
200
|
-
warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
|
|
201
|
-
return new AlwaysOnSampler();
|
|
202
|
-
case "always_off":
|
|
203
|
-
warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
|
|
204
|
-
return new AlwaysOffSampler();
|
|
205
|
-
case "traceidratio":
|
|
206
|
-
return new TraceIdRatioBasedSampler(
|
|
207
|
-
parseRatioSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG)
|
|
208
|
-
);
|
|
209
|
-
case "parentbased_always_on":
|
|
210
|
-
warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
|
|
211
|
-
return new ParentBasedSampler({ root: new AlwaysOnSampler() });
|
|
212
|
-
case "parentbased_always_off":
|
|
213
|
-
warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
|
|
214
|
-
return new ParentBasedSampler({ root: new AlwaysOffSampler() });
|
|
215
|
-
case "parentbased_traceidratio":
|
|
216
|
-
return new ParentBasedSampler({
|
|
217
|
-
root: new TraceIdRatioBasedSampler(
|
|
218
|
-
parseRatioSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG)
|
|
219
|
-
)
|
|
220
|
-
});
|
|
221
|
-
case "jaeger_remote":
|
|
222
|
-
case "parentbased_jaeger_remote":
|
|
223
|
-
case "xray":
|
|
224
|
-
console.error(
|
|
225
|
-
`[autotel] OTEL_TRACES_SAMPLER="${samplerName}" is not supported yet by autotel. Falling back to the next sampler source.`
|
|
226
|
-
);
|
|
227
|
-
return void 0;
|
|
228
|
-
default:
|
|
229
|
-
console.error(
|
|
230
|
-
`[autotel] Unknown OTEL_TRACES_SAMPLER="${samplerName}". Falling back to the next sampler source.`
|
|
231
|
-
);
|
|
232
|
-
return void 0;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
function parseResourceAttributes(input) {
|
|
236
|
-
if (!input || input.trim() === "") {
|
|
237
|
-
return {};
|
|
238
|
-
}
|
|
239
|
-
const attributes = {};
|
|
240
|
-
const pairs = input.split(",");
|
|
241
|
-
for (const pair of pairs) {
|
|
242
|
-
const trimmedPair = pair.trim();
|
|
243
|
-
if (!trimmedPair) continue;
|
|
244
|
-
const equalIndex = trimmedPair.indexOf("=");
|
|
245
|
-
if (equalIndex === -1) {
|
|
246
|
-
continue;
|
|
247
|
-
}
|
|
248
|
-
const key = trimmedPair.slice(0, equalIndex).trim();
|
|
249
|
-
const value = trimmedPair.slice(equalIndex + 1).trim();
|
|
250
|
-
if (key && value) {
|
|
251
|
-
attributes[key] = value;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
return attributes;
|
|
255
|
-
}
|
|
256
|
-
function parseOtlpHeaders(input) {
|
|
257
|
-
if (!input || input.trim() === "") {
|
|
258
|
-
return {};
|
|
259
|
-
}
|
|
260
|
-
const headers = {};
|
|
261
|
-
const pairs = input.split(",");
|
|
262
|
-
for (const pair of pairs) {
|
|
263
|
-
const trimmedPair = pair.trim();
|
|
264
|
-
if (!trimmedPair) continue;
|
|
265
|
-
const equalIndex = trimmedPair.indexOf("=");
|
|
266
|
-
if (equalIndex === -1) {
|
|
267
|
-
continue;
|
|
268
|
-
}
|
|
269
|
-
const key = trimmedPair.slice(0, equalIndex).trim();
|
|
270
|
-
const value = trimmedPair.slice(equalIndex + 1).trim();
|
|
271
|
-
if (key && value) {
|
|
272
|
-
headers[key] = value;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
return headers;
|
|
276
|
-
}
|
|
277
|
-
function envToConfig(env) {
|
|
278
|
-
const config2 = {};
|
|
279
|
-
if (env.OTEL_SERVICE_NAME) {
|
|
280
|
-
config2.service = env.OTEL_SERVICE_NAME;
|
|
281
|
-
}
|
|
282
|
-
if (env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
|
283
|
-
config2.endpoint = env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
284
|
-
}
|
|
285
|
-
if (env.OTEL_EXPORTER_OTLP_PROTOCOL) {
|
|
286
|
-
config2.protocol = env.OTEL_EXPORTER_OTLP_PROTOCOL;
|
|
287
|
-
}
|
|
288
|
-
if (env.OTEL_EXPORTER_OTLP_HEADERS) {
|
|
289
|
-
config2.headers = parseOtlpHeaders(env.OTEL_EXPORTER_OTLP_HEADERS);
|
|
290
|
-
}
|
|
291
|
-
const resourceAttrs = parseResourceAttributes(env.OTEL_RESOURCE_ATTRIBUTES);
|
|
292
|
-
if (Object.keys(resourceAttrs).length > 0) {
|
|
293
|
-
config2.resourceAttributes = resourceAttrs;
|
|
294
|
-
}
|
|
295
|
-
const sampler = createSamplerFromEnv(env);
|
|
296
|
-
if (sampler) {
|
|
297
|
-
config2.otelSampler = sampler;
|
|
298
|
-
}
|
|
299
|
-
return config2;
|
|
300
|
-
}
|
|
301
|
-
function resolveConfigFromEnv() {
|
|
302
|
-
const env = resolveOtelEnv();
|
|
303
|
-
return envToConfig(env);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// src/devtools.ts
|
|
307
|
-
var defaultHost = "127.0.0.1";
|
|
308
|
-
var defaultPort = 4318;
|
|
309
|
-
function resolveDevtoolsConfig(config2) {
|
|
310
|
-
if (!config2) {
|
|
311
|
-
return {
|
|
312
|
-
enabled: false,
|
|
313
|
-
endpoint: void 0,
|
|
314
|
-
embedded: false,
|
|
315
|
-
host: defaultHost,
|
|
316
|
-
port: defaultPort,
|
|
317
|
-
verbose: false
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
if (config2 === true) {
|
|
321
|
-
return {
|
|
322
|
-
enabled: true,
|
|
323
|
-
endpoint: `http://${defaultHost}:${defaultPort}`,
|
|
324
|
-
embedded: false,
|
|
325
|
-
host: defaultHost,
|
|
326
|
-
port: defaultPort,
|
|
327
|
-
verbose: false
|
|
328
|
-
};
|
|
329
|
-
}
|
|
330
|
-
const enabled = config2.enabled ?? true;
|
|
331
|
-
const host = config2.host ?? defaultHost;
|
|
332
|
-
const port = config2.port ?? defaultPort;
|
|
333
|
-
const endpoint = config2.endpoint ?? `http://${host}:${port}`;
|
|
334
|
-
return {
|
|
335
|
-
enabled,
|
|
336
|
-
endpoint: enabled ? endpoint : void 0,
|
|
337
|
-
embedded: enabled && (config2.embedded ?? false),
|
|
338
|
-
host,
|
|
339
|
-
port,
|
|
340
|
-
verbose: config2.verbose ?? false
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
// src/init.ts
|
|
345
|
-
var silentLogger = {
|
|
346
|
-
info: () => {
|
|
347
|
-
},
|
|
348
|
-
warn: () => {
|
|
349
|
-
},
|
|
350
|
-
error: () => {
|
|
351
|
-
},
|
|
352
|
-
debug: () => {
|
|
353
|
-
}
|
|
354
|
-
};
|
|
355
|
-
function toOtelSampler(sampler) {
|
|
356
|
-
return {
|
|
357
|
-
shouldSample(_context, _traceId, spanName, _spanKind, _attributes, links) {
|
|
358
|
-
const shouldTrace = sampler.shouldSample({
|
|
359
|
-
operationName: spanName,
|
|
360
|
-
args: [],
|
|
361
|
-
links
|
|
362
|
-
});
|
|
363
|
-
return {
|
|
364
|
-
decision: shouldTrace ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD
|
|
365
|
-
};
|
|
366
|
-
},
|
|
367
|
-
toString() {
|
|
368
|
-
return `AutotelSamplerAdapter`;
|
|
369
|
-
}
|
|
370
|
-
};
|
|
371
|
-
}
|
|
372
|
-
var OTLPTraceExporterGRPC;
|
|
373
|
-
var OTLPMetricExporterGRPC;
|
|
374
|
-
var OTLPLogExporterGRPC;
|
|
375
|
-
function loadGRPCTraceExporter() {
|
|
376
|
-
if (OTLPTraceExporterGRPC) return OTLPTraceExporterGRPC;
|
|
377
|
-
try {
|
|
378
|
-
const grpcModule = requireModule("@opentelemetry/exporter-trace-otlp-grpc");
|
|
379
|
-
OTLPTraceExporterGRPC = grpcModule.OTLPTraceExporter;
|
|
380
|
-
return OTLPTraceExporterGRPC;
|
|
381
|
-
} catch {
|
|
382
|
-
throw new Error(
|
|
383
|
-
"gRPC trace exporter not found. Install @opentelemetry/exporter-trace-otlp-grpc"
|
|
384
|
-
);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
function loadGRPCMetricExporter() {
|
|
388
|
-
if (OTLPMetricExporterGRPC) return OTLPMetricExporterGRPC;
|
|
389
|
-
try {
|
|
390
|
-
const grpcModule = requireModule("@opentelemetry/exporter-metrics-otlp-grpc");
|
|
391
|
-
OTLPMetricExporterGRPC = grpcModule.OTLPMetricExporter;
|
|
392
|
-
return OTLPMetricExporterGRPC;
|
|
393
|
-
} catch {
|
|
394
|
-
throw new Error(
|
|
395
|
-
"gRPC metric exporter not found. Install @opentelemetry/exporter-metrics-otlp-grpc"
|
|
396
|
-
);
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
function createTraceExporter(protocol, config2) {
|
|
400
|
-
if (protocol === "grpc") {
|
|
401
|
-
const Exporter = loadGRPCTraceExporter();
|
|
402
|
-
return new Exporter(config2);
|
|
403
|
-
}
|
|
404
|
-
return new OTLPTraceExporter(config2);
|
|
405
|
-
}
|
|
406
|
-
function createMetricExporter(protocol, config2) {
|
|
407
|
-
if (protocol === "grpc") {
|
|
408
|
-
const Exporter = loadGRPCMetricExporter();
|
|
409
|
-
return new Exporter(config2);
|
|
410
|
-
}
|
|
411
|
-
return new OTLPMetricExporter(config2);
|
|
412
|
-
}
|
|
413
|
-
function loadGRPCLogExporter() {
|
|
414
|
-
if (OTLPLogExporterGRPC) return OTLPLogExporterGRPC;
|
|
415
|
-
try {
|
|
416
|
-
const grpcModule = requireModule("@opentelemetry/exporter-logs-otlp-grpc");
|
|
417
|
-
OTLPLogExporterGRPC = grpcModule.OTLPLogExporter;
|
|
418
|
-
return OTLPLogExporterGRPC;
|
|
419
|
-
} catch {
|
|
420
|
-
throw new Error(
|
|
421
|
-
"gRPC log exporter not found. Install @opentelemetry/exporter-logs-otlp-grpc"
|
|
422
|
-
);
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
function createLogExporter(protocol, config2) {
|
|
426
|
-
if (protocol === "grpc") {
|
|
427
|
-
const Exporter = loadGRPCLogExporter();
|
|
428
|
-
return new Exporter(config2);
|
|
429
|
-
}
|
|
430
|
-
return new OTLPLogExporter(config2);
|
|
431
|
-
}
|
|
432
|
-
function resolveProtocol(configProtocol) {
|
|
433
|
-
if (configProtocol === "grpc" || configProtocol === "http") {
|
|
434
|
-
return configProtocol;
|
|
435
|
-
}
|
|
436
|
-
const envProtocol = process.env.OTEL_EXPORTER_OTLP_PROTOCOL;
|
|
437
|
-
if (envProtocol === "grpc") return "grpc";
|
|
438
|
-
if (envProtocol === "http/protobuf" || envProtocol === "http") return "http";
|
|
439
|
-
return "http";
|
|
440
|
-
}
|
|
441
|
-
function formatEndpointUrl(endpoint, signal, protocol) {
|
|
442
|
-
if (protocol === "grpc") {
|
|
443
|
-
return endpoint.replace(/\/(v1\/)?(traces|metrics|logs)$/, "");
|
|
444
|
-
}
|
|
445
|
-
if (!endpoint.endsWith(`/v1/${signal}`)) {
|
|
446
|
-
return `${endpoint}/v1/${signal}`;
|
|
447
|
-
}
|
|
448
|
-
return endpoint;
|
|
449
|
-
}
|
|
450
|
-
var initialized = false;
|
|
451
|
-
var locked = false;
|
|
452
|
-
var config = null;
|
|
453
|
-
var sdk = null;
|
|
454
|
-
var warnedOnce = false;
|
|
455
|
-
var logger = silentLogger;
|
|
456
|
-
var validationConfig = null;
|
|
457
|
-
var eventsConfig = null;
|
|
458
|
-
var _stringRedactor = null;
|
|
459
|
-
var _optionalRequire = safeRequire;
|
|
460
|
-
var _devtoolsClose = null;
|
|
461
|
-
var LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
|
|
462
|
-
function lockLogger() {
|
|
463
|
-
locked = true;
|
|
464
|
-
}
|
|
465
|
-
function isLoggerLocked() {
|
|
466
|
-
return locked;
|
|
467
|
-
}
|
|
468
|
-
function createSilentLogger() {
|
|
469
|
-
return {
|
|
470
|
-
info: () => {
|
|
471
|
-
},
|
|
472
|
-
warn: () => {
|
|
473
|
-
},
|
|
474
|
-
error: () => {
|
|
475
|
-
},
|
|
476
|
-
debug: () => {
|
|
477
|
-
}
|
|
478
|
-
};
|
|
479
|
-
}
|
|
480
|
-
function wrapLogger(base, silent, minLevel) {
|
|
481
|
-
if (silent) return createSilentLogger();
|
|
482
|
-
const threshold = LOG_LEVELS[minLevel];
|
|
483
|
-
const wrap = (fn, level) => {
|
|
484
|
-
if (LOG_LEVELS[level] < threshold) {
|
|
485
|
-
return (() => {
|
|
486
|
-
});
|
|
487
|
-
}
|
|
488
|
-
return ((...args) => fn(...args));
|
|
489
|
-
};
|
|
490
|
-
return {
|
|
491
|
-
debug: wrap(base.debug, "debug"),
|
|
492
|
-
info: wrap(base.info, "info"),
|
|
493
|
-
warn: wrap(base.warn, "warn"),
|
|
494
|
-
error: wrap(base.error, "error")
|
|
495
|
-
};
|
|
496
|
-
}
|
|
497
|
-
function resolveAttributeRedactor(explicit, environment) {
|
|
498
|
-
if (explicit === false) return void 0;
|
|
499
|
-
if (explicit !== void 0) return explicit;
|
|
500
|
-
const flag = process.env.AUTOTEL_REDACT_PII?.trim().toLowerCase();
|
|
501
|
-
if (flag) {
|
|
502
|
-
if (["off", "false", "0", "none", "disabled"].includes(flag)) {
|
|
503
|
-
return void 0;
|
|
504
|
-
}
|
|
505
|
-
if (flag === "default" || flag === "strict" || flag === "pci-dss") {
|
|
506
|
-
return flag;
|
|
507
|
-
}
|
|
508
|
-
if (["on", "true", "1", "enabled"].includes(flag)) {
|
|
509
|
-
return "default";
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
return environment === "production" ? "default" : void 0;
|
|
513
|
-
}
|
|
514
|
-
function detectEnvironmentAttributes() {
|
|
515
|
-
const attrs = {};
|
|
516
|
-
const commitSha = process.env.COMMIT_SHA || process.env.GITHUB_SHA || process.env.VERCEL_GIT_COMMIT_SHA || process.env.CF_PAGES_COMMIT_SHA || process.env.AWS_CODEPIPELINE_EXECUTION_ID;
|
|
517
|
-
if (commitSha) attrs["service.commit.sha"] = commitSha;
|
|
518
|
-
const region = process.env.VERCEL_REGION || process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || process.env.FLY_REGION || process.env.CF_REGION || process.env.GOOGLE_CLOUD_REGION;
|
|
519
|
-
if (region) attrs["service.region"] = region;
|
|
520
|
-
const version = process.env.APP_VERSION || process.env.HEROKU_RELEASE_VERSION || process.env.VERCEL_GIT_COMMIT_REF;
|
|
521
|
-
if (version) attrs["service.deploy.version"] = version;
|
|
522
|
-
return attrs;
|
|
523
|
-
}
|
|
524
|
-
function resolveMetricsFlag(configFlag = "auto") {
|
|
525
|
-
const envFlag = process.env.AUTOTEL_METRICS;
|
|
526
|
-
if (envFlag === "on" || envFlag === "true") return true;
|
|
527
|
-
if (envFlag === "off" || envFlag === "false") return false;
|
|
528
|
-
if (configFlag === true) return true;
|
|
529
|
-
if (configFlag === false) return false;
|
|
530
|
-
return true;
|
|
531
|
-
}
|
|
532
|
-
function resolveLogsFlag(configFlag = "auto") {
|
|
533
|
-
const envFlag = process.env.AUTOTEL_LOGS;
|
|
534
|
-
if (envFlag === "on" || envFlag === "true") return true;
|
|
535
|
-
if (envFlag === "off" || envFlag === "false") return false;
|
|
536
|
-
if (configFlag === true) return true;
|
|
537
|
-
if (configFlag === false) return false;
|
|
538
|
-
return false;
|
|
539
|
-
}
|
|
540
|
-
function resolveDebugFlag(configFlag) {
|
|
541
|
-
const envFlag = process.env.AUTOTEL_DEBUG;
|
|
542
|
-
if (envFlag === "pretty") return "pretty";
|
|
543
|
-
if (envFlag === "true" || envFlag === "1") return true;
|
|
544
|
-
if (envFlag === "false" || envFlag === "0") return false;
|
|
545
|
-
return configFlag ?? false;
|
|
546
|
-
}
|
|
547
|
-
function normalizeOtlpHeaders(headers) {
|
|
548
|
-
if (!headers) return void 0;
|
|
549
|
-
if (typeof headers !== "string") return headers;
|
|
550
|
-
const parsed = {};
|
|
551
|
-
for (const pair of headers.split(",")) {
|
|
552
|
-
const [key, ...valueParts] = pair.split("=");
|
|
553
|
-
if (!key || valueParts.length === 0) continue;
|
|
554
|
-
parsed[key.trim()] = valueParts.join("=").trim();
|
|
555
|
-
}
|
|
556
|
-
return parsed;
|
|
557
|
-
}
|
|
558
|
-
function init(cfg) {
|
|
559
|
-
if (locked) {
|
|
560
|
-
return;
|
|
561
|
-
}
|
|
562
|
-
const envConfig = resolveConfigFromEnv();
|
|
563
|
-
const yamlConfig = loadYamlConfig() ?? {};
|
|
564
|
-
const mergedConfig = {
|
|
565
|
-
...envConfig,
|
|
566
|
-
// Environment variables (lowest priority)
|
|
567
|
-
...yamlConfig,
|
|
568
|
-
// YAML file (middle priority)
|
|
569
|
-
...cfg,
|
|
570
|
-
// Explicit config (highest priority)
|
|
571
|
-
// Deep merge for resourceAttributes
|
|
572
|
-
resourceAttributes: {
|
|
573
|
-
...envConfig.resourceAttributes,
|
|
574
|
-
...yamlConfig.resourceAttributes,
|
|
575
|
-
...detectEnvironmentAttributes(),
|
|
576
|
-
...cfg.resourceAttributes
|
|
577
|
-
},
|
|
578
|
-
// Handle headers merge (can be string or object)
|
|
579
|
-
headers: cfg.headers ?? yamlConfig.headers ?? envConfig.headers
|
|
580
|
-
};
|
|
581
|
-
const resolvedRedactor = resolveAttributeRedactor(
|
|
582
|
-
mergedConfig.attributeRedactor,
|
|
583
|
-
mergedConfig.environment || process.env.NODE_ENV || "development"
|
|
584
|
-
);
|
|
585
|
-
if (resolvedRedactor === void 0) {
|
|
586
|
-
mergedConfig.attributeRedactor = void 0;
|
|
587
|
-
} else {
|
|
588
|
-
const normalizedRedactor = normalizeAttributeRedactorConfig(resolvedRedactor);
|
|
589
|
-
if (!normalizedRedactor) {
|
|
590
|
-
throw new Error("Invalid attributeRedactor config");
|
|
591
|
-
}
|
|
592
|
-
mergedConfig.attributeRedactor = normalizedRedactor;
|
|
593
|
-
}
|
|
594
|
-
const devtoolsConfig = resolveDevtoolsConfig(mergedConfig.devtools);
|
|
595
|
-
if (devtoolsConfig.enabled && mergedConfig.logs === void 0) {
|
|
596
|
-
mergedConfig.logs = true;
|
|
597
|
-
}
|
|
598
|
-
const silent = mergedConfig.silent ?? false;
|
|
599
|
-
const minLevel = mergedConfig.minLevel ?? "info";
|
|
600
|
-
const baseLogger = mergedConfig.logger || silentLogger;
|
|
601
|
-
logger = wrapLogger(baseLogger, silent, minLevel);
|
|
602
|
-
if (initialized) {
|
|
603
|
-
logger.warn(
|
|
604
|
-
{},
|
|
605
|
-
"[autotel] init() called again - last config wins. This may cause unexpected behavior."
|
|
606
|
-
);
|
|
607
|
-
}
|
|
608
|
-
config = mergedConfig;
|
|
609
|
-
validationConfig = mergedConfig.validation || null;
|
|
610
|
-
eventsConfig = mergedConfig.events || null;
|
|
611
|
-
let endpoint = mergedConfig.endpoint ?? devtoolsConfig.endpoint;
|
|
612
|
-
const otlpHeaders = normalizeOtlpHeaders(mergedConfig.headers);
|
|
613
|
-
const version = mergedConfig.version || detectVersion();
|
|
614
|
-
const environment = mergedConfig.environment || process.env.NODE_ENV || "development";
|
|
615
|
-
const metricsEnabled = resolveMetricsFlag(mergedConfig.metrics);
|
|
616
|
-
const logsEnabled = resolveLogsFlag(mergedConfig.logs);
|
|
617
|
-
if (devtoolsConfig.enabled && devtoolsConfig.embedded) {
|
|
618
|
-
const devtoolsModule = _optionalRequire("autotel-devtools");
|
|
619
|
-
if (devtoolsModule?.createDevtools) {
|
|
620
|
-
const devtoolsInstance = devtoolsModule.createDevtools({
|
|
621
|
-
port: devtoolsConfig.port,
|
|
622
|
-
host: devtoolsConfig.host,
|
|
623
|
-
verbose: devtoolsConfig.verbose
|
|
624
|
-
});
|
|
625
|
-
_devtoolsClose = devtoolsInstance.close;
|
|
626
|
-
endpoint = `http://${devtoolsConfig.host}:${devtoolsInstance.port}`;
|
|
627
|
-
logger.info(
|
|
628
|
-
{},
|
|
629
|
-
`[autotel] autotel-devtools embedded server started at ${endpoint}`
|
|
630
|
-
);
|
|
631
|
-
} else {
|
|
632
|
-
logger.warn(
|
|
633
|
-
{},
|
|
634
|
-
"[autotel] devtools.embedded requested but autotel-devtools is not installed. Falling back to endpoint-only mode."
|
|
635
|
-
);
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
const hostname = detectHostname();
|
|
639
|
-
let resource = resourceFromAttributes({
|
|
640
|
-
[ATTR_SERVICE_NAME]: mergedConfig.service,
|
|
641
|
-
[ATTR_SERVICE_VERSION]: version,
|
|
642
|
-
// Support both old and new OpenTelemetry semantic conventions for environment
|
|
643
|
-
"deployment.environment": environment,
|
|
644
|
-
// Deprecated but widely supported
|
|
645
|
-
"deployment.environment.name": environment
|
|
646
|
-
// OTel v1.27.0+ standard
|
|
647
|
-
});
|
|
648
|
-
if (hostname) {
|
|
649
|
-
resource = resource.merge(
|
|
650
|
-
resourceFromAttributes({
|
|
651
|
-
"host.name": hostname,
|
|
652
|
-
// OpenTelemetry standard
|
|
653
|
-
"datadog.host.name": hostname
|
|
654
|
-
// Datadog-specific, highest priority for Datadog
|
|
655
|
-
})
|
|
656
|
-
);
|
|
657
|
-
}
|
|
658
|
-
if (mergedConfig.resource) {
|
|
659
|
-
resource = resource.merge(mergedConfig.resource);
|
|
660
|
-
}
|
|
661
|
-
if (mergedConfig.resourceAttributes) {
|
|
662
|
-
resource = resource.merge(
|
|
663
|
-
resourceFromAttributes(mergedConfig.resourceAttributes)
|
|
664
|
-
);
|
|
665
|
-
}
|
|
666
|
-
const protocol = resolveProtocol(mergedConfig.protocol);
|
|
667
|
-
const configuredSpanProcessors = mergedConfig.spanProcessors && mergedConfig.spanProcessors.length > 0 ? mergedConfig.spanProcessors : mergedConfig.spanProcessor ? [mergedConfig.spanProcessor] : void 0;
|
|
668
|
-
const configuredSpanExporters = mergedConfig.spanExporters && mergedConfig.spanExporters.length > 0 ? mergedConfig.spanExporters : mergedConfig.spanExporter ? [mergedConfig.spanExporter] : void 0;
|
|
669
|
-
const configuredMetricReaders = mergedConfig.metricReaders && mergedConfig.metricReaders.length > 0 ? mergedConfig.metricReaders : mergedConfig.metricReader ? [mergedConfig.metricReader] : void 0;
|
|
670
|
-
const configuredLogRecordProcessors = mergedConfig.logRecordProcessors && mergedConfig.logRecordProcessors.length > 0 ? mergedConfig.logRecordProcessors : mergedConfig.logRecordProcessor ? [mergedConfig.logRecordProcessor] : void 0;
|
|
671
|
-
let spanProcessors = [];
|
|
672
|
-
if (configuredSpanProcessors && configuredSpanProcessors.length > 0) {
|
|
673
|
-
spanProcessors.push(...configuredSpanProcessors);
|
|
674
|
-
} else if (configuredSpanExporters && configuredSpanExporters.length > 0) {
|
|
675
|
-
for (const exporter of configuredSpanExporters) {
|
|
676
|
-
spanProcessors.push(
|
|
677
|
-
new TailSamplingSpanProcessor(new BatchSpanProcessor(exporter))
|
|
678
|
-
);
|
|
679
|
-
}
|
|
680
|
-
} else if (endpoint) {
|
|
681
|
-
const traceExporter = createTraceExporter(protocol, {
|
|
682
|
-
url: formatEndpointUrl(endpoint, "traces", protocol),
|
|
683
|
-
headers: otlpHeaders
|
|
684
|
-
});
|
|
685
|
-
spanProcessors.push(
|
|
686
|
-
new TailSamplingSpanProcessor(new BatchSpanProcessor(traceExporter))
|
|
687
|
-
);
|
|
688
|
-
}
|
|
689
|
-
if (mergedConfig.baggage) {
|
|
690
|
-
const prefix = typeof mergedConfig.baggage === "string" ? mergedConfig.baggage ? `${mergedConfig.baggage}.` : "" : "baggage.";
|
|
691
|
-
spanProcessors.push(new BaggageSpanProcessor({ prefix }));
|
|
692
|
-
}
|
|
693
|
-
const debugMode = resolveDebugFlag(mergedConfig.debug);
|
|
694
|
-
if (debugMode === "pretty") {
|
|
695
|
-
spanProcessors.push(new SimpleSpanProcessor(new PrettyConsoleExporter()));
|
|
696
|
-
} else if (debugMode === true) {
|
|
697
|
-
spanProcessors.push(new SimpleSpanProcessor(new ConsoleSpanExporter()));
|
|
698
|
-
}
|
|
699
|
-
if (mergedConfig.canonicalLogLines?.enabled) {
|
|
700
|
-
const canonicalOptions = {
|
|
701
|
-
logger: mergedConfig.canonicalLogLines.logger || mergedConfig.logger,
|
|
702
|
-
rootSpansOnly: mergedConfig.canonicalLogLines.rootSpansOnly,
|
|
703
|
-
minLevel: mergedConfig.canonicalLogLines.minLevel,
|
|
704
|
-
messageFormat: mergedConfig.canonicalLogLines.messageFormat,
|
|
705
|
-
includeResourceAttributes: mergedConfig.canonicalLogLines.includeResourceAttributes,
|
|
706
|
-
shouldEmit: mergedConfig.canonicalLogLines.shouldEmit,
|
|
707
|
-
keep: mergedConfig.canonicalLogLines.keep,
|
|
708
|
-
drain: mergedConfig.canonicalLogLines.drain,
|
|
709
|
-
onDrainError: mergedConfig.canonicalLogLines.onDrainError,
|
|
710
|
-
pretty: mergedConfig.canonicalLogLines.pretty
|
|
711
|
-
};
|
|
712
|
-
spanProcessors.push(new CanonicalLogLineProcessor(canonicalOptions));
|
|
713
|
-
}
|
|
714
|
-
if (mergedConfig.attributeRedactor && spanProcessors.length > 0) {
|
|
715
|
-
const redactor = mergedConfig.attributeRedactor;
|
|
716
|
-
spanProcessors = spanProcessors.map(
|
|
717
|
-
(processor) => new AttributeRedactingProcessor(processor, {
|
|
718
|
-
redactor
|
|
719
|
-
})
|
|
720
|
-
);
|
|
721
|
-
}
|
|
722
|
-
if (mergedConfig.attributeRedactor) {
|
|
723
|
-
_stringRedactor = createStringRedactor(mergedConfig.attributeRedactor);
|
|
724
|
-
}
|
|
725
|
-
if (_stringRedactor && mergedConfig.subscribers) {
|
|
726
|
-
for (const subscriber of mergedConfig.subscribers) {
|
|
727
|
-
if ("setStringRedactor" in subscriber && typeof subscriber.setStringRedactor === "function") {
|
|
728
|
-
subscriber.setStringRedactor(_stringRedactor);
|
|
729
|
-
}
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
if (mergedConfig.spanNameNormalizer && spanProcessors.length > 0) {
|
|
733
|
-
spanProcessors = spanProcessors.map(
|
|
734
|
-
(processor) => new SpanNameNormalizingProcessor(processor, {
|
|
735
|
-
normalizer: mergedConfig.spanNameNormalizer
|
|
736
|
-
})
|
|
737
|
-
);
|
|
738
|
-
}
|
|
739
|
-
if (mergedConfig.spanFilter && spanProcessors.length > 0) {
|
|
740
|
-
spanProcessors = spanProcessors.map(
|
|
741
|
-
(processor) => new FilteringSpanProcessor(processor, {
|
|
742
|
-
filter: mergedConfig.spanFilter
|
|
743
|
-
})
|
|
744
|
-
);
|
|
745
|
-
}
|
|
746
|
-
const metricReaders = [];
|
|
747
|
-
if (configuredMetricReaders && configuredMetricReaders.length > 0) {
|
|
748
|
-
metricReaders.push(...configuredMetricReaders);
|
|
749
|
-
} else if (metricsEnabled && endpoint) {
|
|
750
|
-
const metricExporter = createMetricExporter(protocol, {
|
|
751
|
-
url: formatEndpointUrl(endpoint, "metrics", protocol),
|
|
752
|
-
headers: otlpHeaders
|
|
753
|
-
});
|
|
754
|
-
metricReaders.push(
|
|
755
|
-
new PeriodicExportingMetricReader({
|
|
756
|
-
exporter: metricExporter
|
|
757
|
-
})
|
|
758
|
-
);
|
|
759
|
-
}
|
|
760
|
-
let logRecordProcessors;
|
|
761
|
-
if (configuredLogRecordProcessors && configuredLogRecordProcessors.length > 0) {
|
|
762
|
-
logRecordProcessors = [...configuredLogRecordProcessors];
|
|
763
|
-
}
|
|
764
|
-
if (logsEnabled && endpoint) {
|
|
765
|
-
const logExporter = createLogExporter(protocol, {
|
|
766
|
-
url: formatEndpointUrl(endpoint, "logs", protocol),
|
|
767
|
-
headers: otlpHeaders
|
|
768
|
-
});
|
|
769
|
-
let processor = new BatchLogRecordProcessor(
|
|
770
|
-
logExporter
|
|
771
|
-
);
|
|
772
|
-
if (_stringRedactor) {
|
|
773
|
-
processor = new RedactingLogRecordProcessor(processor, _stringRedactor);
|
|
774
|
-
}
|
|
775
|
-
if (!logRecordProcessors) {
|
|
776
|
-
logRecordProcessors = [];
|
|
777
|
-
}
|
|
778
|
-
logRecordProcessors.push(processor);
|
|
779
|
-
logger.info({}, "[autotel] OTLP log exporter configured");
|
|
780
|
-
}
|
|
781
|
-
const posthogProcessors = buildPostHogLogProcessors(
|
|
782
|
-
mergedConfig.posthog,
|
|
783
|
-
_stringRedactor
|
|
784
|
-
);
|
|
785
|
-
if (posthogProcessors.length > 0) {
|
|
786
|
-
if (!logRecordProcessors) {
|
|
787
|
-
logRecordProcessors = [];
|
|
788
|
-
}
|
|
789
|
-
logRecordProcessors.push(...posthogProcessors);
|
|
790
|
-
logger.info({}, "[autotel] PostHog OTLP logs configured");
|
|
791
|
-
}
|
|
792
|
-
let finalInstrumentations = mergedConfig.instrumentations ? [...mergedConfig.instrumentations] : [];
|
|
793
|
-
if (mergedConfig.autoInstrumentations !== void 0 && mergedConfig.autoInstrumentations !== false) {
|
|
794
|
-
const isESM = isESMMode();
|
|
795
|
-
if (isESM) {
|
|
796
|
-
logger.info(
|
|
797
|
-
{},
|
|
798
|
-
"[autotel] ESM mode detected. For auto-instrumentation to work:\n 1. Install @opentelemetry/auto-instrumentations-node as a direct dependency\n 2. Import autotel/register FIRST in your instrumentation file\n 3. Use getNodeAutoInstrumentations() directly instead of autoInstrumentations\n See: https://github.com/jagreehal/autotel#esm-setup"
|
|
799
|
-
);
|
|
800
|
-
}
|
|
801
|
-
try {
|
|
802
|
-
const manualInstrumentationNames = getInstrumentationNames(
|
|
803
|
-
mergedConfig.instrumentations ?? []
|
|
804
|
-
);
|
|
805
|
-
if (manualInstrumentationNames.size > 0) {
|
|
806
|
-
const manualNames = [...manualInstrumentationNames].join(", ");
|
|
807
|
-
logger.info(
|
|
808
|
-
{},
|
|
809
|
-
`[autotel] Detected manual instrumentations (${manualNames}). These will take precedence over auto-instrumentations. Tip: Set autoInstrumentations:false if you want full manual control, or remove manual configs to use auto-instrumentations.`
|
|
810
|
-
);
|
|
811
|
-
}
|
|
812
|
-
const autoInstrumentations = getAutoInstrumentations(
|
|
813
|
-
mergedConfig.autoInstrumentations,
|
|
814
|
-
manualInstrumentationNames
|
|
815
|
-
);
|
|
816
|
-
if (autoInstrumentations && autoInstrumentations.length > 0) {
|
|
817
|
-
finalInstrumentations = [
|
|
818
|
-
...finalInstrumentations,
|
|
819
|
-
...autoInstrumentations
|
|
820
|
-
];
|
|
821
|
-
}
|
|
822
|
-
} catch (error) {
|
|
823
|
-
logger.warn(
|
|
824
|
-
{},
|
|
825
|
-
`[autotel] Failed to configure auto-instrumentations: ${error instanceof Error ? error.message : String(error)}`
|
|
826
|
-
);
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
const autotelSampler = mergedConfig.sampler ?? (mergedConfig.sampling ? resolveSamplingPreset(mergedConfig.sampling) : void 0);
|
|
830
|
-
if (autotelSampler) {
|
|
831
|
-
mergedConfig.sampler = autotelSampler;
|
|
832
|
-
}
|
|
833
|
-
const sampler = autotelSampler ? toOtelSampler(autotelSampler) : envConfig.otelSampler ?? toOtelSampler(samplingPresets.production());
|
|
834
|
-
const sdkOptions = {
|
|
835
|
-
resource,
|
|
836
|
-
sampler,
|
|
837
|
-
instrumentations: finalInstrumentations
|
|
838
|
-
};
|
|
839
|
-
if (spanProcessors.length > 0) {
|
|
840
|
-
sdkOptions.spanProcessors = spanProcessors;
|
|
841
|
-
}
|
|
842
|
-
if (metricReaders.length > 0) {
|
|
843
|
-
sdkOptions.metricReaders = metricReaders;
|
|
844
|
-
}
|
|
845
|
-
if (logRecordProcessors && logRecordProcessors.length > 0) {
|
|
846
|
-
sdkOptions.logRecordProcessors = logRecordProcessors;
|
|
847
|
-
}
|
|
848
|
-
sdk = mergedConfig.sdkFactory ? mergedConfig.sdkFactory(sdkOptions) : new NodeSDK(sdkOptions);
|
|
849
|
-
if (!sdk) {
|
|
850
|
-
throw new Error("[autotel] sdkFactory must return a NodeSDK instance");
|
|
851
|
-
}
|
|
852
|
-
sdk.start();
|
|
853
|
-
if (mergedConfig.openllmetry?.enabled) {
|
|
854
|
-
const traceloop = _optionalRequire("@traceloop/node-server-sdk");
|
|
855
|
-
if (traceloop) {
|
|
856
|
-
const initOptions = {
|
|
857
|
-
...mergedConfig.openllmetry.options
|
|
858
|
-
};
|
|
859
|
-
try {
|
|
860
|
-
const tracerProvider = sdk.getTracerProvider();
|
|
861
|
-
initOptions.tracerProvider = tracerProvider;
|
|
862
|
-
} catch {
|
|
863
|
-
}
|
|
864
|
-
if (configuredSpanExporters?.[0]) {
|
|
865
|
-
initOptions.exporter = configuredSpanExporters[0];
|
|
866
|
-
}
|
|
867
|
-
if (typeof traceloop.initialize === "function") {
|
|
868
|
-
traceloop.initialize(initOptions);
|
|
869
|
-
logger.info({}, "[autotel] OpenLLMetry initialized successfully");
|
|
870
|
-
} else {
|
|
871
|
-
logger.warn(
|
|
872
|
-
{},
|
|
873
|
-
"[autotel] OpenLLMetry initialize function not found. Check @traceloop/node-server-sdk version."
|
|
874
|
-
);
|
|
875
|
-
}
|
|
876
|
-
} else {
|
|
877
|
-
logger.warn(
|
|
878
|
-
{},
|
|
879
|
-
"[autotel] OpenLLMetry enabled but @traceloop/node-server-sdk is not installed. Install it as a peer dependency to use OpenLLMetry integration."
|
|
880
|
-
);
|
|
881
|
-
}
|
|
882
|
-
}
|
|
883
|
-
initialized = true;
|
|
884
|
-
}
|
|
885
|
-
function getInstrumentationNames(instrumentations) {
|
|
886
|
-
const names = /* @__PURE__ */ new Set();
|
|
887
|
-
if (!instrumentations) return names;
|
|
888
|
-
for (const instrumentation of instrumentations) {
|
|
889
|
-
if (instrumentation && typeof instrumentation === "object") {
|
|
890
|
-
names.add(instrumentation.constructor.name);
|
|
891
|
-
}
|
|
892
|
-
}
|
|
893
|
-
return names;
|
|
894
|
-
}
|
|
895
|
-
var INSTRUMENTATION_CLASS_TO_PACKAGE = {
|
|
896
|
-
HttpInstrumentation: "@opentelemetry/instrumentation-http",
|
|
897
|
-
HttpsInstrumentation: "@opentelemetry/instrumentation-http",
|
|
898
|
-
ExpressInstrumentation: "@opentelemetry/instrumentation-express",
|
|
899
|
-
FastifyInstrumentation: "@opentelemetry/instrumentation-fastify",
|
|
900
|
-
MongoDBInstrumentation: "@opentelemetry/instrumentation-mongodb",
|
|
901
|
-
MongooseInstrumentation: "@opentelemetry/instrumentation-mongoose",
|
|
902
|
-
PrismaInstrumentation: "@opentelemetry/instrumentation-prisma",
|
|
903
|
-
PinoInstrumentation: "@opentelemetry/instrumentation-pino",
|
|
904
|
-
WinstonInstrumentation: "@opentelemetry/instrumentation-winston",
|
|
905
|
-
RedisInstrumentation: "@opentelemetry/instrumentation-redis",
|
|
906
|
-
GraphQLInstrumentation: "@opentelemetry/instrumentation-graphql",
|
|
907
|
-
GrpcInstrumentation: "@opentelemetry/instrumentation-grpc",
|
|
908
|
-
IORedisInstrumentation: "@opentelemetry/instrumentation-ioredis",
|
|
909
|
-
KnexInstrumentation: "@opentelemetry/instrumentation-knex",
|
|
910
|
-
NestJsInstrumentation: "@opentelemetry/instrumentation-nestjs-core",
|
|
911
|
-
PgInstrumentation: "@opentelemetry/instrumentation-pg",
|
|
912
|
-
MySQLInstrumentation: "@opentelemetry/instrumentation-mysql",
|
|
913
|
-
MySQL2Instrumentation: "@opentelemetry/instrumentation-mysql2"
|
|
914
|
-
};
|
|
915
|
-
function isESMMode() {
|
|
916
|
-
try {
|
|
917
|
-
const fs = requireModule("node:fs");
|
|
918
|
-
try {
|
|
919
|
-
const pkg = JSON.parse(
|
|
920
|
-
fs.readFileSync(`${process.cwd()}/package.json`, "utf8")
|
|
921
|
-
);
|
|
922
|
-
return pkg.type === "module";
|
|
923
|
-
} catch {
|
|
924
|
-
return false;
|
|
925
|
-
}
|
|
926
|
-
} catch {
|
|
927
|
-
return false;
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
|
-
function loadNodeAutoInstrumentations() {
|
|
931
|
-
try {
|
|
932
|
-
const mod = requireModule("@opentelemetry/auto-instrumentations-node");
|
|
933
|
-
return mod.getNodeAutoInstrumentations;
|
|
934
|
-
} catch {
|
|
935
|
-
const isESM = isESMMode();
|
|
936
|
-
const baseMessage = "@opentelemetry/auto-instrumentations-node not found.";
|
|
937
|
-
if (isESM) {
|
|
938
|
-
throw new Error(
|
|
939
|
-
`${baseMessage}
|
|
940
|
-
|
|
941
|
-
ESM Setup Required:
|
|
942
|
-
1. Install as a direct dependency: pnpm add @opentelemetry/auto-instrumentations-node
|
|
943
|
-
2. Create instrumentation.mjs with:
|
|
944
|
-
import 'autotel/register'; // MUST be first!
|
|
945
|
-
import { init } from 'autotel';
|
|
946
|
-
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
|
|
947
|
-
init({ service: "my-app", instrumentations: getNodeAutoInstrumentations() });
|
|
948
|
-
3. Run with: tsx --import ./instrumentation.mjs src/index.ts
|
|
949
|
-
|
|
950
|
-
See: https://github.com/jagreehal/autotel#esm-setup`
|
|
951
|
-
);
|
|
952
|
-
}
|
|
953
|
-
throw new Error(
|
|
954
|
-
`${baseMessage} Install it: pnpm add @opentelemetry/auto-instrumentations-node`
|
|
955
|
-
);
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
function getAutoInstrumentations(integrations, manualInstrumentationNames = /* @__PURE__ */ new Set()) {
|
|
959
|
-
if (integrations === false) {
|
|
960
|
-
return [];
|
|
961
|
-
}
|
|
962
|
-
const getNodeAutoInstrumentations = loadNodeAutoInstrumentations();
|
|
963
|
-
const exclusionConfig = {};
|
|
964
|
-
for (const className of manualInstrumentationNames) {
|
|
965
|
-
const packageName = INSTRUMENTATION_CLASS_TO_PACKAGE[className];
|
|
966
|
-
if (packageName) {
|
|
967
|
-
exclusionConfig[packageName] = { enabled: false };
|
|
968
|
-
}
|
|
969
|
-
}
|
|
970
|
-
if (integrations === true) {
|
|
971
|
-
if (Object.keys(exclusionConfig).length > 0) {
|
|
972
|
-
return getNodeAutoInstrumentations(exclusionConfig);
|
|
973
|
-
}
|
|
974
|
-
return getNodeAutoInstrumentations();
|
|
975
|
-
}
|
|
976
|
-
if (Array.isArray(integrations)) {
|
|
977
|
-
const config3 = { ...exclusionConfig };
|
|
978
|
-
for (const name of integrations) {
|
|
979
|
-
const packageName = `@opentelemetry/instrumentation-${name}`;
|
|
980
|
-
if (!exclusionConfig[packageName]) {
|
|
981
|
-
config3[packageName] = { enabled: true };
|
|
982
|
-
}
|
|
983
|
-
}
|
|
984
|
-
return getNodeAutoInstrumentations(config3);
|
|
985
|
-
}
|
|
986
|
-
const config2 = {
|
|
987
|
-
...exclusionConfig,
|
|
988
|
-
...integrations
|
|
989
|
-
};
|
|
990
|
-
for (const packageName of Object.keys(exclusionConfig)) {
|
|
991
|
-
const integrationsKey = Object.keys(integrations).find(
|
|
992
|
-
(key) => packageName.includes(key)
|
|
993
|
-
);
|
|
994
|
-
if (integrationsKey) {
|
|
995
|
-
config2[packageName] = { enabled: false };
|
|
996
|
-
}
|
|
997
|
-
}
|
|
998
|
-
return getNodeAutoInstrumentations(config2);
|
|
999
|
-
}
|
|
1000
|
-
function isInitialized() {
|
|
1001
|
-
return initialized;
|
|
1002
|
-
}
|
|
1003
|
-
function getConfig() {
|
|
1004
|
-
return config;
|
|
1005
|
-
}
|
|
1006
|
-
function getLogger() {
|
|
1007
|
-
return logger;
|
|
1008
|
-
}
|
|
1009
|
-
function getValidationConfig() {
|
|
1010
|
-
return validationConfig;
|
|
1011
|
-
}
|
|
1012
|
-
function getEventsConfig() {
|
|
1013
|
-
return eventsConfig;
|
|
1014
|
-
}
|
|
1015
|
-
function warnIfNotInitialized(context) {
|
|
1016
|
-
if (!initialized && !warnedOnce) {
|
|
1017
|
-
logger.warn(
|
|
1018
|
-
{},
|
|
1019
|
-
`[autotel] ${context} used before init() called. Call init({ service: "..." }) first. See: https://docs.autotel.dev/quickstart`
|
|
1020
|
-
);
|
|
1021
|
-
warnedOnce = true;
|
|
1022
|
-
}
|
|
1023
|
-
}
|
|
1024
|
-
function detectVersion() {
|
|
1025
|
-
try {
|
|
1026
|
-
const fs = requireModule("node:fs");
|
|
1027
|
-
const pkg = JSON.parse(
|
|
1028
|
-
fs.readFileSync(`${process.cwd()}/package.json`, "utf8")
|
|
1029
|
-
);
|
|
1030
|
-
return pkg.version || "1.0.0";
|
|
1031
|
-
} catch {
|
|
1032
|
-
return "1.0.0";
|
|
1033
|
-
}
|
|
1034
|
-
}
|
|
1035
|
-
function detectHostname() {
|
|
1036
|
-
if (process.env.DD_HOSTNAME) {
|
|
1037
|
-
return process.env.DD_HOSTNAME;
|
|
1038
|
-
}
|
|
1039
|
-
if (process.env.HOSTNAME) {
|
|
1040
|
-
return process.env.HOSTNAME;
|
|
1041
|
-
}
|
|
1042
|
-
try {
|
|
1043
|
-
const os = requireModule("node:os");
|
|
1044
|
-
return os.hostname();
|
|
1045
|
-
} catch {
|
|
1046
|
-
return void 0;
|
|
1047
|
-
}
|
|
1048
|
-
}
|
|
1049
|
-
async function _closeEmbeddedDevtools() {
|
|
1050
|
-
if (_devtoolsClose) {
|
|
1051
|
-
await _devtoolsClose();
|
|
1052
|
-
_devtoolsClose = null;
|
|
1053
|
-
}
|
|
1054
|
-
}
|
|
1055
|
-
function getSdk() {
|
|
1056
|
-
return sdk;
|
|
1057
|
-
}
|
|
1058
|
-
|
|
1059
|
-
export { BaggageSpanProcessor, _closeEmbeddedDevtools, createStringRedactor, getConfig, getEventsConfig, getLogger, getSdk, getValidationConfig, init, isInitialized, isLoggerLocked, lockLogger, warnIfNotInitialized };
|
|
1060
|
-
//# sourceMappingURL=chunk-ALPYR2GC.js.map
|
|
1061
|
-
//# sourceMappingURL=chunk-ALPYR2GC.js.map
|