Skip to content

Commit c16fafd

Browse files
committed
add exporter authenticator
1 parent 5918a17 commit c16fafd

File tree

9 files changed

+52
-34
lines changed

9 files changed

+52
-34
lines changed

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigContext.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,5 +92,4 @@ <T> T loadComponent(Class<T> type, String name, Object model) {
9292
"Error configuring " + type.getName() + " with name \"" + name + "\"", throwable);
9393
}
9494
}
95-
9695
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordExporterFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ public LogRecordExporter create(LogRecordExporterModel model, DeclarativeConfigC
3232
Map.Entry<String, Object> keyValue =
3333
FileConfigUtil.getSingletonMapEntry(model.getAdditionalProperties(), "log record exporter");
3434
LogRecordExporter logRecordExporter =
35-
context.loadComponent(
36-
LogRecordExporter.class, keyValue.getKey(), keyValue.getValue());
35+
context.loadComponent(LogRecordExporter.class, keyValue.getKey(), keyValue.getValue());
3736
return context.addCloseable(logRecordExporter);
3837
}
3938
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordProcessorFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ public LogRecordProcessor create(
7070
FileConfigUtil.getSingletonMapEntry(
7171
model.getAdditionalProperties(), "log record processor");
7272
LogRecordProcessor logRecordProcessor =
73-
context.loadComponent(
74-
LogRecordProcessor.class, keyValue.getKey(), keyValue.getValue());
73+
context.loadComponent(LogRecordProcessor.class, keyValue.getKey(), keyValue.getValue());
7574
return context.addCloseable(logRecordProcessor);
7675
}
7776
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MetricExporterFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ public MetricExporter create(PushMetricExporterModel model, DeclarativeConfigCon
3232
Map.Entry<String, Object> keyValue =
3333
FileConfigUtil.getSingletonMapEntry(model.getAdditionalProperties(), "metric exporter");
3434
MetricExporter metricExporter =
35-
context.loadComponent(
36-
MetricExporter.class, keyValue.getKey(), keyValue.getValue());
35+
context.loadComponent(MetricExporter.class, keyValue.getKey(), keyValue.getValue());
3736
return context.addCloseable(metricExporter);
3837
}
3938
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/TextMapPropagatorFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ public TextMapPropagatorAndName create(
4848
Map.Entry<String, Object> keyValue =
4949
FileConfigUtil.getSingletonMapEntry(model.getAdditionalProperties(), "propagator");
5050
TextMapPropagator propagator =
51-
context.loadComponent(
52-
TextMapPropagator.class, keyValue.getKey(), keyValue.getValue());
51+
context.loadComponent(TextMapPropagator.class, keyValue.getKey(), keyValue.getValue());
5352
return TextMapPropagatorAndName.create(propagator, keyValue.getKey());
5453
}
5554

sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ComponentProviderExtension.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
16
package io.opentelemetry.sdk.extension.incubator.fileconfig;
27

38
import static org.mockito.Mockito.spy;
@@ -39,11 +44,11 @@ public void beforeEach(ExtensionContext context) throws Exception {
3944
});
4045
}
4146

