Skip to content

Commit 61fe08c

Browse files
committed
update to latest ref as of 12/10
1 parent 02290c2 commit 61fe08c

File tree

7 files changed

+90
-122
lines changed

7 files changed

+90
-122
lines changed

exporters/zipkin/src/main/java/io/opentelemetry/exporter/zipkin/internal/ZipkinSpanExporterComponentProvider.java

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

exporters/zipkin/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider

Lines changed: 0 additions & 1 deletion
This file was deleted.

sdk-extensions/incubator/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ dependencies {
6060
// ... proceed with normal sourcesJar, compileJava, etc
6161

6262
val configurationTag = "1.0.0-rc.1"
63-
val configurationRef = "8826969b88d4ec720c3ebfe5c95b27aca5c238a9" // Replace with commit SHA to point to experiment with a specific commit
63+
val configurationRef = "447ff81a6dc566243813e6e45e378adf9a5b0bd7" // Replace with commit SHA to point to experiment with a specific commit
6464
val configurationRepoZip = "https://github.com/open-telemetry/opentelemetry-configuration/archive/$configurationRef.zip"
6565
val buildDirectory = layout.buildDirectory.asFile.get()
6666

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package io.opentelemetry.sdk.extension.incubator.fileconfig;
77

88
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableProbabilitySamplerModel;
9+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableRuleBasedSamplerModel;
910
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableSamplerModel;
1011
import io.opentelemetry.sdk.extension.incubator.trace.samplers.ComposableSampler;
1112
import java.util.Map;
@@ -38,6 +39,11 @@ public ComposableSampler create(
3839
}
3940
return ComposableSampler.probability(ratio);
4041
}
42+
ExperimentalComposableRuleBasedSamplerModel ruleBased = model.getRuleBased();
43+
if (ruleBased != null) {
44+
// TODO: interpret model
45+
return ComposableSampler.ruleBasedBuilder().build();
46+
}
4147
Map.Entry<String, ?> keyValue =
4248
FileConfigUtil.getSingletonMapEntry(model.getAdditionalProperties(), "composable sampler");
4349
return context.loadComponent(ComposableSampler.class, keyValue.getKey(), keyValue.getValue());

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,17 @@ public SpanExporter create(SpanExporterModel model, DeclarativeConfigContext con
4848
key = "console";
4949
resource = model.getConsole();
5050
}
51-
if (model.getZipkin() != null) {
52-
requireNullResource(resource, RESOURCE_NAME, model.getAdditionalProperties());
53-
key = "zipkin";
54-
resource = model.getZipkin();
55-
}
5651
if (key == null || resource == null) {
5752
Map.Entry<String, ?> keyValue =
5853
FileConfigUtil.getSingletonMapEntry(model.getAdditionalProperties(), RESOURCE_NAME);
5954
key = keyValue.getKey();
6055
resource = keyValue.getValue();
6156
}
57+
// TODO: remove after merging
58+
// https://github.com/open-telemetry/opentelemetry-configuration/pull/460
59+
if ("zipkin".equals(key)) {
60+
return SpanExporter.composite();
61+
}
6262

