openlit 1.7.1 → 1.9.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 (101) hide show
  1. package/README.md +14 -10
  2. package/dist/helpers.d.ts +10 -0
  3. package/dist/helpers.js +106 -3
  4. package/dist/helpers.js.map +1 -1
  5. package/dist/instrumentation/__tests__/anthropic-wrapper.test.js +1 -1
  6. package/dist/instrumentation/__tests__/anthropic-wrapper.test.js.map +1 -1
  7. package/dist/instrumentation/__tests__/base-wrapper.test.js +1 -1
  8. package/dist/instrumentation/__tests__/base-wrapper.test.js.map +1 -1
  9. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.d.ts +4 -0
  10. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js +99 -0
  11. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js.map +1 -0
  12. package/dist/instrumentation/__tests__/groq-trace-comparison.test.d.ts +7 -0
  13. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js +180 -0
  14. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js.map +1 -0
  15. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.d.ts +4 -0
  16. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js +127 -0
  17. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js.map +1 -0
  18. package/dist/instrumentation/__tests__/together-trace-comparison.test.d.ts +4 -0
  19. package/dist/instrumentation/__tests__/together-trace-comparison.test.js +98 -0
  20. package/dist/instrumentation/__tests__/together-trace-comparison.test.js.map +1 -0
  21. package/dist/instrumentation/__tests__/trace-comparison-utils.d.ts +66 -0
  22. package/dist/instrumentation/__tests__/trace-comparison-utils.js +245 -0
  23. package/dist/instrumentation/__tests__/trace-comparison-utils.js.map +1 -0
  24. package/dist/instrumentation/anthropic/index.js +6 -4
  25. package/dist/instrumentation/anthropic/index.js.map +1 -1
  26. package/dist/instrumentation/anthropic/wrapper.js +12 -30
  27. package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
  28. package/dist/instrumentation/base-wrapper.js +2 -2
  29. package/dist/instrumentation/base-wrapper.js.map +1 -1
  30. package/dist/instrumentation/bedrock/index.d.ts +11 -0
  31. package/dist/instrumentation/bedrock/index.js +52 -0
  32. package/dist/instrumentation/bedrock/index.js.map +1 -0
  33. package/dist/instrumentation/bedrock/wrapper.d.ts +10 -0
  34. package/dist/instrumentation/bedrock/wrapper.js +345 -0
  35. package/dist/instrumentation/bedrock/wrapper.js.map +1 -0
  36. package/dist/instrumentation/cohere/wrapper.js +8 -10
  37. package/dist/instrumentation/cohere/wrapper.js.map +1 -1
  38. package/dist/instrumentation/google-ai/index.d.ts +11 -0
  39. package/dist/instrumentation/google-ai/index.js +48 -0
  40. package/dist/instrumentation/google-ai/index.js.map +1 -0
  41. package/dist/instrumentation/google-ai/wrapper.d.ts +34 -0
  42. package/dist/instrumentation/google-ai/wrapper.js +241 -0
  43. package/dist/instrumentation/google-ai/wrapper.js.map +1 -0
  44. package/dist/instrumentation/groq/index.d.ts +11 -0
  45. package/dist/instrumentation/groq/index.js +43 -0
  46. package/dist/instrumentation/groq/index.js.map +1 -0
  47. package/dist/instrumentation/groq/wrapper.d.ts +33 -0
  48. package/dist/instrumentation/groq/wrapper.js +289 -0
  49. package/dist/instrumentation/groq/wrapper.js.map +1 -0
  50. package/dist/instrumentation/index.js +20 -0
  51. package/dist/instrumentation/index.js.map +1 -1
  52. package/dist/instrumentation/langchain/index.d.ts +23 -0
  53. package/dist/instrumentation/langchain/index.js +109 -0
  54. package/dist/instrumentation/langchain/index.js.map +1 -0
  55. package/dist/instrumentation/langchain/wrapper.d.ts +6 -0
  56. package/dist/instrumentation/langchain/wrapper.js +318 -0
  57. package/dist/instrumentation/langchain/wrapper.js.map +1 -0
  58. package/dist/instrumentation/llamaindex/index.d.ts +11 -0
  59. package/dist/instrumentation/llamaindex/index.js +102 -0
  60. package/dist/instrumentation/llamaindex/index.js.map +1 -0
  61. package/dist/instrumentation/llamaindex/wrapper.d.ts +11 -0
  62. package/dist/instrumentation/llamaindex/wrapper.js +252 -0
  63. package/dist/instrumentation/llamaindex/wrapper.js.map +1 -0
  64. package/dist/instrumentation/mistral/index.d.ts +11 -0
  65. package/dist/instrumentation/mistral/index.js +66 -0
  66. package/dist/instrumentation/mistral/index.js.map +1 -0
  67. package/dist/instrumentation/mistral/wrapper.d.ts +34 -0
  68. package/dist/instrumentation/mistral/wrapper.js +340 -0
  69. package/dist/instrumentation/mistral/wrapper.js.map +1 -0
  70. package/dist/instrumentation/ollama/wrapper.d.ts +11 -3
  71. package/dist/instrumentation/ollama/wrapper.js +60 -95
  72. package/dist/instrumentation/ollama/wrapper.js.map +1 -1
  73. package/dist/instrumentation/openai/index.js +1 -1
  74. package/dist/instrumentation/openai/index.js.map +1 -1
  75. package/dist/instrumentation/openai/wrapper.js +14 -84
  76. package/dist/instrumentation/openai/wrapper.js.map +1 -1
  77. package/dist/instrumentation/pinecone/index.d.ts +11 -0
  78. package/dist/instrumentation/pinecone/index.js +79 -0
  79. package/dist/instrumentation/pinecone/index.js.map +1 -0
  80. package/dist/instrumentation/pinecone/wrapper.d.ts +14 -0
  81. package/dist/instrumentation/pinecone/wrapper.js +198 -0
  82. package/dist/instrumentation/pinecone/wrapper.js.map +1 -0
  83. package/dist/instrumentation/together/index.d.ts +11 -0
  84. package/dist/instrumentation/together/index.js +43 -0
  85. package/dist/instrumentation/together/index.js.map +1 -0
  86. package/dist/instrumentation/together/wrapper.d.ts +33 -0
  87. package/dist/instrumentation/together/wrapper.js +271 -0
  88. package/dist/instrumentation/together/wrapper.js.map +1 -0
  89. package/dist/instrumentation/vercel-ai/index.d.ts +10 -0
  90. package/dist/instrumentation/vercel-ai/index.js +59 -0
  91. package/dist/instrumentation/vercel-ai/index.js.map +1 -0
  92. package/dist/instrumentation/vercel-ai/wrapper.d.ts +11 -0
  93. package/dist/instrumentation/vercel-ai/wrapper.js +248 -0
  94. package/dist/instrumentation/vercel-ai/wrapper.js.map +1 -0
  95. package/dist/otel/__tests__/metrics.test.js +5 -5
  96. package/dist/otel/__tests__/metrics.test.js.map +1 -1
  97. package/dist/semantic-convention.d.ts +14 -3
  98. package/dist/semantic-convention.js +19 -8
  99. package/dist/semantic-convention.js.map +1 -1
  100. package/dist/types.d.ts +1 -1
  101. package/package.json +1 -1
