Skip to content

Commit 21673fd

Browse files
committed
Cleanup
1 parent bcd60a9 commit 21673fd

File tree

11 files changed

+46
-53
lines changed

11 files changed

+46
-53
lines changed

instrumentation/openai/openai-java-1.1/javaagent/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ dependencies {
1919
library("com.openai:openai-java:1.1.0")
2020

2121
testImplementation(project(":instrumentation:openai:openai-java-1.1:testing"))
22-
23-
// needed for latest dep tests
24-
testCompileOnly("com.google.errorprone:error_prone_annotations")
2522
}
2623

2724
tasks {

instrumentation/openai/openai-java-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/openai/v1_1/OpenAIClientInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void transform(TypeTransformer transformer) {
3232

3333
@SuppressWarnings("unused")
3434
public static class BuildAdvice {
35-
@Advice.OnMethodExit
35+
@Advice.OnMethodExit(suppress = Throwable.class)
3636
@Advice.AssignReturned.ToReturned
3737
public static OpenAIClient onExit(@Advice.Return OpenAIClient client) {
3838
return TELEMETRY.wrap(client);

instrumentation/openai/openai-java-1.1/library/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ dependencies {
77
library("com.openai:openai-java:1.1.0")
88

99
testImplementation(project(":instrumentation:openai:openai-java-1.1:testing"))
10-
11-
// needed for latest dep tests
12-
testCompileOnly("com.google.errorprone:error_prone_annotations")
1310
}
1411

1512
tasks {

instrumentation/openai/openai-java-1.1/library/src/main/java/io/opentelemetry/instrumentation/openai/v1_1/ChatCompletionEventsHelper.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
package io.opentelemetry.instrumentation.openai.v1_1;
77

88
import static io.opentelemetry.api.common.AttributeKey.stringKey;
9-
import static io.opentelemetry.instrumentation.openai.v1_1.OpenAITelemetryBuilder.INSTRUMENTATION_NAME;
9+
import static io.opentelemetry.instrumentation.openai.v1_1.GenAiAttributes.GEN_AI_SYSTEM;
1010

1111
import com.openai.models.chat.completions.ChatCompletion;
1212
import com.openai.models.chat.completions.ChatCompletionAssistantMessageParam;
@@ -19,7 +19,6 @@
1919
import com.openai.models.chat.completions.ChatCompletionSystemMessageParam;
2020
import com.openai.models.chat.completions.ChatCompletionToolMessageParam;
2121
import com.openai.models.chat.completions.ChatCompletionUserMessageParam;
22-
import io.opentelemetry.api.GlobalOpenTelemetry;
2322
import io.opentelemetry.api.common.AttributeKey;
2423
import io.opentelemetry.api.common.Value;
2524
import io.opentelemetry.api.logs.LogRecordBuilder;
@@ -34,14 +33,10 @@
3433

3534
final class ChatCompletionEventsHelper {
3635

37-
private static final Logger eventLogger =
38-
GlobalOpenTelemetry.get().getLogsBridge().get(INSTRUMENTATION_NAME);
39-
4036
private static final AttributeKey<String> EVENT_NAME = stringKey("event.name");
41-
private static final AttributeKey<String> GEN_AI_SYSTEM = stringKey("gen_ai.system");
4237

4338
public static void emitPromptLogEvents(
44-
ChatCompletionCreateParams request, boolean captureMessageContent) {
39+
Logger eventLogger, ChatCompletionCreateParams request, boolean captureMessageContent) {
4540
for (ChatCompletionMessageParam msg : request.messages()) {
4641
String eventType;
4742
Map<String, Value<?>> body = new HashMap<>();
@@ -89,7 +84,7 @@ public static void emitPromptLogEvents(
8984
} else {
9085
continue;
9186
}
92-
newEvent(eventType).setBody(Value.of(body)).emit();
87+
newEvent(eventLogger, eventType).setBody(Value.of(body)).emit();
9388
}
9489
}
9590

@@ -165,7 +160,7 @@ private static String joinContentParts(List<ChatCompletionContentPartText> conte
165160
}
166161

167162
public static void emitCompletionLogEvents(
168-
ChatCompletion completion, boolean captureMessageContent) {
163+
Logger eventLogger, ChatCompletion completion, boolean captureMessageContent) {
169164
for (ChatCompletion.Choice choice : completion.choices()) {
170165
ChatCompletionMessage choiceMsg = choice.message();
171166
Map<String, Value<?>> message = new HashMap<>();
@@ -184,11 +179,12 @@ public static void emitCompletionLogEvents(
184179
.collect(Collectors.toList())));
185180
});
186181
emitCompletionLogEvent(
187-
choice.index(), choice.finishReason().toString(), Value.of(message), null);
182+
eventLogger, choice.index(), choice.finishReason().toString(), Value.of(message), null);
188183
}
189184
}
190185

191186
public static void emitCompletionLogEvent(
187+
Logger eventLogger,
192188
long index,
193189
String finishReason,
194190
Value<?> eventMessageObject,
@@ -197,14 +193,14 @@ public static void emitCompletionLogEvent(
197193
body.put("finish_reason", Value.of(finishReason));
198194
body.put("index", Value.of(index));
199195
body.put("message", eventMessageObject);
200-
LogRecordBuilder builder = newEvent("gen_ai.choice").setBody(Value.of(body));
196+
LogRecordBuilder builder = newEvent(eventLogger, "gen_ai.choice").setBody(Value.of(body));
201197
if (contextOverride != null) {
202198
builder.setContext(contextOverride);
203199
}
204200
builder.emit();
205201
}
206202

207-
private static LogRecordBuilder newEvent(String name) {
203+
private static LogRecordBuilder newEvent(Logger eventLogger, String name) {
208204
return eventLogger
209205
.logRecordBuilder()
210206
.setAttribute(EVENT_NAME, name)

instrumentation/openai/openai-java-1.1/library/src/main/java/io/opentelemetry/instrumentation/openai/v1_1/GenAiAttributes.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@
55

66
package io.opentelemetry.instrumentation.openai.v1_1;
77

8+
import static io.opentelemetry.api.common.AttributeKey.stringKey;
9+
10+
import io.opentelemetry.api.common.AttributeKey;
11+
812
// copied from GenAiIncubatingAttributes
913
final class GenAiAttributes {
14+
static final AttributeKey<String> GEN_AI_SYSTEM = stringKey("gen_ai.system");
15+
1016
static final class GenAiOperationNameIncubatingValues {
1117
static final String CHAT = "chat";
1218

instrumentation/openai/openai-java-1.1/library/src/main/java/io/opentelemetry/instrumentation/openai/v1_1/InstrumentationSettings.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

instrumentation/openai/openai-java-1.1/library/src/main/java/io/opentelemetry/instrumentation/openai/v1_1/InstrumentedChatCompletionService.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.openai.models.chat.completions.ChatCompletion;
1010
import com.openai.models.chat.completions.ChatCompletionCreateParams;
1111
import com.openai.services.blocking.chat.ChatCompletionService;
12+
import io.opentelemetry.api.logs.Logger;
1213
import io.opentelemetry.context.Context;
1314
import io.opentelemetry.context.Scope;
1415
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
@@ -18,14 +19,17 @@ final class InstrumentedChatCompletionService
1819
extends DelegatingInvocationHandler<ChatCompletionService, InstrumentedChatCompletionService> {
1920

2021
private final Instrumenter<ChatCompletionCreateParams, ChatCompletion> instrumenter;
22+
private final Logger eventLogger;
2123
private final boolean captureMessageContent;
2224

2325
InstrumentedChatCompletionService(
2426
ChatCompletionService delegate,
2527
Instrumenter<ChatCompletionCreateParams, ChatCompletion> instrumenter,
28+
Logger eventLogger,
2629
boolean captureMessageContent) {
2730
super(delegate);
2831
this.instrumenter = instrumenter;
32+
this.eventLogger = eventLogger;
2933
this.captureMessageContent = captureMessageContent;
3034
}
3135

@@ -76,9 +80,9 @@ private ChatCompletion create(
7680
private ChatCompletion createWithLogs(
7781
ChatCompletionCreateParams chatCompletionCreateParams, RequestOptions requestOptions) {
7882
ChatCompletionEventsHelper.emitPromptLogEvents(
79-
chatCompletionCreateParams, captureMessageContent);
83+
eventLogger, chatCompletionCreateParams, captureMessageContent);
8084
ChatCompletion result = delegate.create(chatCompletionCreateParams, requestOptions);
81-
ChatCompletionEventsHelper.emitCompletionLogEvents(result, captureMessageContent);
85+
ChatCompletionEventsHelper.emitCompletionLogEvents(eventLogger, result, captureMessageContent);
8286
return result;
8387
}
8488
}

instrumentation/openai/openai-java-1.1/library/src/main/java/io/opentelemetry/instrumentation/openai/v1_1/InstrumentedChatService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,25 @@
88
import com.openai.models.chat.completions.ChatCompletion;
99
import com.openai.models.chat.completions.ChatCompletionCreateParams;
1010
import com.openai.services.blocking.ChatService;
11+
import io.opentelemetry.api.logs.Logger;
1112
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1213
import java.lang.reflect.Method;
1314

1415
final class InstrumentedChatService
1516
extends DelegatingInvocationHandler<ChatService, InstrumentedChatService> {
1617

1718
private final Instrumenter<ChatCompletionCreateParams, ChatCompletion> instrumenter;
19+
private final Logger eventLogger;
1820
private final boolean captureMessageContent;
1921

2022
public InstrumentedChatService(
2123
ChatService delegate,
2224
Instrumenter<ChatCompletionCreateParams, ChatCompletion> instrumenter,
25+
Logger eventLogger,
2326
boolean captureMessageContent) {
2427
super(delegate);
2528
this.instrumenter = instrumenter;
29+
this.eventLogger = eventLogger;
2630
this.captureMessageContent = captureMessageContent;
2731
}
2832

@@ -37,7 +41,7 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
3741
Class<?>[] parameterTypes = method.getParameterTypes();
3842
if (methodName.equals("completions") && parameterTypes.length == 0) {
3943
return new InstrumentedChatCompletionService(
40-
delegate.completions(), instrumenter, captureMessageContent)
44+
delegate.completions(), instrumenter, eventLogger, captureMessageContent)
4145
.createProxy();
4246
}
4347
return super.invoke(proxy, method, args);
Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,25 @@
88
import com.openai.client.OpenAIClient;
99
import com.openai.models.chat.completions.ChatCompletion;
1010
import com.openai.models.chat.completions.ChatCompletionCreateParams;
11+
import io.opentelemetry.api.logs.Logger;
1112
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1213
import java.lang.reflect.Method;
1314

14-
@SuppressWarnings("IdentifierName") // Want to match library's convention
15-
final class InstrumentedOpenAIClient
16-
extends DelegatingInvocationHandler<OpenAIClient, InstrumentedOpenAIClient> {
15+
final class InstrumentedOpenAiClient
16+
extends DelegatingInvocationHandler<OpenAIClient, InstrumentedOpenAiClient> {
1717

1818
private final Instrumenter<ChatCompletionCreateParams, ChatCompletion> chatInstrumenter;
19+
private final Logger eventLogger;
1920
private final boolean captureMessageContent;
2021

21-
InstrumentedOpenAIClient(
22+
InstrumentedOpenAiClient(
2223
OpenAIClient delegate,
2324
Instrumenter<ChatCompletionCreateParams, ChatCompletion> chatInstrumenter,
25+
Logger eventLogger,
2426
boolean captureMessageContent) {
2527
super(delegate);
2628
this.chatInstrumenter = chatInstrumenter;
29+
this.eventLogger = eventLogger;
2730
this.captureMessageContent = captureMessageContent;
2831
}
2932

@@ -37,7 +40,8 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
3740
String methodName = method.getName();
3841
Class<?>[] parameterTypes = method.getParameterTypes();
3942
if (methodName.equals("chat") && parameterTypes.length == 0) {
40-
return new InstrumentedChatService(delegate.chat(), chatInstrumenter, captureMessageContent)
43+
return new InstrumentedChatService(
44+
delegate.chat(), chatInstrumenter, eventLogger, captureMessageContent)
4145
.createProxy();
4246
}
4347
return super.invoke(proxy, method, args);

instrumentation/openai/openai-java-1.1/library/src/main/java/io/opentelemetry/instrumentation/openai/v1_1/OpenAITelemetry.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
import com.openai.models.chat.completions.ChatCompletion;
1010
import com.openai.models.chat.completions.ChatCompletionCreateParams;
1111
import io.opentelemetry.api.OpenTelemetry;
12+
import io.opentelemetry.api.logs.Logger;
1213
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1314

1415
/** Entrypoint for instrumenting OpenAI clients. */
1516
@SuppressWarnings("IdentifierName") // Want to match library's convention
16-
public class OpenAITelemetry {
17+
public final class OpenAITelemetry {
1718
/** Returns a new {@link OpenAITelemetry} configured with the given {@link OpenTelemetry}. */
1819
public static OpenAITelemetry create(OpenTelemetry openTelemetry) {
1920
return builder(openTelemetry).build();
@@ -28,18 +29,23 @@ public static OpenAITelemetryBuilder builder(OpenTelemetry openTelemetry) {
2829

2930
private final Instrumenter<ChatCompletionCreateParams, ChatCompletion> chatInstrumenter;
3031

32+
private final Logger eventLogger;
33+
3134
private final boolean captureMessageContent;
3235

3336
OpenAITelemetry(
3437
Instrumenter<ChatCompletionCreateParams, ChatCompletion> chatInstrumenter,
38+
Logger eventLogger,
3539
boolean captureMessageContent) {
3640
this.chatInstrumenter = chatInstrumenter;
41+
this.eventLogger = eventLogger;
3742
this.captureMessageContent = captureMessageContent;
3843
}
3944

4045
/** Wraps the provided OpenAIClient, enabling telemetry for it. */
4146
public OpenAIClient wrap(OpenAIClient client) {
42-
return new InstrumentedOpenAIClient(client, chatInstrumenter, captureMessageContent)
47+
return new InstrumentedOpenAiClient(
48+
client, chatInstrumenter, eventLogger, captureMessageContent)
4349
.createProxy();
4450
}
4551
}

0 commit comments

Comments
 (0)