diff --git a/sdk-extensions/incubator/README.md b/sdk-extensions/incubator/README.md index 3dc539bf0d2..2aa38ea3d0e 100644 --- a/sdk-extensions/incubator/README.md +++ b/sdk-extensions/incubator/README.md @@ -33,6 +33,9 @@ Notes: ## View File Configuration +> [!WARNING] +> This mechanism is superseded by declarative config, which is now stable (spec and schema at [opentelemetry-configuration](https://github.com/open-telemetry/opentelemetry-configuration)) and will be removed after the 1.62.0 release. Please use [declarative configuration](#declarative-configuration) instead. + Adds support for file based YAML configuration of Metric SDK Views. For example, suppose `/Users/user123/view.yaml` has the following content: diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java index 9c08770d072..0eb7239984a 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfig.java @@ -71,7 +71,15 @@ * .setAttributesFilter(key -> new HashSet<>(Arrays.asList("foo", "bar")).contains(key)) * .build()); * } + * + * @deprecated this mechanism is superseded by declarative config, which is now stable (spec and + * schema at opentelemetry-configuration. + * Please uses {@link + * io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration#parseAndCreate(InputStream)} + * instead. */ +@Deprecated public final class ViewConfig { private ViewConfig() {} diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java index 4c3acfe30d0..76af81d7c12 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizer.java @@ -15,9 +15,21 @@ import java.io.IOException; import java.io.InputStream; import java.util.List; +import java.util.logging.Logger; -/** SPI implementation for loading view configuration YAML. */ +/** + * SPI implementation for loading view configuration YAML. + * + * @deprecated this mechanism is superseded by declarative config, which is now stable (spec and + * schema at opentelemetry-configuration) + * and will be removed after the 1.62.0 release. Please uses {@link + * io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration#parseAndCreate(InputStream)} + * instead. + */ +@Deprecated public final class ViewConfigCustomizer implements AutoConfigurationCustomizerProvider { + private static final Logger LOGGER = Logger.getLogger(ViewConfigCustomizer.class.getName()); @Override public void customize(AutoConfigurationCustomizer autoConfiguration) { @@ -29,6 +41,10 @@ static SdkMeterProviderBuilder customizeMeterProvider( SdkMeterProviderBuilder meterProviderBuilder, ConfigProperties configProperties) { List configFileLocations = configProperties.getList("otel.experimental.metrics.view.config"); + if (!configFileLocations.isEmpty()) { + LOGGER.warning( + "otel.experimental.metrics.view.config is deprecated and will be removed after 1.62 release. Please use declarative config instead."); + } for (String configFileLocation : configFileLocations) { if (configFileLocation.startsWith("classpath:")) { String classpathLocation = configFileLocation.substring("classpath:".length()); diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizerTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizerTest.java index 25950b2b898..0a742ee96e5 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizerTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigCustomizerTest.java @@ -22,6 +22,7 @@ import java.util.UUID; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") // Testing deprecated methods class ViewConfigCustomizerTest { @Test diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java index a62204e1180..68c7b87d99b 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/metric/viewconfig/ViewConfigTest.java @@ -35,6 +35,7 @@ import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") // Testing deprecated methods class ViewConfigTest { @Test