autotel 3.7.0 → 4.1.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.
Files changed (132) hide show
  1. package/README.md +26 -1
  2. package/dist/{attributes-ksn4HVbd.js → attributes-CmYpdqCN.js} +2 -11
  3. package/dist/attributes-CmYpdqCN.js.map +1 -0
  4. package/dist/{attributes-D3etyRVc.cjs → attributes-PZ5doLgw.cjs} +2 -11
  5. package/dist/attributes-PZ5doLgw.cjs.map +1 -0
  6. package/dist/attributes.cjs +1 -1
  7. package/dist/attributes.d.cts +2 -2
  8. package/dist/attributes.d.ts +2 -2
  9. package/dist/attributes.js +1 -1
  10. package/dist/auto.cjs +2 -2
  11. package/dist/auto.js +1 -1
  12. package/dist/correlation-id.cjs +1 -1
  13. package/dist/correlation-id.js +1 -1
  14. package/dist/decorators.cjs +1 -1
  15. package/dist/decorators.js +1 -1
  16. package/dist/{event-Dlqr4ZNL.cjs → event-BhHREDJk.cjs} +3 -3
  17. package/dist/{event-Dlqr4ZNL.cjs.map → event-BhHREDJk.cjs.map} +1 -1
  18. package/dist/{event-_58ryBjh.js → event-ByBTV9M2.js} +3 -3
  19. package/dist/{event-_58ryBjh.js.map → event-ByBTV9M2.js.map} +1 -1
  20. package/dist/event.cjs +1 -1
  21. package/dist/event.js +1 -1
  22. package/dist/{functional-BGkT8J-h.js → functional-DtI0u4vx.js} +19 -19
  23. package/dist/functional-DtI0u4vx.js.map +1 -0
  24. package/dist/{functional-C4CzoVrX.cjs → functional-zpzNLhky.cjs} +4 -4
  25. package/dist/{functional-C4CzoVrX.cjs.map → functional-zpzNLhky.cjs.map} +1 -1
  26. package/dist/functional.cjs +1 -1
  27. package/dist/functional.js +1 -1
  28. package/dist/http.cjs +1 -1
  29. package/dist/http.js +1 -1
  30. package/dist/{index-CX0aG1Uh.d.ts → index-Ck06vlW2.d.ts} +2 -32
  31. package/dist/index-Ck06vlW2.d.ts.map +1 -0
  32. package/dist/{index-DIWZFKUS.d.cts → index-eKuioqT1.d.cts} +2 -32
  33. package/dist/index-eKuioqT1.d.cts.map +1 -0
  34. package/dist/index.cjs +7 -351
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +4 -172
  37. package/dist/index.d.cts.map +1 -1
  38. package/dist/index.d.ts +4 -172
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +9 -338
  41. package/dist/index.js.map +1 -1
  42. package/dist/{init-DJQOdVlN.d.ts → init-B7u-DjxM.d.ts} +57 -2
  43. package/dist/init-B7u-DjxM.d.ts.map +1 -0
  44. package/dist/{init-DvapOXCc.cjs → init-BX7AmFRl.cjs} +40 -21
  45. package/dist/init-BX7AmFRl.cjs.map +1 -0
  46. package/dist/{init-Ch6t7MNI.js → init-D-jnNMix.js} +39 -20
  47. package/dist/init-D-jnNMix.js.map +1 -0
  48. package/dist/{init-CNp-ee80.d.cts → init-DSrRmVnz.d.cts} +57 -2
  49. package/dist/init-DSrRmVnz.d.cts.map +1 -0
  50. package/dist/instrumentation.cjs +1 -1
  51. package/dist/instrumentation.js +1 -1
  52. package/dist/logger-D3Ej3DII.js +446 -0
  53. package/dist/logger-D3Ej3DII.js.map +1 -0
  54. package/dist/logger-thMPLpOG.cjs +487 -0
  55. package/dist/logger-thMPLpOG.cjs.map +1 -0
  56. package/dist/logger.cjs +8 -236
  57. package/dist/logger.js +2 -204
  58. package/dist/messaging.cjs +1 -1
  59. package/dist/messaging.js +1 -1
  60. package/dist/{registry-DfXA3R1L.js → registry-DVSmWg6Y.js} +2 -11
  61. package/dist/registry-DVSmWg6Y.js.map +1 -0
  62. package/dist/{registry-JZg2J3RZ.cjs → registry-DYgvb62e.cjs} +1 -16
  63. package/dist/registry-DYgvb62e.cjs.map +1 -0
  64. package/dist/semantic-conventions.cjs +1 -1
  65. package/dist/semantic-conventions.js +1 -1
  66. package/dist/semantic-helpers.cjs +1 -114
  67. package/dist/semantic-helpers.cjs.map +1 -1
  68. package/dist/semantic-helpers.d.cts +1 -114
  69. package/dist/semantic-helpers.d.cts.map +1 -1
  70. package/dist/semantic-helpers.d.ts +1 -114
  71. package/dist/semantic-helpers.d.ts.map +1 -1
  72. package/dist/semantic-helpers.js +2 -114
  73. package/dist/semantic-helpers.js.map +1 -1
  74. package/dist/{track-3HY4NGV-.cjs → track-D59FfpL0.cjs} +2 -2
  75. package/dist/{track-3HY4NGV-.cjs.map → track-D59FfpL0.cjs.map} +1 -1
  76. package/dist/{track-nsKVy-pj.js → track-wc0HafS_.js} +6 -6
  77. package/dist/track-wc0HafS_.js.map +1 -0
  78. package/dist/webhook.cjs +1 -1
  79. package/dist/webhook.js +1 -1
  80. package/dist/workflow-distributed.cjs +1 -1
  81. package/dist/workflow-distributed.js +1 -1
  82. package/dist/workflow.cjs +1 -1
  83. package/dist/workflow.js +1 -1
  84. package/dist/{yaml-config-B3dQ82GR.cjs → yaml-config-Ck2uB0Dp.cjs} +2 -1
  85. package/dist/yaml-config-Ck2uB0Dp.cjs.map +1 -0
  86. package/dist/yaml-config.cjs +1 -1
  87. package/dist/yaml-config.d.cts +7 -1
  88. package/dist/yaml-config.d.cts.map +1 -1
  89. package/dist/yaml-config.d.ts +7 -1
  90. package/dist/yaml-config.d.ts.map +1 -1
  91. package/dist/yaml-config.js +1 -0
  92. package/dist/yaml-config.js.map +1 -1
  93. package/package.json +1 -1
  94. package/skills/analyze-traces/SKILL.md +14 -12
  95. package/skills/autotel-core/SKILL.md +2 -0
  96. package/skills/autotel-instrumentation/SKILL.md +25 -0
  97. package/skills/debug-missing-spans/SKILL.md +3 -1
  98. package/skills/migrate-to-autotel/SKILL.md +24 -23
  99. package/skills/review-otel-patterns/SKILL.md +9 -6
  100. package/skills/tune-sampling/SKILL.md +8 -3
  101. package/src/attributes/builders.ts +2 -20
  102. package/src/attributes/index.ts +0 -1
  103. package/src/attributes/registry.ts +2 -9
  104. package/src/attributes/types.ts +0 -8
  105. package/src/index.ts +4 -41
  106. package/src/init.customization.test.ts +71 -0
  107. package/src/init.ts +167 -40
  108. package/src/semantic-helpers.test.ts +2 -87
  109. package/src/semantic-helpers.ts +0 -146
  110. package/src/yaml-config.test.ts +36 -0
  111. package/src/yaml-config.ts +10 -1
  112. package/dist/attributes-D3etyRVc.cjs.map +0 -1
  113. package/dist/attributes-ksn4HVbd.js.map +0 -1
  114. package/dist/functional-BGkT8J-h.js.map +0 -1
  115. package/dist/index-CX0aG1Uh.d.ts.map +0 -1
  116. package/dist/index-DIWZFKUS.d.cts.map +0 -1
  117. package/dist/init-CNp-ee80.d.cts.map +0 -1
  118. package/dist/init-Ch6t7MNI.js.map +0 -1
  119. package/dist/init-DJQOdVlN.d.ts.map +0 -1
  120. package/dist/init-DvapOXCc.cjs.map +0 -1
  121. package/dist/logger.cjs.map +0 -1
  122. package/dist/logger.js.map +0 -1
  123. package/dist/registry-DfXA3R1L.js.map +0 -1
  124. package/dist/registry-JZg2J3RZ.cjs.map +0 -1
  125. package/dist/track-nsKVy-pj.js.map +0 -1
  126. package/dist/yaml-config-B3dQ82GR.cjs.map +0 -1
  127. package/src/gen-ai-cost.test.ts +0 -81
  128. package/src/gen-ai-cost.ts +0 -145
  129. package/src/gen-ai-events.test.ts +0 -135
  130. package/src/gen-ai-events.ts +0 -208
  131. package/src/gen-ai-metrics.test.ts +0 -96
  132. package/src/gen-ai-metrics.ts +0 -128
