From 9e9951bc406cc0152e6b8ed0c46664b42b144c55 Mon Sep 17 00:00:00 2001 From: Sameeksha Vaity Date: Fri, 22 Nov 2019 10:56:31 -0800 Subject: [PATCH 1/4] update samples and package versions --- .../CHANGELOG.md | 8 ++++ .../azure-core-tracing-opencensus/README.md | 19 +++++---- .../src/samples/AsyncListKeyVaultSecrets.md | 4 +- .../AsyncQueueClientEnqueueMessages.md | 4 +- .../src/samples/ListeKeyVaultSecrets.md | 4 +- .../src/samples/PublishEvents.md | 38 ++++++++++-------- .../src/samples/QueueClientEnqueueMessages.md | 4 +- .../CHANGELOG.md | 11 +++++- .../README.md | 14 +++++-- .../samples/AsyncListKeyVaultSecretsSample.md | 6 +-- ...CreateConfigurationSettingTracingSample.md | 4 +- .../ListKeyVaultSecretsTracingSample.md | 6 +-- .../src/samples/PublishEventsTracingSample.md | 39 ++++++++++++------- 13 files changed, 103 insertions(+), 58 deletions(-) diff --git a/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md b/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md index 7e9f54f15c0f..79f75dd6b48b 100644 --- a/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md +++ b/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md @@ -1,4 +1,12 @@ # Release History +## Version 1.0.0-beta.5 (2019-11-25) +For details on the Azure SDK for Java (December 2019 Preview) release refer to the [release announcement](https://aka.ms/azure-sdk-preview6-java). +Version 1.0.0-beta.5 extended support for 0.24.0 opencensus-api package version. + +This package's +[documentation](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opencensus_1.0.0-beta.5/sdk/core/azure-core-tracing-opencensus/README.md) +and +[samples](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opencensus_1.0.0-beta.5/sdk/core/azure-core-tracing-opencensus/src/samples). ## Version 1.0.0-preview.4 (2019-10-31) diff --git a/sdk/core/azure-core-tracing-opencensus/README.md b/sdk/core/azure-core-tracing-opencensus/README.md index abdc816c6205..f5c87194e4b5 100644 --- a/sdk/core/azure-core-tracing-opencensus/README.md +++ b/sdk/core/azure-core-tracing-opencensus/README.md @@ -19,7 +19,7 @@ documentation][api_documentation] | [Samples][samples] com.azure azure-core-tracing-opencensus - 1.0.0-beta.4 + 1.0.0-beta.5 ``` [//]: # ({x-version-update-end}) @@ -38,7 +38,7 @@ Netty and include OkHTTP client in your pom.xml. com.azure azure-core-tracing-opencensus - 1.0.0-beta.4 + 1.0.0-beta.5 com.azure @@ -54,7 +54,7 @@ Netty and include OkHTTP client in your pom.xml. com.azure azure-core-http-okhttp - 1.0.0 + 1.1.0-beta.1 ``` [//]: # ({x-version-update-end}) @@ -137,10 +137,15 @@ private static final Tracer TRACER; .buildProducer(); try (Scope scope = TRACER.spanBuilder("tracing-user-span").startScopedSpan()) { - Context tracingContext = new Context(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); - // Create an event to send - final EventData eventData = new EventData("Hello world!".getBytes(UTF_8), traceContext); - producer.send(eventData); + EventData event1 = new EventData("1".getBytes(UTF_8)); + event1.addContext(PARENT_SPAN_KEY, span); + + EventDataBatch eventDataBatch = producer.createBatch(); + + if (!eventDataBatch.tryAdd(eventData)) { + producer.send(eventDataBatch); + eventDataBatch = producer.createBatch(); + } } finally { Tracing.getExportComponent().shutdown(); } diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md index 01aa2ddd62fd..90759410b3d0 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md @@ -12,7 +12,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-security-keyvault-secrets - 4.0.0 + 4.1.0-beta.1 ``` [//]: # ({x-version-update-end}) @@ -22,7 +22,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.4 + 1.0.0-beta.5 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md index b8aaf0a1fb9c..8481c64bf0f1 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md @@ -13,7 +13,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-storage-queue - 12.0.0 + 12.1.0-beta.1 ``` [//]: # ({x-version-update-end}) @@ -23,7 +23,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.4 + 1.0.0-beta.5 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md b/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md index 6e1339b6d01b..3f3a2e7f0a06 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md @@ -12,7 +12,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-security-keyvault-secrets - 4.0.0 + 4.1.0-beta.1 ``` [//]: # ({x-version-update-end}) @@ -22,7 +22,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.4 + 1.0.0-beta.5 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md b/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md index fb48bd0bd601..9e1d65e57f45 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md @@ -13,7 +13,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-messaging-eventhubs - 5.0.0-beta.5 + 5.0.0-beta.6 ``` [//]: # ({x-version-update-end}) @@ -66,25 +66,31 @@ public class PublishEvents { } public static void main(String[] args) { - final int count = 2; - final byte[] body = "Hello World!".getBytes(UTF_8); + EventHubProducerClient producer = new EventHubClientBuilder() + .connectionString(connectionString) + .buildProducerClient(); try(Scope scope = TRACER.spanBuilder("user-parent-span").startScopedSpan()) { + final EventData event1 = new EventData("1".getBytes(UTF_8)); + event1.addContext(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); + + final EventData event2 = new EventData("2".getBytes(UTF_8)); + event2.addContext(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); - Context traceContext = new Context(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); - - EventHubProducerClient producer = new EventHubClientBuilder() - .connectionString(CONNECTION_STRING) - .buildProducer(); + final List telemetryEvents = Arrays.asList(event1, event2); + final CreateBatchOptions options = new CreateBatchOptions() + .setPartitionKey("telemetry") + .setMaximumSizeInBytes(256); + + EventDataBatch currentBatch = producer.createBatch(options); - final Context traceContext = new Context(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); - final Flux testData = Flux.range(0, count) - .flatMap(number -> { - final EventData data = new EventData(body, traceContext); - return Flux.just(data); - }); - - producer.send(testData.toIterable(1)); + // For each telemetry event, we try to add it to the current batch. + for (EventData event : telemetryEvents) { + if (!currentBatch.tryAdd(event)) { + producer.send(currentBatch); + currentBatch = producer.createBatch(options); + } + } } finally { producer.close(); Tracing.getExportComponent().shutdown(); diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md b/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md index 8420f1e8e250..e85fb6668396 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md @@ -13,7 +13,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-storage-queue - 12.0.0 + 12.1.0-beta.1 ``` [//]: # ({x-version-update-end}) @@ -23,7 +23,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.4 + 1.0.0-beta.5 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md index 4239c9da32e7..9a44e2ec7468 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md +++ b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md @@ -1,5 +1,14 @@ # Release History -## Version 1.0.0-beta.1 (-12-) +## Version 1.0.0-beta.1 (2019-11-25) For details on the Azure SDK for Java (Decemeber 2019 Preview) release refer to the [release announcement](https://aka.ms/azure-sdk-preview5-java). +Version 1.0.0-beta.1 is the first preview of our efforts to provide low level interfaces and helper methods to support tracing for Java client libraries. +This library includes [OpenTelemetry](https://opentelemetry.io/) implementation of the interface. +This library added tracing instrumentation for AMQP and HTTP Java SDK client libraries across different languages and platforms. + +This package's +[documentation](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opentelemetry_1.0.0-beta.1/sdk/core/azure-core-tracing-opentelemetry/README.md) +and +[samples](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opentelemetry_1.0.0-beta.1/sdk/core/azure-core-tracing-opentelemetry/src/samples). + diff --git a/sdk/core/azure-core-tracing-opentelemetry/README.md b/sdk/core/azure-core-tracing-opentelemetry/README.md index 11ecbb277759..807b1e8245fd 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/README.md +++ b/sdk/core/azure-core-tracing-opentelemetry/README.md @@ -53,7 +53,7 @@ Netty and include OkHTTP client in your pom.xml. com.azure azure-core-http-okhttp - 1.0.0 + 1.1.0-beta.1 ``` [//]: # ({x-version-update-end}) @@ -140,9 +140,15 @@ private static final TracerSdkFactory TRACER_SDK_FACTORY; Span span = TRACER.spanBuilder("user-parent-span").startSpan(); try (Scope scope = TRACER.withSpan(span)) { - Context traceContext = new Context(PARENT_SPAN_KEY, span); - EventData eventData = new EventData("Hello world!".getBytes(UTF_8), traceContext); - producer.send(eventData); + EventData event1 = new EventData("1".getBytes(UTF_8)); + event1.addContext(PARENT_SPAN_KEY, span); + + EventDataBatch eventDataBatch = producer.createBatch(); + + if (!eventDataBatch.tryAdd(eventData)) { + producer.send(eventDataBatch); + eventDataBatch = producer.createBatch(); + } } finally { span.end(); } diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md index 93fcda73a2c4..229fab212fc5 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md @@ -10,12 +10,12 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-sdk - 0.2.0-SNAPSHOT + 0.2.0 com.azure azure-security-keyvault-secrets - 4.0.0 + 4.1.0-beta.1 com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-exporters-logging - 0.2.0-SNAPSHOT + 0.2.0 ``` diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md index 17e8ae375d8d..a37ca0127df9 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md @@ -10,7 +10,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-sdk - 0.2.0-SNAPSHOT + 0.2.0 com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-exporters-logging - 0.2.0-SNAPSHOT + 0.2.0 diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md index e06422cc0542..40c689588d98 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md @@ -10,12 +10,12 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-sdk - 0.2.0-SNAPSHOT + 0.2.0 com.azure azure-security-keyvault-secrets - 4.0.0 + 4.1.0-beta.1 com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-exporters-logging - 0.2.0-SNAPSHOT + 0.2.0 ``` diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md index d1953f3f277c..2917f57a9121 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md @@ -10,12 +10,12 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** for implementation and ** io.opentelemetry opentelemetry-sdk - 0.2.0-SNAPSHOT + 0.2.0 com.azure azure-messaging-eventhubs - 5.0.0-beta.5 + 5.0.0-beta.6 com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** for implementation and ** io.opentelemetry opentelemetry-exporters-logging - 0.2.0-SNAPSHOT + 0.2.0 @@ -74,20 +74,31 @@ public class Sample { private static void doClientWork() { EventHubProducerClient producer = new EventHubClientBuilder() - .connectionString(CONNECTION_STRING) - .buildProducer(); - - final int count = 2; - final byte[] body = "Hello World!".getBytes(UTF_8); + .connectionString(connectionString) + .buildProducerClient(); Span span = TRACER.spanBuilder("user-parent-span").startSpan(); try (final Scope scope = TRACER.withSpan(span)) { - final Context traceContext = new Context(PARENT_SPAN_KEY, span); - final Flux testData = Flux.range(0, count).flatMap(number -> { - final EventData data = new EventData(body, traceContext); - return Flux.just(data); - }); - producer.send(testData.toIterable(1)); + final EventData event1 = new EventData("1".getBytes(UTF_8)); + event1.addContext(PARENT_SPAN_KEY, span); + + final EventData event2 = new EventData("2".getBytes(UTF_8)); + event2.addContext(PARENT_SPAN_KEY, span); + + final List telemetryEvents = Arrays.asList(event1, event2); + final CreateBatchOptions options = new CreateBatchOptions() + .setPartitionKey("telemetry") + .setMaximumSizeInBytes(256); + + EventDataBatch currentBatch = producer.createBatch(options); + + // For each telemetry event, we try to add it to the current batch. + for (EventData event : telemetryEvents) { + if (!currentBatch.tryAdd(event)) { + producer.send(currentBatch); + currentBatch = producer.createBatch(options); + } + } } finally { span.end(); producer.close(); From c07f9cc5690fc7d149a23c91ba6cd0187234f5f2 Mon Sep 17 00:00:00 2001 From: Sameeksha Vaity Date: Fri, 22 Nov 2019 11:01:11 -0800 Subject: [PATCH 2/4] Revert "update samples and package versions" This reverts commit 9e9951bc406cc0152e6b8ed0c46664b42b144c55. --- .../CHANGELOG.md | 8 ---- .../azure-core-tracing-opencensus/README.md | 19 ++++----- .../src/samples/AsyncListKeyVaultSecrets.md | 4 +- .../AsyncQueueClientEnqueueMessages.md | 4 +- .../src/samples/ListeKeyVaultSecrets.md | 4 +- .../src/samples/PublishEvents.md | 38 ++++++++---------- .../src/samples/QueueClientEnqueueMessages.md | 4 +- .../CHANGELOG.md | 11 +----- .../README.md | 14 ++----- .../samples/AsyncListKeyVaultSecretsSample.md | 6 +-- ...CreateConfigurationSettingTracingSample.md | 4 +- .../ListKeyVaultSecretsTracingSample.md | 6 +-- .../src/samples/PublishEventsTracingSample.md | 39 +++++++------------ 13 files changed, 58 insertions(+), 103 deletions(-) diff --git a/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md b/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md index 79f75dd6b48b..7e9f54f15c0f 100644 --- a/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md +++ b/sdk/core/azure-core-tracing-opencensus/CHANGELOG.md @@ -1,12 +1,4 @@ # Release History -## Version 1.0.0-beta.5 (2019-11-25) -For details on the Azure SDK for Java (December 2019 Preview) release refer to the [release announcement](https://aka.ms/azure-sdk-preview6-java). -Version 1.0.0-beta.5 extended support for 0.24.0 opencensus-api package version. - -This package's -[documentation](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opencensus_1.0.0-beta.5/sdk/core/azure-core-tracing-opencensus/README.md) -and -[samples](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opencensus_1.0.0-beta.5/sdk/core/azure-core-tracing-opencensus/src/samples). ## Version 1.0.0-preview.4 (2019-10-31) diff --git a/sdk/core/azure-core-tracing-opencensus/README.md b/sdk/core/azure-core-tracing-opencensus/README.md index f5c87194e4b5..abdc816c6205 100644 --- a/sdk/core/azure-core-tracing-opencensus/README.md +++ b/sdk/core/azure-core-tracing-opencensus/README.md @@ -19,7 +19,7 @@ documentation][api_documentation] | [Samples][samples] com.azure azure-core-tracing-opencensus - 1.0.0-beta.5 + 1.0.0-beta.4 ``` [//]: # ({x-version-update-end}) @@ -38,7 +38,7 @@ Netty and include OkHTTP client in your pom.xml. com.azure azure-core-tracing-opencensus - 1.0.0-beta.5 + 1.0.0-beta.4 com.azure @@ -54,7 +54,7 @@ Netty and include OkHTTP client in your pom.xml. com.azure azure-core-http-okhttp - 1.1.0-beta.1 + 1.0.0 ``` [//]: # ({x-version-update-end}) @@ -137,15 +137,10 @@ private static final Tracer TRACER; .buildProducer(); try (Scope scope = TRACER.spanBuilder("tracing-user-span").startScopedSpan()) { - EventData event1 = new EventData("1".getBytes(UTF_8)); - event1.addContext(PARENT_SPAN_KEY, span); - - EventDataBatch eventDataBatch = producer.createBatch(); - - if (!eventDataBatch.tryAdd(eventData)) { - producer.send(eventDataBatch); - eventDataBatch = producer.createBatch(); - } + Context tracingContext = new Context(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); + // Create an event to send + final EventData eventData = new EventData("Hello world!".getBytes(UTF_8), traceContext); + producer.send(eventData); } finally { Tracing.getExportComponent().shutdown(); } diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md index 90759410b3d0..01aa2ddd62fd 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncListKeyVaultSecrets.md @@ -12,7 +12,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-security-keyvault-secrets - 4.1.0-beta.1 + 4.0.0 ``` [//]: # ({x-version-update-end}) @@ -22,7 +22,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.5 + 1.0.0-beta.4 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md index 8481c64bf0f1..b8aaf0a1fb9c 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/AsyncQueueClientEnqueueMessages.md @@ -13,7 +13,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-storage-queue - 12.1.0-beta.1 + 12.0.0 ``` [//]: # ({x-version-update-end}) @@ -23,7 +23,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.5 + 1.0.0-beta.4 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md b/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md index 3f3a2e7f0a06..6e1339b6d01b 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/ListeKeyVaultSecrets.md @@ -12,7 +12,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-security-keyvault-secrets - 4.1.0-beta.1 + 4.0.0 ``` [//]: # ({x-version-update-end}) @@ -22,7 +22,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.5 + 1.0.0-beta.4 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md b/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md index 9e1d65e57f45..fb48bd0bd601 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/PublishEvents.md @@ -13,7 +13,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-messaging-eventhubs - 5.0.0-beta.6 + 5.0.0-beta.5 ``` [//]: # ({x-version-update-end}) @@ -66,31 +66,25 @@ public class PublishEvents { } public static void main(String[] args) { - EventHubProducerClient producer = new EventHubClientBuilder() - .connectionString(connectionString) - .buildProducerClient(); + final int count = 2; + final byte[] body = "Hello World!".getBytes(UTF_8); try(Scope scope = TRACER.spanBuilder("user-parent-span").startScopedSpan()) { - final EventData event1 = new EventData("1".getBytes(UTF_8)); - event1.addContext(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); - - final EventData event2 = new EventData("2".getBytes(UTF_8)); - event2.addContext(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); - final List telemetryEvents = Arrays.asList(event1, event2); - final CreateBatchOptions options = new CreateBatchOptions() - .setPartitionKey("telemetry") - .setMaximumSizeInBytes(256); - - EventDataBatch currentBatch = producer.createBatch(options); + Context traceContext = new Context(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); + + EventHubProducerClient producer = new EventHubClientBuilder() + .connectionString(CONNECTION_STRING) + .buildProducer(); - // For each telemetry event, we try to add it to the current batch. - for (EventData event : telemetryEvents) { - if (!currentBatch.tryAdd(event)) { - producer.send(currentBatch); - currentBatch = producer.createBatch(options); - } - } + final Context traceContext = new Context(PARENT_SPAN_KEY, TRACER.getCurrentSpan()); + final Flux testData = Flux.range(0, count) + .flatMap(number -> { + final EventData data = new EventData(body, traceContext); + return Flux.just(data); + }); + + producer.send(testData.toIterable(1)); } finally { producer.close(); Tracing.getExportComponent().shutdown(); diff --git a/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md b/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md index e85fb6668396..8420f1e8e250 100644 --- a/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md +++ b/sdk/core/azure-core-tracing-opencensus/src/samples/QueueClientEnqueueMessages.md @@ -13,7 +13,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-storage-queue - 12.1.0-beta.1 + 12.0.0 ``` [//]: # ({x-version-update-end}) @@ -23,7 +23,7 @@ Sample uses **[opencensus-impl][opencensus_impl]** as implementation package and com.azure azure-core-tracing-opencensus - 1.0.0-beta.5 + 1.0.0-beta.4 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md index 9a44e2ec7468..4239c9da32e7 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md +++ b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md @@ -1,14 +1,5 @@ # Release History -## Version 1.0.0-beta.1 (2019-11-25) +## Version 1.0.0-beta.1 (-12-) For details on the Azure SDK for Java (Decemeber 2019 Preview) release refer to the [release announcement](https://aka.ms/azure-sdk-preview5-java). -Version 1.0.0-beta.1 is the first preview of our efforts to provide low level interfaces and helper methods to support tracing for Java client libraries. -This library includes [OpenTelemetry](https://opentelemetry.io/) implementation of the interface. -This library added tracing instrumentation for AMQP and HTTP Java SDK client libraries across different languages and platforms. - -This package's -[documentation](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opentelemetry_1.0.0-beta.1/sdk/core/azure-core-tracing-opentelemetry/README.md) -and -[samples](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opentelemetry_1.0.0-beta.1/sdk/core/azure-core-tracing-opentelemetry/src/samples). - diff --git a/sdk/core/azure-core-tracing-opentelemetry/README.md b/sdk/core/azure-core-tracing-opentelemetry/README.md index 807b1e8245fd..11ecbb277759 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/README.md +++ b/sdk/core/azure-core-tracing-opentelemetry/README.md @@ -53,7 +53,7 @@ Netty and include OkHTTP client in your pom.xml. com.azure azure-core-http-okhttp - 1.1.0-beta.1 + 1.0.0 ``` [//]: # ({x-version-update-end}) @@ -140,15 +140,9 @@ private static final TracerSdkFactory TRACER_SDK_FACTORY; Span span = TRACER.spanBuilder("user-parent-span").startSpan(); try (Scope scope = TRACER.withSpan(span)) { - EventData event1 = new EventData("1".getBytes(UTF_8)); - event1.addContext(PARENT_SPAN_KEY, span); - - EventDataBatch eventDataBatch = producer.createBatch(); - - if (!eventDataBatch.tryAdd(eventData)) { - producer.send(eventDataBatch); - eventDataBatch = producer.createBatch(); - } + Context traceContext = new Context(PARENT_SPAN_KEY, span); + EventData eventData = new EventData("Hello world!".getBytes(UTF_8), traceContext); + producer.send(eventData); } finally { span.end(); } diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md index 229fab212fc5..93fcda73a2c4 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/AsyncListKeyVaultSecretsSample.md @@ -10,12 +10,12 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-sdk - 0.2.0 + 0.2.0-SNAPSHOT com.azure azure-security-keyvault-secrets - 4.1.0-beta.1 + 4.0.0 com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-exporters-logging - 0.2.0 + 0.2.0-SNAPSHOT ``` diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md index a37ca0127df9..17e8ae375d8d 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/CreateConfigurationSettingTracingSample.md @@ -10,7 +10,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-sdk - 0.2.0 + 0.2.0-SNAPSHOT com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-exporters-logging - 0.2.0 + 0.2.0-SNAPSHOT diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md index 40c689588d98..e06422cc0542 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/ListKeyVaultSecretsTracingSample.md @@ -10,12 +10,12 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-sdk - 0.2.0 + 0.2.0-SNAPSHOT com.azure azure-security-keyvault-secrets - 4.1.0-beta.1 + 4.0.0 com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** as implementation package io.opentelemetry opentelemetry-exporters-logging - 0.2.0 + 0.2.0-SNAPSHOT ``` diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md b/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md index 2917f57a9121..d1953f3f277c 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md +++ b/sdk/core/azure-core-tracing-opentelemetry/src/samples/PublishEventsTracingSample.md @@ -10,12 +10,12 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** for implementation and ** io.opentelemetry opentelemetry-sdk - 0.2.0 + 0.2.0-SNAPSHOT com.azure azure-messaging-eventhubs - 5.0.0-beta.6 + 5.0.0-beta.5 com.azure @@ -25,7 +25,7 @@ Sample uses **[opentelemetry-sdk][opentelemetry_sdk]** for implementation and ** io.opentelemetry opentelemetry-exporters-logging - 0.2.0 + 0.2.0-SNAPSHOT @@ -74,31 +74,20 @@ public class Sample { private static void doClientWork() { EventHubProducerClient producer = new EventHubClientBuilder() - .connectionString(connectionString) - .buildProducerClient(); + .connectionString(CONNECTION_STRING) + .buildProducer(); + + final int count = 2; + final byte[] body = "Hello World!".getBytes(UTF_8); Span span = TRACER.spanBuilder("user-parent-span").startSpan(); try (final Scope scope = TRACER.withSpan(span)) { - final EventData event1 = new EventData("1".getBytes(UTF_8)); - event1.addContext(PARENT_SPAN_KEY, span); - - final EventData event2 = new EventData("2".getBytes(UTF_8)); - event2.addContext(PARENT_SPAN_KEY, span); - - final List telemetryEvents = Arrays.asList(event1, event2); - final CreateBatchOptions options = new CreateBatchOptions() - .setPartitionKey("telemetry") - .setMaximumSizeInBytes(256); - - EventDataBatch currentBatch = producer.createBatch(options); - - // For each telemetry event, we try to add it to the current batch. - for (EventData event : telemetryEvents) { - if (!currentBatch.tryAdd(event)) { - producer.send(currentBatch); - currentBatch = producer.createBatch(options); - } - } + final Context traceContext = new Context(PARENT_SPAN_KEY, span); + final Flux testData = Flux.range(0, count).flatMap(number -> { + final EventData data = new EventData(body, traceContext); + return Flux.just(data); + }); + producer.send(testData.toIterable(1)); } finally { span.end(); producer.close(); From ada7ce2c5cadc736c72a7cab9d64429125bfe852 Mon Sep 17 00:00:00 2001 From: Sameeksha Vaity Date: Wed, 11 Dec 2019 13:20:39 -0800 Subject: [PATCH 3/4] add eventhub attr to process span --- .../CHANGELOG.md | 7 +++++++ .../opentelemetry/OpenTelemetryTracer.java | 4 ++++ .../OpenTelemetryTracerTest.java | 21 +++++++++++++------ .../eventhubs/PartitionPumpManager.java | 15 +++++++++---- 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md index 20d149922359..3d603c8cbceb 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md +++ b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md @@ -1,4 +1,11 @@ # Release History +## Version 1.0.0-beta.2 (2019-01-) +- Add eventhub properties to attributes of processing spans. + +This package's +[documentation](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opentelemetry_1.0.0-beta.2/sdk/core/azure-core-tracing-opentelemetry/README.md) +and +[samples](https://github.com/Azure/azure-sdk-for-java/blob/azure-core-tracing-opentelemetry_1.0.0-beta.2/sdk/core/azure-core-tracing-opentelemetry/src/samples). ## Version 1.0.0-beta.1 (2019-11-26) diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java b/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java index 5abe4e173e2f..f12babc1f72d 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java +++ b/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java @@ -191,6 +191,10 @@ private Context startScopedSpan(String spanName, Context context) { Builder spanBuilder = getSpanBuilder(spanName, context); span = spanBuilder.setSpanKind(Span.Kind.SERVER).startSpan(); } + if (span.isRecording()) { + // If span is sampled in, add additional request attributes + addSpanRequestAttributes(span, context, spanName); + } return context.addData(PARENT_SPAN_KEY, span).addData("scope", TRACER.withSpan(span)); } diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/test/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracerTest.java b/sdk/core/azure-core-tracing-opentelemetry/src/test/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracerTest.java index 4ae720dc319f..810712c757f3 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/test/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracerTest.java +++ b/sdk/core/azure-core-tracing-opentelemetry/src/test/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracerTest.java @@ -133,10 +133,7 @@ public void startSpanProcessKindSend() { // verify span attributes final Map attributeMap = recordEventsSpan.toSpanData().getAttributes(); - assertEquals(attributeMap.get(COMPONENT), AttributeValue.stringAttributeValue(COMPONENT_VALUE)); - assertEquals(attributeMap.get(MESSAGE_BUS_DESTINATION), - AttributeValue.stringAttributeValue(ENTITY_PATH_VALUE)); - assertEquals(attributeMap.get(PEER_ENDPOINT), AttributeValue.stringAttributeValue(HOSTNAME_VALUE)); + verifySpanAttributes(attributeMap); } @Test @@ -163,9 +160,11 @@ public void startSpanProcessKindMessage() { public void startSpanProcessKindProcess() { // Arrange final SpanId parentSpanId = parentSpan.getContext().getSpanId(); - + // Add additional metadata to spans for SEND + final Context traceContext = tracingContext.addData(ENTITY_PATH_KEY, ENTITY_PATH_VALUE) + .addData(HOST_NAME_KEY, HOSTNAME_VALUE); // Act - final Context updatedContext = openTelemetryTracer.start(METHOD_NAME, tracingContext, ProcessKind.PROCESS); + final Context updatedContext = openTelemetryTracer.start(METHOD_NAME, traceContext, ProcessKind.PROCESS); // verify no parent span passed assertFalse(tracingContext.getData(SPAN_CONTEXT_KEY).isPresent(), @@ -177,6 +176,9 @@ public void startSpanProcessKindProcess() { final ReadableSpan recordEventsSpan = (ReadableSpan) updatedContext.getData(PARENT_SPAN_KEY).get(); assertEquals(Span.Kind.SERVER, recordEventsSpan.toSpanData().getKind()); + // verify span attributes + final Map attributeMap = recordEventsSpan.toSpanData().getAttributes(); + verifySpanAttributes(attributeMap); } @Test @@ -305,4 +307,11 @@ private static void assertSpanWithRemoteParent(Context updatedContext, SpanId pa assertTrue(recordEventsSpan.toSpanData().getHasRemoteParent()); assertEquals(parentSpanId, recordEventsSpan.toSpanData().getParentSpanId()); } + + private static void verifySpanAttributes(Map attributeMap) { + assertEquals(attributeMap.get(COMPONENT), AttributeValue.stringAttributeValue(COMPONENT_VALUE)); + assertEquals(attributeMap.get(MESSAGE_BUS_DESTINATION), + AttributeValue.stringAttributeValue(ENTITY_PATH_VALUE)); + assertEquals(attributeMap.get(PEER_ENDPOINT), AttributeValue.stringAttributeValue(HOSTNAME_VALUE)); + } } diff --git a/sdk/eventhubs/azure-messaging-eventhubs/src/main/java/com/azure/messaging/eventhubs/PartitionPumpManager.java b/sdk/eventhubs/azure-messaging-eventhubs/src/main/java/com/azure/messaging/eventhubs/PartitionPumpManager.java index 5f662aa47e4f..451485fd573b 100644 --- a/sdk/eventhubs/azure-messaging-eventhubs/src/main/java/com/azure/messaging/eventhubs/PartitionPumpManager.java +++ b/sdk/eventhubs/azure-messaging-eventhubs/src/main/java/com/azure/messaging/eventhubs/PartitionPumpManager.java @@ -30,6 +30,8 @@ import java.util.function.Supplier; import static com.azure.core.util.tracing.Tracer.DIAGNOSTIC_ID_KEY; +import static com.azure.core.util.tracing.Tracer.ENTITY_PATH_KEY; +import static com.azure.core.util.tracing.Tracer.HOST_NAME_KEY; import static com.azure.core.util.tracing.Tracer.SCOPE_KEY; import static com.azure.core.util.tracing.Tracer.SPAN_CONTEXT_KEY; @@ -140,7 +142,8 @@ void startPartitionPump(PartitionOwnership claimedOwnership, Checkpoint checkpoi eventHubConsumer.receiveFromPartition(claimedOwnership.getPartitionId(), startFromEventPosition, receiveOptions) .subscribe(partitionEvent -> { EventData eventData = partitionEvent.getData(); - Context processSpanContext = startProcessTracingSpan(eventData); + Context processSpanContext = startProcessTracingSpan(eventData, eventHubConsumer.getEventHubName(), + eventHubConsumer.getFullyQualifiedNamespace()); if (processSpanContext.getData(SPAN_CONTEXT_KEY).isPresent()) { eventData.addContext(SPAN_CONTEXT_KEY, processSpanContext); } @@ -199,15 +202,19 @@ private void handleReceiveError(PartitionOwnership claimedOwnership, EventHubCon } /* - * Starts a new process tracing span and attached context the EventData object for users. + * Starts a new process tracing span and attaches the returned context to the EventData object for users. */ - private Context startProcessTracingSpan(EventData eventData) { + private Context startProcessTracingSpan(EventData eventData, String eventHubName, String fullyQualifiedNamespace) { Object diagnosticId = eventData.getProperties().get(DIAGNOSTIC_ID_KEY); if (diagnosticId == null || !tracerProvider.isEnabled()) { return Context.NONE; } + Context spanContext = tracerProvider.extractContext(diagnosticId.toString(), Context.NONE); - return tracerProvider.startSpan(spanContext, ProcessKind.PROCESS); + Context entityContext = spanContext.addData(ENTITY_PATH_KEY, eventHubName); + + return tracerProvider.startSpan(entityContext.addData(HOST_NAME_KEY, fullyQualifiedNamespace), + ProcessKind.PROCESS); } /* From e9faa1ea97d8f9a03bb4a49cbcc10c8136f57e03 Mon Sep 17 00:00:00 2001 From: Sameeksha Vaity Date: Thu, 12 Dec 2019 10:53:28 -0800 Subject: [PATCH 4/4] trigger pipeline again --- sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md index 3d603c8cbceb..ae635dfcba54 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md +++ b/sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md @@ -1,5 +1,5 @@ # Release History -## Version 1.0.0-beta.2 (2019-01-) +## Version 1.0.0-beta.2 (2020-01-03) - Add eventhub properties to attributes of processing spans. This package's