Skip to content

Commit 2c9def0

Browse files
authored
fix(core): Report well known values in gen_ai.operation.name attribute (#18925)
AI integrations should follow OTel spec and report the gen_ai.operation.name with the values listed in sentry conventions if applies getsentry/sentry-conventions#225, this PR renames gen_ai.operation so that if one of values applies, then that value MUST be used. Closes https://linear.app/getsentry/issue/JS-1527/report-well-known-values-in-gen-aioperationname-attribute
1 parent c5e3249 commit 2c9def0

File tree

22 files changed

+360
-307
lines changed

22 files changed

+360
-307
lines changed

dev-packages/browser-integration-tests/suites/tracing/ai-providers/anthropic/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ sentryTest('manual Anthropic instrumentation sends gen_ai transactions', async (
2020
const eventData = envelopeRequestParser(req);
2121

2222
// Verify it's a gen_ai transaction
23-
expect(eventData.transaction).toBe('messages claude-3-haiku-20240307');
24-
expect(eventData.contexts?.trace?.op).toBe('gen_ai.messages');
23+
expect(eventData.transaction).toBe('chat claude-3-haiku-20240307');
24+
expect(eventData.contexts?.trace?.op).toBe('gen_ai.chat');
2525
expect(eventData.contexts?.trace?.origin).toBe('auto.ai.anthropic');
2626
expect(eventData.contexts?.trace?.data).toMatchObject({
27-
'gen_ai.operation.name': 'messages',
27+
'gen_ai.operation.name': 'chat',
2828
'gen_ai.system': 'anthropic',
2929
'gen_ai.request.model': 'claude-3-haiku-20240307',
3030
'gen_ai.request.temperature': 0.7,

dev-packages/cloudflare-integration-tests/suites/tracing/anthropic-ai/test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ it('traces a basic message creation request', async ({ signal }) => {
2828
expect.arrayContaining([
2929
expect.objectContaining({
3030
data: expect.objectContaining({
31-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'messages',
32-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.messages',
31+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'chat',
32+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat',
3333
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.anthropic',
3434
[GEN_AI_SYSTEM_ATTRIBUTE]: 'anthropic',
3535
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'claude-3-haiku-20240307',
@@ -39,8 +39,8 @@ it('traces a basic message creation request', async ({ signal }) => {
3939
[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: 10,
4040
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 15,
4141
}),
42-
description: 'messages claude-3-haiku-20240307',
43-
op: 'gen_ai.messages',
42+
description: 'chat claude-3-haiku-20240307',
43+
op: 'gen_ai.chat',
4444
origin: 'auto.ai.anthropic',
4545
}),
4646
]),

dev-packages/cloudflare-integration-tests/suites/tracing/google-genai/test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ it('traces Google GenAI chat creation and message sending', async () => {
6262
// Third span - models.generateContent
6363
expect.objectContaining({
6464
data: expect.objectContaining({
65-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
66-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
65+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
66+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
6767
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
6868
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
6969
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-1.5-flash',
@@ -74,8 +74,8 @@ it('traces Google GenAI chat creation and message sending', async () => {
7474
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 12,
7575
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 20,
7676
}),
77-
description: 'models gemini-1.5-flash',
78-
op: 'gen_ai.models',
77+
description: 'generate_content gemini-1.5-flash',
78+
op: 'gen_ai.generate_content',
7979
origin: 'auto.ai.google_genai',
8080
}),
8181
]),

dev-packages/node-integration-tests/suites/tracing/anthropic/test.ts

Lines changed: 74 additions & 74 deletions
Large diffs are not rendered by default.

dev-packages/node-integration-tests/suites/tracing/google-genai/test.ts

Lines changed: 60 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ describe('Google GenAI integration', () => {
6666
// Third span - models.generateContent
6767
expect.objectContaining({
6868
data: {
69-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
70-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
69+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
70+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
7171
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
7272
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
7373
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-1.5-flash',
@@ -78,22 +78,22 @@ describe('Google GenAI integration', () => {
7878
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 12,
7979
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 20,
8080
},
81-
description: 'models gemini-1.5-flash',
82-
op: 'gen_ai.models',
81+
description: 'generate_content gemini-1.5-flash',
82+
op: 'gen_ai.generate_content',
8383
origin: 'auto.ai.google_genai',
8484
status: 'ok',
8585
}),
8686
// Fourth span - error handling
8787
expect.objectContaining({
8888
data: {
89-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
90-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
89+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
90+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
9191
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
9292
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
9393
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'error-model',
9494
},
95-
description: 'models error-model',
96-
op: 'gen_ai.models',
95+
description: 'generate_content error-model',
96+
op: 'gen_ai.generate_content',
9797
origin: 'auto.ai.google_genai',
9898
status: 'internal_error',
9999
}),
@@ -143,8 +143,8 @@ describe('Google GenAI integration', () => {
143143
// Third span - models.generateContent with PII
144144
expect.objectContaining({
145145
data: expect.objectContaining({
146-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
147-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
146+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
147+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
148148
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
149149
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
150150
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-1.5-flash',
@@ -157,23 +157,23 @@ describe('Google GenAI integration', () => {
157157
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 12,
158158
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 20,
159159
}),
160-
description: 'models gemini-1.5-flash',
161-
op: 'gen_ai.models',
160+
description: 'generate_content gemini-1.5-flash',
161+
op: 'gen_ai.generate_content',
162162
origin: 'auto.ai.google_genai',
163163
status: 'ok',
164164
}),
165165
// Fourth span - error handling with PII
166166
expect.objectContaining({
167167
data: expect.objectContaining({
168-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
169-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
168+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
169+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
170170
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
171171
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
172172
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'error-model',
173173
[GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: expect.any(String), // Should include contents when recordInputs: true
174174
}),
175-
description: 'models error-model',
176-
op: 'gen_ai.models',
175+
description: 'generate_content error-model',
176+
op: 'gen_ai.generate_content',
177177
origin: 'auto.ai.google_genai',
178178
status: 'internal_error',
179179
}),
@@ -233,8 +233,8 @@ describe('Google GenAI integration', () => {
233233
// Non-streaming with tools
234234
expect.objectContaining({
235235
data: expect.objectContaining({
236-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
237-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
236+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
237+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
238238
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
239239
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
240240
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-2.0-flash-001',
@@ -246,16 +246,16 @@ describe('Google GenAI integration', () => {
246246
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 8,
247247
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 23,
248248
}),
249-
description: 'models gemini-2.0-flash-001',
250-
op: 'gen_ai.models',
249+
description: 'generate_content gemini-2.0-flash-001',
250+
op: 'gen_ai.generate_content',
251251
origin: 'auto.ai.google_genai',
252252
status: 'ok',
253253
}),
254254
// Streaming with tools
255255
expect.objectContaining({
256256
data: expect.objectContaining({
257-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
258-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
257+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
258+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
259259
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
260260
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
261261
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-2.0-flash-001',
@@ -270,16 +270,16 @@ describe('Google GenAI integration', () => {
270270
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 10,
271271
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 22,
272272
}),
273-
description: 'models gemini-2.0-flash-001 stream-response',
274-
op: 'gen_ai.models',
273+
description: 'generate_content gemini-2.0-flash-001 stream-response',
274+
op: 'gen_ai.generate_content',
275275
origin: 'auto.ai.google_genai',
276276
status: 'ok',
277277
}),
278278
// Without tools for comparison
279279
expect.objectContaining({
280280
data: expect.objectContaining({
281-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
282-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
281+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
282+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
283283
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
284284
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
285285
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-2.0-flash-001',
@@ -289,8 +289,8 @@ describe('Google GenAI integration', () => {
289289
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 12,
290290
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 20,
291291
}),
292-
description: 'models gemini-2.0-flash-001',
293-
op: 'gen_ai.models',
292+
description: 'generate_content gemini-2.0-flash-001',
293+
op: 'gen_ai.generate_content',
294294
origin: 'auto.ai.google_genai',
295295
status: 'ok',
296296
}),
@@ -309,8 +309,8 @@ describe('Google GenAI integration', () => {
309309
// First span - models.generateContentStream (streaming)
310310
expect.objectContaining({
311311
data: expect.objectContaining({
312-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
313-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
312+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
313+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
314314
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
315315
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
316316
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-1.5-flash',
@@ -325,8 +325,8 @@ describe('Google GenAI integration', () => {
325325
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 12,
326326
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 22,
327327
}),
328-
description: 'models gemini-1.5-flash stream-response',
329-
op: 'gen_ai.models',
328+
description: 'generate_content gemini-1.5-flash stream-response',
329+
op: 'gen_ai.generate_content',
330330
origin: 'auto.ai.google_genai',
331331
status: 'ok',
332332
}),
@@ -367,24 +367,24 @@ describe('Google GenAI integration', () => {
367367
// Fourth span - blocked content streaming
368368
expect.objectContaining({
369369
data: expect.objectContaining({
370-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
371-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
370+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
371+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
372372
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
373373
}),
374-
description: 'models blocked-model stream-response',
375-
op: 'gen_ai.models',
374+
description: 'generate_content blocked-model stream-response',
375+
op: 'gen_ai.generate_content',
376376
origin: 'auto.ai.google_genai',
377377
status: 'internal_error',
378378
}),
379379
// Fifth span - error handling for streaming
380380
expect.objectContaining({
381381
data: expect.objectContaining({
382-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
383-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
382+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
383+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
384384
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
385385
}),
386-
description: 'models error-model stream-response',
387-
op: 'gen_ai.models',
386+
description: 'generate_content error-model stream-response',
387+
op: 'gen_ai.generate_content',
388388
origin: 'auto.ai.google_genai',
389389
status: 'internal_error',
390390
}),
@@ -397,8 +397,8 @@ describe('Google GenAI integration', () => {
397397
// First span - models.generateContentStream (streaming) with PII
398398
expect.objectContaining({
399399
data: expect.objectContaining({
400-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
401-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
400+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
401+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
402402
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
403403
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
404404
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-1.5-flash',
@@ -414,8 +414,8 @@ describe('Google GenAI integration', () => {
414414
[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: 12,
415415
[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: 22,
416416
}),
417-
description: 'models gemini-1.5-flash stream-response',
418-
op: 'gen_ai.models',
417+
description: 'generate_content gemini-1.5-flash stream-response',
418+
op: 'gen_ai.generate_content',
419419
origin: 'auto.ai.google_genai',
420420
status: 'ok',
421421
}),
@@ -461,33 +461,33 @@ describe('Google GenAI integration', () => {
461461
// Fourth span - blocked content stream with PII
462462
expect.objectContaining({
463463
data: expect.objectContaining({
464-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
465-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
464+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
465+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
466466
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
467467
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
468468
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'blocked-model',
469469
[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE]: 0.7,
470470
[GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: expect.any(String), // Should include contents when recordInputs: true
471471
[GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,
472472
}),
473-
description: 'models blocked-model stream-response',
474-
op: 'gen_ai.models',
473+
description: 'generate_content blocked-model stream-response',
474+
op: 'gen_ai.generate_content',
475475
origin: 'auto.ai.google_genai',
476476
status: 'internal_error',
477477
}),
478478
// Fifth span - error handling for streaming with PII
479479
expect.objectContaining({
480480
data: expect.objectContaining({
481-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
482-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
481+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
482+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
483483
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
484484
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
485485
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'error-model',
486486
[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE]: 0.7,
487487
[GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: expect.any(String), // Should include contents when recordInputs: true
488488
}),
489-
description: 'models error-model stream-response',
490-
op: 'gen_ai.models',
489+
description: 'generate_content error-model stream-response',
490+
op: 'gen_ai.generate_content',
491491
origin: 'auto.ai.google_genai',
492492
status: 'internal_error',
493493
}),
@@ -525,8 +525,8 @@ describe('Google GenAI integration', () => {
525525
// First call: Last message is large and gets truncated (only C's remain, D's are cropped)
526526
expect.objectContaining({
527527
data: expect.objectContaining({
528-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
529-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
528+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
529+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
530530
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
531531
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
532532
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-1.5-flash',
@@ -535,16 +535,16 @@ describe('Google GenAI integration', () => {
535535
/^\[\{"role":"user","parts":\[\{"text":"C+"\}\]\}\]$/,
536536
),
537537
}),
538-
description: 'models gemini-1.5-flash',
539-
op: 'gen_ai.models',
538+
description: 'generate_content gemini-1.5-flash',
539+
op: 'gen_ai.generate_content',
540540
origin: 'auto.ai.google_genai',
541541
status: 'ok',
542542
}),
543543
// Second call: Last message is small and kept without truncation
544544
expect.objectContaining({
545545
data: expect.objectContaining({
546-
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'models',
547-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.models',
546+
[GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'generate_content',
547+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.generate_content',
548548
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',
549549
[GEN_AI_SYSTEM_ATTRIBUTE]: 'google_genai',
550550
[GEN_AI_REQUEST_MODEL_ATTRIBUTE]: 'gemini-1.5-flash',
@@ -556,8 +556,8 @@ describe('Google GenAI integration', () => {
556556
},
557557
]),
558558
}),
559-
description: 'models gemini-1.5-flash',
560-
op: 'gen_ai.models',
559+
description: 'generate_content gemini-1.5-flash',
560+
op: 'gen_ai.generate_content',
561561
origin: 'auto.ai.google_genai',
562562
status: 'ok',
563563
}),

dev-packages/node-integration-tests/suites/tracing/langchain/test.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -303,8 +303,7 @@ describe('LangChain integration', () => {
303303
// First call: Direct Anthropic call made BEFORE LangChain import
304304
// This should have Anthropic instrumentation (origin: 'auto.ai.anthropic')
305305
const firstAnthropicSpan = spans.find(
306-
span =>
307-
span.description === 'messages claude-3-5-sonnet-20241022' && span.origin === 'auto.ai.anthropic',
306+
span => span.description === 'chat claude-3-5-sonnet-20241022' && span.origin === 'auto.ai.anthropic',
308307
);
309308

310309
// Second call: LangChain call
@@ -317,8 +316,7 @@ describe('LangChain integration', () => {
317316
// This should NOT have Anthropic instrumentation (skip works correctly)
318317
// Count how many Anthropic spans we have - should be exactly 1
319318
const anthropicSpans = spans.filter(
320-
span =>
321-
span.description === 'messages claude-3-5-sonnet-20241022' && span.origin === 'auto.ai.anthropic',
319+
span => span.description === 'chat claude-3-5-sonnet-20241022' && span.origin === 'auto.ai.anthropic',
322320
);
323321

324322
// Verify the edge case limitation:

0 commit comments

Comments
 (0)