42-
public DeclarativeConfigContext getContext() {
47+
DeclarativeConfigContext getContext() {
4348
return context;
4449
}
4550

46-
public ComponentProvider<?> getComponentProvider(String name, Class<?> type) {
51+
ComponentProvider<?> getComponentProvider(String name, Class<?> type) {
4752
return loadedComponentProviders.stream()
4853
.filter(
4954
componentProvider ->

sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordExporterFactoryTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.opentelemetry.internal.testing.CleanupExtension;
2222
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
2323
import io.opentelemetry.sdk.extension.incubator.fileconfig.component.LogRecordExporterComponentProvider;
24+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.AuthenticatorModel;
2425
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalOtlpFileExporterModel;
2526
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LogRecordExporterModel;
2627
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.NameStringValuePairModel;
@@ -34,6 +35,7 @@
3435
import java.time.Duration;
3536
import java.util.ArrayList;
3637
import java.util.Arrays;
38+
import java.util.Collections;
3739
import java.util.List;
3840
import org.junit.jupiter.api.Test;
3941
import org.junit.jupiter.api.extension.ExtendWith;
@@ -103,6 +105,7 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
103105
.setEndpoint("http://example:4318/v1/logs")
104106
.addHeader("key1", "value1")
105107
.addHeader("key2", "value2")
108+
.setHeaders(() -> Collections.singletonMap("auth_provider_key1", "value1"))
106109
.setTimeout(Duration.ofSeconds(15))
107110
.setCompression("gzip")
108111
.build();
@@ -133,6 +136,8 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
133136
new NameStringValuePairModel()
134137
.withName("key2")
135138
.withValue("value2")))
139+
.withAuthenticator(
140+
new AuthenticatorModel().withAdditionalProperty("test_auth", null))
136141
.withCompression("gzip")
137142
.withTimeout(15_000)
138143
.withCertificateFile(certificatePath)
@@ -212,6 +217,7 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
212217
.setEndpoint("http://example:4317")
213218
.addHeader("key1", "value1")
214219
.addHeader("key2", "value2")
220+
.setHeaders(() -> Collections.singletonMap("auth_provider_key1", "value1"))
215221
.setTimeout(Duration.ofSeconds(15))
216222
.setCompression("gzip")
217223
.build();
@@ -242,6 +248,8 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
242248
new NameStringValuePairModel()
243249
.withName("key2")
244250
.withValue("value2")))
251+
.withAuthenticator(
252+
new AuthenticatorModel().withAdditionalProperty("test_auth", null))
245253
.withCompression("gzip")
246254
.withTimeout(15_000)
247255
.withCertificateFile(certificatePath)
@@ -300,7 +308,8 @@ void create_OtlpFile() {
300308
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
301309
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
302310
ComponentProvider<?> componentProvider =
303-
componentProviderExtension.getComponentProvider("otlp_file/development", LogRecordExporter.class);
311+
componentProviderExtension.getComponentProvider(
312+
"otlp_file/development", LogRecordExporter.class);
304313
verify(componentProvider).create(configCaptor.capture(), any());
305314
}
306315

sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MetricExporterFactoryTest.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
import static org.assertj.core.api.Assertions.assertThat;
1010
import static org.assertj.core.api.Assertions.assertThatThrownBy;
1111
import static org.mockito.ArgumentMatchers.any;
12-
import static org.mockito.Mockito.spy;
1312
import static org.mockito.Mockito.verify;
14-
import static org.mockito.Mockito.when;
1513

