diff --git a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryAttributes.java b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryAttributes.java index 6a5532cf28427..bdb002cb359ff 100644 --- a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryAttributes.java +++ b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryAttributes.java @@ -20,6 +20,13 @@ import io.opentelemetry.api.common.AttributeKey; +/** + * Common OpenTelemetry attributes to be used by Pulsar components. + */ public interface OpenTelemetryAttributes { + /** + * The name of the Pulsar cluster. This attribute is automatically added to all signals by + * {@link OpenTelemetryService}. + */ AttributeKey PULSAR_CLUSTER = AttributeKey.stringKey("pulsar.cluster"); } diff --git a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java index 5edc56a2df00f..5ead1ff265c83 100644 --- a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java +++ b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java @@ -44,11 +44,23 @@ public class OpenTelemetryService implements Closeable { private final OpenTelemetrySdk openTelemetrySdk; + /** + * Instantiates the OpenTelemetry SDK. All attributes are overridden by system properties or environment + * variables. + * + * @param clusterName + * The name of the Pulsar cluster. Cannot be null or blank. + * @param serviceName + * The name of the service. Optional. + * @param serviceVersion + * The version of the service. Optional. + * @param sdkBuilderConsumer + * Allows customizing the SDK builder; for testing purposes only. + */ @Builder public OpenTelemetryService(String clusterName, String serviceName, String serviceVersion, - // Allows customizing the SDK builder; for testing purposes only. @VisibleForTesting Consumer sdkBuilderConsumer) { checkArgument(StringUtils.isNotBlank(clusterName), "Cluster name cannot be empty"); var sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder(); diff --git a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/package-info.java b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/package-info.java index c9697ee047144..9a7426aa0471d 100644 --- a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/package-info.java +++ b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/package-info.java @@ -16,4 +16,9 @@ * specific language governing permissions and limitations * under the License. */ + +/** + * Provides a wrapper layer for the OpenTelemetry API to be used in Pulsar. + * @since 3.3.0 + */ package org.apache.pulsar.opentelemetry; \ No newline at end of file