From d2a46f368d77bdce1cdb32c4bc37e910a42481a5 Mon Sep 17 00:00:00 2001 From: Pranav Sharma Date: Thu, 7 May 2026 16:27:47 +0000 Subject: [PATCH 1/3] Add deprecation warnings for artifacts --- README.md | 3 +++ build.gradle | 2 +- .../opentelemetry/auto/GoogleCloudMetricExporterFactory.java | 1 + .../opentelemetry/auto/GoogleCloudSpanExporterFactory.java | 1 + .../opentelemetry/metric/GoogleCloudMetricExporter.java | 5 +++++ .../com/google/cloud/opentelemetry/trace/TraceExporter.java | 5 +++++ .../OneWayXCloudTraceConfigurablePropagatorProvider.java | 1 + .../XCloudTraceConfigurablePropagatorProvider.java | 1 + .../propagators/XCloudTraceContextPropagator.java | 4 ++++ .../com/google/cloud/opentelemetry/resource/GcpResource.java | 1 + .../google/cloud/opentelemetry/resource/ResourceLabels.java | 1 + .../cloud/opentelemetry/resource/ResourceTranslator.java | 1 + 12 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 511bc190..2f3579b4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Open-Telemetry Operations Exporters for Java +> [!WARNING] +> **DEPRECATION NOTICE**: This project and all its published artifacts are deprecated. No new features will be added, and this repository may be archived in the future. + [![Maven Central][maven-image]][maven-url] Provides OpenTelemetry Exporters for Google Cloud Operations. diff --git a/build.gradle b/build.gradle index 5c02f06e..b6a162ff 100644 --- a/build.gradle +++ b/build.gradle @@ -311,7 +311,7 @@ subprojects { } afterEvaluate { // description is not available until evaluated. - description = project.description + description = "DEPRECATED: " + project.description } } } diff --git a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java index 08efec4e..f29fe846 100644 --- a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java +++ b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java @@ -22,6 +22,7 @@ import io.opentelemetry.sdk.metrics.export.MetricExporter; @AutoService(ConfigurableMetricExporterProvider.class) +@Deprecated public class GoogleCloudMetricExporterFactory implements ConfigurableMetricExporterProvider { @Override public MetricExporter createExporter(ConfigProperties config) { diff --git a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java index 578161cf..3d91e3fd 100644 --- a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java +++ b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java @@ -22,6 +22,7 @@ import io.opentelemetry.sdk.trace.export.SpanExporter; @AutoService(ConfigurableSpanExporterProvider.class) +@Deprecated public class GoogleCloudSpanExporterFactory implements ConfigurableSpanExporterProvider { @Override diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java index 86445582..ab336274 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java @@ -29,6 +29,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Deprecated public class GoogleCloudMetricExporter implements MetricExporter { private static final Logger logger = LoggerFactory.getLogger(GoogleCloudMetricExporter.class); @@ -64,7 +65,9 @@ private GoogleCloudMetricExporter(MetricConfiguration configuration) { * which gets initialized lazily once {@link GoogleCloudMetricExporter#export(Collection)} is * called. */ + @Deprecated public static MetricExporter createWithDefaultConfiguration() { + logger.warn("GoogleCloudMetricExporter is deprecated and will be removed in a future release."); return new GoogleCloudMetricExporter(MetricConfiguration.builder().build()); } @@ -81,7 +84,9 @@ public static MetricExporter createWithDefaultConfiguration() { * preferences for metrics. * @return An instance of {@link GoogleCloudMetricExporter} as a {@link MetricExporter} object. */ + @Deprecated public static MetricExporter createWithConfiguration(MetricConfiguration configuration) { + logger.warn("GoogleCloudMetricExporter is deprecated and will be removed in a future release."); return new GoogleCloudMetricExporter(configuration); } diff --git a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java index cab668b9..ef09f595 100644 --- a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java +++ b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Deprecated public class TraceExporter implements SpanExporter { private static final Logger logger = LoggerFactory.getLogger(TraceExporter.class); @@ -62,7 +63,9 @@ private TraceExporter(TraceConfiguration configuration) { * @return A configured instance of {@link TraceExporter} which gets initialized lazily once * {@link TraceExporter#export(Collection)} is called. */ + @Deprecated public static SpanExporter createWithDefaultConfiguration() { + logger.warn("TraceExporter is deprecated and will be removed in a future release."); return new TraceExporter(TraceConfiguration.builder().build()); } @@ -79,7 +82,9 @@ public static SpanExporter createWithDefaultConfiguration() { * for trace. * @return An instance of {@link TraceExporter} as a {@link SpanExporter} object */ + @Deprecated public static SpanExporter createWithConfiguration(TraceConfiguration configuration) { + logger.warn("TraceExporter is deprecated and will be removed in a future release."); return new TraceExporter(configuration); } diff --git a/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/OneWayXCloudTraceConfigurablePropagatorProvider.java b/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/OneWayXCloudTraceConfigurablePropagatorProvider.java index 9921c3ea..dd36a0c0 100644 --- a/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/OneWayXCloudTraceConfigurablePropagatorProvider.java +++ b/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/OneWayXCloudTraceConfigurablePropagatorProvider.java @@ -29,6 +29,7 @@ * propagation. */ @AutoService(ConfigurablePropagatorProvider.class) +@Deprecated public class OneWayXCloudTraceConfigurablePropagatorProvider implements ConfigurablePropagatorProvider { @Override diff --git a/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceConfigurablePropagatorProvider.java b/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceConfigurablePropagatorProvider.java index 24a1b06d..bd224d9e 100644 --- a/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceConfigurablePropagatorProvider.java +++ b/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceConfigurablePropagatorProvider.java @@ -31,6 +31,7 @@ * @see OneWayXCloudTraceConfigurablePropagatorProvider */ @AutoService(ConfigurablePropagatorProvider.class) +@Deprecated public class XCloudTraceConfigurablePropagatorProvider implements ConfigurablePropagatorProvider { @Override public TextMapPropagator getPropagator(ConfigProperties config) { diff --git a/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceContextPropagator.java b/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceContextPropagator.java index e47d5d30..16531ffe 100644 --- a/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceContextPropagator.java +++ b/propagators/gcp/src/main/java/com/google/cloud/opentelemetry/propagators/XCloudTraceContextPropagator.java @@ -37,6 +37,7 @@ *

See: Google Cloud Trace * Documentation for details. */ +@Deprecated public final class XCloudTraceContextPropagator implements TextMapPropagator { private static final String FIELD = "x-cloud-trace-context"; @@ -53,7 +54,10 @@ public final class XCloudTraceContextPropagator implements TextMapPropagator { * * @param oneway boolean to configure if the trace should propagate in a single direction. */ + @Deprecated public XCloudTraceContextPropagator(boolean oneway) { + LOGGER.warning( + "XCloudTraceContextPropagator is deprecated and will be removed in a future release."); this.oneway = oneway; } diff --git a/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/GcpResource.java b/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/GcpResource.java index 5822b617..2b1bc736 100644 --- a/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/GcpResource.java +++ b/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/GcpResource.java @@ -23,6 +23,7 @@ *

Unlike pure OpenTelemetry, GCP adds a "type" to a raw bundle of labels. */ @AutoValue +@Deprecated public abstract class GcpResource { /** The type of resource, e.g. gce_instance. */ public abstract String getResourceType(); diff --git a/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceLabels.java b/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceLabels.java index 6beb497a..2d617c68 100644 --- a/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceLabels.java +++ b/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceLabels.java @@ -26,6 +26,7 @@ * Guice for collections. */ @AutoValue +@Deprecated public abstract class ResourceLabels { public abstract Map getLabels(); diff --git a/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceTranslator.java b/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceTranslator.java index 00c6e677..e0d69c79 100644 --- a/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceTranslator.java +++ b/shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceTranslator.java @@ -30,6 +30,7 @@ import java.util.Optional; /** Translates from OpenTelemetry Resource into Google Cloud's notion of resource. */ +@Deprecated public class ResourceTranslator { private static final String UNKNOWN_SERVICE_PREFIX = "unknown_service"; From d656f4c8c1b9c8c18036393ef884e6f59fb3db4c Mon Sep 17 00:00:00 2001 From: Pranav Sharma Date: Thu, 7 May 2026 16:57:39 +0000 Subject: [PATCH 2/3] Add missing @Deprecated tags on remaining public classes --- .../java/com/google/cloud/opentelemetry/auto/Constants.java | 1 + .../metric/AggregateByLabelMetricTimeSeriesBuilder.java | 1 + .../google/cloud/opentelemetry/metric/CloudMetricClient.java | 1 + .../cloud/opentelemetry/metric/CloudMetricClientImpl.java | 1 + .../google/cloud/opentelemetry/metric/MetricConfiguration.java | 2 ++ .../cloud/opentelemetry/metric/MetricDescriptorStrategy.java | 1 + .../cloud/opentelemetry/metric/MetricTimeSeriesBuilder.java | 1 + .../com/google/cloud/opentelemetry/metric/MetricTranslator.java | 1 + .../opentelemetry/metric/MonitoredResourceDescription.java | 1 + .../google/cloud/opentelemetry/metric/ResourceTranslator.java | 1 + .../com/google/cloud/opentelemetry/trace/CloudTraceClient.java | 1 + .../google/cloud/opentelemetry/trace/CloudTraceClientImpl.java | 1 + .../google/cloud/opentelemetry/trace/TraceConfiguration.java | 2 ++ .../com/google/cloud/opentelemetry/trace/TraceVersions.java | 1 + 14 files changed, 16 insertions(+) diff --git a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/Constants.java b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/Constants.java index 3a9515e0..f6ae4e29 100644 --- a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/Constants.java +++ b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/Constants.java @@ -15,6 +15,7 @@ */ package com.google.cloud.opentelemetry.auto; +@Deprecated public class Constants { static final String CLOUD_TRACE_NAME = "google_cloud_trace"; diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/AggregateByLabelMetricTimeSeriesBuilder.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/AggregateByLabelMetricTimeSeriesBuilder.java index 7fdc3a85..97b1bfce 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/AggregateByLabelMetricTimeSeriesBuilder.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/AggregateByLabelMetricTimeSeriesBuilder.java @@ -47,6 +47,7 @@ * Builds GCM TimeSeries from each OTEL metric point, creating metric descriptors based on the * "first" seen point for any given metric. */ +@Deprecated public final class AggregateByLabelMetricTimeSeriesBuilder implements MetricTimeSeriesBuilder { public static final String LABEL_INSTRUMENTATION_SOURCE = diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClient.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClient.java index 4073c422..5c305062 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClient.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClient.java @@ -22,6 +22,7 @@ import java.util.List; /** Wrapper interface for writing to Google Cloud Monitoring. */ +@Deprecated public interface CloudMetricClient { /** * Construct a metric descriptor. diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClientImpl.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClientImpl.java index 7f510409..07014e6a 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClientImpl.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/CloudMetricClientImpl.java @@ -23,6 +23,7 @@ import java.util.List; /** Directly talks to Cloud Monitoring. */ +@Deprecated public final class CloudMetricClientImpl implements CloudMetricClient { private final MetricServiceClient metricServiceClient; diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricConfiguration.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricConfiguration.java index 2cd47660..2c4df3b9 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricConfiguration.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricConfiguration.java @@ -44,6 +44,7 @@ */ @AutoValue @Immutable +@Deprecated public abstract class MetricConfiguration { static final String DEFAULT_PREFIX = "workload.googleapis.com"; @@ -224,6 +225,7 @@ public static Builder builder() { /** Builder for {@link MetricConfiguration}. */ @AutoValue.Builder + @Deprecated public abstract static class Builder { Builder() {} diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricDescriptorStrategy.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricDescriptorStrategy.java index 55319a5b..6c3a1829 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricDescriptorStrategy.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricDescriptorStrategy.java @@ -21,6 +21,7 @@ import java.util.function.Consumer; /** The strategy for how to handle metric descriptors. */ +@Deprecated public interface MetricDescriptorStrategy { /** * Determines what to do with metric descriptors. diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTimeSeriesBuilder.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTimeSeriesBuilder.java index 0c266c96..a233086b 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTimeSeriesBuilder.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTimeSeriesBuilder.java @@ -25,6 +25,7 @@ import java.util.List; /** An interface that denotes how we build our API calls from metric data. */ +@Deprecated public interface MetricTimeSeriesBuilder { /** Records a LongPoint of the given metric. */ void recordPoint(MetricData metric, LongPointData point); diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTranslator.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTranslator.java index a1208152..db907b8e 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTranslator.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTranslator.java @@ -45,6 +45,7 @@ import org.slf4j.LoggerFactory; /** Utility methods to translate metrics from OTEL to GCM format. */ +@Deprecated public final class MetricTranslator { private static final Logger logger = LoggerFactory.getLogger(MetricTranslator.class); diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MonitoredResourceDescription.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MonitoredResourceDescription.java index 9427782a..dc8b63a6 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MonitoredResourceDescription.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MonitoredResourceDescription.java @@ -24,6 +24,7 @@ * identifying the given monitored resource type. */ @Immutable +@Deprecated public final class MonitoredResourceDescription { private final String mrType; private final Set mrLabels; diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/ResourceTranslator.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/ResourceTranslator.java index 51b65ae2..40ab4643 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/ResourceTranslator.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/ResourceTranslator.java @@ -24,6 +24,7 @@ import java.util.logging.Logger; /** Translates from OpenTelemetry Resource into Google Cloud Monitoring's MonitoredResource. */ +@Deprecated public class ResourceTranslator { private static final String CUSTOM_MR_KEY = "gcp.resource_type"; private static final Logger LOGGER = diff --git a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClient.java b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClient.java index caf4f899..424e8c5e 100644 --- a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClient.java +++ b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClient.java @@ -19,6 +19,7 @@ import com.google.devtools.cloudtrace.v2.Span; import java.util.List; +@Deprecated public interface CloudTraceClient { void batchWriteSpans(ProjectName name, List spans); diff --git a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClientImpl.java b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClientImpl.java index 9c917194..f626a4b5 100644 --- a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClientImpl.java +++ b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/CloudTraceClientImpl.java @@ -20,6 +20,7 @@ import com.google.devtools.cloudtrace.v2.Span; import java.util.List; +@Deprecated public class CloudTraceClientImpl implements CloudTraceClient { private final TraceServiceClient traceServiceClient; diff --git a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceConfiguration.java b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceConfiguration.java index af42e9e5..b8f28bc5 100644 --- a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceConfiguration.java +++ b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceConfiguration.java @@ -37,6 +37,7 @@ /** Configurations for {@link TraceExporter}. */ @AutoValue @Immutable +@Deprecated public abstract class TraceConfiguration { @VisibleForTesting static final Duration DEFAULT_DEADLINE = Duration.ofSeconds(10, 0); @@ -149,6 +150,7 @@ public static Builder builder() { /** Builder for {@link TraceConfiguration}. */ @AutoValue.Builder + @Deprecated public abstract static class Builder { @VisibleForTesting static final Duration ZERO = Duration.ZERO; diff --git a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceVersions.java b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceVersions.java index 528240fb..8816f2c3 100644 --- a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceVersions.java +++ b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceVersions.java @@ -22,6 +22,7 @@ import javax.annotation.Nullable; /** Helper to grab version numbers from builds. */ +@Deprecated public class TraceVersions { public static final String SDK_VERSION = readSdkVersion(); From 6507068388c4d3fe71e772e4788d2af7908d4ce3 Mon Sep 17 00:00:00 2001 From: Pranav Sharma Date: Thu, 7 May 2026 19:06:24 +0000 Subject: [PATCH 3/3] Add runtime deprecation warnings in static block --- MIGRATION.md | 22 +++++++++++++++++++ .../GoogleCloudMetricExporterFactory.java | 10 +++++++++ .../auto/GoogleCloudSpanExporterFactory.java | 9 ++++++++ .../metric/GoogleCloudMetricExporter.java | 7 ++++-- .../opentelemetry/trace/TraceExporter.java | 7 ++++-- 5 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 MIGRATION.md diff --git a/MIGRATION.md b/MIGRATION.md new file mode 100644 index 00000000..a37c91f1 --- /dev/null +++ b/MIGRATION.md @@ -0,0 +1,22 @@ +# Migration Guide + +This guide provides instructions on how to migrate from the custom exporters in this repository to the standard OpenTelemetry OTLP exporters. + +## Overview +Google Cloud now supports native OTLP (OpenTelemetry Protocol) ingestion for Cloud Trace and Cloud Monitoring via the [Telemetry API](https://docs.cloud.google.com/stackdriver/docs/reference/telemetry/overview). This allows you to use the standard OpenTelemetry OTLP exporters for sending telemetry data to Google Cloud. + +## Migrate from OpenTelemetry Google Cloud Trace Exporter to OTLP exporter + +Follow the [Migrate from the Trace exporter to the OTLP endpoint](https://docs.cloud.google.com/trace/docs/migrate-to-otlp-endpoints) guide for migration instructions. + +## Migrate from OpenTelemetry Google Cloud Monitoring Exporter to OTLP exporter + +> [!NOTE] The Google Cloud OTLP metrics endpoint is currently in preview and the migration guides are being developed. + +TODO: Add migration guide for metrics exporter + +## Migrate from OpenTelemetry Google Cloud Auto Exporter + +The Auto exporter allowed the [auto-configuration module](https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/autoconfigure#opentelemetry-sdk-autoconfigure) of OpenTelemetry Java to work with OpenTelemetry Google Cloud Trace and Monitoring exporters in this repository. + +The standard OpenTelemetry OTLP exporters natively support auto-configuration and are the recommended way to send telemetry to Google Cloud. You can configure the OTLP exporters using the standard [exporter properties](https://opentelemetry.io/docs/languages/java/configuration/#properties-exporters) that are supported by the autoconfiguration module. diff --git a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java index f29fe846..5734d4e5 100644 --- a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java +++ b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudMetricExporterFactory.java @@ -20,10 +20,20 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider; import io.opentelemetry.sdk.metrics.export.MetricExporter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @AutoService(ConfigurableMetricExporterProvider.class) @Deprecated public class GoogleCloudMetricExporterFactory implements ConfigurableMetricExporterProvider { + private static final Logger logger = + LoggerFactory.getLogger(GoogleCloudMetricExporterFactory.class); + + static { + logger.warn( + "Google Cloud OpenTelemetry Auto exporter for Java is deprecated. Please migrate to the OpenTelemetry OTLP exporters. For migration details, see https://github.com/GoogleCloudPlatform/opentelemetry-operations-java/blob/main/MIGRATION.md"); + } + @Override public MetricExporter createExporter(ConfigProperties config) { return GoogleCloudMetricExporter.createWithDefaultConfiguration(); diff --git a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java index 3d91e3fd..5cd2aee3 100644 --- a/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java +++ b/exporters/auto/src/main/java/com/google/cloud/opentelemetry/auto/GoogleCloudSpanExporterFactory.java @@ -20,10 +20,19 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider; import io.opentelemetry.sdk.trace.export.SpanExporter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @AutoService(ConfigurableSpanExporterProvider.class) @Deprecated public class GoogleCloudSpanExporterFactory implements ConfigurableSpanExporterProvider { + private static final Logger logger = + LoggerFactory.getLogger(GoogleCloudSpanExporterFactory.class); + + static { + logger.warn( + "Google Cloud OpenTelemetry Auto exporter for Java is deprecated. Please migrate to the OpenTelemetry OTLP exporters. For migration details, see https://github.com/GoogleCloudPlatform/opentelemetry-operations-java/blob/main/MIGRATION.md"); + } @Override public SpanExporter createExporter(ConfigProperties config) { diff --git a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java index ab336274..e3116c35 100644 --- a/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java +++ b/exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/GoogleCloudMetricExporter.java @@ -33,6 +33,11 @@ public class GoogleCloudMetricExporter implements MetricExporter { private static final Logger logger = LoggerFactory.getLogger(GoogleCloudMetricExporter.class); + static { + logger.warn( + "Google Cloud OpenTelemetry Metric exporter for Java is deprecated. Please migrate to the OpenTelemetry OTLP exporters. For migration details, see https://github.com/GoogleCloudPlatform/opentelemetry-operations-java/blob/main/MIGRATION.md"); + } + private final Supplier internalMetricExporterSupplier; private GoogleCloudMetricExporter(MetricConfiguration configuration) { @@ -67,7 +72,6 @@ private GoogleCloudMetricExporter(MetricConfiguration configuration) { */ @Deprecated public static MetricExporter createWithDefaultConfiguration() { - logger.warn("GoogleCloudMetricExporter is deprecated and will be removed in a future release."); return new GoogleCloudMetricExporter(MetricConfiguration.builder().build()); } @@ -86,7 +90,6 @@ public static MetricExporter createWithDefaultConfiguration() { */ @Deprecated public static MetricExporter createWithConfiguration(MetricConfiguration configuration) { - logger.warn("GoogleCloudMetricExporter is deprecated and will be removed in a future release."); return new GoogleCloudMetricExporter(configuration); } diff --git a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java index ef09f595..bb21d8c6 100644 --- a/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java +++ b/exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceExporter.java @@ -32,6 +32,11 @@ public class TraceExporter implements SpanExporter { private static final Logger logger = LoggerFactory.getLogger(TraceExporter.class); + static { + logger.warn( + "Google Cloud OpenTelemetry Trace exporter for Java is deprecated. Please migrate to the OpenTelemetry OTLP exporters. For migration details, see https://github.com/GoogleCloudPlatform/opentelemetry-operations-java/blob/main/MIGRATION.md"); + } + private final Supplier internalTraceExporterSupplier; private TraceExporter(TraceConfiguration configuration) { @@ -65,7 +70,6 @@ private TraceExporter(TraceConfiguration configuration) { */ @Deprecated public static SpanExporter createWithDefaultConfiguration() { - logger.warn("TraceExporter is deprecated and will be removed in a future release."); return new TraceExporter(TraceConfiguration.builder().build()); } @@ -84,7 +88,6 @@ public static SpanExporter createWithDefaultConfiguration() { */ @Deprecated public static SpanExporter createWithConfiguration(TraceConfiguration configuration) { - logger.warn("TraceExporter is deprecated and will be removed in a future release."); return new TraceExporter(configuration); }