in instrumentation/openai-client-instrumentation/instrumentation-1.1/src/main/java/co/elastic/otel/openai/v1_1/wrappers/InstrumentedEmbeddingsService.java [111:129]
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
Class<?>[] parameterTypes = method.getParameterTypes();
if (methodName.equals("create")
&& parameterTypes.length >= 1
&& parameterTypes[0] == EmbeddingCreateParams.class) {
if (parameterTypes.length == 1) {
return create((EmbeddingCreateParams) args[0], RequestOptions.none());
} else if (parameterTypes.length == 2 && parameterTypes[1] == RequestOptions.class) {
return create((EmbeddingCreateParams) args[0], (RequestOptions) args[1]);
}
}
// TODO: the EmbeddingService.withRawResponse view is currently untraced
// Once the OpenAI client library is stable we should revisit and add support
return super.invoke(proxy, method, args);
}