Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move OTel exporter API to autoconfigure distro API #42566

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@
# ServiceOwners: @ambhatna @savjani

# PRLabel: %OpenTelemetry
/sdk/monitor/azure-monitor-opentelemetry-exporter/ @trask @ramthi @heyams @jeanbisutti @harsimar
/sdk/monitor/azure-monitor-opentelemetry-autoconfigure/ @trask @ramthi @heyams @jeanbisutti @harsimar

# ServiceLabel: %Network
# ServiceOwners: @aznetsuppgithub
Expand Down
2 changes: 1 addition & 1 deletion .vscode/cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
"sdk/mixedreality/azure-mixedreality-authentication/**",
"sdk/maps/azure-maps-search/**",
"sdk/monitor/azure-monitor-query/**",
"sdk/monitor/azure-monitor-opentelemetry-exporter/**",
"sdk/monitor/azure-monitor-opentelemetry-autoconfigure/**",
"sdk/monitor/test-resources.json",
"sdk/modelsrepository/azure-iot-modelsrepository/**",
"sdk/parents/azure-client-sdk-parent/**",
Expand Down
2 changes: 1 addition & 1 deletion eng/.docsettings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ omitted_paths:
- loganalytics/data-plane/samples/*
- sdk/*/azure-*/samples/*
- sdk/authorization/microsoft-azure-authentication-msi-token-provider/*
- sdk/*/azure-monitor-opentelemetry-exporter/*/samples/*
- sdk/*/azure-monitor-opentelemetry-autoconfigure/*/samples/*
- sdk/applicationinsights/microsoft-azure-applicationinsights-query/samples/*
- sdk/boms/spring-cloud-azure-dependencies/*
- sdk/spring/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@
files="com.azure.containers.containerregistry.ContainerRegistryContentClient.java"/>

<suppress checks="com.azure.tools.checkstyle.checks.ExternalDependencyExposedCheck"
files="com.azure.monitor.opentelemetry.exporter.AzureMonitorExporter.java"/>
files="com.azure.monitor.opentelemetry.autoconfigure.AzureMonitorAutoconfigure.java"/>

<suppress checks="com.azure.tools.checkstyle.checks.ExternalDependencyExposedCheck"
files="com.azure.monitor.opentelemetry.exporter.AzureMonitorExporterOptions"/>
files="com.azure.monitor.opentelemetry.autoconfigure.AzureMonitorAutoconfigureOptions"/>

<!-- JavadocInlineTagCheck Suppression for now, which need code owner's attention -->
<suppress checks="com.azure.tools.checkstyle.checks.JavadocInlineTagCheck"
Expand Down
8 changes: 4 additions & 4 deletions eng/scripts/aggregate_javadoc_configuration.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Group;Azure Mixed Reality Authentication;com.azure.mixedreality.authentication*
Group;Azure Mixed Reality Remote Rendering;com.azure.mixedreality.remoterendering*
Group;Azure Monitor - Ingestion;com.azure.monitor.ingestion*
Group;Azure Monitor - Logs and Metrics query;com.azure.monitor.query*
Group;Azure Monitor - OpenTelemetry Exporter;com.azure.monitor.opentelemetry.exporter*
Group;Azure Monitor - OpenTelemetry Exporter;com.azure.monitor.opentelemetry.autoconfigure*
Group;Azure Personalizer;com.azure.ai.personalizer*
Group;Azure Purview Administration;com.azure.analytics.purview.administration*
Group;Azure Purview Catalog;com.azure.analytics.purview.catalog*
Expand All @@ -65,7 +65,7 @@ Group;Azure Text Analytics;com.azure.ai.textanalytics*
Group;Azure Web Pub Sub;com.azure.messaging.webpubsub*

# Adds the following links to external javadocs
# Link;URL
# Link;URL
Link;https://docs.oracle.com/javase/8/docs/api/
Link;https://projectreactor.io/docs/core/release/api/
Link;https://projectreactor.io/docs/netty/release/api/
Expand All @@ -85,7 +85,7 @@ OfflineLink;https://fasterxml.github.io/jackson-core/javadoc/2.12/;eng/javadoc-p
OfflineLink;https://netty.io/4.1/api/;eng/javadoc-package-lists/netty/
OfflineLink;https://avro.apache.org/docs/current/api/java/;eng/javadoc-package-lists/apache-avro/

# Adds the following packages to excludedPackages section
# Adds the following packages to excludedPackages section
# ExcludePackage;Package
ExcludePackage;*.impl*
ExcludePackage;*.implementation*
Expand All @@ -96,7 +96,7 @@ ExcludePackage;com.azure.endtoend
ExcludePackage;com.azure.perf*
ExcludePackage;com.azure.storage.internal.avro*

# Adds the following files to sourceFileExcludes section
# Adds the following files to sourceFileExcludes section
# ExcludeFile;FilePath
ExcludeFile;com/azure/cosmos/*BridgeInternal.java
ExcludeFile;com/azure/cosmos/models/*BridgeInternal.java
Expand Down
1 change: 1 addition & 0 deletions eng/versioning/external_dependencies.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ com.microsoft.sqlserver:mssql-jdbc;10.2.3.jre8
com.microsoft.azure:spring-data-cosmosdb;2.3.0
com.microsoft.azure:azure-functions-maven-plugin;1.30.0
com.microsoft.azure.functions:azure-functions-java-library;2.2.0
com.azure:azure-monitor-opentelemetry-exporter;1.0.0-beta.31
Copy link
Contributor Author

@jeanbisutti jeanbisutti Oct 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Spring CI does not support unreleased non-Spring dependencies. So we temporarily move azure-monitor-opentelemetry-exporter as an external dependency (it is no more part of Azure SDK). Once azure-monitor-opentelemetry-autoconfigure is released, we could remove the external dependency and the azure-monitor-opentelemetry-exporter usage in spring-cloud-azure-starter-monitor.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@saragluna is this true? Spring's hacked together pipeline code doesn't support what the engineering system does? This isn't okay.
@jeanbisutti if this is only a spring dependency only has to exist until com.azure:azure-monitor-opentelemetry-autoconfigure is released then I want an issue filed, assigned to you, to remove this external dependency and update the spring dependency com.azure:azure-monitor-opentelemetry-autoconfigure when it's released.

com.mysql:mysql-connector-j;9.0.0
com.squareup.okhttp3:mockwebserver;4.12.0
com.squareup.okhttp3:okhttp;4.12.0
Expand Down
4 changes: 2 additions & 2 deletions eng/versioning/version_client.txt
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ com.azure:azure-messaging-webpubsub;1.3.1;1.4.0-beta.1
com.azure:azure-messaging-webpubsub-client;1.0.7;1.1.0-beta.1
com.azure:azure-mixedreality-authentication;1.2.28;1.3.0-beta.1
com.azure:azure-mixedreality-remoterendering;1.1.33;1.2.0-beta.1
com.azure:azure-monitor-opentelemetry-exporter;1.0.0-beta.31;1.0.0-beta.32
com.azure:azure-monitor-opentelemetry-autoconfigure;1.0.0-beta.31
jeanbisutti marked this conversation as resolved.
Show resolved Hide resolved
com.azure:azure-monitor-ingestion;1.2.5;1.3.0-beta.1
com.azure:azure-monitor-ingestion-perf;1.0.0-beta.1;1.0.0-beta.1
com.azure:azure-monitor-query;1.5.2;1.6.0-beta.1
Expand Down Expand Up @@ -493,7 +493,7 @@ io.clientcore:http-stress;1.0.0-beta.1;1.0.0-beta.1
# In the pom, the version update tag after the version should name the unreleased package and the dependency version:
# <!-- {x-version-update;unreleased_com.azure:azure-core;dependency} -->

unreleased_com.azure:azure-monitor-opentelemetry-exporter;1.0.0-beta.31
unreleased_com.azure:azure-monitor-opentelemetry-autoconfigure;1.0.0-beta.31
jeanbisutti marked this conversation as resolved.
Show resolved Hide resolved

# Released Beta dependencies: Copy the entry from above, prepend "beta_", remove the current
# version and set the version to the released beta. Released beta dependencies are only valid
Expand Down
6 changes: 3 additions & 3 deletions sdk/clientcore/http-stress/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@
<!-- logging, tracing, metrics -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-monitor-opentelemetry-exporter</artifactId>
<version>1.0.0-beta.31</version> <!-- {x-version-update;com.azure:azure-monitor-opentelemetry-exporter;dependency} -->
<artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId>
<version>1.0.0-beta.31</version> <!-- {x-version-update;unreleased_com.azure:azure-monitor-opentelemetry-autoconfigure;dependency} -->
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
Expand All @@ -85,7 +85,7 @@
<bannedDependencies>
<includes>
<include>com.azure:perf-test-core:[1.0.0-beta.1]</include> <!-- {x-include-update;com.azure:perf-test-core;dependency} -->
<include>com.azure:azure-monitor-opentelemetry-exporter:[1.0.0-beta.31]</include> <!-- {x-include-update;com.azure:azure-monitor-opentelemetry-exporter;dependency} -->
<include>com.azure:azure-monitor-opentelemetry-autoconfigure:[1.0.0-beta.31]</include> <!-- {x-include-update;com.azure:azure-monitor-opentelemetry-autoconfigure;dependency} -->
<include>io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:[2.9.0-alpha]</include> <!-- {x-include-update;io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8;external_dependency} -->
<include>io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0:[2.9.0-alpha]</include> <!-- {x-include-update;io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0;external_dependency} -->
<include>ch.qos.logback:logback-classic:[1.3.14]</include> <!-- {x-include-update;ch.qos.logback:logback-classic;external_dependency} -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

package io.clientcore.http.stress.util;

import com.azure.monitor.opentelemetry.exporter.AzureMonitorExporterBuilder;
import com.azure.monitor.opentelemetry.autoconfigure.AzureMonitorExporterBuilder;
import io.clientcore.core.util.ClientLogger;
import io.clientcore.http.stress.StressOptions;
import io.opentelemetry.api.GlobalOpenTelemetry;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ RUN --mount=type=cache,target=/root/.m2 \
mvn -f /stress-eh/sdk/core/azure-core-test/pom.xml clean install ${SKIP_CHECKS} && \
mvn -f /stress-eh/sdk/core/azure-core-amqp/pom.xml clean install ${SKIP_CHECKS} && \
mvn -f /stress-eh/sdk/core/azure-core-http-netty/pom.xml clean install ${SKIP_CHECKS} && \
mvn -f /stress-eh/sdk/monitor/azure-monitor-opentelemetry-exporter/pom.xml clean install ${SKIP_CHECKS} && \
mvn -f /stress-eh/sdk/monitor/azure-monitor-opentelemetry-autoconfigure/pom.xml clean install ${SKIP_CHECKS} && \
mvn -f /stress-eh/sdk/eventhubs/azure-messaging-eventhubs/pom.xml clean install ${SKIP_CHECKS} && \
mvn -f /stress-eh/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/pom.xml clean install ${SKIP_CHECKS} && \
mvn -f /stress-eh/sdk/eventhubs/azure-messaging-eventhubs-stress/pom.xml clean install ${SKIP_CHECKS}
Expand Down
4 changes: 2 additions & 2 deletions sdk/eventhubs/azure-messaging-eventhubs-stress/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
<!-- logging, tracing, metrics -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-monitor-opentelemetry-exporter</artifactId>
<version>1.0.0-beta.31</version> <!-- {x-version-update;unreleased_com.azure:azure-monitor-opentelemetry-exporter;dependency} -->
<artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId>
<version>1.0.0-beta.31</version> <!-- {x-version-update;unreleased_com.azure:azure-monitor-opentelemetry-autoconfigure;dependency} -->
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.azure.messaging.eventhubs.EventHubClientBuilder;
import com.azure.messaging.eventhubs.models.CloseContext;
import com.azure.messaging.eventhubs.models.InitializationContext;
import com.azure.monitor.opentelemetry.exporter.AzureMonitorExporter;
import com.azure.monitor.opentelemetry.autoconfigure.AzureMonitorAutoconfigure;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.common.Attributes;
Expand Down Expand Up @@ -96,7 +96,7 @@ private static OpenTelemetry init() {
}
AutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();

AzureMonitorExporter.customize(sdkBuilder, applicationInsightsConnectionString);
AzureMonitorAutoconfigure.customize(sdkBuilder, applicationInsightsConnectionString);

String instanceId = System.getenv("CONTAINER_NAME");
OpenTelemetry otel = sdkBuilder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ AzureMonitorExporter.customize(sdkBuilder);
OpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();
```

See the [Readme](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter) for more details
See the [Readme](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/monitor/azure-monitor-opentelemetry-autoconfigure) for more details

### Bugs Fixed
- [Fix a race condition RejectedExecutionException](https://github.com/Azure/azure-sdk-for-java/pull/41927)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ For more information, please read [introduction to Application Insights][applica

### Include the dependency

Add the [Azure Monitor OpenTelemetry Exporter](https://central.sonatype.com/artifact/com.azure/azure-monitor-opentelemetry-exporter) dependency.
Add the [Azure Monitor OpenTelemetry Exporter](https://central.sonatype.com/artifact/com.azure/azure-monitor-opentelemetry-autoconfigure) dependency.

### Authentication

Expand All @@ -36,14 +36,14 @@ If you have set the Application Insights connection string with the `APPLICATION

```java readme-sample-autoconfigure-env-variable
AutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();
AzureMonitorExporter.customize(sdkBuilder);
AzureMonitorAutoconfigure.customize(sdkBuilder);
OpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();
```

You can also set the connection string in the code:
```java readme-sample-autoconfigure
AutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();
AzureMonitorExporter.customize(sdkBuilder, "{connection-string}");
AzureMonitorAutoconfigure.customize(sdkBuilder, "{connection-string}");
OpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();
```

Expand All @@ -56,7 +56,7 @@ The following example shows how create a span:
```java readme-sample-create-span
AutoConfiguredOpenTelemetrySdkBuilder otelSdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();

AzureMonitorExporter.customize(otelSdkBuilder, "{connection-string}");
AzureMonitorAutoconfigure.customize(otelSdkBuilder, "{connection-string}");

OpenTelemetry openTelemetry = otelSdkBuilder.build().getOpenTelemetrySdk();
Tracer tracer = openTelemetry.getTracer("Sample");
Expand All @@ -82,7 +82,7 @@ private static final AttributeKey<String> ATTRIBUTE_KEY = AttributeKey.stringKey
public void spanProcessor() {
AutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();

AzureMonitorExporter.customize(sdkBuilder);
AzureMonitorAutoconfigure.customize(sdkBuilder);

SpanProcessor spanProcessor = new SpanProcessor() {

Expand Down Expand Up @@ -164,10 +164,10 @@ This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For m
<!-- LINKS -->
[jdk]: https://docs.microsoft.com/java/azure/jdk/?view=azure-java-stable
[samples]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/monitor
[source_code]: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter/src
[source_code]: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/monitor/azure-monitor-opentelemetry-autoconfigure/src
[azure_subscription]: https://azure.microsoft.com/free/
[api_reference_doc]: https://docs.microsoft.com/azure/azure-monitor/overview
[package_mvn]: https://central.sonatype.com/artifact/com.azure/azure-monitor-opentelemetry-exporter
[package_mvn]: https://central.sonatype.com/artifact/com.azure/azure-monitor-opentelemetry-autoconfigure
[product_documentation]: https://docs.microsoft.com/azure/azure-monitor/overview
[azure_cli]: https://docs.microsoft.com/cli/azure
[azure_portal]: https://portal.azure.com
Expand All @@ -182,7 +182,7 @@ This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For m
[azure_portal]: https://ms.portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/microsoft.insights%2Fcomponents
[opentelemetry_io]: https://opentelemetry.io/
[span_data]: https://opentelemetry.lightstep.com/spans
[sample_readme]: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter/src/samples
[sample_readme]: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/monitor/azure-monitor-opentelemetry-autoconfigure/src/samples
[opentelemetry_spec]: https://opentelemetry.io/
[instrumentation_library]: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md#instrumentation-libraries
[tracer_provider]: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#tracer-provider
Expand All @@ -191,9 +191,9 @@ This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For m
[trace_concept]: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md#trace
[advanced_examples_1]: https://github.com/Azure-Samples/ApplicationInsights-Java-Samples/tree/main/opentelemetry-api/exporter/
[advanced_examples_2]: https://github.com/open-telemetry/opentelemetry-java-examples/tree/main/sdk-usage/src/main/java/io/opentelemetry/sdk/example
[event_hubs_example]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/monitor/azure-monitor-opentelemetry-exporter/src/samples/java/com/azure/monitor/opentelemetry/exporter/EventHubsAzureMonitorExporterSample.java
[event_hubs_example]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/monitor/azure-monitor-opentelemetry-autoconfigure/src/samples/java/com/azure/monitor/opentelemetry/exporter/EventHubsAzureMonitorExporterSample.java
[cla]: https://cla.microsoft.com
[coc]: https://opensource.microsoft.com/codeofconduct/
[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/
[coc_contact]: mailto:opencode@microsoft.com
![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-java%2Fsdk%monitor%2Fazure-monitor-opentelemetry-exporter%2FREADME.png)
![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-java%2Fsdk%monitor%2Fazure-monitor-opentelemetry-autoconfigure%2FREADME.png)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "java",
"TagPrefix": "java/monitor/azure-monitor-opentelemetry-exporter",
"TagPrefix": "java/monitor/azure-monitor-opentelemetry-autoconfigure",
"Tag": "java/monitor/azure-monitor-opentelemetry-exporter_558a81e425"
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
</parent>

<groupId>com.azure</groupId>
<artifactId>azure-monitor-opentelemetry-exporter</artifactId>
<version>1.0.0-beta.32</version> <!-- {x-version-update;com.azure:azure-monitor-opentelemetry-exporter;current} -->
<artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId>
<version>1.0.0-beta.32</version> <!-- {x-version-update;com.azure:azure-monitor-opentelemetry-autoconfigure;current} -->

<name>Microsoft Azure SDK for OpenTelemetry Azure Monitor Exporter</name>
<description>This package contains Microsoft Azure SDK for OpenTelemetry Azure Monitor Exporter.</description>
Expand Down
Loading
Loading