6363
SpanExporter spanExporter = context.loadComponent(SpanExporter.class, key, resource);
6464
return context.addCloseable(spanExporter);

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

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,15 @@
2222
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.CardinalityLimitsModel;
2323
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ConsoleExporterModel;
2424
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ConsoleMetricExporterModel;
25+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.DistributionModel;
26+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.DistributionPropertyModel;
27+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableAlwaysOffSamplerModel;
28+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableAlwaysOnSamplerModel;
2529
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableProbabilitySamplerModel;
30+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableRuleBasedSamplerModel;
31+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableRuleBasedSamplerRuleAttributePatternsModel;
32+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableRuleBasedSamplerRuleAttributeValuesModel;
33+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableRuleBasedSamplerRuleModel;
2634
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalComposableSamplerModel;
2735
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalContainerResourceDetectorModel;
2836
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalGeneralInstrumentationModel;
@@ -49,6 +57,7 @@
4957
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalResourceDetectionModel;
5058
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalResourceDetectorModel;
5159
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalServiceResourceDetectorModel;
60+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalSpanParent;
5261
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalTracerConfigModel;
5362
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalTracerConfiguratorModel;
5463
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalTracerMatcherAndConfigModel;
@@ -83,6 +92,8 @@
8392
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SimpleLogRecordProcessorModel;
8493
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SimpleSpanProcessorModel;
8594
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanExporterModel;
95+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanExporterPropertyModel;
96+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanKind;
8697
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanLimitsModel;
8798
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanProcessorModel;
8899
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TextMapPropagatorModel;
@@ -92,7 +103,6 @@
92103
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ViewModel;
93104
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ViewSelectorModel;
94105
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ViewStreamModel;
95-
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ZipkinSpanExporterModel;
96106
import java.io.ByteArrayInputStream;
97107
import java.io.FileInputStream;
98108
import java.io.IOException;
@@ -127,7 +137,7 @@ void parse_KitchenSinkExampleFile() throws IOException {
127137

128138
expected.withFileFormat("1.0-rc.2");
129139
expected.withDisabled(false);
130-
expected.withLogLevel("info");
140+
expected.withLogLevel(OpenTelemetryConfigurationModel.SeverityNumber.INFO);
131141

132142
// General config
133143
ResourceModel resource =
@@ -238,9 +248,53 @@ void parse_KitchenSinkExampleFile() throws IOException {
238248
new SamplerModel()
239249
.withCompositeDevelopment(
240250
new ExperimentalComposableSamplerModel()
241-
.withProbability(
242-
new ExperimentalComposableProbabilitySamplerModel()
243-
.withRatio(0.001))))
251+
.withRuleBased(
252+
new ExperimentalComposableRuleBasedSamplerModel()
253+
.withRules(
254+
Arrays.asList(
255+
new ExperimentalComposableRuleBasedSamplerRuleModel()
256+
.withAttributeValues(
257+
new ExperimentalComposableRuleBasedSamplerRuleAttributeValuesModel()
258+
.withKey("http.route")
259+
.withValues(
260+
Arrays.asList(
261+
"/healthz", "/livez")))
262+
.withSampler(
263+
new ExperimentalComposableSamplerModel()
264+
.withAlwaysOff(
265+
new ExperimentalComposableAlwaysOffSamplerModel())),
266+
new ExperimentalComposableRuleBasedSamplerRuleModel()
267+
.withAttributePatterns(
268+
new ExperimentalComposableRuleBasedSamplerRuleAttributePatternsModel()
269+
.withKey("http.path")
270+
.withIncluded(
271+
Collections.singletonList(
272+
"/internal/*"))
273+
.withExcluded(
274+
Collections.singletonList(
275+
"/internal/special/*")))
276+
.withSampler(
277+
new ExperimentalComposableSamplerModel()
278+
.withAlwaysOn(
279+
new ExperimentalComposableAlwaysOnSamplerModel())),
280+
new ExperimentalComposableRuleBasedSamplerRuleModel()
281+
.withParent(
282+
Collections.singletonList(
283+
ExperimentalSpanParent.NONE))
284+
.withSpanKinds(
285+
Collections.singletonList(
286+
SpanKind.CLIENT))
287+
.withSampler(
288+
new ExperimentalComposableSamplerModel()
289+
.withProbability(
290+
new ExperimentalComposableProbabilitySamplerModel()
291+
.withRatio(0.05))),
292+
new ExperimentalComposableRuleBasedSamplerRuleModel()
293+
.withSampler(
294+
new ExperimentalComposableSamplerModel()
295+
.withProbability(
296+
new ExperimentalComposableProbabilitySamplerModel()
297+
.withRatio(0.001))))))))
244298
.withLocalParentNotSampled(
245299
new SamplerModel().withAlwaysOff(new AlwaysOffSamplerModel())));
246300
tracerProvider.withSampler(sampler);
@@ -330,10 +384,12 @@ void parse_KitchenSinkExampleFile() throws IOException {
330384
new BatchSpanProcessorModel()
331385
.withExporter(
332386
new SpanExporterModel()
333-
.withZipkin(
334-
new ZipkinSpanExporterModel()
335-
.withEndpoint("http://localhost:9411/api/v2/spans")
336-
.withTimeout(10_000))));
387+
.withAdditionalProperty(
388+
"zipkin",
389+
new SpanExporterPropertyModel()
390+
.withAdditionalProperty(
391+
"endpoint", "http://localhost:9411/api/v2/spans")
392+
.withAdditionalProperty("timeout", 10_000))));
337393
SpanProcessorModel spanProcessor6 =
338394
new SpanProcessorModel()
339395
.withSimple(
@@ -369,7 +425,8 @@ void parse_KitchenSinkExampleFile() throws IOException {
369425
new ExperimentalLoggerConfigModel()
370426
.withDisabled(false)
371427
.withMinimumSeverity(
372-
ExperimentalLoggerConfigModel.ExperimentalSeverityNumber.INFO)
428+
// TODO: SeverityNumber should not be nested
429+
OpenTelemetryConfigurationModel.SeverityNumber.INFO)
373430
.withTraceBased(true))));
374431
loggerProvider.withLoggerConfiguratorDevelopment(loggerConfigurator);
375432

