@opentelemetry/instrumentation-aws-sdk 0.51.0 → 0.52.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/build/src/services/bedrock-runtime.d.ts +2 -0
- package/build/src/services/bedrock-runtime.js +260 -0
- package/build/src/services/bedrock-runtime.js.map +1 -1
- package/build/src/version.d.ts +1 -1
- package/build/src/version.js +1 -1
- package/build/src/version.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,7 +4,9 @@ import { AwsSdkInstrumentationConfig, NormalizedRequest, NormalizedResponse } fr
|
|
|
4
4
|
export declare class BedrockRuntimeServiceExtension implements ServiceExtension {
|
|
5
5
|
requestPreSpanHook(request: NormalizedRequest, config: AwsSdkInstrumentationConfig, diag: DiagLogger): RequestMetadata;
|
|
6
6
|
private requestPreSpanHookConverse;
|
|
7
|
+
private requestPreSpanHookInvokeModel;
|
|
7
8
|
responseHook(response: NormalizedResponse, span: Span, tracer: Tracer, config: AwsSdkInstrumentationConfig): void;
|
|
8
9
|
private responseHookConverse;
|
|
10
|
+
private responseHookInvokeModel;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=bedrock-runtime.d.ts.map
|
|
@@ -7,6 +7,8 @@ class BedrockRuntimeServiceExtension {
|
|
|
7
7
|
switch (request.commandName) {
|
|
8
8
|
case 'Converse':
|
|
9
9
|
return this.requestPreSpanHookConverse(request, config, diag);
|
|
10
|
+
case 'InvokeModel':
|
|
11
|
+
return this.requestPreSpanHookInvokeModel(request, config, diag);
|
|
10
12
|
}
|
|
11
13
|
return {
|
|
12
14
|
isIncoming: false,
|
|
@@ -47,6 +49,160 @@ class BedrockRuntimeServiceExtension {
|
|
|
47
49
|
spanAttributes,
|
|
48
50
|
};
|
|
49
51
|
}
|
|
52
|
+
requestPreSpanHookInvokeModel(request, config, diag) {
|
|
53
|
+
let spanName;
|
|
54
|
+
const spanAttributes = {
|
|
55
|
+
[semconv_1.ATTR_GEN_AI_SYSTEM]: semconv_1.GEN_AI_SYSTEM_VALUE_AWS_BEDROCK,
|
|
56
|
+
// add operation name for InvokeModel API
|
|
57
|
+
};
|
|
58
|
+
const modelId = request.commandInput?.modelId;
|
|
59
|
+
if (modelId) {
|
|
60
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MODEL] = modelId;
|
|
61
|
+
}
|
|
62
|
+
if (request.commandInput?.body) {
|
|
63
|
+
const requestBody = JSON.parse(request.commandInput.body);
|
|
64
|
+
if (modelId.includes('amazon.titan')) {
|
|
65
|
+
if (requestBody.textGenerationConfig?.temperature !== undefined) {
|
|
66
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TEMPERATURE] =
|
|
67
|
+
requestBody.textGenerationConfig.temperature;
|
|
68
|
+
}
|
|
69
|
+
if (requestBody.textGenerationConfig?.topP !== undefined) {
|
|
70
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TOP_P] =
|
|
71
|
+
requestBody.textGenerationConfig.topP;
|
|
72
|
+
}
|
|
73
|
+
if (requestBody.textGenerationConfig?.maxTokenCount !== undefined) {
|
|
74
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MAX_TOKENS] =
|
|
75
|
+
requestBody.textGenerationConfig.maxTokenCount;
|
|
76
|
+
}
|
|
77
|
+
if (requestBody.textGenerationConfig?.stopSequences !== undefined) {
|
|
78
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =
|
|
79
|
+
requestBody.textGenerationConfig.stopSequences;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (modelId.includes('amazon.nova')) {
|
|
83
|
+
if (requestBody.inferenceConfig?.temperature !== undefined) {
|
|
84
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TEMPERATURE] =
|
|
85
|
+
requestBody.inferenceConfig.temperature;
|
|
86
|
+
}
|
|
87
|
+
if (requestBody.inferenceConfig?.top_p !== undefined) {
|
|
88
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TOP_P] =
|
|
89
|
+
requestBody.inferenceConfig.top_p;
|
|
90
|
+
}
|
|
91
|
+
if (requestBody.inferenceConfig?.max_new_tokens !== undefined) {
|
|
92
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MAX_TOKENS] =
|
|
93
|
+
requestBody.inferenceConfig.max_new_tokens;
|
|
94
|
+
}
|
|
95
|
+
if (requestBody.inferenceConfig?.stopSequences !== undefined) {
|
|
96
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =
|
|
97
|
+
requestBody.inferenceConfig.stopSequences;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else if (modelId.includes('anthropic.claude')) {
|
|
101
|
+
if (requestBody.max_tokens !== undefined) {
|
|
102
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MAX_TOKENS] =
|
|
103
|
+
requestBody.max_tokens;
|
|
104
|
+
}
|
|
105
|
+
if (requestBody.temperature !== undefined) {
|
|
106
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TEMPERATURE] =
|
|
107
|
+
requestBody.temperature;
|
|
108
|
+
}
|
|
109
|
+
if (requestBody.top_p !== undefined) {
|
|
110
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.top_p;
|
|
111
|
+
}
|
|
112
|
+
if (requestBody.stop_sequences !== undefined) {
|
|
113
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =
|
|
114
|
+
requestBody.stop_sequences;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (modelId.includes('meta.llama')) {
|
|
118
|
+
if (requestBody.max_gen_len !== undefined) {
|
|
119
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MAX_TOKENS] =
|
|
120
|
+
requestBody.max_gen_len;
|
|
121
|
+
}
|
|
122
|
+
if (requestBody.temperature !== undefined) {
|
|
123
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TEMPERATURE] =
|
|
124
|
+
requestBody.temperature;
|
|
125
|
+
}
|
|
126
|
+
if (requestBody.top_p !== undefined) {
|
|
127
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.top_p;
|
|
128
|
+
}
|
|
129
|
+
// request for meta llama models does not contain stop_sequences field
|
|
130
|
+
}
|
|
131
|
+
else if (modelId.includes('cohere.command-r')) {
|
|
132
|
+
if (requestBody.max_tokens !== undefined) {
|
|
133
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MAX_TOKENS] =
|
|
134
|
+
requestBody.max_tokens;
|
|
135
|
+
}
|
|
136
|
+
if (requestBody.temperature !== undefined) {
|
|
137
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TEMPERATURE] =
|
|
138
|
+
requestBody.temperature;
|
|
139
|
+
}
|
|
140
|
+
if (requestBody.p !== undefined) {
|
|
141
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.p;
|
|
142
|
+
}
|
|
143
|
+
if (requestBody.message !== undefined) {
|
|
144
|
+
// NOTE: We approximate the token count since this value is not directly available in the body
|
|
145
|
+
// According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.
|
|
146
|
+
// https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html
|
|
147
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_USAGE_INPUT_TOKENS] = Math.ceil(requestBody.message.length / 6);
|
|
148
|
+
}
|
|
149
|
+
if (requestBody.stop_sequences !== undefined) {
|
|
150
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =
|
|
151
|
+
requestBody.stop_sequences;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else if (modelId.includes('cohere.command')) {
|
|
155
|
+
if (requestBody.max_tokens !== undefined) {
|
|
156
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MAX_TOKENS] =
|
|
157
|
+
requestBody.max_tokens;
|
|
158
|
+
}
|
|
159
|
+
if (requestBody.temperature !== undefined) {
|
|
160
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TEMPERATURE] =
|
|
161
|
+
requestBody.temperature;
|
|
162
|
+
}
|
|
163
|
+
if (requestBody.p !== undefined) {
|
|
164
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.p;
|
|
165
|
+
}
|
|
166
|
+
if (requestBody.prompt !== undefined) {
|
|
167
|
+
// NOTE: We approximate the token count since this value is not directly available in the body
|
|
168
|
+
// According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.
|
|
169
|
+
// https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html
|
|
170
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_USAGE_INPUT_TOKENS] = Math.ceil(requestBody.prompt.length / 6);
|
|
171
|
+
}
|
|
172
|
+
if (requestBody.stop_sequences !== undefined) {
|
|
173
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =
|
|
174
|
+
requestBody.stop_sequences;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else if (modelId.includes('mistral')) {
|
|
178
|
+
if (requestBody.prompt !== undefined) {
|
|
179
|
+
// NOTE: We approximate the token count since this value is not directly available in the body
|
|
180
|
+
// According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.
|
|
181
|
+
// https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html
|
|
182
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_USAGE_INPUT_TOKENS] = Math.ceil(requestBody.prompt.length / 6);
|
|
183
|
+
}
|
|
184
|
+
if (requestBody.max_tokens !== undefined) {
|
|
185
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_MAX_TOKENS] =
|
|
186
|
+
requestBody.max_tokens;
|
|
187
|
+
}
|
|
188
|
+
if (requestBody.temperature !== undefined) {
|
|
189
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TEMPERATURE] =
|
|
190
|
+
requestBody.temperature;
|
|
191
|
+
}
|
|
192
|
+
if (requestBody.top_p !== undefined) {
|
|
193
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.top_p;
|
|
194
|
+
}
|
|
195
|
+
if (requestBody.stop !== undefined) {
|
|
196
|
+
spanAttributes[semconv_1.ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] = requestBody.stop;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return {
|
|
201
|
+
spanName,
|
|
202
|
+
isIncoming: false,
|
|
203
|
+
spanAttributes,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
50
206
|
responseHook(response, span, tracer, config) {
|
|
51
207
|
if (!span.isRecording()) {
|
|
52
208
|
return;
|
|
@@ -54,6 +210,8 @@ class BedrockRuntimeServiceExtension {
|
|
|
54
210
|
switch (response.request.commandName) {
|
|
55
211
|
case 'Converse':
|
|
56
212
|
return this.responseHookConverse(response, span, tracer, config);
|
|
213
|
+
case 'InvokeModel':
|
|
214
|
+
return this.responseHookInvokeModel(response, span, tracer, config);
|
|
57
215
|
}
|
|
58
216
|
}
|
|
59
217
|
responseHookConverse(response, span, tracer, config) {
|
|
@@ -71,6 +229,108 @@ class BedrockRuntimeServiceExtension {
|
|
|
71
229
|
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [stopReason]);
|
|
72
230
|
}
|
|
73
231
|
}
|
|
232
|
+
responseHookInvokeModel(response, span, tracer, config) {
|
|
233
|
+
const currentModelId = response.request.commandInput?.modelId;
|
|
234
|
+
if (response.data?.body) {
|
|
235
|
+
const decodedResponseBody = new TextDecoder().decode(response.data.body);
|
|
236
|
+
const responseBody = JSON.parse(decodedResponseBody);
|
|
237
|
+
if (currentModelId.includes('amazon.titan')) {
|
|
238
|
+
if (responseBody.inputTextTokenCount !== undefined) {
|
|
239
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_INPUT_TOKENS, responseBody.inputTextTokenCount);
|
|
240
|
+
}
|
|
241
|
+
if (responseBody.results?.[0]?.tokenCount !== undefined) {
|
|
242
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, responseBody.results[0].tokenCount);
|
|
243
|
+
}
|
|
244
|
+
if (responseBody.results?.[0]?.completionReason !== undefined) {
|
|
245
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [
|
|
246
|
+
responseBody.results[0].completionReason,
|
|
247
|
+
]);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
else if (currentModelId.includes('amazon.nova')) {
|
|
251
|
+
if (responseBody.usage !== undefined) {
|
|
252
|
+
if (responseBody.usage.inputTokens !== undefined) {
|
|
253
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_INPUT_TOKENS, responseBody.usage.inputTokens);
|
|
254
|
+
}
|
|
255
|
+
if (responseBody.usage.outputTokens !== undefined) {
|
|
256
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, responseBody.usage.outputTokens);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (responseBody.stopReason !== undefined) {
|
|
260
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [
|
|
261
|
+
responseBody.stopReason,
|
|
262
|
+
]);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
else if (currentModelId.includes('anthropic.claude')) {
|
|
266
|
+
if (responseBody.usage?.input_tokens !== undefined) {
|
|
267
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_INPUT_TOKENS, responseBody.usage.input_tokens);
|
|
268
|
+
}
|
|
269
|
+
if (responseBody.usage?.output_tokens !== undefined) {
|
|
270
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, responseBody.usage.output_tokens);
|
|
271
|
+
}
|
|
272
|
+
if (responseBody.stop_reason !== undefined) {
|
|
273
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [
|
|
274
|
+
responseBody.stop_reason,
|
|
275
|
+
]);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
else if (currentModelId.includes('meta.llama')) {
|
|
279
|
+
if (responseBody.prompt_token_count !== undefined) {
|
|
280
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_INPUT_TOKENS, responseBody.prompt_token_count);
|
|
281
|
+
}
|
|
282
|
+
if (responseBody.generation_token_count !== undefined) {
|
|
283
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, responseBody.generation_token_count);
|
|
284
|
+
}
|
|
285
|
+
if (responseBody.stop_reason !== undefined) {
|
|
286
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [
|
|
287
|
+
responseBody.stop_reason,
|
|
288
|
+
]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
else if (currentModelId.includes('cohere.command-r')) {
|
|
292
|
+
if (responseBody.text !== undefined) {
|
|
293
|
+
// NOTE: We approximate the token count since this value is not directly available in the body
|
|
294
|
+
// According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.
|
|
295
|
+
// https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html
|
|
296
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, Math.ceil(responseBody.text.length / 6));
|
|
297
|
+
}
|
|
298
|
+
if (responseBody.finish_reason !== undefined) {
|
|
299
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [
|
|
300
|
+
responseBody.finish_reason,
|
|
301
|
+
]);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
else if (currentModelId.includes('cohere.command')) {
|
|
305
|
+
if (responseBody.generations?.[0]?.text !== undefined) {
|
|
306
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,
|
|
307
|
+
// NOTE: We approximate the token count since this value is not directly available in the body
|
|
308
|
+
// According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.
|
|
309
|
+
// https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html
|
|
310
|
+
Math.ceil(responseBody.generations[0].text.length / 6));
|
|
311
|
+
}
|
|
312
|
+
if (responseBody.generations?.[0]?.finish_reason !== undefined) {
|
|
313
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [
|
|
314
|
+
responseBody.generations[0].finish_reason,
|
|
315
|
+
]);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (currentModelId.includes('mistral')) {
|
|
319
|
+
if (responseBody.outputs?.[0]?.text !== undefined) {
|
|
320
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,
|
|
321
|
+
// NOTE: We approximate the token count since this value is not directly available in the body
|
|
322
|
+
// According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.
|
|
323
|
+
// https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html
|
|
324
|
+
Math.ceil(responseBody.outputs[0].text.length / 6));
|
|
325
|
+
}
|
|
326
|
+
if (responseBody.outputs?.[0]?.stop_reason !== undefined) {
|
|
327
|
+
span.setAttribute(semconv_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [
|
|
328
|
+
responseBody.outputs[0].stop_reason,
|
|
329
|
+
]);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
74
334
|
}
|
|
75
335
|
exports.BedrockRuntimeServiceExtension = BedrockRuntimeServiceExtension;
|
|
76
336
|
//# sourceMappingURL=bedrock-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock-runtime.js","sourceRoot":"","sources":["../../../src/services/bedrock-runtime.ts"],"names":[],"mappings":";;;AAiBA,wCAaoB;AAOpB,MAAa,8BAA8B;IACzC,kBAAkB,CAChB,OAA0B,EAC1B,MAAmC,EACnC,IAAgB;QAEhB,QAAQ,OAAO,CAAC,WAAW,EAAE;YAC3B,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SACjE;QAED,OAAO;YACL,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAChC,OAA0B,EAC1B,MAAmC,EACnC,IAAgB;QAEhB,IAAI,QAAQ,GAAG,0CAAgC,CAAC;QAChD,MAAM,cAAc,GAAe;YACjC,CAAC,4BAAkB,CAAC,EAAE,yCAA+B;YACrD,CAAC,oCAA0B,CAAC,EAAE,0CAAgC;SAC/D,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QAC7C,IAAI,OAAO,EAAE;YACX,cAAc,CAAC,mCAAyB,CAAC,GAAG,OAAO,CAAC;YACpD,IAAI,QAAQ,EAAE;gBACZ,QAAQ,IAAI,IAAI,OAAO,EAAE,CAAC;aAC3B;SACF;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC;QAC7D,IAAI,eAAe,EAAE;YACnB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC;YACxE,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,cAAc,CAAC,wCAA8B,CAAC,GAAG,SAAS,CAAC;aAC5D;YACD,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,cAAc,CAAC,yCAA+B,CAAC,GAAG,WAAW,CAAC;aAC/D;YACD,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,cAAc,CAAC,mCAAyB,CAAC,GAAG,IAAI,CAAC;aAClD;YACD,IAAI,aAAa,KAAK,SAAS,EAAE;gBAC/B,cAAc,CAAC,4CAAkC,CAAC,GAAG,aAAa,CAAC;aACpE;SACF;QAED,OAAO;YACL,QAAQ;YACR,UAAU,EAAE,KAAK;YACjB,cAAc;SACf,CAAC;IACJ,CAAC;IAED,YAAY,CACV,QAA4B,EAC5B,IAAU,EACV,MAAc,EACd,MAAmC;QAEnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,OAAO;SACR;QAED,QAAQ,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE;YACpC,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SACpE;IACH,CAAC;IAEO,oBAAoB,CAC1B,QAA4B,EAC5B,IAAU,EACV,MAAc,EACd,MAAmC;QAEnC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC5C,IAAI,KAAK,EAAE;YACT,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;YAC5C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,wCAA8B,EAAE,WAAW,CAAC,CAAC;aAChE;YACD,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,yCAA+B,EAAE,YAAY,CAAC,CAAC;aAClE;SACF;QAED,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,6CAAmC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;SACtE;IACH,CAAC;CACF;AAhGD,wEAgGC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Attributes, DiagLogger, Span, Tracer } from '@opentelemetry/api';\nimport { RequestMetadata, ServiceExtension } from './ServiceExtension';\nimport {\n ATTR_GEN_AI_SYSTEM,\n ATTR_GEN_AI_OPERATION_NAME,\n ATTR_GEN_AI_REQUEST_MODEL,\n ATTR_GEN_AI_REQUEST_MAX_TOKENS,\n ATTR_GEN_AI_REQUEST_TEMPERATURE,\n ATTR_GEN_AI_REQUEST_TOP_P,\n ATTR_GEN_AI_REQUEST_STOP_SEQUENCES,\n ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n ATTR_GEN_AI_RESPONSE_FINISH_REASONS,\n GEN_AI_OPERATION_NAME_VALUE_CHAT,\n GEN_AI_SYSTEM_VALUE_AWS_BEDROCK,\n} from '../semconv';\nimport {\n AwsSdkInstrumentationConfig,\n NormalizedRequest,\n NormalizedResponse,\n} from '../types';\n\nexport class BedrockRuntimeServiceExtension implements ServiceExtension {\n requestPreSpanHook(\n request: NormalizedRequest,\n config: AwsSdkInstrumentationConfig,\n diag: DiagLogger\n ): RequestMetadata {\n switch (request.commandName) {\n case 'Converse':\n return this.requestPreSpanHookConverse(request, config, diag);\n }\n\n return {\n isIncoming: false,\n };\n }\n\n private requestPreSpanHookConverse(\n request: NormalizedRequest,\n config: AwsSdkInstrumentationConfig,\n diag: DiagLogger\n ): RequestMetadata {\n let spanName = GEN_AI_OPERATION_NAME_VALUE_CHAT;\n const spanAttributes: Attributes = {\n [ATTR_GEN_AI_SYSTEM]: GEN_AI_SYSTEM_VALUE_AWS_BEDROCK,\n [ATTR_GEN_AI_OPERATION_NAME]: GEN_AI_OPERATION_NAME_VALUE_CHAT,\n };\n\n const modelId = request.commandInput.modelId;\n if (modelId) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MODEL] = modelId;\n if (spanName) {\n spanName += ` ${modelId}`;\n }\n }\n\n const inferenceConfig = request.commandInput.inferenceConfig;\n if (inferenceConfig) {\n const { maxTokens, temperature, topP, stopSequences } = inferenceConfig;\n if (maxTokens !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] = maxTokens;\n }\n if (temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] = temperature;\n }\n if (topP !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] = topP;\n }\n if (stopSequences !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] = stopSequences;\n }\n }\n\n return {\n spanName,\n isIncoming: false,\n spanAttributes,\n };\n }\n\n responseHook(\n response: NormalizedResponse,\n span: Span,\n tracer: Tracer,\n config: AwsSdkInstrumentationConfig\n ) {\n if (!span.isRecording()) {\n return;\n }\n\n switch (response.request.commandName) {\n case 'Converse':\n return this.responseHookConverse(response, span, tracer, config);\n }\n }\n\n private responseHookConverse(\n response: NormalizedResponse,\n span: Span,\n tracer: Tracer,\n config: AwsSdkInstrumentationConfig\n ) {\n const { stopReason, usage } = response.data;\n if (usage) {\n const { inputTokens, outputTokens } = usage;\n if (inputTokens !== undefined) {\n span.setAttribute(ATTR_GEN_AI_USAGE_INPUT_TOKENS, inputTokens);\n }\n if (outputTokens !== undefined) {\n span.setAttribute(ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, outputTokens);\n }\n }\n\n if (stopReason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [stopReason]);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"bedrock-runtime.js","sourceRoot":"","sources":["../../../src/services/bedrock-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Attributes, DiagLogger, Span, Tracer } from '@opentelemetry/api';\nimport { RequestMetadata, ServiceExtension } from './ServiceExtension';\nimport {\n ATTR_GEN_AI_SYSTEM,\n ATTR_GEN_AI_OPERATION_NAME,\n ATTR_GEN_AI_REQUEST_MODEL,\n ATTR_GEN_AI_REQUEST_MAX_TOKENS,\n ATTR_GEN_AI_REQUEST_TEMPERATURE,\n ATTR_GEN_AI_REQUEST_TOP_P,\n ATTR_GEN_AI_REQUEST_STOP_SEQUENCES,\n ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n ATTR_GEN_AI_RESPONSE_FINISH_REASONS,\n GEN_AI_OPERATION_NAME_VALUE_CHAT,\n GEN_AI_SYSTEM_VALUE_AWS_BEDROCK,\n} from '../semconv';\nimport {\n AwsSdkInstrumentationConfig,\n NormalizedRequest,\n NormalizedResponse,\n} from '../types';\n\nexport class BedrockRuntimeServiceExtension implements ServiceExtension {\n requestPreSpanHook(\n request: NormalizedRequest,\n config: AwsSdkInstrumentationConfig,\n diag: DiagLogger\n ): RequestMetadata {\n switch (request.commandName) {\n case 'Converse':\n return this.requestPreSpanHookConverse(request, config, diag);\n case 'InvokeModel':\n return this.requestPreSpanHookInvokeModel(request, config, diag);\n }\n\n return {\n isIncoming: false,\n };\n }\n\n private requestPreSpanHookConverse(\n request: NormalizedRequest,\n config: AwsSdkInstrumentationConfig,\n diag: DiagLogger\n ): RequestMetadata {\n let spanName = GEN_AI_OPERATION_NAME_VALUE_CHAT;\n const spanAttributes: Attributes = {\n [ATTR_GEN_AI_SYSTEM]: GEN_AI_SYSTEM_VALUE_AWS_BEDROCK,\n [ATTR_GEN_AI_OPERATION_NAME]: GEN_AI_OPERATION_NAME_VALUE_CHAT,\n };\n\n const modelId = request.commandInput.modelId;\n if (modelId) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MODEL] = modelId;\n if (spanName) {\n spanName += ` ${modelId}`;\n }\n }\n\n const inferenceConfig = request.commandInput.inferenceConfig;\n if (inferenceConfig) {\n const { maxTokens, temperature, topP, stopSequences } = inferenceConfig;\n if (maxTokens !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] = maxTokens;\n }\n if (temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] = temperature;\n }\n if (topP !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] = topP;\n }\n if (stopSequences !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] = stopSequences;\n }\n }\n\n return {\n spanName,\n isIncoming: false,\n spanAttributes,\n };\n }\n\n private requestPreSpanHookInvokeModel(\n request: NormalizedRequest,\n config: AwsSdkInstrumentationConfig,\n diag: DiagLogger\n ): RequestMetadata {\n let spanName: string | undefined;\n const spanAttributes: Attributes = {\n [ATTR_GEN_AI_SYSTEM]: GEN_AI_SYSTEM_VALUE_AWS_BEDROCK,\n // add operation name for InvokeModel API\n };\n\n const modelId = request.commandInput?.modelId;\n if (modelId) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MODEL] = modelId;\n }\n\n if (request.commandInput?.body) {\n const requestBody = JSON.parse(request.commandInput.body);\n if (modelId.includes('amazon.titan')) {\n if (requestBody.textGenerationConfig?.temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] =\n requestBody.textGenerationConfig.temperature;\n }\n if (requestBody.textGenerationConfig?.topP !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] =\n requestBody.textGenerationConfig.topP;\n }\n if (requestBody.textGenerationConfig?.maxTokenCount !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] =\n requestBody.textGenerationConfig.maxTokenCount;\n }\n if (requestBody.textGenerationConfig?.stopSequences !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =\n requestBody.textGenerationConfig.stopSequences;\n }\n } else if (modelId.includes('amazon.nova')) {\n if (requestBody.inferenceConfig?.temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] =\n requestBody.inferenceConfig.temperature;\n }\n if (requestBody.inferenceConfig?.top_p !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] =\n requestBody.inferenceConfig.top_p;\n }\n if (requestBody.inferenceConfig?.max_new_tokens !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] =\n requestBody.inferenceConfig.max_new_tokens;\n }\n if (requestBody.inferenceConfig?.stopSequences !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =\n requestBody.inferenceConfig.stopSequences;\n }\n } else if (modelId.includes('anthropic.claude')) {\n if (requestBody.max_tokens !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] =\n requestBody.max_tokens;\n }\n if (requestBody.temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] =\n requestBody.temperature;\n }\n if (requestBody.top_p !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.top_p;\n }\n if (requestBody.stop_sequences !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =\n requestBody.stop_sequences;\n }\n } else if (modelId.includes('meta.llama')) {\n if (requestBody.max_gen_len !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] =\n requestBody.max_gen_len;\n }\n if (requestBody.temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] =\n requestBody.temperature;\n }\n if (requestBody.top_p !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.top_p;\n }\n // request for meta llama models does not contain stop_sequences field\n } else if (modelId.includes('cohere.command-r')) {\n if (requestBody.max_tokens !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] =\n requestBody.max_tokens;\n }\n if (requestBody.temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] =\n requestBody.temperature;\n }\n if (requestBody.p !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.p;\n }\n if (requestBody.message !== undefined) {\n // NOTE: We approximate the token count since this value is not directly available in the body\n // According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.\n // https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html\n spanAttributes[ATTR_GEN_AI_USAGE_INPUT_TOKENS] = Math.ceil(\n requestBody.message.length / 6\n );\n }\n if (requestBody.stop_sequences !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =\n requestBody.stop_sequences;\n }\n } else if (modelId.includes('cohere.command')) {\n if (requestBody.max_tokens !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] =\n requestBody.max_tokens;\n }\n if (requestBody.temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] =\n requestBody.temperature;\n }\n if (requestBody.p !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.p;\n }\n if (requestBody.prompt !== undefined) {\n // NOTE: We approximate the token count since this value is not directly available in the body\n // According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.\n // https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html\n spanAttributes[ATTR_GEN_AI_USAGE_INPUT_TOKENS] = Math.ceil(\n requestBody.prompt.length / 6\n );\n }\n if (requestBody.stop_sequences !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] =\n requestBody.stop_sequences;\n }\n } else if (modelId.includes('mistral')) {\n if (requestBody.prompt !== undefined) {\n // NOTE: We approximate the token count since this value is not directly available in the body\n // According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.\n // https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html\n spanAttributes[ATTR_GEN_AI_USAGE_INPUT_TOKENS] = Math.ceil(\n requestBody.prompt.length / 6\n );\n }\n if (requestBody.max_tokens !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_MAX_TOKENS] =\n requestBody.max_tokens;\n }\n if (requestBody.temperature !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TEMPERATURE] =\n requestBody.temperature;\n }\n if (requestBody.top_p !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_TOP_P] = requestBody.top_p;\n }\n if (requestBody.stop !== undefined) {\n spanAttributes[ATTR_GEN_AI_REQUEST_STOP_SEQUENCES] = requestBody.stop;\n }\n }\n }\n\n return {\n spanName,\n isIncoming: false,\n spanAttributes,\n };\n }\n\n responseHook(\n response: NormalizedResponse,\n span: Span,\n tracer: Tracer,\n config: AwsSdkInstrumentationConfig\n ) {\n if (!span.isRecording()) {\n return;\n }\n\n switch (response.request.commandName) {\n case 'Converse':\n return this.responseHookConverse(response, span, tracer, config);\n case 'InvokeModel':\n return this.responseHookInvokeModel(response, span, tracer, config);\n }\n }\n\n private responseHookConverse(\n response: NormalizedResponse,\n span: Span,\n tracer: Tracer,\n config: AwsSdkInstrumentationConfig\n ) {\n const { stopReason, usage } = response.data;\n if (usage) {\n const { inputTokens, outputTokens } = usage;\n if (inputTokens !== undefined) {\n span.setAttribute(ATTR_GEN_AI_USAGE_INPUT_TOKENS, inputTokens);\n }\n if (outputTokens !== undefined) {\n span.setAttribute(ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, outputTokens);\n }\n }\n\n if (stopReason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [stopReason]);\n }\n }\n\n private responseHookInvokeModel(\n response: NormalizedResponse,\n span: Span,\n tracer: Tracer,\n config: AwsSdkInstrumentationConfig\n ) {\n const currentModelId = response.request.commandInput?.modelId;\n if (response.data?.body) {\n const decodedResponseBody = new TextDecoder().decode(response.data.body);\n const responseBody = JSON.parse(decodedResponseBody);\n if (currentModelId.includes('amazon.titan')) {\n if (responseBody.inputTextTokenCount !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n responseBody.inputTextTokenCount\n );\n }\n if (responseBody.results?.[0]?.tokenCount !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n responseBody.results[0].tokenCount\n );\n }\n if (responseBody.results?.[0]?.completionReason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [\n responseBody.results[0].completionReason,\n ]);\n }\n } else if (currentModelId.includes('amazon.nova')) {\n if (responseBody.usage !== undefined) {\n if (responseBody.usage.inputTokens !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n responseBody.usage.inputTokens\n );\n }\n if (responseBody.usage.outputTokens !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n responseBody.usage.outputTokens\n );\n }\n }\n if (responseBody.stopReason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [\n responseBody.stopReason,\n ]);\n }\n } else if (currentModelId.includes('anthropic.claude')) {\n if (responseBody.usage?.input_tokens !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n responseBody.usage.input_tokens\n );\n }\n if (responseBody.usage?.output_tokens !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n responseBody.usage.output_tokens\n );\n }\n if (responseBody.stop_reason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [\n responseBody.stop_reason,\n ]);\n }\n } else if (currentModelId.includes('meta.llama')) {\n if (responseBody.prompt_token_count !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n responseBody.prompt_token_count\n );\n }\n if (responseBody.generation_token_count !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n responseBody.generation_token_count\n );\n }\n if (responseBody.stop_reason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [\n responseBody.stop_reason,\n ]);\n }\n } else if (currentModelId.includes('cohere.command-r')) {\n if (responseBody.text !== undefined) {\n // NOTE: We approximate the token count since this value is not directly available in the body\n // According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.\n // https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html\n span.setAttribute(\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n Math.ceil(responseBody.text.length / 6)\n );\n }\n if (responseBody.finish_reason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [\n responseBody.finish_reason,\n ]);\n }\n } else if (currentModelId.includes('cohere.command')) {\n if (responseBody.generations?.[0]?.text !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n // NOTE: We approximate the token count since this value is not directly available in the body\n // According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.\n // https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html\n Math.ceil(responseBody.generations[0].text.length / 6)\n );\n }\n if (responseBody.generations?.[0]?.finish_reason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [\n responseBody.generations[0].finish_reason,\n ]);\n }\n } else if (currentModelId.includes('mistral')) {\n if (responseBody.outputs?.[0]?.text !== undefined) {\n span.setAttribute(\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n // NOTE: We approximate the token count since this value is not directly available in the body\n // According to Bedrock docs they use (total_chars / 6) to approximate token count for pricing.\n // https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html\n Math.ceil(responseBody.outputs[0].text.length / 6)\n );\n }\n if (responseBody.outputs?.[0]?.stop_reason !== undefined) {\n span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, [\n responseBody.outputs[0].stop_reason,\n ]);\n }\n }\n }\n }\n}\n"]}
|
package/build/src/version.d.ts
CHANGED
package/build/src/version.js
CHANGED
|
@@ -17,6 +17,6 @@
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;
|
|
19
19
|
// this is autogenerated file, see scripts/version-update.js
|
|
20
|
-
exports.PACKAGE_VERSION = '0.
|
|
20
|
+
exports.PACKAGE_VERSION = '0.52.0';
|
|
21
21
|
exports.PACKAGE_NAME = '@opentelemetry/instrumentation-aws-sdk';
|
|
22
22
|
//# sourceMappingURL=version.js.map
|
package/build/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,4DAA4D;AAC/C,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,YAAY,GAAG,wCAAwC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,4DAA4D;AAC/C,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,YAAY,GAAG,wCAAwC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.52.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-aws-sdk';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentelemetry/instrumentation-aws-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.52.0",
|
|
4
4
|
"description": "OpenTelemetry instrumentation for `aws-sdk` and `@aws-sdk/client-*` clients for various AWS services",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"eslint": "8.7.0",
|
|
69
69
|
"expect": "29.2.0",
|
|
70
70
|
"nock": "13.3.3",
|
|
71
|
-
"nyc": "
|
|
71
|
+
"nyc": "17.1.0",
|
|
72
72
|
"rimraf": "5.0.10",
|
|
73
73
|
"sinon": "15.2.0",
|
|
74
74
|
"test-all-versions": "6.1.0",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"engines": {
|
|
78
78
|
"node": "^18.19.0 || >=20.6.0"
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "a99ba69d9646d8861161b29c0d6ccb91508b7b61"
|
|
81
81
|
}
|