Skip to content

Commit 33effe7

Browse files
committed
Move declarative config (fileconfig) from incubator to autoconfigure module
- All fileconfig source files moved from sdk-extensions/incubator to sdk-extensions/autoconfigure, removing the hard dependency on incubator for users who only need autoconfigure - New testDeclarativeConfig test suite in autoconfigure with isolated classpath so existing autoconfigure tests (which check for absent exporters) are not polluted - Updated INCUBATOR_AVAILABLE check to look for api:incubator (DeclarativeConfigException), and added separate PARSER_AVAILABLE check for snakeyaml - New sdk-extensions/autoconfigure-config convenience module that bundles autoconfigure + snakeyaml + jackson-databind for users who want file-based config out of the box - YAML test resources added to incubator/src/test/resources (ViewConfig tests still need them) Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
1 parent 3415318 commit 33effe7

159 files changed

Lines changed: 6745 additions & 245 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

api/incubator/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ dependencies {
1919

2020
// To use parsed config file as input for InstrumentationConfigUtilTest
2121
testImplementation(project(":sdk-extensions:incubator"))
22+
testImplementation(project(":sdk-extensions:autoconfigure"))
23+
testImplementation("org.snakeyaml:snakeyaml-engine")
24+
testImplementation("com.fasterxml.jackson.core:jackson-databind")
2225

2326
testImplementation(project(":sdk:testing"))
2427
testImplementation(project(":api:testing-internal"))
Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,89 @@
11
Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-1.61.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-1.60.1.jar
2-
No changes.
2+
+++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.autoconfigure.EnvironmentResource (not serializable)
3+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
4+
+++ NEW SUPERCLASS: java.lang.Object
5+
+++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String ATTRIBUTE_PROPERTY
6+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.sdk.resources.Resource createEnvironmentResource(io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties)
7+
+++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigResult (not serializable)
8+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
9+
+++ NEW SUPERCLASS: java.lang.Object
10+
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.resources.Resource getResource()
11+
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.internal.ExtendedOpenTelemetrySdk getSdk()
12+
+++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration (not serializable)
13+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
14+
+++ NEW SUPERCLASS: java.lang.Object
15+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigResult create(io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel)
16+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigResult create(io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel, io.opentelemetry.common.ComponentLoader)
17+
+++ NEW CLASS: PUBLIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationBuilder (not serializable)
18+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
19+
+++ NEW INTERFACE: io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizer
20+
+++ NEW SUPERCLASS: java.lang.Object
21+
+++ NEW CONSTRUCTOR: PUBLIC(+) DeclarativeConfigurationBuilder()
22+
+++ NEW METHOD: PUBLIC(+) void addLogRecordExporterCustomizer(java.lang.Class<T>, java.util.function.BiFunction<T,io.opentelemetry.api.incubator.config.DeclarativeConfigProperties,T>)
23+
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.logs.export.LogRecordExporter
24+
+++ NEW METHOD: PUBLIC(+) void addMetricExporterCustomizer(java.lang.Class<T>, java.util.function.BiFunction<T,io.opentelemetry.api.incubator.config.DeclarativeConfigProperties,T>)
25+
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.metrics.export.MetricExporter
26+
+++ NEW METHOD: PUBLIC(+) void addModelCustomizer(java.util.function.Function<io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel,io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel>)
27+
+++ NEW METHOD: PUBLIC(+) void addSpanExporterCustomizer(java.lang.Class<T>, java.util.function.BiFunction<T,io.opentelemetry.api.incubator.config.DeclarativeConfigProperties,T>)
28+
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.trace.export.SpanExporter
29+
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel customizeModel(io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel)
30+
+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizer (not serializable)
31+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
32+
+++ NEW SUPERCLASS: java.lang.Object
33+
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void addLogRecordExporterCustomizer(java.lang.Class<T>, java.util.function.BiFunction<T,io.opentelemetry.api.incubator.config.DeclarativeConfigProperties,T>)
34+
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.logs.export.LogRecordExporter
35+
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void addMetricExporterCustomizer(java.lang.Class<T>, java.util.function.BiFunction<T,io.opentelemetry.api.incubator.config.DeclarativeConfigProperties,T>)
36+
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.metrics.export.MetricExporter
37+
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void addModelCustomizer(java.util.function.Function<io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel,io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel>)
38+
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void addSpanExporterCustomizer(java.lang.Class<T>, java.util.function.BiFunction<T,io.opentelemetry.api.incubator.config.DeclarativeConfigProperties,T>)
39+
GENERIC TEMPLATES: +++ T:io.opentelemetry.sdk.trace.export.SpanExporter
40+
+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizerProvider (not serializable)
41+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
42+
+++ NEW INTERFACE: io.opentelemetry.sdk.autoconfigure.spi.Ordered
43+
+++ NEW SUPERCLASS: java.lang.Object
44+
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void customize(io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizer)
45+
+++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationParser (not serializable)
46+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
47+
+++ NEW SUPERCLASS: java.lang.Object
48+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.sdk.trace.samplers.Sampler createSampler(io.opentelemetry.api.incubator.config.DeclarativeConfigProperties)
49+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel parse(java.io.InputStream)
50+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigResult parseAndCreate(java.io.InputStream)
51+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.api.incubator.config.DeclarativeConfigProperties toConfigProperties(java.io.InputStream)
52+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.api.incubator.config.DeclarativeConfigProperties toConfigProperties(java.lang.Object)
53+
+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationProvider (not serializable)
54+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
55+
+++ NEW SUPERCLASS: java.lang.Object
56+
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel getConfigurationModel()
57+
+++ NEW ANNOTATION: javax.annotation.Nullable
58+
+++ NEW CLASS: PUBLIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.ServiceResourceDetector (not serializable)
59+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
60+
+++ NEW INTERFACE: io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider
61+
+++ NEW SUPERCLASS: java.lang.Object
62+
+++ NEW CONSTRUCTOR: PUBLIC(+) ServiceResourceDetector()
63+
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.resources.Resource create(io.opentelemetry.api.incubator.config.DeclarativeConfigProperties)
64+
+++ NEW METHOD: PUBLIC(+) java.lang.String getName()
65+
+++ NEW METHOD: PUBLIC(+) java.lang.Class<io.opentelemetry.sdk.resources.Resource> getType()
66+
+++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.extension.incubator.fileconfig.YamlDeclarativeConfigProperties (not serializable)
67+
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
68+
+++ NEW SUPERCLASS: java.lang.Object
69+
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.sdk.extension.incubator.fileconfig.YamlDeclarativeConfigProperties create(java.util.Map<java.lang.String,java.lang.Object>, io.opentelemetry.common.ComponentLoader)
70+
+++ NEW METHOD: PUBLIC(+) java.lang.Boolean getBoolean(java.lang.String)
71+
+++ NEW ANNOTATION: javax.annotation.Nullable
72+
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.common.ComponentLoader getComponentLoader()
73+
+++ NEW METHOD: PUBLIC(+) java.lang.Double getDouble(java.lang.String)
74+
+++ NEW ANNOTATION: javax.annotation.Nullable
75+
+++ NEW METHOD: PUBLIC(+) java.lang.Integer getInt(java.lang.String)
76+
+++ NEW ANNOTATION: javax.annotation.Nullable
77+
+++ NEW METHOD: PUBLIC(+) java.lang.Long getLong(java.lang.String)
78+
+++ NEW ANNOTATION: javax.annotation.Nullable
79+
+++ NEW METHOD: PUBLIC(+) java.util.Set<java.lang.String> getPropertyKeys()
80+
+++ NEW METHOD: PUBLIC(+) java.util.List<T> getScalarList(java.lang.String, java.lang.Class<T>)
81+
+++ NEW ANNOTATION: javax.annotation.Nullable
82+
GENERIC TEMPLATES: +++ T:java.lang.Object
83+
+++ NEW METHOD: PUBLIC(+) java.lang.String getString(java.lang.String)
84+
+++ NEW ANNOTATION: javax.annotation.Nullable
85+
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.api.incubator.config.DeclarativeConfigProperties getStructured(java.lang.String)
86+
+++ NEW ANNOTATION: javax.annotation.Nullable
87+
+++ NEW METHOD: PUBLIC(+) java.util.List<io.opentelemetry.api.incubator.config.DeclarativeConfigProperties> getStructuredList(java.lang.String)
88+
+++ NEW ANNOTATION: javax.annotation.Nullable
89+
+++ NEW METHOD: PUBLIC(+) java.lang.String toString()
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
plugins {
2+
id("otel.java-conventions")
3+
id("otel.publish-conventions")
4+
}
5+
6+
description = "OpenTelemetry SDK Autoconfigure with YAML configuration support"
7+
otelJava.moduleName.set("io.opentelemetry.sdk.extension.autoconfigure.config")
8+
9+
dependencies {
10+
api(project(":sdk-extensions:autoconfigure"))
11+
runtimeOnly("org.snakeyaml:snakeyaml-engine")
12+
runtimeOnly("com.fasterxml.jackson.core:jackson-databind")
13+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
otel.release=alpha

0 commit comments

Comments
 (0)