@@ -64,6 +64,7 @@ class AnthropicWrapper extends base_wrapper_1.default {
64
64
  }
65
65
  }
66
66
  static async *_messageCreateGenerator({ args, genAIEndpoint, response, span, }) {
67
+ let metricParams;
67
68
  try {
68
69
  const result = {
69
70
  id: '0',
@@ -111,7 +112,7 @@ class AnthropicWrapper extends base_wrapper_1.default {
111
112
  yield chunk;
112
113
  }
113
114
  result.usage.total_tokens = result.usage.output_tokens + result.usage.input_tokens;
114
- await AnthropicWrapper._messageCreateCommonSetter({
115
+ metricParams = await AnthropicWrapper._messageCreateCommonSetter({
115
116
  args,
116
117
  genAIEndpoint,
117
118
  result,
@@ -124,35 +125,14 @@ class AnthropicWrapper extends base_wrapper_1.default {
124
125
  }
125
126
  finally {
126
127
  span.end();
128
+ if (metricParams) {
129
+ base_wrapper_1.default.recordMetrics(span, metricParams);
130
+ }
127
131
  }
128
132
  }
129
133
  static async _messageCreateCommonSetter({ args, genAIEndpoint, result, span, }) {
130
134
  const traceContent = config_1.default.traceContent;
131
- const { messages, max_tokens = null, seed = null, temperature = 1, top_p, top_k, user, stream = false, stop_reason, } = args[0];
132
- // Format 'messages' into a single string
133
- const messagePrompt = messages || '';
134
- const formattedMessages = [];
135
- for (const message of messagePrompt) {
136
- const role = message.role;
137
- const content = message.content;
138
- if (Array.isArray(content)) {
139
- const contentStr = content
140
- .map((item) => {
141
- if ('type' in item) {
142
- return `${item.type}: ${item.text ? item.text : item.image_url}`;
143
- }
144
- else {
145
- return `text: ${item.text}`;
146
- }
147
- })
148
- .join(', ');
149
- formattedMessages.push(`${role}: ${contentStr}`);
150
- }
151
- else {
152
- formattedMessages.push(`${role}: ${content}`);
153
- }
154
- }
155
- const prompt = formattedMessages.join('\n');
135
+ const { messages, max_tokens = null, seed = null, temperature = 1, top_p, top_k, user, stream = false, } = args[0];
156
136
  span.setAttribute(semantic_convention_1.default.GEN_AI_OPERATION, semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CHAT);
157
137
  span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_ID, result.id);
158
138
  const model = result.model || 'claude-3-sonnet-20240229';
@@ -166,26 +146,28 @@ class AnthropicWrapper extends base_wrapper_1.default {
166
146
  cost,
167
147
  aiSystem: AnthropicWrapper.aiSystem,
168
148
  });
149
+ // Response model
150
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_MODEL, model);
169
151
  // Request Params attributes : Start
170
152
  span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TOP_P, top_p);
171
153
  span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TOP_K, top_k);
172
154
  span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_MAX_TOKENS, max_tokens);
173
155
  span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TEMPERATURE, temperature);
