Skip to content

Commit f10783e

Browse files
committed
extract model_provider from base_url
1 parent c781832 commit f10783e

File tree

5 files changed

+13
-10
lines changed

5 files changed

+13
-10
lines changed

dd-java-agent/instrumentation/openai-java/openai-java-3.0/src/main/java/datadog/trace/instrumentation/openai_java/ChatCompletionDecorator.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ public void withChatCompletionCreateParams(
3131
AgentSpan span, ChatCompletionCreateParams params, boolean stream) {
3232
span.setResourceName(CHAT_COMPLETIONS_CREATE);
3333
span.setTag(CommonTags.OPENAI_REQUEST_ENDPOINT, "/v1/chat/completions");
34-
span.setTag(CommonTags.OPENAI_REQUEST_METHOD, "POST");
3534
if (!llmObsEnabled) {
3635
return;
3736
}
@@ -99,7 +98,6 @@ public void withChatCompletion(AgentSpan span, ChatCompletion completion) {
9998
String modelName = completion.model();
10099
span.setTag(CommonTags.OPENAI_RESPONSE_MODEL, modelName);
101100
span.setTag(CommonTags.MODEL_NAME, modelName);
102-
span.setTag(CommonTags.MODEL_PROVIDER, "openai");
103101

104102
List<LLMObs.LLMMessage> output =
105103
completion.choices().stream()

dd-java-agent/instrumentation/openai-java/openai-java-3.0/src/main/java/datadog/trace/instrumentation/openai_java/CompletionDecorator.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public class CompletionDecorator {
2323
public void withCompletionCreateParams(AgentSpan span, CompletionCreateParams params) {
2424
span.setResourceName(COMPLETIONS_CREATE);
2525
span.setTag(CommonTags.OPENAI_REQUEST_ENDPOINT, "/v1/completions");
26-
span.setTag(CommonTags.OPENAI_REQUEST_METHOD, "POST");
2726
if (!llmObsEnabled) {
2827
return;
2928
}
@@ -69,7 +68,6 @@ public void withCompletion(AgentSpan span, Completion completion) {
6968
String modelName = completion.model();
7069
span.setTag(CommonTags.OPENAI_RESPONSE_MODEL, modelName);
7170
span.setTag(CommonTags.MODEL_NAME, modelName);
72-
span.setTag(CommonTags.MODEL_PROVIDER, "openai");
7371

7472
List<LLMObs.LLMMessage> output =
7573
completion.choices().stream()
@@ -100,7 +98,6 @@ public void withCompletions(AgentSpan span, List<Completion> completions) {
10098
String modelName = firstCompletion.model();
10199
span.setTag(CommonTags.OPENAI_RESPONSE_MODEL, modelName);
102100
span.setTag(CommonTags.MODEL_NAME, modelName);
103-
span.setTag(CommonTags.MODEL_PROVIDER, "openai");
104101

105102
Map<Long, StringBuilder> textByChoiceIndex = new HashMap<>();
106103
for (Completion completion : completions) {

dd-java-agent/instrumentation/openai-java/openai-java-3.0/src/main/java/datadog/trace/instrumentation/openai_java/EmbeddingDecorator.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public class EmbeddingDecorator {
2525
public void withEmbeddingCreateParams(AgentSpan span, EmbeddingCreateParams params) {
2626
span.setResourceName(EMBEDDINGS_CREATE);
2727
span.setTag(CommonTags.OPENAI_REQUEST_ENDPOINT, "/v1/embeddings");
28-
span.setTag(CommonTags.OPENAI_REQUEST_METHOD, "POST");
2928
if (!llmObsEnabled) {
3029
return;
3130
}
@@ -67,7 +66,6 @@ public void withCreateEmbeddingResponse(AgentSpan span, CreateEmbeddingResponse
6766
String modelName = response.model();
6867
span.setTag(CommonTags.OPENAI_RESPONSE_MODEL, modelName);
6968
span.setTag(CommonTags.MODEL_NAME, modelName);
70-
span.setTag(CommonTags.MODEL_PROVIDER, "openai");
7169

7270
if (!response.data().isEmpty()) {
7371
int embeddingCount = response.data().size();

dd-java-agent/instrumentation/openai-java/openai-java-3.0/src/main/java/datadog/trace/instrumentation/openai_java/OpenAiDecorator.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,22 @@ public class OpenAiDecorator extends ClientDecorator {
4141
public AgentSpan startSpan(ClientOptions clientOptions) {
4242
AgentSpan span = AgentTracer.startSpan(INSTRUMENTATION_NAME, SPAN_NAME);
4343
afterStart(span);
44-
span.setTag(CommonTags.OPENAI_API_BASE, clientOptions.baseUrl());
44+
String baseUrl = clientOptions.baseUrl();
45+
span.setTag(CommonTags.OPENAI_API_BASE, baseUrl);
46+
span.setTag(CommonTags.MODEL_PROVIDER, detectProvider(baseUrl));
47+
span.setTag(CommonTags.OPENAI_REQUEST_METHOD, "POST");
4548
return span;
4649
}
4750

51+
private String detectProvider(String baseUrl) {
52+
if (baseUrl != null) {
53+
String lower = baseUrl.toLowerCase();
54+
if (lower.contains("azure")) return "azure_openai";
55+
if (lower.contains("deepseek")) return "deepseek";
56+
}
57+
return "openai";
58+
}
59+
4860
public void finishSpan(AgentSpan span, Throwable err) {
4961
try {
5062
if (err != null) {

dd-java-agent/instrumentation/openai-java/openai-java-3.0/src/main/java/datadog/trace/instrumentation/openai_java/ResponseDecorator.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public class ResponseDecorator {
3737
public void withResponseCreateParams(AgentSpan span, ResponseCreateParams params) {
3838
span.setResourceName(RESPONSES_CREATE);
3939
span.setTag(CommonTags.OPENAI_REQUEST_ENDPOINT, "/v1/responses");
40-
span.setTag(CommonTags.OPENAI_REQUEST_METHOD, "POST");
4140
if (!llmObsEnabled) {
4241
return;
4342
}
@@ -396,7 +395,6 @@ private void withResponse(AgentSpan span, Response response, boolean stream) {
396395
String modelName = extractResponseModel(response._model());
397396
span.setTag(CommonTags.OPENAI_RESPONSE_MODEL, modelName);
398397
span.setTag(CommonTags.MODEL_NAME, modelName);
399-
span.setTag(CommonTags.MODEL_PROVIDER, "openai");
400398

401399
List<LLMObs.LLMMessage> outputMessages = extractResponseOutputMessages(response.output());
402400
if (!outputMessages.isEmpty()) {

0 commit comments

Comments
 (0)