Skip to content

Commit 901dfe1

Browse files
committed
we dont need the composed name
1 parent 4a4c2ea commit 901dfe1

File tree

2 files changed

+43
-50
lines changed
  • dev-packages/node-integration-tests/suites/tracing/anthropic
  • packages/core/src/utils/ai

2 files changed

+43
-50
lines changed

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

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ describe('Anthropic integration', () => {
1212
// First span - basic message completion without PII
1313
expect.objectContaining({
1414
data: {
15-
'gen_ai.operation.name': 'messages.create',
16-
'sentry.op': 'gen_ai.messages.create',
15+
'gen_ai.operation.name': 'messages',
16+
'sentry.op': 'gen_ai.messages',
1717
'sentry.origin': 'auto.ai.anthropic',
1818
'gen_ai.system': 'anthropic',
1919
'gen_ai.request.model': 'claude-3-haiku-20240307',
@@ -25,53 +25,53 @@ describe('Anthropic integration', () => {
2525
'gen_ai.usage.output_tokens': 15,
2626
'gen_ai.usage.total_tokens': 25,
2727
},
28-
description: 'messages.create claude-3-haiku-20240307',
29-
op: 'gen_ai.messages.create',
28+
description: 'messages claude-3-haiku-20240307',
29+
op: 'gen_ai.messages',
3030
origin: 'auto.ai.anthropic',
3131
status: 'ok',
3232
}),
3333
// Second span - error handling
3434
expect.objectContaining({
3535
data: {
36-
'gen_ai.operation.name': 'messages.create',
37-
'sentry.op': 'gen_ai.messages.create',
36+
'gen_ai.operation.name': 'messages',
37+
'sentry.op': 'gen_ai.messages',
3838
'sentry.origin': 'auto.ai.anthropic',
3939
'gen_ai.system': 'anthropic',
4040
'gen_ai.request.model': 'error-model',
4141
},
42-
description: 'messages.create error-model',
43-
op: 'gen_ai.messages.create',
42+
description: 'messages error-model',
43+
op: 'gen_ai.messages',
4444
origin: 'auto.ai.anthropic',
4545
status: 'unknown_error',
4646
}),
4747
// Third span - token counting (no response.text because recordOutputs=false by default)
4848
expect.objectContaining({
4949
data: {
50-
'gen_ai.operation.name': 'messages.countTokens',
51-
'sentry.op': 'gen_ai.messages.countTokens',
50+
'gen_ai.operation.name': 'messages',
51+
'sentry.op': 'gen_ai.messages',
5252
'sentry.origin': 'auto.ai.anthropic',
5353
'gen_ai.system': 'anthropic',
5454
'gen_ai.request.model': 'claude-3-haiku-20240307',
5555
},
56-
description: 'messages.countTokens claude-3-haiku-20240307',
57-
op: 'gen_ai.messages.countTokens',
56+
description: 'messages claude-3-haiku-20240307',
57+
op: 'gen_ai.messages',
5858
origin: 'auto.ai.anthropic',
5959
status: 'ok',
6060
}),
6161
// Fourth span - models.retrieve
6262
expect.objectContaining({
6363
data: {
6464
'anthropic.response.timestamp': '2024-05-08T05:20:00.000Z',
65-
'gen_ai.operation.name': 'retrieve',
66-
'sentry.op': 'gen_ai.retrieve',
65+
'gen_ai.operation.name': 'models',
66+
'sentry.op': 'gen_ai.models',
6767
'sentry.origin': 'auto.ai.anthropic',
6868
'gen_ai.system': 'anthropic',
6969
'gen_ai.request.model': 'claude-3-haiku-20240307',
7070
'gen_ai.response.id': 'claude-3-haiku-20240307',
7171
'gen_ai.response.model': 'claude-3-haiku-20240307',
7272
},
73-
description: 'retrieve claude-3-haiku-20240307',
74-
op: 'gen_ai.retrieve',
73+
description: 'models claude-3-haiku-20240307',
74+
op: 'gen_ai.models',
7575
origin: 'auto.ai.anthropic',
7676
status: 'ok',
7777
}),
@@ -84,8 +84,8 @@ describe('Anthropic integration', () => {
8484
// First span - basic message completion with PII
8585
expect.objectContaining({
8686
data: {
87-
'gen_ai.operation.name': 'messages.create',
88-
'sentry.op': 'gen_ai.messages.create',
87+
'gen_ai.operation.name': 'messages',
88+
'sentry.op': 'gen_ai.messages',
8989
'sentry.origin': 'auto.ai.anthropic',
9090
'gen_ai.system': 'anthropic',
9191
'gen_ai.request.model': 'claude-3-haiku-20240307',
@@ -99,57 +99,56 @@ describe('Anthropic integration', () => {
9999
'gen_ai.usage.output_tokens': 15,
100100
'gen_ai.usage.total_tokens': 25,
101101
},
102-
description: 'messages.create claude-3-haiku-20240307',
103-
op: 'gen_ai.messages.create',
102+
description: 'messages claude-3-haiku-20240307',
103+
op: 'gen_ai.messages',
104104
origin: 'auto.ai.anthropic',
105105
status: 'ok',
106106
}),
107107
// Second span - error handling with PII
108108
expect.objectContaining({
109109
data: {
110-
'gen_ai.operation.name': 'messages.create',
111-
'sentry.op': 'gen_ai.messages.create',
110+
'gen_ai.operation.name': 'messages',
111+
'sentry.op': 'gen_ai.messages',
112112
'sentry.origin': 'auto.ai.anthropic',
113113
'gen_ai.system': 'anthropic',
114114
'gen_ai.request.model': 'error-model',
115115
'gen_ai.request.messages': '[{"role":"user","content":"This will fail"}]',
116116
},
117-
description: 'messages.create error-model',
118-
op: 'gen_ai.messages.create',
119-
117+
description: 'messages error-model',
118+
op: 'gen_ai.messages',
120119
origin: 'auto.ai.anthropic',
121120
status: 'unknown_error',
122121
}),
123122
// Third span - token counting with PII (response.text is present because sendDefaultPii=true enables recordOutputs)
124123
expect.objectContaining({
125124
data: {
126-
'gen_ai.operation.name': 'messages.countTokens',
127-
'sentry.op': 'gen_ai.messages.countTokens',
125+
'gen_ai.operation.name': 'messages',
126+
'sentry.op': 'gen_ai.messages',
128127
'sentry.origin': 'auto.ai.anthropic',
129128
'gen_ai.system': 'anthropic',
130129
'gen_ai.request.model': 'claude-3-haiku-20240307',
131130
'gen_ai.request.messages': '[{"role":"user","content":"What is the capital of France?"}]',
132131
'gen_ai.response.text': '15', // Only present because recordOutputs=true when sendDefaultPii=true
133132
},
134-
description: 'messages.countTokens claude-3-haiku-20240307',
135-
op: 'gen_ai.messages.countTokens',
133+
description: 'messages claude-3-haiku-20240307',
134+
op: 'gen_ai.messages',
136135
origin: 'auto.ai.anthropic',
137136
status: 'ok',
138137
}),
139138
// Fourth span - models.retrieve with PII
140139
expect.objectContaining({
141140
data: {
142141
'anthropic.response.timestamp': '2024-05-08T05:20:00.000Z',
143-
'gen_ai.operation.name': 'retrieve',
144-
'sentry.op': 'gen_ai.retrieve',
142+
'gen_ai.operation.name': 'models',
143+
'sentry.op': 'gen_ai.models',
145144
'sentry.origin': 'auto.ai.anthropic',
146145
'gen_ai.system': 'anthropic',
147146
'gen_ai.request.model': 'claude-3-haiku-20240307',
148147
'gen_ai.response.id': 'claude-3-haiku-20240307',
149148
'gen_ai.response.model': 'claude-3-haiku-20240307',
150149
},
151-
description: 'retrieve claude-3-haiku-20240307',
152-
op: 'gen_ai.retrieve',
150+
description: 'models claude-3-haiku-20240307',
151+
op: 'gen_ai.models',
153152
origin: 'auto.ai.anthropic',
154153
status: 'ok',
155154
}),
@@ -169,23 +168,23 @@ describe('Anthropic integration', () => {
169168
// Check token counting with options
170169
expect.objectContaining({
171170
data: expect.objectContaining({
172-
'gen_ai.operation.name': 'messages.countTokens',
171+
'gen_ai.operation.name': 'messages',
173172
'gen_ai.request.messages': expect.any(String), // Should include messages when recordInputs: true
174173
'gen_ai.response.text': '15', // Present because recordOutputs=true is set in options
175174
}),
176-
op: 'gen_ai.messages.countTokens',
175+
op: 'gen_ai.messages',
177176
}),
178177
// Check models.retrieve with options
179178
expect.objectContaining({
180179
data: expect.objectContaining({
181-
'gen_ai.operation.name': 'retrieve',
180+
'gen_ai.operation.name': 'models',
182181
'gen_ai.system': 'anthropic',
183182
'gen_ai.request.model': 'claude-3-haiku-20240307',
184183
'gen_ai.response.id': 'claude-3-haiku-20240307',
185184
'gen_ai.response.model': 'claude-3-haiku-20240307',
186185
}),
187-
op: 'gen_ai.retrieve',
188-
description: 'retrieve claude-3-haiku-20240307',
186+
op: 'gen_ai.models',
187+
description: 'models claude-3-haiku-20240307',
189188
}),
190189
]),
191190
};

packages/core/src/utils/ai/utils.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,14 @@ import {
1111
* Maps AI method paths to Sentry operation name
1212
*/
1313
export function getFinalOperationName(methodPath: string): string {
14-
if (methodPath.includes('messages.create')) {
15-
return 'messages.create';
14+
if (methodPath.includes('messages')) {
15+
return 'messages';
1616
}
17-
if (methodPath.includes('messages.countTokens')) {
18-
return 'messages.countTokens';
17+
if (methodPath.includes('completions')) {
18+
return 'completions';
1919
}
20-
if (methodPath.includes('completions.create')) {
21-
return 'completions.create';
22-
}
23-
if (methodPath.includes('models.list')) {
24-
return 'models.list';
25-
}
26-
if (methodPath.includes('models.get')) {
27-
return 'models.get';
20+
if (methodPath.includes('models')) {
21+
return 'models';
2822
}
2923
return methodPath.split('.').pop() || 'unknown';
3024
}

0 commit comments

Comments
 (0)