174
- span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, stop_reason);
175
156
  span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM, stream);
176
157
  span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_SEED, seed);
177
158
  if (traceContent) {
178
- span.setAttribute(semantic_convention_1.default.GEN_AI_CONTENT_PROMPT, prompt);
159
+ span.setAttribute(semantic_convention_1.default.GEN_AI_INPUT_MESSAGES, helpers_1.default.buildInputMessages(messages || []));
179
160
  }
180
161
  // Request Params attributes : End
181
162
  span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_INPUT_TOKENS, result.usage.input_tokens);
182
163
  span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_OUTPUT_TOKENS, result.usage.output_tokens);
183
164
  span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_TOTAL_TOKENS, result.usage.input_tokens + result.usage.output_tokens);
165
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_TOKEN_USAGE, result.usage.input_tokens + result.usage.output_tokens);
184
166
  if (result.stop_reason) {
185
- span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, result.stop_reason);
167
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, [result.stop_reason]);
186
168
  }
187
169
  if (traceContent) {
188
- span.setAttribute(semantic_convention_1.default.GEN_AI_CONTENT_COMPLETION, result.content?.[0]?.text || '');
170
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, helpers_1.default.buildOutputMessages(result.content?.[0]?.text || '', result.stop_reason || 'stop'));
189
171
  }
190
172
  return {
191
173
  genAIEndpoint,
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/instrumentation/anthropic/wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/instrumentation/anthropic/wrapper.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ class BaseWrapper {
23
23
  [constant_1.TELEMETRY_SDK_NAME]: constant_1.SDK_NAME,
24
24
  });
25
25
  span.setAttribute(constant_1.TELEMETRY_SDK_NAME, constant_1.SDK_NAME);
26
- span.setAttribute(semantic_convention_1.default.GEN_AI_SYSTEM, aiSystem);
26
+ span.setAttribute(semantic_convention_1.default.GEN_AI_PROVIDER_NAME, aiSystem);
27
27
  span.setAttribute(semantic_convention_1.default.GEN_AI_ENDPOINT, genAIEndpoint);
28
28
  span.setAttribute(semantic_convention_1.default.GEN_AI_ENVIRONMENT, environment);
29
29
  span.setAttribute(semantic_convention_1.default.GEN_AI_APPLICATION_NAME, applicationName);