1614
import com.google.common.collect.ImmutableMap;
1715
import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension;
@@ -22,9 +20,9 @@
2220
import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
2321
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
2422
import io.opentelemetry.internal.testing.CleanupExtension;
25-
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
2623
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
2724
import io.opentelemetry.sdk.extension.incubator.fileconfig.component.MetricExporterComponentProvider;
25+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.AuthenticatorModel;
2826
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ConsoleExporterModel;
2927
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalOtlpFileMetricExporterModel;
3028
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.NameStringValuePairModel;
@@ -45,14 +43,11 @@
4543
import java.util.Arrays;
4644
import java.util.Collections;
4745
import java.util.List;
48-
import java.util.stream.Collectors;
49-
import org.junit.jupiter.api.BeforeEach;
5046
import org.junit.jupiter.api.Test;
5147
import org.junit.jupiter.api.extension.ExtendWith;
5248
import org.junit.jupiter.api.extension.RegisterExtension;
5349
import org.junit.jupiter.api.io.TempDir;
5450
import org.mockito.ArgumentCaptor;
55-
import org.mockito.Mockito;
5651
import org.mockito.junit.jupiter.MockitoExtension;
5752
import org.mockito.junit.jupiter.MockitoSettings;
5853
import org.mockito.quality.Strictness;
@@ -72,8 +67,7 @@ class MetricExporterFactoryTest {
7267
@RegisterExtension
7368
ComponentProviderExtension componentProviderExtension = new ComponentProviderExtension();
7469

75-
private final DeclarativeConfigContext context =
76-
componentProviderExtension.getContext();
70+
private final DeclarativeConfigContext context = componentProviderExtension.getContext();
7771

7872
@Test
7973
void create_OtlpHttpDefaults() {
@@ -118,6 +112,7 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
118112
.setEndpoint("http://example:4318/v1/metrics")
119113
.addHeader("key1", "value1")
120114
.addHeader("key2", "value2")
115+
.setHeaders(() -> Collections.singletonMap("auth_provider_key1", "value1"))
121116
.setTimeout(Duration.ofSeconds(15))
122117
.setCompression("gzip")
123118
.setAggregationTemporalitySelector(AggregationTemporalitySelector.deltaPreferred())
@@ -152,6 +147,8 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
152147
new NameStringValuePairModel()
153148
.withName("key2")
154149
.withValue("value2")))
150+
.withAuthenticator(
151+
new AuthenticatorModel().withAdditionalProperty("test_auth", null))
155152
.withCompression("gzip")
156153
.withTimeout(15_000)
157154
.withCertificateFile(certificatePath)
@@ -171,7 +168,7 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
171168
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
172169
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
173170
ComponentProvider<?> componentProvider =
174-
getComponentProvider("otlp_http", MetricExporter.class);
171+
componentProviderExtension.getComponentProvider("otlp_http", MetricExporter.class);
175172
verify(componentProvider).create(configCaptor.capture(), any());
176173
DeclarativeConfigProperties configProperties = configCaptor.getValue();
177174
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4318/v1/metrics");
@@ -217,7 +214,7 @@ void create_OtlpGrpcDefaults() {
217214
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
218215
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
219216
ComponentProvider<?> componentProvider =
220-
getComponentProvider("otlp_grpc", MetricExporter.class);
217+
componentProviderExtension.getComponentProvider("otlp_grpc", MetricExporter.class);
221218
verify(componentProvider).create(configCaptor.capture(), any());
222219
DeclarativeConfigProperties configProperties = configCaptor.getValue();
223220
assertThat(configProperties.getString("endpoint")).isNull();
@@ -240,6 +237,7 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
240237
.setEndpoint("http://example:4317")
241238
.addHeader("key1", "value1")
242239
.addHeader("key2", "value2")
240+
.setHeaders(() -> Collections.singletonMap("auth_provider_key1", "value1"))
243241
.setTimeout(Duration.ofSeconds(15))
244242
.setCompression("gzip")
245243
.setAggregationTemporalitySelector(AggregationTemporalitySelector.deltaPreferred())
@@ -274,6 +272,8 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
274272
new NameStringValuePairModel()
275273
.withName("key2")
276274
.withValue("value2")))
275+
.withAuthenticator(
276+
new AuthenticatorModel().withAdditionalProperty("test_auth", null))
277277
.withCompression("gzip")
278278
.withTimeout(15_000)
279279
.withCertificateFile(certificatePath)
@@ -293,7 +293,7 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
293293
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
294294
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
295295
ComponentProvider<?> componentProvider =
296-
getComponentProvider("otlp_grpc", MetricExporter.class);
296+
componentProviderExtension.getComponentProvider("otlp_grpc", MetricExporter.class);
297297
verify(componentProvider).create(configCaptor.capture(), any());
298298
DeclarativeConfigProperties configProperties = configCaptor.getValue();
299299
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4317");
@@ -355,7 +355,8 @@ void create_OtlpFile() {
355355
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
356356
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
357357
ComponentProvider<?> componentProvider =
358-
getComponentProvider("otlp_file/development", MetricExporter.class);
358+
componentProviderExtension.getComponentProvider(
359+
"otlp_file/development", MetricExporter.class);
359360
verify(componentProvider).create(configCaptor.capture(), any());
360361
}
361362

sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SpanExporterFactoryTest.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,16 @@ void create_OtlpHttpDefaults() {
7575

7676
SpanExporter exporter =
7777
SpanExporterFactory.getInstance()
78-
.create(
79-
new SpanExporterModel().withOtlpHttp(new OtlpHttpExporterModel()),
80-
context);
78+
.create(new SpanExporterModel().withOtlpHttp(new OtlpHttpExporterModel()), context);
8179
cleanup.addCloseable(exporter);
8280
cleanup.addCloseables(closeables);
8381

8482
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
8583

8684
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
8785
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
88-
ComponentProvider<?> componentProvider = componentProviderExtension.getComponentProvider("otlp_http", SpanExporter.class);
86+
ComponentProvider<?> componentProvider =
87+
componentProviderExtension.getComponentProvider("otlp_http", SpanExporter.class);
8988
verify(componentProvider).create(configCaptor.capture(), any());
9089
DeclarativeConfigProperties configProperties = configCaptor.getValue();
9190
assertThat(configProperties.getString("protocol")).isNull();
@@ -107,6 +106,7 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
107106
.setEndpoint("http://example:4318/v1/traces")
108107
.addHeader("key1", "value1")
109108
.addHeader("key2", "value2")
109+
.setHeaders(() -> Collections.singletonMap("auth_provider_key1", "value1"))
110110
.setTimeout(Duration.ofSeconds(15))
111111
.setCompression("gzip")
112112
.build();
@@ -137,6 +137,8 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
137137
new NameStringValuePairModel()
138138
.withName("key2")
139139
.withValue("value2")))
140+
.withAuthenticator(
141+
new AuthenticatorModel().withAdditionalProperty("test_auth", null))
140142
.withCompression("gzip")
141143
.withTimeout(15_000)
142144
.withCertificateFile(certificatePath)
@@ -150,7 +152,8 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
150152