@@ -771,6 +828,13 @@ void parse_KitchenSinkExampleFile() throws IOException {
771828
expected.withInstrumentationDevelopment(instrumentation);
772829
// end instrumentation config
773830

831+
DistributionModel distribution =
832+
new DistributionModel()
833+
.withAdditionalProperty(
834+
"example",
835+
new DistributionPropertyModel().withAdditionalProperty("property", "value"));
836+
expected.withDistribution(distribution);
837+
774838
try (FileInputStream configExampleFile =
775839
new FileInputStream(System.getenv("CONFIG_EXAMPLE_DIR") + "/kitchen-sink.yaml")) {
776840
OpenTelemetryConfigurationModel config = DeclarativeConfiguration.parse(configExampleFile);
@@ -834,6 +898,10 @@ void parse_KitchenSinkExampleFile() throws IOException {
834898
config.getInstrumentationDevelopment();
835899
assertThat(configInstrumentation).isEqualTo(instrumentation);
836900

901+
// Distribution config
902+
DistributionModel configDistribution = config.getDistribution();
903+
assertThat(configDistribution).isEqualTo(distribution);
904+
837905
// All configuration
838906
assertThat(config).isEqualTo(expected);
839907
}

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

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import io.opentelemetry.exporter.logging.otlp.internal.traces.OtlpStdoutSpanExporter;
1717
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
1818
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
19-
import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
2019
import io.opentelemetry.internal.testing.CleanupExtension;
2120
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
2221
import io.opentelemetry.sdk.extension.incubator.fileconfig.component.SpanExporterComponentProvider;
@@ -29,7 +28,6 @@
2928
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OtlpHttpExporterModel;
3029
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanExporterModel;
3130
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanExporterPropertyModel;
32-
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ZipkinSpanExporterModel;
3331
import io.opentelemetry.sdk.trace.export.SpanExporter;
3432
import java.io.Closeable;
3533
import java.io.IOException;
@@ -299,61 +297,6 @@ void create_Console() {
299297
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
300298
}
301299

302-
@Test
303-
void create_ZipkinDefaults() {
304-
List<Closeable> closeables = new ArrayList<>();
305-
ZipkinSpanExporter expectedExporter = ZipkinSpanExporter.builder().build();
306-
307-
cleanup.addCloseable(expectedExporter);
308-
309-
SpanExporter exporter =
310-
SpanExporterFactory.getInstance()
311-
.create(new SpanExporterModel().withZipkin(new ZipkinSpanExporterModel()), context);
312-
cleanup.addCloseable(exporter);
313-
cleanup.addCloseables(closeables);
314-
315-
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
316-
317-
// Verify the configuration passed to the component provider
318-
DeclarativeConfigProperties configProperties =
319-
capturingComponentLoader.getCapturedConfig("zipkin");
320-
assertThat(configProperties).isNotNull();
321-
assertThat(configProperties.getString("endpoint")).isNull();
322-
assertThat(configProperties.getLong("timeout")).isNull();
323-
}
324-
325-
@Test
326-
void create_ZipkinConfigured() {
327-
List<Closeable> closeables = new ArrayList<>();
328-
ZipkinSpanExporter expectedExporter =
329-
ZipkinSpanExporter.builder()
330-
.setEndpoint("http://zipkin:9411/v1/v2/spans")
331-
.setReadTimeout(Duration.ofSeconds(15))
332-
.build();
333-
cleanup.addCloseable(expectedExporter);
334-
335-
SpanExporter exporter =
336-
SpanExporterFactory.getInstance()
337-
.create(
338-
new SpanExporterModel()
339-
.withZipkin(
340-
new ZipkinSpanExporterModel()
341-
.withEndpoint("http://zipkin:9411/v1/v2/spans")
342-
.withTimeout(15_000)),
343-
context);
344-
cleanup.addCloseable(exporter);
345-
cleanup.addCloseables(closeables);
346-
347-
assertThat(exporter.toString()).isEqualTo(expectedExporter.toString());
348-
349-
// Verify the configuration passed to the component provider
350-
DeclarativeConfigProperties configProperties =
351-
capturingComponentLoader.getCapturedConfig("zipkin");
352-
assertThat(configProperties).isNotNull();
353-
assertThat(configProperties.getString("endpoint")).isEqualTo("http://zipkin:9411/v1/v2/spans");
354-
assertThat(configProperties.getLong("timeout")).isEqualTo(15_000);
355-
}
356-
357300
@Test
358301
void create_OtlpFile() {
359302
List<Closeable> closeables = new ArrayList<>();

0 commit comments

Comments
 (0)