@@ -45,7 +45,7 @@ class BaseWrapper {
45
45
  const duration = BaseWrapper.getSpanAttribute(span, 'duration') ?? BaseWrapper.getSpanAttribute(span, 'gen_ai.duration');
46
46
  const attributes = {
47
47
  [semantic_conventions_1.ATTR_SERVICE_NAME]: applicationName,
48
- [semantic_convention_1.default.GEN_AI_SYSTEM]: aiSystem,
48
+ [semantic_convention_1.default.GEN_AI_PROVIDER_NAME]: aiSystem,
49
49
  [semantic_convention_1.default.GEN_AI_ENDPOINT]: genAIEndpoint,
50
50
  [semantic_convention_1.default.ATTR_DEPLOYMENT_ENVIRONMENT]: environment,
51
51
  [semantic_convention_1.default.GEN_AI_REQUEST_MODEL]: model,
@@ -1 +1 @@
1
- {"version":3,"file":"base-wrapper.js","sourceRoot":"","sources":["../../src/instrumentation/base-wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-wrapper.js","sourceRoot":"","sources":["../../src/instrumentation/base-wrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { InstrumentationBase, InstrumentationModuleDefinition } from '@opentelemetry/instrumentation';
2
+ import { InstrumentationConfig } from '@opentelemetry/instrumentation';
3
+ export interface BedrockInstrumentationConfig extends InstrumentationConfig {
4
+ }
5
+ export default class OpenlitBedrockInstrumentation extends InstrumentationBase {
6
+ constructor(config?: BedrockInstrumentationConfig);
7
+ protected init(): void | InstrumentationModuleDefinition | InstrumentationModuleDefinition[];
8
+ manualPatch(bedrock: any): void;
9
+ protected _patch(moduleExports: any): void;
10
+ protected _unpatch(moduleExports: any): void;
11
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const instrumentation_1 = require("@opentelemetry/instrumentation");
7
+ const constant_1 = require("../../constant");
8
+ const wrapper_1 = __importDefault(require("./wrapper"));
9
+ class OpenlitBedrockInstrumentation extends instrumentation_1.InstrumentationBase {
10
+ constructor(config = {}) {
11
+ super(`${constant_1.INSTRUMENTATION_PREFIX}/instrumentation-bedrock`, '1.0.0', config);
12
+ }
13
+ init() {
14
+ const module = new instrumentation_1.InstrumentationNodeModuleDefinition('@aws-sdk/client-bedrock-runtime', ['>=3.0.0'], (moduleExports) => {
15
+ this._patch(moduleExports);
16
+ return moduleExports;
17
+ }, (moduleExports) => {
18
+ if (moduleExports !== undefined) {
19
+ this._unpatch(moduleExports);
20
+ }
21
+ });
22
+ return [module];
23
+ }
24
+ manualPatch(bedrock) {
25
+ this._patch(bedrock);
26
+ }
27
+ _patch(moduleExports) {
28
+ try {
29
+ const BedrockRuntimeClient = moduleExports.BedrockRuntimeClient;
30
+ if (!BedrockRuntimeClient?.prototype)
31
+ return;
32
+ if ((0, instrumentation_1.isWrapped)(BedrockRuntimeClient.prototype.send)) {
33
+ this._unwrap(BedrockRuntimeClient.prototype, 'send');
34
+ }
35
+ this._wrap(BedrockRuntimeClient.prototype, 'send', wrapper_1.default._patchSend(this.tracer));
36
+ }
37
+ catch (e) {
38
+ console.error('Error in Bedrock _patch method:', e);
39
+ }
40
+ }
41
+ _unpatch(moduleExports) {
42
+ try {
43
+ const BedrockRuntimeClient = moduleExports.BedrockRuntimeClient;
44
+ if (BedrockRuntimeClient?.prototype?.send) {
45
+ this._unwrap(BedrockRuntimeClient.prototype, 'send');
46
+ }
47
+ }
48
+ catch { /* ignore */ }
49
+ }
50
+ }
51
+ exports.default = OpenlitBedrockInstrumentation;
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instrumentation/bedrock/index.ts"],"names":[],"mappings":";;;;;AAAA,oEAKwC;AAExC,6CAAwD;AACxD,wDAAuC;AAIvC,MAAqB,6BAA8B,SAAQ,qCAAmB;IAC5E,YAAY,SAAuC,EAAE;QACnD,KAAK,CAAC,GAAG,iCAAsB,0BAA0B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAES,IAAI;QACZ,MAAM,MAAM,GAAG,IAAI,qDAAmC,CACpD,iCAAiC,EACjC,CAAC,SAAS,CAAC,EACX,CAAC,aAAa,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,aAAa,CAAC;QACvB,CAAC,EACD,CAAC,aAAa,EAAE,EAAE;YAChB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CACF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAEM,WAAW,CAAC,OAAY;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAES,MAAM,CAAC,aAAkB;QACjC,IAAI,CAAC;YACH,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;YAChE,IAAI,CAAC,oBAAoB,EAAE,SAAS;gBAAE,OAAO;YAE7C,IAAI,IAAA,2BAAS,EAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,KAAK,CACR,oBAAoB,CAAC,SAAS,EAC9B,MAAM,EACN,iBAAc,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACvC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAES,QAAQ,CAAC,aAAkB;QACnC,IAAI,CAAC;YACH,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;YAChE,IAAI,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;CACF;AArDD,gDAqDC"}
@@ -0,0 +1,10 @@
1
+ import { Tracer } from '@opentelemetry/api';
2
+ import BaseWrapper from '../base-wrapper';
3
+ declare class BedrockWrapper extends BaseWrapper {
4
+ static aiSystem: string;
5
+ static _patchSend(tracer: Tracer): any;
6
+ static _handleConverseCommand(tracer: Tracer, originalMethod: any, instance: any, args: any[]): Promise<any>;
7
+ static _handleConverseStreamCommand(tracer: Tracer, originalMethod: any, instance: any, args: any[]): Promise<any>;
8
+ static _handleInvokeModelCommand(tracer: Tracer, originalMethod: any, instance: any, args: any[], commandName: string): Promise<any>;
9
+ }
10
+ export default BedrockWrapper;
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const api_1 = require("@opentelemetry/api");
7
+ const config_1 = __importDefault(require("../../config"));
8
+ const helpers_1 = __importDefault(require("../../helpers"));
9
+ const semantic_convention_1 = __importDefault(require("../../semantic-convention"));
10
+ const base_wrapper_1 = __importDefault(require("../base-wrapper"));
11
+ const BEDROCK_SERVER_ADDRESS = 'bedrock-runtime.amazonaws.com';
12
+ const BEDROCK_SERVER_PORT = 443;
13
+ function mapFinishReason(stopReason) {
14
+ const map = {
15
+ end_turn: 'stop',
16
+ max_tokens: 'max_tokens',
17
+ stop_sequence: 'stop',
18
+ tool_use: 'tool_calls',
19
+ content_filtered: 'content_filter',
20
+ guardrail_intervention: 'content_filter',
21
+ };
22
+ return map[stopReason] || stopReason;
23
+ }
24
+ function applyInferenceConfigAttributes(span, inferenceConfig) {
25
+ if (inferenceConfig.maxTokens !== undefined)
26
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_MAX_TOKENS, inferenceConfig.maxTokens);
27
+ if (inferenceConfig.temperature !== undefined)
28
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TEMPERATURE, inferenceConfig.temperature);
29
+ if (inferenceConfig.topP !== undefined)
30
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TOP_P, inferenceConfig.topP);
31
+ if (inferenceConfig.topK !== undefined)
32
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TOP_K, inferenceConfig.topK);
33
+ if (inferenceConfig.stopSequences !== undefined)
34
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_STOP_SEQUENCES, inferenceConfig.stopSequences);
35
+ }
36
+ class BedrockWrapper extends base_wrapper_1.default {
37
+ static _patchSend(tracer) {
38
+ return (originalMethod) => {
39
+ return async function (...args) {
40
+ const command = args[0];
41
+ if (!command)
42
+ return originalMethod.apply(this, args);
43
+ const commandName = command.constructor?.name || '';
44
+ if (commandName === 'ConverseCommand') {
45
+ return BedrockWrapper._handleConverseCommand(tracer, originalMethod, this, args);
46
+ }
47
+ if (commandName === 'ConverseStreamCommand') {
48
+ return BedrockWrapper._handleConverseStreamCommand(tracer, originalMethod, this, args);
49
+ }
50
+ if (commandName === 'InvokeModelCommand' || commandName === 'InvokeModelWithResponseStreamCommand') {
51
+ return BedrockWrapper._handleInvokeModelCommand(tracer, originalMethod, this, args, commandName);
52
+ }
53
+ return originalMethod.apply(this, args);
54
+ };
55
+ };
56
+ }
57
+ static async _handleConverseCommand(tracer, originalMethod, instance, args) {
58
+ const command = args[0];
59
+ const input = command.input || {};
60
+ const modelId = input.modelId || 'unknown';
61
+ const genAIEndpoint = 'bedrock.converse';
62
+ const span = tracer.startSpan(genAIEndpoint, { kind: api_1.SpanKind.CLIENT });
63
+ return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), async () => {
64
+ const startTime = Date.now();
65
+ let metricParams;
66
+ try {
67
+ const response = await originalMethod.apply(instance, args);
68
+ const duration = (Date.now() - startTime) / 1000;
69
+ const usage = response.usage || {};
70
+ const promptTokens = usage.inputTokens || 0;
71
+ const completionTokens = usage.outputTokens || 0;
72
+ const totalTokens = usage.totalTokens || promptTokens + completionTokens;
73
+ const cacheReadTokens = usage.cacheReadInputTokens || 0;
74
+ const cacheWriteTokens = usage.cacheWriteInputTokens || 0;
75
+ const finishReason = mapFinishReason(response.stopReason || 'stop');
76
+ const pricingInfo = await config_1.default.updatePricingJson(config_1.default.pricing_json);
77
+ const cost = helpers_1.default.getChatModelCost(modelId, pricingInfo, promptTokens, completionTokens);
78
+ BedrockWrapper.setBaseSpanAttributes(span, {
79
+ genAIEndpoint,
80
+ model: modelId,
81
+ cost,
82
+ aiSystem: BedrockWrapper.aiSystem,
83
+ });
84
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OPERATION, semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CHAT);
85
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM, false);
86
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_MODEL, modelId);
87
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_INPUT_TOKENS, promptTokens);
88
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_OUTPUT_TOKENS, completionTokens);
89
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_TOTAL_TOKENS, totalTokens);
90
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_TOKEN_USAGE, totalTokens);
91
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, [finishReason]);
92
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_TYPE, semantic_convention_1.default.GEN_AI_OUTPUT_TYPE_TEXT);
93
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_OPERATION_DURATION, duration);
94
+ span.setAttribute(semantic_convention_1.default.SERVER_ADDRESS, BEDROCK_SERVER_ADDRESS);
95
+ span.setAttribute(semantic_convention_1.default.SERVER_PORT, BEDROCK_SERVER_PORT);
96
+ if (cacheReadTokens > 0)
97
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_READ, cacheReadTokens);
98
+ if (cacheWriteTokens > 0)
99
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_WRITE, cacheWriteTokens);
100
+ const requestId = response.$metadata?.requestId;
101
+ if (requestId)
102
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_ID, requestId);
103
+ applyInferenceConfigAttributes(span, input.inferenceConfig || {});
104
+ if (config_1.default.traceContent) {
105
+ const messages = (input.messages || []).map((m) => ({
106
+ role: m.role,
107
+ content: m.content?.map((c) => c.text || '').join('') || '',
108
+ }));
109
+ const systemText = input.system?.[0]?.text;
110
+ span.setAttribute(semantic_convention_1.default.GEN_AI_INPUT_MESSAGES, helpers_1.default.buildInputMessages(messages, systemText));
111
+ if (systemText) {
112
+ span.setAttribute(semantic_convention_1.default.GEN_AI_SYSTEM_INSTRUCTIONS, JSON.stringify([{ type: 'text', content: systemText }]));
113
+ }
114
+ const outputText = response.output?.message?.content?.map((c) => c.text || '').join('') || '';
115
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, helpers_1.default.buildOutputMessages(outputText, finishReason));
116
+ }
117
+ metricParams = { genAIEndpoint, model: modelId, cost, aiSystem: BedrockWrapper.aiSystem };
118
+ return response;
119
+ }
120
+ catch (e) {
121
+ helpers_1.default.handleException(span, e);
122
+ throw e;
123
+ }
124
+ finally {
125
+ span.end();
126
+ if (metricParams)
127
+ base_wrapper_1.default.recordMetrics(span, metricParams);
128
+ }
129
+ });
130
+ }
131
+ static async _handleConverseStreamCommand(tracer, originalMethod, instance, args) {
132
+ const command = args[0];
133
+ const input = command.input || {};
134
+ const modelId = input.modelId || 'unknown';
135
+ const genAIEndpoint = 'bedrock.converse_stream';
136
+ const startTime = Date.now();
137
+ const span = tracer.startSpan(genAIEndpoint, { kind: api_1.SpanKind.CLIENT });
138
+ // Call the original method to get the response object (with .stream async iterable)
139
+ const response = await api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => originalMethod.apply(instance, args));
140
+ // Accumulated state from stream events
141
+ let llmResponse = '';
142
+ let finishReason = 'stop';
143
+ let inputTokens = 0;
144
+ let outputTokens = 0;
145
+ let cacheReadTokens = 0;
146
+ let cacheWriteTokens = 0;
147
+ let firstChunkTime = null;
148
+ const originalStream = response.stream;
149
+ async function* wrappedStream() {
150
+ try {
151
+ for await (const event of originalStream) {
152
+ if (firstChunkTime === null)
153
+ firstChunkTime = Date.now();
154
+ if (event.contentBlockDelta?.delta?.text)
155
+ llmResponse += event.contentBlockDelta.delta.text;
156
+ if (event.messageStop?.stopReason)
157
+ finishReason = mapFinishReason(event.messageStop.stopReason);
158
+ if (event.metadata?.usage) {
159
+ inputTokens = event.metadata.usage.inputTokens || 0;
160
+ outputTokens = event.metadata.usage.outputTokens || 0;
161
+ cacheReadTokens = event.metadata.usage.cacheReadInputTokens || 0;
162
+ cacheWriteTokens = event.metadata.usage.cacheWriteInputTokens || 0;
163
+ }
164
+ yield event;
165
+ }
166
+ }
167
+ finally {
168
+ // Record telemetry once the stream is fully consumed
169
+ try {
170
+ const duration = (Date.now() - startTime) / 1000;
171
+ const ttft = firstChunkTime !== null ? (firstChunkTime - startTime) / 1000 : 0;
172
+ const totalTokens = inputTokens + outputTokens;
173
+ const pricingInfo = await config_1.default.updatePricingJson(config_1.default.pricing_json);
174
+ const cost = helpers_1.default.getChatModelCost(modelId, pricingInfo, inputTokens, outputTokens);
175
+ BedrockWrapper.setBaseSpanAttributes(span, {
176
+ genAIEndpoint,
177
+ model: modelId,
178
+ cost,
179
+ aiSystem: BedrockWrapper.aiSystem,
180
+ });
181
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OPERATION, semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CHAT);
182
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM, true);
183
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_MODEL, modelId);
184
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_INPUT_TOKENS, inputTokens);
185
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_OUTPUT_TOKENS, outputTokens);
186
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_TOTAL_TOKENS, totalTokens);
187
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_TOKEN_USAGE, totalTokens);
188
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, [finishReason]);
189
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_TYPE, semantic_convention_1.default.GEN_AI_OUTPUT_TYPE_TEXT);
190
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_OPERATION_DURATION, duration);
191
+ span.setAttribute(semantic_convention_1.default.GEN_AI_SERVER_TTFT, ttft);
192
+ span.setAttribute(semantic_convention_1.default.SERVER_ADDRESS, BEDROCK_SERVER_ADDRESS);
193
+ span.setAttribute(semantic_convention_1.default.SERVER_PORT, BEDROCK_SERVER_PORT);
194
+ if (cacheReadTokens > 0)
195
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_READ, cacheReadTokens);
196
+ if (cacheWriteTokens > 0)
197
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_WRITE, cacheWriteTokens);
198
+ const requestId = response.$metadata?.requestId;
199
+ if (requestId)
200
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_ID, requestId);
201
+ applyInferenceConfigAttributes(span, input.inferenceConfig || {});
202
+ if (config_1.default.traceContent) {
203
+ const messages = (input.messages || []).map((m) => ({
204
+ role: m.role,
205
+ content: m.content?.map((c) => c.text || '').join('') || '',
206
+ }));
207
+ const systemText = input.system?.[0]?.text;
208
+ span.setAttribute(semantic_convention_1.default.GEN_AI_INPUT_MESSAGES, helpers_1.default.buildInputMessages(messages, systemText));
209
+ if (systemText) {
210
+ span.setAttribute(semantic_convention_1.default.GEN_AI_SYSTEM_INSTRUCTIONS, JSON.stringify([{ type: 'text', content: systemText }]));
211
+ }
212
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, helpers_1.default.buildOutputMessages(llmResponse, finishReason));
213
+ }
214
+ const metricParams = { genAIEndpoint, model: modelId, cost, aiSystem: BedrockWrapper.aiSystem };
215
+ base_wrapper_1.default.recordMetrics(span, metricParams);
216
+ }
217
+ catch { /* ignore telemetry errors in finally */ }
218
+ finally {
219
+ span.end();
220
+ }
221
+ }
222
+ }
223
+ return { ...response, stream: wrappedStream() };
224
+ }
225
+ static async _handleInvokeModelCommand(tracer, originalMethod, instance, args, commandName) {
226
+ const command = args[0];
227
+ const input = command.input || {};
228
+ const modelId = input.modelId || 'unknown';
229
+ const isStream = commandName === 'InvokeModelWithResponseStreamCommand';
230
+ const genAIEndpoint = isStream ? 'bedrock.invoke_model_stream' : 'bedrock.invoke_model';
231
+ const span = tracer.startSpan(genAIEndpoint, { kind: api_1.SpanKind.CLIENT });
232
+ return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), async () => {
233
+ const startTime = Date.now();
234
+ let metricParams;
235
+ try {
236
+ const response = await originalMethod.apply(instance, args);
237
+ const duration = (Date.now() - startTime) / 1000;
238
+ // Parse response body
239
+ let parsedBody = {};
240
+ let promptTokens = 0;
241
+ let completionTokens = 0;
242
+ let outputText = '';
243
+ let rawFinishReason = 'stop';
244
+ try {
245
+ const bodyBytes = response.body;
246
+ if (bodyBytes) {
247
+ const bodyStr = typeof bodyBytes === 'string'
248
+ ? bodyBytes
249
+ : Buffer.from(bodyBytes).toString('utf-8');
250
+ parsedBody = JSON.parse(bodyStr);
251
+ }
252
+ }
253
+ catch { /* ignore parse errors */ }
254
+ // Handle different provider response formats
255
+ if (modelId.startsWith('anthropic')) {
256
+ promptTokens = parsedBody.usage?.input_tokens || 0;
257
+ completionTokens = parsedBody.usage?.output_tokens || 0;
258
+ outputText = parsedBody.content?.[0]?.text || '';
259
+ rawFinishReason = parsedBody.stop_reason || 'stop';
260
+ }
261
+ else if (modelId.startsWith('amazon')) {
262
+ promptTokens = parsedBody.inputTextTokenCount || 0;
263
+ completionTokens = parsedBody.results?.[0]?.tokenCount || 0;
264
+ outputText = parsedBody.results?.[0]?.outputText || '';
265
+ rawFinishReason = parsedBody.results?.[0]?.completionReason || 'stop';
266
+ }
267
+ else if (modelId.startsWith('meta')) {
268
+ promptTokens = parsedBody.prompt_token_count || 0;
269
+ completionTokens = parsedBody.generation_token_count || 0;
270
+ outputText = parsedBody.generation || '';
271
+ rawFinishReason = parsedBody.stop_reason || 'stop';
272
+ }
273
+ else if (modelId.startsWith('mistral') || modelId.startsWith('mixtral')) {
274
+ promptTokens = parsedBody.usage?.prompt_tokens || 0;
275
+ completionTokens = parsedBody.usage?.completion_tokens || 0;
276
+ outputText = parsedBody.outputs?.[0]?.text || '';
277
+ rawFinishReason = parsedBody.outputs?.[0]?.stop_reason || 'stop';
278
+ }
279
+ else if (modelId.startsWith('ai21')) {
280
+ promptTokens = parsedBody.prompt?.tokens?.length || 0;
281
+ completionTokens = parsedBody.completions?.[0]?.data?.tokens?.length || 0;
282
+ outputText = parsedBody.completions?.[0]?.data?.text || '';
283
+ rawFinishReason = parsedBody.completions?.[0]?.finishReason?.reason || 'stop';
284
+ }
285
+ else {
286
+ outputText = parsedBody.output || parsedBody.generation || parsedBody.text || '';
287
+ }
288
+ const finishReason = mapFinishReason(rawFinishReason);
289
+ const totalTokens = promptTokens + completionTokens;
290
+ const pricingInfo = await config_1.default.updatePricingJson(config_1.default.pricing_json);
291
+ const cost = helpers_1.default.getChatModelCost(modelId, pricingInfo, promptTokens, completionTokens);
292
+ BedrockWrapper.setBaseSpanAttributes(span, {
293
+ genAIEndpoint,
294
+ model: modelId,
295
+ cost,
296
+ aiSystem: BedrockWrapper.aiSystem,
297
+ });
298
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OPERATION, semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CHAT);
299
+ span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM, isStream);
300
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_MODEL, modelId);
301
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_INPUT_TOKENS, promptTokens);
302
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_OUTPUT_TOKENS, completionTokens);
303
+ span.setAttribute(semantic_convention_1.default.GEN_AI_USAGE_TOTAL_TOKENS, totalTokens);
304
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_TOKEN_USAGE, totalTokens);
305
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, [finishReason]);
306
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_TYPE, semantic_convention_1.default.GEN_AI_OUTPUT_TYPE_TEXT);
307
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_OPERATION_DURATION, duration);
308
+ span.setAttribute(semantic_convention_1.default.SERVER_ADDRESS, BEDROCK_SERVER_ADDRESS);
309
+ span.setAttribute(semantic_convention_1.default.SERVER_PORT, BEDROCK_SERVER_PORT);
310
+ const requestId = response.$metadata?.requestId;
311
+ if (requestId)
312
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_ID, requestId);
313
+ if (config_1.default.traceContent) {
314
+ try {
315
+ const reqBody = input.body
316
+ ? JSON.parse(typeof input.body === 'string' ? input.body : Buffer.from(input.body).toString())
317
+ : {};
318
+ const prompt = reqBody.prompt || reqBody.inputText || '';
319
+ if (prompt) {
320
+ span.setAttribute(semantic_convention_1.default.GEN_AI_INPUT_MESSAGES, helpers_1.default.buildInputMessages([{ role: 'user', content: prompt }]));
321
+ }
322
+ }
323
+ catch { /* ignore */ }
324
+ if (outputText) {
325
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, helpers_1.default.buildOutputMessages(outputText, finishReason));
326
+ }
327
+ }
328
+ metricParams = { genAIEndpoint, model: modelId, cost, aiSystem: BedrockWrapper.aiSystem };
329
+ return response;
330
+ }
331
+ catch (e) {
332
+ helpers_1.default.handleException(span, e);
333
+ throw e;
334
+ }
335
+ finally {
336
+ span.end();
337
+ if (metricParams)
338
+ base_wrapper_1.default.recordMetrics(span, metricParams);
339
+ }
340
+ });
341
+ }
342
+ }
343
+ BedrockWrapper.aiSystem = semantic_convention_1.default.GEN_AI_SYSTEM_AWS_BEDROCK;
344
+ exports.default = BedrockWrapper;
345
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/instrumentation/bedrock/wrapper.ts"],"names":[],"mappings":"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"}