@@ -133,13 +133,6 @@ interface ThreadAttrs {
133
133
  id?: number;
134
134
  name?: string;
135
135
  }
136
- interface GenAIAttrs {
137
- system?: string;
138
- requestModel?: string;
139
- responseModel?: string;
140
- operationName?: 'chat' | 'completion' | 'embedding';
141
- provider?: string;
142
- }
143
136
  interface RPCAttrs {
144
137
  system?: string;
145
138
  service?: string;
@@ -514,29 +507,6 @@ declare const attrs: {
514
507
  };
515
508
  readonly data: (data: MessagingAttrs) => Record<string, unknown>;
516
509
  };
517
- readonly genAI: {
518
- readonly system: (value: string) => {
519
- "gen.ai.system": string;
520
- };
521
- readonly requestModel: (value: string) => {
522
- "gen.ai.request.model": string;
523
- };
524
- readonly responseModel: (value: string) => {
525
- "gen.ai.response.model": string;
526
- };
527
- readonly operationName: (value: "chat" | "completion" | "embedding") => {
528
- "gen.ai.operation.name": "chat" | "completion" | "embedding";
529
- };
530
- readonly usagePromptTokens: (value: number) => {
531
- "gen.ai.usage.prompt_tokens": number;
532
- };
533
- readonly usageCompletionTokens: (value: number) => {
534
- "gen.ai.usage.completion_tokens": number;
535
- };
536
- readonly provider: (value: string) => {
537
- "gen.ai.provider": string;
538
- };
539
- };
540
510
  readonly rpc: {
541
511
  readonly system: (value: string) => {
542
512
  "rpc.system": string;
@@ -704,5 +674,5 @@ type AttributeSetter = {
704
674
  declare function mergeAttrs(...attrSets: Array<Record<string, unknown> | undefined>): Record<string, unknown>;
705
675
  declare function safeSetAttributes(span: AttributeSetter, attrs: Record<string, unknown>, policy?: AttributePolicy): void;
706
676
  //#endregion
707
- export { ExceptionAttrs as A, OTelAttrs as B, CloudAttrs as C, DeploymentAttrs as D, DBAttrs as E, HTTPClientAttrs as F, ServiceAttrs as G, ProcessAttrs as H, HTTPServerAttrs as I, ThreadAttrs as J, SessionAttrs as K, K8sAttrs as L, FeatureFlagAttrs as M, GenAIAttrs as N, DeviceAttrs as O, GraphQLAttrs as P, MessagingAttrs as R, ClientAttrs as S, ContainerAttrs as T, RPCAttrs as U, PeerAttrs as V, ServerAddressAttrs as W, UserAttrs as X, URLAttrs 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, TLSAttrs 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, NetworkAttrs as z };
708
- //# sourceMappingURL=index-CX0aG1Uh.d.ts.map
677
+ 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-Ck06vlW2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Ck06vlW2.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":"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"}
@@ -133,13 +133,6 @@ interface ThreadAttrs {
133
133
  id?: number;
134
134
  name?: string;
135
135
  }
136
- interface GenAIAttrs {
137
- system?: string;
138
- requestModel?: string;
139
- responseModel?: string;
140
- operationName?: 'chat' | 'completion' | 'embedding';
141
- provider?: string;
142
- }
143
136
  interface RPCAttrs {
144
137
  system?: string;
145
138
  service?: string;
@@ -514,29 +507,6 @@ declare const attrs: {
514
507
  };
515
508
  readonly data: (data: MessagingAttrs) => Record<string, unknown>;
516
509
  };
517
- readonly genAI: {
518
- readonly system: (value: string) => {
519
- "gen.ai.system": string;
520
- };
521
- readonly requestModel: (value: string) => {
522
- "gen.ai.request.model": string;
523
- };
524
- readonly responseModel: (value: string) => {
525
- "gen.ai.response.model": string;
526
- };
527
- readonly operationName: (value: "chat" | "completion" | "embedding") => {
528
- "gen.ai.operation.name": "chat" | "completion" | "embedding";
529
- };
530
- readonly usagePromptTokens: (value: number) => {
531
- "gen.ai.usage.prompt_tokens": number;
532
- };
533
- readonly usageCompletionTokens: (value: number) => {
534
- "gen.ai.usage.completion_tokens": number;
535
- };
536
- readonly provider: (value: string) => {
537
- "gen.ai.provider": string;
538
- };
539
- };
540
510
  readonly rpc: {
541
511
  readonly system: (value: string) => {
542
512
  "rpc.system": string;
@@ -704,5 +674,5 @@ type AttributeSetter = {
704
674
  declare function mergeAttrs(...attrSets: Array<Record<string, unknown> | undefined>): Record<string, unknown>;
705
675
  declare function safeSetAttributes(span: AttributeSetter, attrs: Record<string, unknown>, policy?: AttributePolicy): void;
706
676
  //#endregion
707
- export { ExceptionAttrs as A, OTelAttrs as B, CloudAttrs as C, DeploymentAttrs as D, DBAttrs as E, HTTPClientAttrs as F, ServiceAttrs as G, ProcessAttrs as H, HTTPServerAttrs as I, ThreadAttrs as J, SessionAttrs as K, K8sAttrs as L, FeatureFlagAttrs as M, GenAIAttrs as N, DeviceAttrs as O, GraphQLAttrs as P, MessagingAttrs as R, ClientAttrs as S, ContainerAttrs as T, RPCAttrs as U, PeerAttrs as V, ServerAddressAttrs as W, UserAttrs as X, URLAttrs 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, TLSAttrs 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, NetworkAttrs as z };
708
- //# sourceMappingURL=index-DIWZFKUS.d.cts.map
677
+ 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-eKuioqT1.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-eKuioqT1.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":"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"}
package/dist/index.cjs CHANGED
@@ -1,32 +1,31 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_tracer_provider = require('./tracer-provider.cjs');
2
3
  const require_sampling = require('./sampling.cjs');
3
- const require_init = require('./init-DvapOXCc.cjs');
4
+ const require_init = require('./init-BX7AmFRl.cjs');
4
5
  const require_filtering_span_processor = require('./filtering-span-processor.cjs');
5
6
  const require_span_name_normalizer = require('./span-name-normalizer.cjs');
6
7
  const require_attribute_redacting_processor = require('./attribute-redacting-processor.cjs');
7
8
  const require_canonical_log_line_processor = require('./canonical-log-line-processor--RlFDHhm.cjs');
8
- const require_tracer_provider = require('./tracer-provider.cjs');
9
- const require_track = require('./track-3HY4NGV-.cjs');
9
+ const require_track = require('./track-D59FfpL0.cjs');
10
10
  const require_structured_error = require('./structured-error-CHg7DoIQ.cjs');
11
11
  const require_trace_helpers = require('./trace-helpers.cjs');
12
12
  const require_operation_context = require('./operation-context-n4_obUwq.cjs');
13
- const require_functional = require('./functional-C4CzoVrX.cjs');
13
+ const require_functional = require('./functional-zpzNLhky.cjs');
14
14
  const require_stable_hash = require('./stable-hash-BNTMrmdB.cjs');
15
- const require_event = require('./event-Dlqr4ZNL.cjs');
15
+ const require_event = require('./event-BhHREDJk.cjs');
16
16
  const require_metric = require('./metric.cjs');
17
17
  const require_correlated_events = require('./correlated-events-kSwLo3mi.cjs');
18
18
  const require_parse_error = require('./parse-error.cjs');
19
19
  const require_drain_pipeline = require('./drain-pipeline.cjs');
20
20
  const require_metric_helpers = require('./metric-helpers.cjs');
21
21
  const require_semantic_helpers = require('./semantic-helpers.cjs');
22
- const require_registry = require('./registry-JZg2J3RZ.cjs');
22
+ const require_registry = require('./registry-DYgvb62e.cjs');
23
23
  const require_semantic_conventions = require('./semantic-conventions.cjs');
24
- const require_attributes = require('./attributes-D3etyRVc.cjs');
24
+ const require_attributes = require('./attributes-PZ5doLgw.cjs');
25
25
  const require_messaging = require('./messaging.cjs');
26
26
  const require_business_baggage = require('./business-baggage.cjs');
27
27
  const require_workflow = require('./workflow.cjs');
28
28
  let _opentelemetry_api = require("@opentelemetry/api");
29
- let _opentelemetry_sdk_metrics = require("@opentelemetry/sdk-metrics");
30
29
  let node_async_hooks = require("node:async_hooks");
31
30
 
32
31
  //#region src/trace-hybrid.ts
@@ -643,334 +642,6 @@ function defineEnricher(def, options = {}) {
643
642
  };
644
643
  }
645
644
 
646
- //#endregion
647
- //#region src/gen-ai-metrics.ts
648
- /**
649
- * LLM-tuned histogram buckets.
650
- *
651
- * Default OpenTelemetry histogram buckets target HTTP latency (0ms–10s)
652
- * and small counter values. LLM workloads have very different shapes:
653
- *
654
- * - **Duration**: single-token prompts can be fast (50ms), long
655
- * generations and reasoning models can run for minutes. Default buckets
656
- * crush everything above 10s into one bucket.
657
- * - **Token usage**: heavily right-skewed. A single request can range
658
- * from tens of tokens to the million-token context windows.
659
- * - **Cost (USD)**: per-request values are tiny (fractions of a cent),
660
- * so linear buckets waste resolution at the low end.
661
- *
662
- * This module exposes empirically-chosen bucket arrays and a View helper
663
- * so users can apply them to their `MeterProvider` without knowing the
664
- * exact instrument names emitted by OpenAI/Anthropic/Traceloop plugins.
665
- *
666
- * @example
667
- * ```typescript
668
- * import { NodeSDK } from '@opentelemetry/sdk-node';
669
- * import { genAiMetricViews } from 'autotel';
670
- *
671
- * const sdk = new NodeSDK({
672
- * serviceName: 'my-agent',
673
- * views: [...genAiMetricViews()],
674
- * });
675
- * sdk.start();
676
- * ```
677
- */
678
- /**
679
- * Duration buckets for LLM operations, in **seconds**. Covers fast
680
- * completions (50ms) through long-running reasoning jobs (5 min).
681
- *
682
- * Aligns with the OTel GenAI semantic conventions' published advice for
683
- * `gen_ai.client.operation.duration`.
684
- */
685
- const GEN_AI_DURATION_BUCKETS_SECONDS = Object.freeze([
686
- .01,
687
- .05,
688
- .1,
689
- .25,
690
- .5,
691
- 1,
692
- 2,
693
- 5,
694
- 10,
695
- 20,
696
- 30,
697
- 60,
698
- 120,
699
- 300
700
- ]);
701
- /**
702
- * Token-count buckets for prompt, completion, and total token histograms.
703
- * Ranges from tiny prompts to million-token context windows.
704
- *
705
- * Aligns with the OTel GenAI semantic conventions' published advice for
706
- * `gen_ai.client.token.usage`.
707
- */
708
- const GEN_AI_TOKEN_USAGE_BUCKETS = Object.freeze([
709
- 1,
710
- 4,
711
- 16,
712
- 64,
713
- 256,
714
- 1024,
715
- 4096,
716
- 16384,
717
- 65536,
718
- 262144,
719
- 1048576,
720
- 4194304
721
- ]);
722
- /**
723
- * USD cost buckets. Sub-cent resolution at the low end (fractions of a
724
- * cent per small call) up to tens of dollars (batch jobs, Opus/o1 runs).
725
- */
726
- const GEN_AI_COST_USD_BUCKETS = Object.freeze([
727
- 1e-5,
728
- 1e-4,
729
- .001,
730
- .005,
731
- .01,
732
- .05,
733
- .1,
734
- .5,
735
- 1,
736
- 5,
737
- 10,
738
- 50
739
- ]);
740
- /**
741
- * Instrument-level advice object for `createHistogram(name, advice)`.
742
- * Use when you control the instrument creation (e.g. custom business
743
- * LLM metrics); `genAiMetricViews()` is better when the metric comes
744
- * from a third-party plugin.
745
- */
746
- function llmHistogramAdvice(kind) {
747
- return { advice: { explicitBucketBoundaries: [...kind === "duration" ? GEN_AI_DURATION_BUCKETS_SECONDS : kind === "tokens" ? GEN_AI_TOKEN_USAGE_BUCKETS : GEN_AI_COST_USD_BUCKETS] } };
748
- }
749
- /**
750
- * Returns `View`s that re-bucket the standard OTel GenAI histograms. Pass
751
- * the result to your `MeterProvider`'s `views` option.
752
- *
753
- * Matches instrument names emitted by:
754
- * - OpenTelemetry GenAI autoinstrumentation
755
- * - OpenInference / OpenLLMetry (traceloop)
756
- * - Arize Phoenix, LangSmith, etc. that follow the OTel spec
757
- *
758
- * Add more instrument patterns via the `extra` argument if you emit
759
- * custom LLM metrics.
760
- */
761
- function genAiMetricViews(extra = []) {
762
- return [...[
763
- {
764
- instrumentName: "gen_ai.client.operation.duration",
765
- kind: "duration"
766
- },
767
- {
768
- instrumentName: "gen_ai.client.token.usage",
769
- kind: "tokens"
770
- },
771
- {
772
- instrumentName: "gen_ai.client.cost.usd",
773
- kind: "cost"
774
- }
775
- ], ...extra].map(({ instrumentName, kind }) => ({
776
- instrumentName,
777
- aggregation: {
778
- type: _opentelemetry_sdk_metrics.AggregationType.EXPLICIT_BUCKET_HISTOGRAM,
779
- options: { boundaries: kind === "duration" ? [...GEN_AI_DURATION_BUCKETS_SECONDS] : kind === "tokens" ? [...GEN_AI_TOKEN_USAGE_BUCKETS] : [...GEN_AI_COST_USD_BUCKETS] }
780
- }
781
- }));
782
- }
783
-
784
- //#endregion
785
- //#region src/gen-ai-events.ts
786
- /**
787
- * Record that a prompt was dispatched to the provider. Typically called
788
- * before `await provider.chat.completions.create(...)`.
789
- */
790
- function recordPromptSent(ctx, event = {}) {
791
- require_correlated_events.emitCorrelatedEvent(ctx, "gen_ai.prompt.sent", buildPromptSentAttrs(event));
792
- }
793
- /**
794
- * Record a successful provider response. Call after the response arrives
795
- * (for non-streaming) or after the stream completes.
796
- */
797
- function recordResponseReceived(ctx, event = {}) {
798
- require_correlated_events.emitCorrelatedEvent(ctx, "gen_ai.response.received", buildResponseAttrs(event));
799
- }
800
- /**
801
- * Record a retry attempt on an LLM call. Call *before* sleeping for
802
- * `delayMs` so the event timestamp accurately marks when the retry
803
- * decision was made.
804
- */
805
- function recordRetry(ctx, event) {
806
- require_correlated_events.emitCorrelatedEvent(ctx, "gen_ai.retry", buildRetryAttrs(event));
807
- }
808
- /**
809
- * Record a tool / function call made in the course of an agent step.
810
- * Emits an event rather than a child span because many frameworks fire
811
- * several tool calls within a single provider response.
812
- */
813
- function recordToolCall(ctx, event) {
814
- require_correlated_events.emitCorrelatedEvent(ctx, "gen_ai.tool.call", buildToolCallAttrs(event));
815
- }
816
- /**
817
- * Record the time-to-first-token for a streaming response. Pair with
818
- * `recordResponseReceived` at the end so the span carries both the TTFT
819
- * marker and the final usage numbers.
820
- */
821
- function recordStreamFirstToken(ctx, event = {}) {
822
- require_correlated_events.emitCorrelatedEvent(ctx, "gen_ai.stream.first_token", buildStreamFirstTokenAttrs(event));
823
- }
824
- function buildPromptSentAttrs(event) {
825
- const attrs = {};
826
- if (event.model) attrs["gen_ai.request.model"] = event.model;
827
- if (event.promptTokens !== void 0) attrs["gen_ai.usage.input_tokens"] = event.promptTokens;
828
- if (event.messageCount !== void 0) attrs["gen_ai.request.message_count"] = event.messageCount;
829
- if (event.operation) attrs["gen_ai.operation.name"] = event.operation;
830
- return attrs;
831
- }
832
- function buildResponseAttrs(event) {
833
- const attrs = {};
834
- if (event.model) attrs["gen_ai.response.model"] = event.model;
835
- if (event.promptTokens !== void 0) attrs["gen_ai.usage.input_tokens"] = event.promptTokens;
836
- if (event.completionTokens !== void 0) attrs["gen_ai.usage.output_tokens"] = event.completionTokens;
837
- if (event.totalTokens !== void 0) attrs["gen_ai.usage.total_tokens"] = event.totalTokens;
838
- if (event.finishReasons && event.finishReasons.length > 0) attrs["gen_ai.response.finish_reasons"] = event.finishReasons.join(",");
839
- return attrs;
840
- }
841
- function buildRetryAttrs(event) {
842
- const attrs = { "retry.attempt": event.attempt };
843
- if (event.reason) attrs["retry.reason"] = event.reason;
844
- if (event.delayMs !== void 0) attrs["retry.delay_ms"] = event.delayMs;
845
- if (event.statusCode !== void 0) attrs["http.response.status_code"] = event.statusCode;
846
- return attrs;
847
- }
848
- function buildToolCallAttrs(event) {
849
- const attrs = { "gen_ai.tool.name": event.toolName };
850
- if (event.toolCallId) attrs["gen_ai.tool.call.id"] = event.toolCallId;
851
- if (event.arguments) attrs["gen_ai.tool.arguments"] = event.arguments;
852
- return attrs;
853
- }
854
- function buildStreamFirstTokenAttrs(event) {
855
- const attrs = {};
856
- if (event.tokensSoFar !== void 0) attrs["gen_ai.stream.tokens_so_far"] = event.tokensSoFar;
857
- return attrs;
858
- }
859
-
860
- //#endregion
861
- //#region src/gen-ai-cost.ts
862
- /** Span attribute key autotel sets for an estimated call cost. */
863
- const GEN_AI_COST_ATTRIBUTE = "gen_ai.usage.cost.usd";
864
- /**
865
- * Approximate public list prices (USD per 1M tokens) at the time of writing.
866
- * Prices change; treat these as convenience defaults, not a billing source of
867
- * truth. Override per call via `options.pricing` or mutate this table at init.
868
- * Matching is exact first, then by longest key prefix, so versioned model ids
869
- * (`claude-sonnet-4-6-20251101`) resolve to a base entry (`claude-sonnet-4-6`).
870
- */
871
- const MODEL_PRICING = {
872
- "gpt-4o": {
873
- inputPer1M: 2.5,
874
- outputPer1M: 10
875
- },
876
- "gpt-4o-mini": {
877
- inputPer1M: .15,
878
- outputPer1M: .6
879
- },
880
- "gpt-4.1": {
881
- inputPer1M: 2,
882
- outputPer1M: 8
883
- },
884
- "gpt-4.1-mini": {
885
- inputPer1M: .4,
886
- outputPer1M: 1.6
887
- },
888
- "gpt-4.1-nano": {
889
- inputPer1M: .1,
890
- outputPer1M: .4
891
- },
892
- "o3-mini": {
893
- inputPer1M: 1.1,
894
- outputPer1M: 4.4
895
- },
896
- "claude-opus-4": {
897
- inputPer1M: 15,
898
- outputPer1M: 75
899
- },
900
- "claude-sonnet-4": {
901
- inputPer1M: 3,
902
- outputPer1M: 15
903
- },
904
- "claude-3-5-sonnet": {
905
- inputPer1M: 3,
906
- outputPer1M: 15
907
- },
908
- "claude-3-5-haiku": {
909
- inputPer1M: .8,
910
- outputPer1M: 4
911
- },
912
- "claude-3-opus": {
913
- inputPer1M: 15,
914
- outputPer1M: 75
915
- },
916
- "claude-3-haiku": {
917
- inputPer1M: .25,
918
- outputPer1M: 1.25
919
- },
920
- "gemini-1.5-pro": {
921
- inputPer1M: 1.25,
922
- outputPer1M: 5
923
- },
924
- "gemini-1.5-flash": {
925
- inputPer1M: .075,
926
- outputPer1M: .3
927
- },
928
- "gemini-2.0-flash": {
929
- inputPer1M: .1,
930
- outputPer1M: .4
931
- }
932
- };
933
- function resolvePricing(table, model) {
934
- const exact = table[model];
935
- if (exact) return exact;
936
- let best;
937
- let bestLength = 0;
938
- for (const key of Object.keys(table)) if (model.startsWith(key) && key.length > bestLength) {
939
- best = table[key];
940
- bestLength = key.length;
941
- }
942
- return best;
943
- }
944
- function round(value) {
945
- return Math.round(value * 1e6) / 1e6;
946
- }
947
- /**
948
- * Estimate the USD cost of an LLM call. Returns `undefined` when the model has
949
- * no known pricing (supply one via `options.pricing`).
950
- */
951
- function estimateLLMCost(model, usage, options) {
952
- const price = resolvePricing(options?.pricing ? {
953
- ...MODEL_PRICING,
954
- ...options.pricing
955
- } : MODEL_PRICING, model);
956
- if (!price) return void 0;
957
- const cachedInput = usage.cachedInputTokens ?? 0;
958
- const billedInput = Math.max(0, (usage.inputTokens ?? 0) - cachedInput);
959
- const output = usage.outputTokens ?? 0;
960
- const cachedRate = price.cachedInputPer1M ?? price.inputPer1M;
961
- return round(billedInput / 1e6 * price.inputPer1M + cachedInput / 1e6 * cachedRate + output / 1e6 * price.outputPer1M);
962
- }
963
- /**
964
- * Estimate cost and record it on `ctx` as the `gen_ai.usage.cost.usd` span
965
- * attribute. Returns the estimated cost, or `undefined` when the model is
966
- * unknown (in which case no attribute is set).
967
- */
968
- function recordLLMCost(ctx, model, usage, options) {
969
- const cost = estimateLLMCost(model, usage, options);
970
- if (cost !== void 0) ctx.setAttribute(GEN_AI_COST_ATTRIBUTE, cost);
971
- return cost;
972
- }
973
-
974
645
  //#endregion
975
646
  exports.AUTOTEL_SAMPLING_TAIL_EVALUATED = require_sampling.AUTOTEL_SAMPLING_TAIL_EVALUATED;
976
647
  exports.AUTOTEL_SAMPLING_TAIL_KEEP = require_sampling.AUTOTEL_SAMPLING_TAIL_KEEP;
@@ -982,12 +653,7 @@ exports.BusinessBaggage = require_business_baggage.BusinessBaggage;
982
653
  exports.CORRELATION_ID_BAGGAGE_KEY = require_track.CORRELATION_ID_BAGGAGE_KEY;
983
654
  exports.Event = require_event.Event;
984
655
  exports.FilteringSpanProcessor = require_filtering_span_processor.FilteringSpanProcessor;
985
- exports.GEN_AI_COST_ATTRIBUTE = GEN_AI_COST_ATTRIBUTE;
986
- exports.GEN_AI_COST_USD_BUCKETS = GEN_AI_COST_USD_BUCKETS;
987
- exports.GEN_AI_DURATION_BUCKETS_SECONDS = GEN_AI_DURATION_BUCKETS_SECONDS;
988
- exports.GEN_AI_TOKEN_USAGE_BUCKETS = GEN_AI_TOKEN_USAGE_BUCKETS;
989
656
  exports.HTTPAttributes = require_registry.HTTPAttributes;
990
- exports.MODEL_PRICING = MODEL_PRICING;
991
657
  exports.Metric = require_metric.Metric;
992
658
  exports.NORMALIZER_PATTERNS = require_span_name_normalizer.NORMALIZER_PATTERNS;
993
659
  exports.NORMALIZER_PRESETS = require_span_name_normalizer.NORMALIZER_PRESETS;
@@ -1049,14 +715,12 @@ exports.defineErrorCatalog = defineErrorCatalog;
1049
715
  exports.defineEvent = defineEvent;
1050
716
  exports.defineHttpDrain = defineHttpDrain;
1051
717
  exports.enrichWithTraceContext = require_trace_helpers.enrichWithTraceContext;
1052
- exports.estimateLLMCost = estimateLLMCost;
1053
718
  exports.extractLinksFromBatch = require_sampling.extractLinksFromBatch;
1054
719
  exports.finalizeSpan = require_trace_helpers.finalizeSpan;
1055
720
  exports.flattenMetadata = require_trace_helpers.flattenMetadata;
1056
721
  exports.flattenToAttributes = require_structured_error.flattenToAttributes;
1057
722
  exports.flush = flush;
1058
723
  exports.formatDuration = require_canonical_log_line_processor.formatDuration;
1059
- exports.genAiMetricViews = genAiMetricViews;
1060
724
  exports.generateCorrelationId = require_track.generateCorrelationId;
1061
725
  exports.getActiveContext = require_trace_helpers.getActiveContext;
1062
726
  exports.getActiveSpan = require_trace_helpers.getActiveSpan;
@@ -1089,7 +753,6 @@ exports.isInWorkflow = require_workflow.isInWorkflow;
1089
753
  exports.isInitialized = require_init.isInitialized;
1090
754
  exports.isLoggerLocked = require_init.isLoggerLocked;
1091
755
  exports.isTracing = require_trace_helpers.isTracing;
1092
- exports.llmHistogramAdvice = llmHistogramAdvice;
1093
756
  exports.lockLogger = require_init.lockLogger;
1094
757
  exports.markAsImmediate = require_functional.markAsImmediate;
1095
758
  exports.mergeAttrs = require_attributes.mergeAttrs;
@@ -1108,13 +771,7 @@ Object.defineProperty(exports, 'propagation', {
1108
771
  return _opentelemetry_api.propagation;
1109
772
  }
1110
773
  });
1111
- exports.recordLLMCost = recordLLMCost;
1112
- exports.recordPromptSent = recordPromptSent;
1113
- exports.recordResponseReceived = recordResponseReceived;
1114
- exports.recordRetry = recordRetry;
1115
- exports.recordStreamFirstToken = recordStreamFirstToken;
1116
774
  exports.recordStructuredError = require_structured_error.recordStructuredError;
1117
- exports.recordToolCall = recordToolCall;
1118
775
  exports.request = require_attributes.request;
1119
776
  exports.resetEvents = require_event.resetEvents;
1120
777
  exports.resetMetrics = require_metric.resetMetrics;
@@ -1142,7 +799,6 @@ exports.trace = trace;
1142
799
  exports.traceConsumer = require_messaging.traceConsumer;
1143
800
  exports.traceDB = require_semantic_helpers.traceDB;
1144
801
  exports.traceHTTP = require_semantic_helpers.traceHTTP;
1145
- exports.traceLLM = require_semantic_helpers.traceLLM;
1146
802
  exports.traceMessaging = require_semantic_helpers.traceMessaging;
1147
803
  exports.traceProducer = require_messaging.traceProducer;
1148
804
  exports.traceStep = require_workflow.traceStep;