Skip to content

Commit 36dda07

Browse files
committed
fix
1 parent 0e41c9f commit 36dda07

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

profiler/src/main/java/com/splunk/opentelemetry/profiler/LogExporterBuilder.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static io.opentelemetry.exporter.otlp.internal.OtlpConfigUtil.DATA_TYPE_LOGS;
2121

2222
import com.google.common.annotations.VisibleForTesting;
23+
import io.opentelemetry.api.incubator.config.ConfigProvider;
2324
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
2425
import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter;
2526
import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder;
@@ -30,7 +31,10 @@
3031
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder;
3132
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
3233
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
34+
import io.opentelemetry.sdk.autoconfigure.spi.internal.ExtendedDeclarativeConfigProperties;
3335
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
36+
import java.lang.reflect.InvocationTargetException;
37+
import java.lang.reflect.Proxy;
3438
import java.util.Set;
3539
import java.util.function.Supplier;
3640

@@ -48,15 +52,15 @@ static LogRecordExporter fromConfig(DeclarativeConfigProperties exporterConfigPr
4852
exporterConfigProperties.getStructured("otlp_log_http", empty());
4953
OtlpHttpLogRecordExporterComponentProvider provider =
5054
new OtlpHttpLogRecordExporterComponentProvider();
51-
return provider.create(otlpHttp);
55+
return provider.create(toExtended(otlpHttp));
5256
}
5357

5458
if (propertyKeys.contains("otlp_log_grpc")) {
5559
DeclarativeConfigProperties otlpGrpc =
5660
exporterConfigProperties.getStructured("otlp_log_grpc", empty());
5761
OtlpGrpcLogRecordExporterComponentProvider provider =
5862
new OtlpGrpcLogRecordExporterComponentProvider();
59-
return provider.create(otlpGrpc);
63+
return provider.create(toExtended(otlpGrpc));
6064
}
6165
}
6266

@@ -111,4 +115,25 @@ static LogRecordExporter buildHttpExporter(
111115

112116
return builder.addHeader(EXTRA_CONTENT_TYPE, STACKTRACES_HEADER_VALUE).build();
113117
}
118+
119+
public static ExtendedDeclarativeConfigProperties toExtended(
120+
DeclarativeConfigProperties properties) {
121+
if (properties instanceof ExtendedDeclarativeConfigProperties) {
122+
return (ExtendedDeclarativeConfigProperties) properties;
123+
}
124+
return (ExtendedDeclarativeConfigProperties)
125+
Proxy.newProxyInstance(
126+
LogExporterBuilder.class.getClassLoader(),
127+
new Class[] {ExtendedDeclarativeConfigProperties.class},
128+
(proxy, method, args) -> {
129+
if ("getConfigProvider".equals(method.getName())) {
130+
return ConfigProvider.noop();
131+
}
132+
try {
133+
return method.invoke(properties, args);
134+
} catch (InvocationTargetException exception) {
135+
throw exception.getCause();
136+
}
137+
});
138+
}
114139
}

0 commit comments

Comments
 (0)