151153
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
152154
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
153-
ComponentProvider<?> componentProvider = componentProviderExtension.getComponentProvider("otlp_http", SpanExporter.class);
155+
ComponentProvider<?> componentProvider =
156+
componentProviderExtension.getComponentProvider("otlp_http", SpanExporter.class);
154157
verify(componentProvider).create(configCaptor.capture(), any());
155158
DeclarativeConfigProperties configProperties = configCaptor.getValue();
156159
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4318/v1/traces");
@@ -190,7 +193,8 @@ void create_OtlpGrpcDefaults() {
190193

191194
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
192195
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
193-
ComponentProvider<?> componentProvider = componentProviderExtension.getComponentProvider("otlp_grpc", SpanExporter.class);
196+
ComponentProvider<?> componentProvider =
197+
componentProviderExtension.getComponentProvider("otlp_grpc", SpanExporter.class);
194198
verify(componentProvider).create(configCaptor.capture(), any());
195199
DeclarativeConfigProperties configProperties = configCaptor.getValue();
196200
assertThat(configProperties.getString("endpoint")).isNull();
@@ -257,7 +261,8 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
257261

258262
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
259263
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
260-
ComponentProvider<?> componentProvider = componentProviderExtension.getComponentProvider("otlp_grpc", SpanExporter.class);
264+
ComponentProvider<?> componentProvider =
265+
componentProviderExtension.getComponentProvider("otlp_grpc", SpanExporter.class);
261266
verify(componentProvider).create(configCaptor.capture(), any());
262267
DeclarativeConfigProperties configProperties = configCaptor.getValue();
263268
assertThat(configProperties.getString("endpoint")).isEqualTo("http://example:4317");
@@ -313,7 +318,8 @@ void create_ZipkinDefaults() {
313318

314319
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
315320
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
316-
ComponentProvider<?> componentProvider = componentProviderExtension.getComponentProvider("zipkin", SpanExporter.class);
321+
ComponentProvider<?> componentProvider =
322+
componentProviderExtension.getComponentProvider("zipkin", SpanExporter.class);
317323
verify(componentProvider).create(configCaptor.capture(), any());
318324
DeclarativeConfigProperties configProperties = configCaptor.getValue();
319325
assertThat(configProperties.getString("endpoint")).isNull();
@@ -346,7 +352,8 @@ void create_ZipkinConfigured() {
346352

347353
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
348354
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
349-
ComponentProvider<?> componentProvider = componentProviderExtension.getComponentProvider("zipkin", SpanExporter.class);
355+
ComponentProvider<?> componentProvider =
356+
componentProviderExtension.getComponentProvider("zipkin", SpanExporter.class);
350357
verify(componentProvider).create(configCaptor.capture(), any());
351358
DeclarativeConfigProperties configProperties = configCaptor.getValue();
352359
assertThat(configProperties.getString("endpoint")).isEqualTo("http://zipkin:9411/v1/v2/spans");
@@ -373,7 +380,8 @@ void create_OtlpFile() {
373380
ArgumentCaptor<DeclarativeConfigProperties> configCaptor =
374381
ArgumentCaptor.forClass(DeclarativeConfigProperties.class);
375382
ComponentProvider<?> componentProvider =
376-
componentProviderExtension.getComponentProvider("otlp_file/development", SpanExporter.class);
383+
componentProviderExtension.getComponentProvider(
384+
"otlp_file/development", SpanExporter.class);
377385
verify(componentProvider).create(configCaptor.capture(), any());
378386
}
379387

0 commit comments

Comments
 (0)