From a0c830427a511d61d3ced2039395b9ca7ad5c6ea Mon Sep 17 00:00:00 2001 From: Tiemen Schut Date: Mon, 19 May 2025 16:09:45 +0200 Subject: [PATCH 1/4] Update OpenTelemetry dependencies (cherry picked from commit b7c0dc10d4366a3a4eb939ffff8409ca808ff084) --- build.gradle | 15 +- detectors/resources/build.gradle | 1 + .../detectors/AttributesExtractorUtil.java | 22 +- .../opentelemetry/detectors/GCPResource.java | 65 ++-- .../detectors/GCPResourceTest.java | 123 ++++---- exporters/metrics/build.gradle | 1 + .../metric/MetricConfiguration.java | 14 +- .../cloud/opentelemetry/metric/FakeData.java | 24 +- exporters/trace/build.gradle | 1 + .../opentelemetry/trace/TraceVersions.java | 2 +- .../trace/TraceTranslatorTest.java | 10 +- shared/resourcemapping/build.gradle | 1 + .../resource/ResourceTranslator.java | 96 +++--- .../resource/ResourceTranslatorTest.java | 282 +++++++++--------- 14 files changed, 339 insertions(+), 318 deletions(-) diff --git a/build.gradle b/build.gradle index c4a575e9..dea1427d 100644 --- a/build.gradle +++ b/build.gradle @@ -160,12 +160,12 @@ subprojects { googleTraceVersion = '2.51.0' googleCloudBomVersion = '26.48.0' cloudMonitoringVersion = '3.52.0' - openTelemetryBomVersion = '1.47.0' - openTelemetryVersion = '1.47.0' - openTelemetryInstrumentationBomVersion = '2.12.0' - openTelemetryInstrumentationVersion = '2.12.0' - openTelemetrySemconvVersion = '1.29.0' - openTelemetryContribVersion = '1.44.0' + openTelemetryBomVersion = '1.49.0' + openTelemetryVersion = '1.49.0' + openTelemetryInstrumentationBomVersion = '2.15.0' + openTelemetryInstrumentationVersion = '2.15.0' + openTelemetrySemconvVersion = '1.32.0' + openTelemetryContribVersion = '1.46.0' junitVersion = '4.13' junit5Version = '5.10.0' mockitoVersion = '5.2.0' @@ -204,7 +204,8 @@ subprojects { opentelemetry_context : "io.opentelemetry:opentelemetry-context:${openTelemetryVersion}", opentelemetry_sdk : "io.opentelemetry:opentelemetry-sdk:${openTelemetryVersion}", opentelemetry_sdk_common : "io.opentelemetry:opentelemetry-sdk-common:${openTelemetryVersion}", - opentelemetry_semconv : "io.opentelemetry.semconv:opentelemetry-semconv:${openTelemetrySemconvVersion}-alpha", + opentelemetry_semconv : "io.opentelemetry.semconv:opentelemetry-semconv:${openTelemetrySemconvVersion}", + opentelemetry_semconv_incubating : "io.opentelemetry.semconv:opentelemetry-semconv-incubating:${openTelemetrySemconvVersion}-alpha", opentelemetry_sdk_metrics : "io.opentelemetry:opentelemetry-sdk-metrics:${openTelemetryVersion}", opentelemetry_sdk_autoconf : "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:${openTelemetryVersion}", opentelemetry_autoconfigure_spi : "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:${openTelemetryVersion}", diff --git a/detectors/resources/build.gradle b/detectors/resources/build.gradle index ebe7a8d3..6c94b38c 100644 --- a/detectors/resources/build.gradle +++ b/detectors/resources/build.gradle @@ -20,6 +20,7 @@ dependencies { implementation(libraries.opentelemetry_sdk) implementation(libraries.opentelemetry_sdk_autoconf) implementation(libraries.opentelemetry_semconv) + implementation(libraries.opentelemetry_semconv_incubating) implementation platform(libraries.opentelemetry_bom) implementation project(':detector-resources-support') testImplementation(testLibraries.junit5) diff --git a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java index e57058a2..c85c815c 100644 --- a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java +++ b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java @@ -16,13 +16,15 @@ package com.google.cloud.opentelemetry.detectors; import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.semconv.ResourceAttributes; +import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; +import io.opentelemetry.semconv.incubating.FaasIncubatingAttributes; /** * A utility class that contains method that facilitate extraction of attributes from environment * variables and metadata configurations. * - *

This class only adds helper methods to extract {@link ResourceAttributes} that are common + *

This class only adds helper methods to extract {@link CloudIncubatingAttributes} + * and {@link FaasIncubatingAttributes} that are common * across all the supported compute environments. * * @deprecated Not for public use. This class is expected to be retained only as package private. @@ -37,7 +39,7 @@ public class AttributesExtractorUtil { * *

* @@ -52,7 +54,7 @@ public static void addAvailabilityZoneFromMetadata( AttributesBuilder attributesBuilder, GCPMetadataConfig metadataConfig) { String zone = metadataConfig.getZone(); if (zone != null) { - attributesBuilder.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, zone); + attributesBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, zone); } } @@ -62,7 +64,7 @@ public static void addAvailabilityZoneFromMetadata( * * * @@ -80,7 +82,7 @@ public static void addCloudRegionFromMetadataUsingZone( // Parsing required to scope up to a region String[] splitArr = zone.split("-"); if (splitArr.length > 2) { - attributesBuilder.put(ResourceAttributes.CLOUD_REGION, splitArr[0] + "-" + splitArr[1]); + attributesBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, splitArr[0] + "-" + splitArr[1]); } } } @@ -91,7 +93,7 @@ public static void addCloudRegionFromMetadataUsingZone( * * * @@ -106,7 +108,7 @@ public static void addCloudRegionFromMetadataUsingRegion( AttributesBuilder attributesBuilder, GCPMetadataConfig metadataConfig) { String region = metadataConfig.getRegion(); if (region != null) { - attributesBuilder.put(ResourceAttributes.CLOUD_REGION, region); + attributesBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, region); } } @@ -117,7 +119,7 @@ public static void addCloudRegionFromMetadataUsingRegion( * * * * @param attributesBuilder The {@link AttributesBuilder} to which the extracted property needs to @@ -129,7 +131,7 @@ public static void addInstanceIdFromMetadata( AttributesBuilder attributesBuilder, GCPMetadataConfig metadataConfig) { String instanceId = metadataConfig.getInstanceId(); if (instanceId != null) { - attributesBuilder.put(ResourceAttributes.FAAS_INSTANCE, instanceId); + attributesBuilder.put(FaasIncubatingAttributes.FAAS_INSTANCE, instanceId); } } } diff --git a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java index 72154160..6b301aee 100644 --- a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java +++ b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java @@ -24,7 +24,8 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.ResourceAttributes; +import io.opentelemetry.semconv.incubating.*; + import java.util.Map; import java.util.Optional; import java.util.logging.Logger; @@ -68,8 +69,8 @@ public Attributes getAttributes() { // This is running on some sort of GCPCompute - figure out the platform AttributesBuilder attrBuilder = Attributes.builder(); - attrBuilder.put(ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP); - attrBuilder.put(ResourceAttributes.CLOUD_ACCOUNT_ID, detectedPlatform.getProjectId()); + attrBuilder.put(CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP); + attrBuilder.put(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, detectedPlatform.getProjectId()); switch (detectedPlatform.getSupportedPlatform()) { case GOOGLE_KUBERNETES_ENGINE: @@ -107,27 +108,27 @@ public Resource createResource(ConfigProperties config) { */ private void addGCEAttributes(AttributesBuilder attrBuilder, Map attributesMap) { attrBuilder.put( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE); + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_COMPUTE_ENGINE); Optional.ofNullable(attributesMap.get(GCE_AVAILABILITY_ZONE)) - .ifPresent(zone -> attrBuilder.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, zone)); + .ifPresent(zone -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, zone)); Optional.ofNullable(attributesMap.get(GCE_CLOUD_REGION)) - .ifPresent(region -> attrBuilder.put(ResourceAttributes.CLOUD_REGION, region)); + .ifPresent(region -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, region)); Optional.ofNullable(attributesMap.get(GCE_INSTANCE_ID)) - .ifPresent(instanceId -> attrBuilder.put(ResourceAttributes.HOST_ID, instanceId)); + .ifPresent(instanceId -> attrBuilder.put(HostIncubatingAttributes.HOST_ID, instanceId)); Optional.ofNullable(attributesMap.get(GCE_INSTANCE_NAME)) .ifPresent( instanceName -> { - attrBuilder.put(ResourceAttributes.HOST_NAME, instanceName); - attrBuilder.put(ResourceAttributes.GCP_GCE_INSTANCE_NAME, instanceName); + attrBuilder.put(HostIncubatingAttributes.HOST_NAME, instanceName); + attrBuilder.put(GcpIncubatingAttributes.GCP_GCE_INSTANCE_NAME, instanceName); }); Optional.ofNullable(attributesMap.get(GCE_INSTANCE_HOSTNAME)) .ifPresent( instanceHostname -> - attrBuilder.put(ResourceAttributes.GCP_GCE_INSTANCE_HOSTNAME, instanceHostname)); + attrBuilder.put(GcpIncubatingAttributes.GCP_GCE_INSTANCE_HOSTNAME, instanceHostname)); Optional.ofNullable(attributesMap.get(GCE_MACHINE_TYPE)) - .ifPresent(machineType -> attrBuilder.put(ResourceAttributes.HOST_TYPE, machineType)); + .ifPresent(machineType -> attrBuilder.put(HostIncubatingAttributes.HOST_TYPE, machineType)); } /** @@ -139,14 +140,14 @@ private void addGCEAttributes(AttributesBuilder attrBuilder, Map */ private void addGKEAttributes(AttributesBuilder attrBuilder, Map attributesMap) { attrBuilder.put( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE); + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE); Optional.ofNullable(attributesMap.get(GKE_CLUSTER_NAME)) .ifPresent( - clusterName -> attrBuilder.put(ResourceAttributes.K8S_CLUSTER_NAME, clusterName)); + clusterName -> attrBuilder.put(K8sIncubatingAttributes.K8S_CLUSTER_NAME, clusterName)); Optional.ofNullable(attributesMap.get(GKE_HOST_ID)) - .ifPresent(hostId -> attrBuilder.put(ResourceAttributes.HOST_ID, hostId)); + .ifPresent(hostId -> attrBuilder.put(HostIncubatingAttributes.HOST_ID, hostId)); Optional.ofNullable(attributesMap.get(GKE_CLUSTER_LOCATION_TYPE)) .ifPresent( locationType -> { @@ -154,11 +155,11 @@ private void addGKEAttributes(AttributesBuilder attrBuilder, Map switch (locationType) { case GKE_LOCATION_TYPE_REGION: attrBuilder.put( - ResourceAttributes.CLOUD_REGION, attributesMap.get(GKE_CLUSTER_LOCATION)); + CloudIncubatingAttributes.CLOUD_REGION, attributesMap.get(GKE_CLUSTER_LOCATION)); break; case GKE_LOCATION_TYPE_ZONE: attrBuilder.put( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, attributesMap.get(GKE_CLUSTER_LOCATION)); default: // TODO: Figure out how to handle unexpected conditions like this - Issue #183 @@ -180,7 +181,7 @@ private void addGKEAttributes(AttributesBuilder attrBuilder, Map */ private void addGCRAttributes(AttributesBuilder attrBuilder, Map attributesMap) { attrBuilder.put( - ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.GCP_CLOUD_RUN); + CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_CLOUD_RUN); addCommonAttributesForServerlessCompute(attrBuilder, attributesMap); } @@ -193,8 +194,8 @@ private void addGCRAttributes(AttributesBuilder attrBuilder, Map */ private void addGCFAttributes(AttributesBuilder attrBuilder, Map attributesMap) { attrBuilder.put( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_CLOUD_FUNCTIONS); + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_CLOUD_FUNCTIONS); addCommonAttributesForServerlessCompute(attrBuilder, attributesMap); } @@ -207,20 +208,20 @@ private void addGCFAttributes(AttributesBuilder attrBuilder, Map */ private void addGAEAttributes(AttributesBuilder attrBuilder, Map attributesMap) { attrBuilder.put( - ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.GCP_APP_ENGINE); + CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_APP_ENGINE); Optional.ofNullable(attributesMap.get(GAE_MODULE_NAME)) - .ifPresent(appName -> attrBuilder.put(ResourceAttributes.FAAS_NAME, appName)); + .ifPresent(appName -> attrBuilder.put(FaasIncubatingAttributes.FAAS_NAME, appName)); Optional.ofNullable(attributesMap.get(GAE_APP_VERSION)) - .ifPresent(appVersion -> attrBuilder.put(ResourceAttributes.FAAS_VERSION, appVersion)); + .ifPresent(appVersion -> attrBuilder.put(FaasIncubatingAttributes.FAAS_VERSION, appVersion)); Optional.ofNullable(attributesMap.get(GAE_INSTANCE_ID)) .ifPresent( - appInstanceId -> attrBuilder.put(ResourceAttributes.FAAS_INSTANCE, appInstanceId)); + appInstanceId -> attrBuilder.put(FaasIncubatingAttributes.FAAS_INSTANCE, appInstanceId)); Optional.ofNullable(attributesMap.get(GAE_CLOUD_REGION)) - .ifPresent(cloudRegion -> attrBuilder.put(ResourceAttributes.CLOUD_REGION, cloudRegion)); + .ifPresent(cloudRegion -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, cloudRegion)); Optional.ofNullable(attributesMap.get(GAE_AVAILABILITY_ZONE)) .ifPresent( cloudAvailabilityZone -> - attrBuilder.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, cloudAvailabilityZone)); + attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, cloudAvailabilityZone)); } /** @@ -233,14 +234,14 @@ private void addGAEAttributes(AttributesBuilder attrBuilder, Map private void addCommonAttributesForServerlessCompute( AttributesBuilder attrBuilder, Map attributesMap) { Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_NAME)) - .ifPresent(name -> attrBuilder.put(ResourceAttributes.FAAS_NAME, name)); + .ifPresent(name -> attrBuilder.put(FaasIncubatingAttributes.FAAS_NAME, name)); Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_REVISION)) - .ifPresent(revision -> attrBuilder.put(ResourceAttributes.FAAS_VERSION, revision)); + .ifPresent(revision -> attrBuilder.put(FaasIncubatingAttributes.FAAS_VERSION, revision)); Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_INSTANCE_ID)) - .ifPresent(instanceId -> attrBuilder.put(ResourceAttributes.FAAS_INSTANCE, instanceId)); + .ifPresent(instanceId -> attrBuilder.put(FaasIncubatingAttributes.FAAS_INSTANCE, instanceId)); Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_AVAILABILITY_ZONE)) - .ifPresent(zone -> attrBuilder.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, zone)); + .ifPresent(zone -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, zone)); Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_CLOUD_REGION)) - .ifPresent(region -> attrBuilder.put(ResourceAttributes.CLOUD_REGION, region)); + .ifPresent(region -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, region)); } } diff --git a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java index 88fb6369..b9a0e880 100644 --- a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java +++ b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java @@ -25,11 +25,12 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.ResourceAttributes; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; import java.util.ServiceLoader; + +import io.opentelemetry.semconv.incubating.*; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -144,7 +145,7 @@ private DetectedPlatform generateMockUnknownPlatform() { } @Test - public void testGCEResourceAttributesMapping() { + public void testGCECloudIncubatingAttributesMapping() { GCPPlatformDetector mockDetector = Mockito.mock(GCPPlatformDetector.class); DetectedPlatform mockPlatform = generateMockGCEPlatform(); Mockito.when(mockDetector.detectPlatform()).thenReturn(mockPlatform); @@ -153,39 +154,39 @@ public void testGCEResourceAttributesMapping() { assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); assertEquals( - ResourceAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PLATFORM)); + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_COMPUTE_ENGINE, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PLATFORM)); assertEquals( - ResourceAttributes.CloudProviderValues.GCP, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PROVIDER)); + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PROVIDER)); assertEquals( mockPlatform.getAttributes().get(GCE_INSTANCE_ID), - gotResource.getAttributes().get(ResourceAttributes.HOST_ID)); + gotResource.getAttributes().get(HostIncubatingAttributes.HOST_ID)); assertEquals( mockPlatform.getAttributes().get(GCE_INSTANCE_NAME), - gotResource.getAttributes().get(ResourceAttributes.HOST_NAME)); + gotResource.getAttributes().get(HostIncubatingAttributes.HOST_NAME)); assertEquals( mockPlatform.getAttributes().get(GCE_INSTANCE_NAME), - gotResource.getAttributes().get(ResourceAttributes.GCP_GCE_INSTANCE_NAME)); + gotResource.getAttributes().get(GcpIncubatingAttributes.GCP_GCE_INSTANCE_NAME)); assertEquals( mockPlatform.getAttributes().get(GCE_INSTANCE_HOSTNAME), - gotResource.getAttributes().get(ResourceAttributes.GCP_GCE_INSTANCE_HOSTNAME)); + gotResource.getAttributes().get(GcpIncubatingAttributes.GCP_GCE_INSTANCE_HOSTNAME)); assertEquals( mockPlatform.getAttributes().get(GCE_MACHINE_TYPE), - gotResource.getAttributes().get(ResourceAttributes.HOST_TYPE)); + gotResource.getAttributes().get(HostIncubatingAttributes.HOST_TYPE)); assertEquals( mockPlatform.getAttributes().get(GCE_AVAILABILITY_ZONE), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_AVAILABILITY_ZONE)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE)); assertEquals( mockPlatform.getAttributes().get(GCE_CLOUD_REGION), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_REGION)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_REGION)); assertEquals(10, gotResource.getAttributes().size()); } @Test - public void testGKEResourceAttributesMapping_LocationTypeRegion() { + public void testGKECloudIncubatingAttributesMapping_LocationTypeRegion() { GCPPlatformDetector mockDetector = Mockito.mock(GCPPlatformDetector.class); DetectedPlatform mockPlatform = generateMockGKEPlatform(GKE_LOCATION_TYPE_REGION); Mockito.when(mockDetector.detectPlatform()).thenReturn(mockPlatform); @@ -195,16 +196,16 @@ public void testGKEResourceAttributesMapping_LocationTypeRegion() { verifyGKEMapping(gotResource, mockPlatform); assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); - assertNull(gotResource.getAttributes().get(ResourceAttributes.CLOUD_AVAILABILITY_ZONE)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); + assertNull(gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE)); assertEquals( mockPlatform.getAttributes().get(GKE_CLUSTER_LOCATION), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_REGION)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_REGION)); assertEquals(6, gotResource.getAttributes().size()); } @Test - public void testGKEResourceAttributesMapping_LocationTypeZone() { + public void testGKECloudIncubatingAttributesMapping_LocationTypeZone() { GCPPlatformDetector mockDetector = Mockito.mock(GCPPlatformDetector.class); DetectedPlatform mockPlatform = generateMockGKEPlatform(GKE_LOCATION_TYPE_ZONE); Mockito.when(mockDetector.detectPlatform()).thenReturn(mockPlatform); @@ -214,16 +215,16 @@ public void testGKEResourceAttributesMapping_LocationTypeZone() { verifyGKEMapping(gotResource, mockPlatform); assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); - assertNull(gotResource.getAttributes().get(ResourceAttributes.CLOUD_REGION)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); + assertNull(gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_REGION)); assertEquals( mockPlatform.getAttributes().get(GKE_CLUSTER_LOCATION), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_AVAILABILITY_ZONE)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE)); assertEquals(6, gotResource.getAttributes().size()); } @Test - public void testGKEResourceAttributesMapping_LocationTypeInvalid() { + public void testGKECloudIncubatingAttributesMapping_LocationTypeInvalid() { Map mockGKEAttributes = new HashMap<>(mockGKECommonAttributes); mockGKEAttributes.put(GKE_CLUSTER_LOCATION_TYPE, "INVALID"); mockGKEAttributes.put(GKE_CLUSTER_LOCATION, "some-location"); @@ -241,14 +242,14 @@ public void testGKEResourceAttributesMapping_LocationTypeInvalid() { verifyGKEMapping(gotResource, mockPlatform); assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); - assertNull(gotResource.getAttributes().get(ResourceAttributes.CLOUD_REGION)); - assertNull(gotResource.getAttributes().get(ResourceAttributes.CLOUD_AVAILABILITY_ZONE)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); + assertNull(gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_REGION)); + assertNull(gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE)); assertEquals(5, gotResource.getAttributes().size()); } @Test - public void testGKEResourceAttributesMapping_LocationMissing() { + public void testGKECloudIncubatingAttributesMapping_LocationMissing() { GCPPlatformDetector mockDetector = Mockito.mock(GCPPlatformDetector.class); DetectedPlatform mockPlatform = generateMockGKEPlatform(""); Mockito.when(mockDetector.detectPlatform()).thenReturn(mockPlatform); @@ -258,29 +259,29 @@ public void testGKEResourceAttributesMapping_LocationMissing() { verifyGKEMapping(gotResource, mockPlatform); assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); - assertNull(gotResource.getAttributes().get(ResourceAttributes.CLOUD_REGION)); - assertNull(gotResource.getAttributes().get(ResourceAttributes.CLOUD_AVAILABILITY_ZONE)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); + assertNull(gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_REGION)); + assertNull(gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE)); assertEquals(5, gotResource.getAttributes().size()); } private void verifyGKEMapping(Resource gotResource, DetectedPlatform detectedPlatform) { assertEquals( - ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PLATFORM)); + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PLATFORM)); assertEquals( - ResourceAttributes.CloudProviderValues.GCP, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PROVIDER)); + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PROVIDER)); assertEquals( detectedPlatform.getAttributes().get(GKE_HOST_ID), - gotResource.getAttributes().get(ResourceAttributes.HOST_ID)); + gotResource.getAttributes().get(HostIncubatingAttributes.HOST_ID)); assertEquals( detectedPlatform.getAttributes().get(GKE_CLUSTER_NAME), - gotResource.getAttributes().get(ResourceAttributes.K8S_CLUSTER_NAME)); + gotResource.getAttributes().get(K8sIncubatingAttributes.K8S_CLUSTER_NAME)); } @Test - public void testGCRResourceAttributesMapping() { + public void testGCRCloudIncubatingAttributesMapping() { GCPPlatformDetector mockDetector = Mockito.mock(GCPPlatformDetector.class); DetectedPlatform mockPlatform = generateMockServerlessPlatform(GCPPlatformDetector.SupportedPlatform.GOOGLE_CLOUD_RUN); @@ -288,11 +289,11 @@ public void testGCRResourceAttributesMapping() { Resource gotResource = new GCPResource(mockDetector).createResource(mockConfigProps); assertEquals( - ResourceAttributes.CloudPlatformValues.GCP_CLOUD_RUN, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PLATFORM)); + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_CLOUD_RUN, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PLATFORM)); assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); verifyServerlessMapping(gotResource, mockPlatform); assertEquals(8, gotResource.getAttributes().size()); } @@ -307,34 +308,34 @@ public void testGCFResourceAttributeMapping() { Resource gotResource = new GCPResource(mockDetector).createResource(mockConfigProps); assertEquals( - ResourceAttributes.CloudPlatformValues.GCP_CLOUD_FUNCTIONS, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PLATFORM)); + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_CLOUD_FUNCTIONS, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PLATFORM)); assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); verifyServerlessMapping(gotResource, mockPlatform); assertEquals(8, gotResource.getAttributes().size()); } private void verifyServerlessMapping(Resource gotResource, DetectedPlatform detectedPlatform) { assertEquals( - ResourceAttributes.CloudProviderValues.GCP, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PROVIDER)); + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PROVIDER)); assertEquals( detectedPlatform.getAttributes().get(SERVERLESS_COMPUTE_NAME), - gotResource.getAttributes().get(ResourceAttributes.FAAS_NAME)); + gotResource.getAttributes().get(FaasIncubatingAttributes.FAAS_NAME)); assertEquals( detectedPlatform.getAttributes().get(SERVERLESS_COMPUTE_REVISION), - gotResource.getAttributes().get(ResourceAttributes.FAAS_VERSION)); + gotResource.getAttributes().get(FaasIncubatingAttributes.FAAS_VERSION)); assertEquals( detectedPlatform.getAttributes().get(SERVERLESS_COMPUTE_INSTANCE_ID), - gotResource.getAttributes().get(ResourceAttributes.FAAS_INSTANCE)); + gotResource.getAttributes().get(FaasIncubatingAttributes.FAAS_INSTANCE)); assertEquals( detectedPlatform.getAttributes().get(SERVERLESS_COMPUTE_AVAILABILITY_ZONE), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_AVAILABILITY_ZONE)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE)); assertEquals( detectedPlatform.getAttributes().get(SERVERLESS_COMPUTE_CLOUD_REGION), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_REGION)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_REGION)); } @Test @@ -345,34 +346,34 @@ public void testGAEResourceAttributeMapping() { Resource gotResource = new GCPResource(mockDetector).createResource(mockConfigProps); assertEquals( - ResourceAttributes.CloudPlatformValues.GCP_APP_ENGINE, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PLATFORM)); + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_APP_ENGINE, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PLATFORM)); assertEquals( - ResourceAttributes.CloudProviderValues.GCP, - gotResource.getAttributes().get(ResourceAttributes.CLOUD_PROVIDER)); + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP, + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_PROVIDER)); assertEquals( mockPlatform.getProjectId(), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_ACCOUNT_ID)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); assertEquals( mockPlatform.getAttributes().get(GAE_MODULE_NAME), - gotResource.getAttributes().get(ResourceAttributes.FAAS_NAME)); + gotResource.getAttributes().get(FaasIncubatingAttributes.FAAS_NAME)); assertEquals( mockPlatform.getAttributes().get(GAE_APP_VERSION), - gotResource.getAttributes().get(ResourceAttributes.FAAS_VERSION)); + gotResource.getAttributes().get(FaasIncubatingAttributes.FAAS_VERSION)); assertEquals( mockPlatform.getAttributes().get(GAE_INSTANCE_ID), - gotResource.getAttributes().get(ResourceAttributes.FAAS_INSTANCE)); + gotResource.getAttributes().get(FaasIncubatingAttributes.FAAS_INSTANCE)); assertEquals( mockPlatform.getAttributes().get(GAE_AVAILABILITY_ZONE), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_AVAILABILITY_ZONE)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE)); assertEquals( mockPlatform.getAttributes().get(GAE_CLOUD_REGION), - gotResource.getAttributes().get(ResourceAttributes.CLOUD_REGION)); + gotResource.getAttributes().get(CloudIncubatingAttributes.CLOUD_REGION)); assertEquals(8, gotResource.getAttributes().size()); } @Test - public void testUnknownPlatformResourceAttributesMapping() { + public void testUnknownPlatformCloudIncubatingAttributesMapping() { GCPPlatformDetector mockDetector = Mockito.mock(GCPPlatformDetector.class); DetectedPlatform mockPlatform = generateMockUnknownPlatform(); Mockito.when(mockDetector.detectPlatform()).thenReturn(mockPlatform); diff --git a/exporters/metrics/build.gradle b/exporters/metrics/build.gradle index 492735e2..b99dd0c9 100644 --- a/exporters/metrics/build.gradle +++ b/exporters/metrics/build.gradle @@ -27,6 +27,7 @@ dependencies { implementation(platform(libraries.opentelemetry_bom)) implementation(project(':shared-resourcemapping')) implementation(libraries.opentelemetry_semconv) + implementation(libraries.opentelemetry_semconv_incubating) testImplementation(testLibraries.junit) testImplementation(testLibraries.mockito) testImplementation(testLibraries.slf4j_simple) 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 c0446de9..77dc1322 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 @@ -27,7 +27,9 @@ import com.google.common.base.Strings; import com.google.common.base.Suppliers; import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.semconv.ResourceAttributes; +import io.opentelemetry.semconv.ServiceAttributes; +import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; + import java.time.Duration; import java.util.Collections; import java.util.List; @@ -63,9 +65,9 @@ public abstract class MetricConfiguration { */ public static final Predicate> DEFAULT_RESOURCE_ATTRIBUTES_FILTER = attributeKey -> - (attributeKey.equals(ResourceAttributes.SERVICE_NAME) - || attributeKey.equals(ResourceAttributes.SERVICE_NAMESPACE) - || attributeKey.equals(ResourceAttributes.SERVICE_INSTANCE_ID)) + (attributeKey.equals(ServiceAttributes.SERVICE_NAME) + || attributeKey.equals(ServiceIncubatingAttributes.SERVICE_NAMESPACE) + || attributeKey.equals(ServiceIncubatingAttributes.SERVICE_INSTANCE_ID)) && !attributeKey.getKey().isEmpty(); MetricConfiguration() {} @@ -141,8 +143,8 @@ public final String getProjectId() { * Returns the {@link Predicate} based filter that determines which resource attributes to add as * metric labels. * - *

The default filter adds {@link ResourceAttributes#SERVICE_NAME}, {@link - * ResourceAttributes#SERVICE_NAMESPACE}, and {@link ResourceAttributes#SERVICE_INSTANCE_ID} as + *

The default filter adds {@link ServiceAttributes#SERVICE_NAME}, {@link + * ServiceIncubatingAttributes#SERVICE_NAMESPACE}, and {@link ServiceIncubatingAttributes#SERVICE_INSTANCE_ID} as * metric labels. * * @return a {@link Predicate} that acts as a resource attribute filter. diff --git a/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java b/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java index 24c9c7ba..e1d0ddae 100644 --- a/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java +++ b/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java @@ -42,7 +42,11 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData; import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.ResourceAttributes; +import io.opentelemetry.semconv.ServiceAttributes; +import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; +import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; +import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; + import java.util.Arrays; import java.util.Collections; import java.util.Date; @@ -78,15 +82,15 @@ public class FakeData { static final Attributes someGceAttributes = Attributes.builder() .put( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE) - .put(ResourceAttributes.CLOUD_ACCOUNT_ID, aProjectId) - .put(ResourceAttributes.HOST_ID, aHostId) - .put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, aCloudZone) - .put(ResourceAttributes.CLOUD_PROVIDER, "gcp") - .put(ResourceAttributes.SERVICE_NAME, "test-gce-service") - .put(ResourceAttributes.SERVICE_NAMESPACE, "test-gce-service-ns") - .put(ResourceAttributes.SERVICE_INSTANCE_ID, "test-gce-service-id") + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_COMPUTE_ENGINE) + .put(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, aProjectId) + .put(HostIncubatingAttributes.HOST_ID, aHostId) + .put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, aCloudZone) + .put(CloudIncubatingAttributes.CLOUD_PROVIDER, "gcp") + .put(ServiceAttributes.SERVICE_NAME, "test-gce-service") + .put(ServiceIncubatingAttributes.SERVICE_NAMESPACE, "test-gce-service-ns") + .put(ServiceIncubatingAttributes.SERVICE_INSTANCE_ID, "test-gce-service-id") .put("extra_info", "extra") .put("not_gcp_resource", "value") .build(); diff --git a/exporters/trace/build.gradle b/exporters/trace/build.gradle index 34f88968..ff347612 100644 --- a/exporters/trace/build.gradle +++ b/exporters/trace/build.gradle @@ -27,6 +27,7 @@ dependencies { implementation platform(libraries.google_cloud_bom) implementation platform(libraries.opentelemetry_bom) implementation(libraries.opentelemetry_semconv) + implementation(libraries.opentelemetry_semconv_incubating) implementation(project(':shared-resourcemapping')) testImplementation(testLibraries.junit) testImplementation(testLibraries.opentelemetry_sdk_testing) 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 c28f2ac9..528240fb 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 @@ -15,7 +15,7 @@ */ package com.google.cloud.opentelemetry.trace; -import static io.opentelemetry.semconv.ResourceAttributes.TELEMETRY_SDK_VERSION; +import static io.opentelemetry.semconv.TelemetryAttributes.TELEMETRY_SDK_VERSION; import io.opentelemetry.sdk.resources.Resource; import java.util.Properties; diff --git a/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java b/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java index f88fceff..029ab226 100644 --- a/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java +++ b/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java @@ -35,7 +35,6 @@ import io.opentelemetry.sdk.testing.trace.TestSpanData; import io.opentelemetry.sdk.trace.data.EventData; import io.opentelemetry.sdk.trace.data.StatusData; -import io.opentelemetry.semconv.ResourceAttributes; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -44,6 +43,9 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; + +import io.opentelemetry.semconv.ServiceAttributes; +import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -77,9 +79,9 @@ public void testInsertResourceAttributes() { Resource resource = Resource.create( Attributes.builder() - .put(ResourceAttributes.SERVICE_NAME, "my-service-name") - .put(ResourceAttributes.SERVICE_NAMESPACE, "qa") - .put(ResourceAttributes.SERVICE_INSTANCE_ID, "23") + .put(ServiceAttributes.SERVICE_NAME, "my-service-name") + .put(ServiceIncubatingAttributes.SERVICE_NAMESPACE, "qa") + .put(ServiceIncubatingAttributes.SERVICE_INSTANCE_ID, "23") .build()); TraceTranslator.insertResourceAttributes(resource, resourceAttributes); assertTrue(resourceAttributes.containsKey("g.co/r/generic_task/job")); diff --git a/shared/resourcemapping/build.gradle b/shared/resourcemapping/build.gradle index 2e0d715d..0508724c 100644 --- a/shared/resourcemapping/build.gradle +++ b/shared/resourcemapping/build.gradle @@ -27,6 +27,7 @@ dependencies { api(libraries.opentelemetry_sdk_common) annotationProcessor(libraries.auto_value) implementation(libraries.opentelemetry_semconv) + implementation(libraries.opentelemetry_semconv_incubating) implementation platform(libraries.opentelemetry_bom) testImplementation(testLibraries.junit5) testImplementation(testLibraries.junit5_params) 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 988613f1..f2f4d04d 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 @@ -17,7 +17,9 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.ResourceAttributes; +import io.opentelemetry.semconv.ServiceAttributes; +import io.opentelemetry.semconv.incubating.*; + import java.util.Arrays; import java.util.List; import java.util.Map; @@ -48,7 +50,7 @@ public void fill(Resource resource, GcpResource.Builder builder) { // for monitored resource types that have service.name, ignore it // if its unknown_service in favor of a valid value in faas.name. // if faas.name is also empty/unset use the ignored value from before. - if (key.equals(ResourceAttributes.SERVICE_NAME) + if (key.equals(ServiceAttributes.SERVICE_NAME) && stringValue.startsWith(UNKNOWN_SERVICE_PREFIX)) { continue; } @@ -56,10 +58,10 @@ public void fill(Resource resource, GcpResource.Builder builder) { return; } } - if (getOtelKeys().contains(ResourceAttributes.SERVICE_NAME) - && Objects.nonNull(resource.getAttribute(ResourceAttributes.SERVICE_NAME))) { + if (getOtelKeys().contains(ServiceAttributes.SERVICE_NAME) + && Objects.nonNull(resource.getAttribute(ServiceAttributes.SERVICE_NAME))) { builder.addResourceLabels( - getLabelName(), resource.getAttribute(ResourceAttributes.SERVICE_NAME)); + getLabelName(), resource.getAttribute(ServiceAttributes.SERVICE_NAME)); return; } fallbackLiteral().ifPresent(value -> builder.addResourceLabels(getLabelName(), value)); @@ -91,95 +93,95 @@ public static AttributeMapping create( private static final List GCE_INSTANCE_LABELS = Arrays.asList( - AttributeMapping.create("zone", ResourceAttributes.CLOUD_AVAILABILITY_ZONE), - AttributeMapping.create("instance_id", ResourceAttributes.HOST_ID)); + AttributeMapping.create("zone", CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE), + AttributeMapping.create("instance_id", HostIncubatingAttributes.HOST_ID)); private static final List K8S_CONTAINER_LABELS = Arrays.asList( AttributeMapping.create( "location", Arrays.asList( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, ResourceAttributes.CLOUD_REGION)), - AttributeMapping.create("cluster_name", ResourceAttributes.K8S_CLUSTER_NAME), - AttributeMapping.create("namespace_name", ResourceAttributes.K8S_NAMESPACE_NAME), - AttributeMapping.create("container_name", ResourceAttributes.K8S_CONTAINER_NAME), - AttributeMapping.create("pod_name", ResourceAttributes.K8S_POD_NAME)); + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME), + AttributeMapping.create("namespace_name", K8sIncubatingAttributes.K8S_NAMESPACE_NAME), + AttributeMapping.create("container_name", K8sIncubatingAttributes.K8S_CONTAINER_NAME), + AttributeMapping.create("pod_name", K8sIncubatingAttributes.K8S_POD_NAME)); private static final List K8S_POD_LABELS = Arrays.asList( AttributeMapping.create( "location", Arrays.asList( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, ResourceAttributes.CLOUD_REGION)), - AttributeMapping.create("cluster_name", ResourceAttributes.K8S_CLUSTER_NAME), - AttributeMapping.create("namespace_name", ResourceAttributes.K8S_NAMESPACE_NAME), - AttributeMapping.create("pod_name", ResourceAttributes.K8S_POD_NAME)); + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME), + AttributeMapping.create("namespace_name", K8sIncubatingAttributes.K8S_NAMESPACE_NAME), + AttributeMapping.create("pod_name", K8sIncubatingAttributes.K8S_POD_NAME)); private static final List K8S_NODE_LABELS = Arrays.asList( AttributeMapping.create( "location", Arrays.asList( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, ResourceAttributes.CLOUD_REGION)), - AttributeMapping.create("cluster_name", ResourceAttributes.K8S_CLUSTER_NAME), - AttributeMapping.create("node_name", ResourceAttributes.K8S_NODE_NAME)); + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME), + AttributeMapping.create("node_name", K8sIncubatingAttributes.K8S_NODE_NAME)); private static final List K8S_CLUSTER_LABELS = Arrays.asList( AttributeMapping.create( "location", Arrays.asList( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, ResourceAttributes.CLOUD_REGION)), - AttributeMapping.create("cluster_name", ResourceAttributes.K8S_CLUSTER_NAME)); + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME)); private static final List AWS_EC2_INSTANCE_LABELS = Arrays.asList( - AttributeMapping.create("instance_id", ResourceAttributes.HOST_ID), - AttributeMapping.create("region", ResourceAttributes.CLOUD_AVAILABILITY_ZONE), - AttributeMapping.create("aws_account", ResourceAttributes.CLOUD_ACCOUNT_ID)); + AttributeMapping.create("instance_id", HostIncubatingAttributes.HOST_ID), + AttributeMapping.create("region", CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE), + AttributeMapping.create("aws_account", CloudIncubatingAttributes.CLOUD_ACCOUNT_ID)); private static final List GOOGLE_CLOUD_APP_ENGINE_INSTANCE_LABELS = Arrays.asList( - AttributeMapping.create("module_id", ResourceAttributes.FAAS_NAME), - AttributeMapping.create("version_id", ResourceAttributes.FAAS_VERSION), - AttributeMapping.create("instance_id", ResourceAttributes.FAAS_INSTANCE), - AttributeMapping.create("location", ResourceAttributes.CLOUD_REGION)); + AttributeMapping.create("module_id", FaasIncubatingAttributes.FAAS_NAME), + AttributeMapping.create("version_id", FaasIncubatingAttributes.FAAS_VERSION), + AttributeMapping.create("instance_id", FaasIncubatingAttributes.FAAS_INSTANCE), + AttributeMapping.create("location", CloudIncubatingAttributes.CLOUD_REGION)); private static final List GENERIC_TASK_LABELS = Arrays.asList( AttributeMapping.create( "location", Arrays.asList( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, ResourceAttributes.CLOUD_REGION), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION), "global"), - AttributeMapping.create("namespace", ResourceAttributes.SERVICE_NAMESPACE, ""), + AttributeMapping.create("namespace", ServiceIncubatingAttributes.SERVICE_NAMESPACE, ""), AttributeMapping.create( "job", - Arrays.asList(ResourceAttributes.SERVICE_NAME, ResourceAttributes.FAAS_NAME), + Arrays.asList(ServiceAttributes.SERVICE_NAME, FaasIncubatingAttributes.FAAS_NAME), ""), AttributeMapping.create( "task_id", Arrays.asList( - ResourceAttributes.SERVICE_INSTANCE_ID, ResourceAttributes.FAAS_INSTANCE), + ServiceIncubatingAttributes.SERVICE_INSTANCE_ID, FaasIncubatingAttributes.FAAS_INSTANCE), "")); private static final List GENERIC_NODE_LABELS = Arrays.asList( AttributeMapping.create( "location", Arrays.asList( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, ResourceAttributes.CLOUD_REGION), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION), "global"), - AttributeMapping.create("namespace", ResourceAttributes.SERVICE_NAMESPACE, ""), + AttributeMapping.create("namespace", ServiceIncubatingAttributes.SERVICE_NAMESPACE, ""), AttributeMapping.create( "node_id", - Arrays.asList(ResourceAttributes.HOST_ID, ResourceAttributes.HOST_NAME), + Arrays.asList(HostIncubatingAttributes.HOST_ID, HostIncubatingAttributes.HOST_NAME), "")); /** Converts a Java OpenTelemetry SDK resource into a GCP resource. */ public static GcpResource mapResource(Resource resource) { - String platform = resource.getAttribute(ResourceAttributes.CLOUD_PLATFORM); + String platform = resource.getAttribute(CloudIncubatingAttributes.CLOUD_PLATFORM); if (platform == null) { return mapK8sResourceOrGenericTaskOrNode(resource); } switch (platform) { - case ResourceAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE: + case CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_COMPUTE_ENGINE: return mapBase(resource, "gce_instance", GCE_INSTANCE_LABELS); - case ResourceAttributes.CloudPlatformValues.AWS_EC2: + case CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EC2: return mapBase(resource, "aws_ec2_instance", AWS_EC2_INSTANCE_LABELS); - case ResourceAttributes.CloudPlatformValues.GCP_APP_ENGINE: + case CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_APP_ENGINE: return mapBase(resource, "gae_instance", GOOGLE_CLOUD_APP_ENGINE_INSTANCE_LABELS); default: return mapK8sResourceOrGenericTaskOrNode(resource); @@ -189,12 +191,12 @@ public static GcpResource mapResource(Resource resource) { private static GcpResource mapK8sResourceOrGenericTaskOrNode(Resource resource) { // if k8s.cluster.name is set, pattern match for various k8s resources. // this will also match non-cloud k8s platforms like minikube. - if (resource.getAttribute(ResourceAttributes.K8S_CLUSTER_NAME) != null) { - if (resource.getAttribute(ResourceAttributes.K8S_CONTAINER_NAME) != null) { + if (resource.getAttribute(K8sIncubatingAttributes.K8S_CLUSTER_NAME) != null) { + if (resource.getAttribute(K8sIncubatingAttributes.K8S_CONTAINER_NAME) != null) { return mapBase(resource, "k8s_container", K8S_CONTAINER_LABELS); - } else if (resource.getAttribute(ResourceAttributes.K8S_POD_NAME) != null) { + } else if (resource.getAttribute(K8sIncubatingAttributes.K8S_POD_NAME) != null) { return mapBase(resource, "k8s_pod", K8S_POD_LABELS); - } else if (resource.getAttribute(ResourceAttributes.K8S_NODE_NAME) != null) { + } else if (resource.getAttribute(K8sIncubatingAttributes.K8S_NODE_NAME) != null) { return mapBase(resource, "k8s_node", K8S_NODE_LABELS); } else { return mapBase(resource, "k8s_cluster", K8S_CLUSTER_LABELS); @@ -205,10 +207,10 @@ private static GcpResource mapK8sResourceOrGenericTaskOrNode(Resource resource) private static GcpResource genericTaskOrNode(Resource resource) { Map, Object> attrMap = resource.getAttributes().asMap(); - if ((attrMap.containsKey(ResourceAttributes.SERVICE_NAME) - || attrMap.containsKey(ResourceAttributes.FAAS_NAME)) - && (attrMap.containsKey(ResourceAttributes.SERVICE_INSTANCE_ID) - || attrMap.containsKey(ResourceAttributes.FAAS_INSTANCE))) { + if ((attrMap.containsKey(ServiceAttributes.SERVICE_NAME) + || attrMap.containsKey(FaasIncubatingAttributes.FAAS_NAME)) + && (attrMap.containsKey(ServiceIncubatingAttributes.SERVICE_INSTANCE_ID) + || attrMap.containsKey(FaasIncubatingAttributes.FAAS_INSTANCE))) { return mapBase(resource, "generic_task", GENERIC_TASK_LABELS); } else { return mapBase(resource, "generic_node", GENERIC_NODE_LABELS); diff --git a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java index 95cd9efd..1910963e 100644 --- a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java +++ b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java @@ -21,11 +21,13 @@ import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.ResourceAttributes; import java.util.AbstractMap.SimpleEntry; import java.util.Collections; import java.util.Map; import java.util.stream.Stream; + +import io.opentelemetry.semconv.ServiceAttributes; +import io.opentelemetry.semconv.incubating.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -46,21 +48,21 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE), - new SimpleEntry<>(ResourceAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.CLOUD_REGION, "country-region"), - new SimpleEntry<>(ResourceAttributes.HOST_ID, "GCE-instance-id"), - new SimpleEntry<>(ResourceAttributes.HOST_NAME, "GCE-instance-name"), - new SimpleEntry<>(ResourceAttributes.HOST_TYPE, "GCE-instance-type"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NAMESPACE_NAME, "GKE-testNameSpace"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "GKE-testHostName"), - new SimpleEntry<>(ResourceAttributes.K8S_CONTAINER_NAME, "GKE-testContainerName")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_REGION, "country-region"), + new SimpleEntry<>(HostIncubatingAttributes.HOST_ID, "GCE-instance-id"), + new SimpleEntry<>(HostIncubatingAttributes.HOST_NAME, "GCE-instance-name"), + new SimpleEntry<>(HostIncubatingAttributes.HOST_TYPE, "GCE-instance-type"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "GKE-testNameSpace"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "GKE-testHostName"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CONTAINER_NAME, "GKE-testContainerName")), "k8s_container", Map.ofEntries( new SimpleEntry<>("location", "country-region-zone"), @@ -71,16 +73,16 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AWS_EKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NAMESPACE_NAME, "EKS-namespace-name"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "EKS-pod-name"), - new SimpleEntry<>(ResourceAttributes.K8S_CONTAINER_NAME, "EKS-container-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "EKS-namespace-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "EKS-pod-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CONTAINER_NAME, "EKS-container-name")), "k8s_container", Map.ofEntries( new SimpleEntry<>("cluster_name", "EKS-cluster-name"), @@ -91,17 +93,17 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, - ResourceAttributes.CloudProviderValues.AZURE), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AZURE), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AZURE_AKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AZURE_AKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NAMESPACE_NAME, "AKS-namespace-name"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "AKS-pod-name"), - new SimpleEntry<>(ResourceAttributes.K8S_CONTAINER_NAME, "AKS-container-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "AKS-namespace-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "AKS-pod-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CONTAINER_NAME, "AKS-container-name")), "k8s_container", Map.ofEntries( new SimpleEntry<>("cluster_name", "AKS-cluster-name"), @@ -112,13 +114,13 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), new SimpleEntry<>( - ResourceAttributes.K8S_NAMESPACE_NAME, "non-cloud-namespace-name"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "non-cloud-pod-name"), + K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "non-cloud-namespace-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "non-cloud-pod-name"), new SimpleEntry<>( - ResourceAttributes.K8S_CONTAINER_NAME, "non-cloud-container-name")), + K8sIncubatingAttributes.K8S_CONTAINER_NAME, "non-cloud-container-name")), "k8s_container", Map.ofEntries( new SimpleEntry<>("cluster_name", "non-cloud-cluster-name"), @@ -130,17 +132,17 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE), - new SimpleEntry<>(ResourceAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.CLOUD_REGION, "country-region"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NAMESPACE_NAME, "GKE-testNameSpace"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "GKE-testHostName")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_REGION, "country-region"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "GKE-testNameSpace"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "GKE-testHostName")), "k8s_pod", Map.ofEntries( new SimpleEntry<>("location", "country-region-zone"), @@ -150,15 +152,15 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AWS_EKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NAMESPACE_NAME, "EKS-namespace-name"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "EKS-pod-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "EKS-namespace-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "EKS-pod-name")), "k8s_pod", Map.ofEntries( new SimpleEntry<>("cluster_name", "EKS-cluster-name"), @@ -168,16 +170,16 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, - ResourceAttributes.CloudProviderValues.AZURE), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AZURE), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AZURE_AKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AZURE_AKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NAMESPACE_NAME, "AKS-namespace-name"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "AKS-pod-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "AKS-namespace-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "AKS-pod-name")), "k8s_pod", Map.ofEntries( new SimpleEntry<>("cluster_name", "AKS-cluster-name"), @@ -187,11 +189,11 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), new SimpleEntry<>( - ResourceAttributes.K8S_NAMESPACE_NAME, "non-cloud-namespace-name"), - new SimpleEntry<>(ResourceAttributes.K8S_POD_NAME, "non-cloud-pod-name")), + K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "non-cloud-namespace-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "non-cloud-pod-name")), "k8s_pod", Map.ofEntries( new SimpleEntry<>("cluster_name", "non-cloud-cluster-name"), @@ -202,16 +204,16 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE), - new SimpleEntry<>(ResourceAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.CLOUD_REGION, "country-region"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NODE_NAME, "GKE-node-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_REGION, "country-region"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NODE_NAME, "GKE-node-name")), "k8s_node", Map.ofEntries( new SimpleEntry<>("location", "country-region-zone"), @@ -220,14 +222,14 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AWS_EKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NODE_NAME, "EKS-node-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NODE_NAME, "EKS-node-name")), "k8s_node", Map.ofEntries( new SimpleEntry<>("cluster_name", "EKS-cluster-name"), @@ -236,15 +238,15 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, - ResourceAttributes.CloudProviderValues.AZURE), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AZURE), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AZURE_AKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AZURE_AKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NODE_NAME, "AKS-node-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NODE_NAME, "AKS-node-name")), "k8s_node", Map.ofEntries( new SimpleEntry<>("cluster_name", "AKS-cluster-name"), @@ -253,9 +255,9 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), - new SimpleEntry<>(ResourceAttributes.K8S_NODE_NAME, "non-cloud-node-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_NODE_NAME, "non-cloud-node-name")), "k8s_node", Map.ofEntries( new SimpleEntry<>("cluster_name", "non-cloud-cluster-name"), @@ -265,15 +267,15 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE), - new SimpleEntry<>(ResourceAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.CLOUD_REGION, "country-region"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_REGION, "country-region"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name")), "k8s_cluster", Map.ofEntries( new SimpleEntry<>("location", "country-region-zone"), @@ -281,13 +283,13 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AWS_EKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name")), "k8s_cluster", Map.ofEntries( new SimpleEntry<>("cluster_name", "EKS-cluster-name"), @@ -295,14 +297,14 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, - ResourceAttributes.CloudProviderValues.AZURE), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AZURE), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AZURE_AKS), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AZURE_AKS), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name")), "k8s_cluster", Map.ofEntries( new SimpleEntry<>("cluster_name", "AKS-cluster-name"), @@ -310,8 +312,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name")), "k8s_cluster", Map.ofEntries( new SimpleEntry<>("cluster_name", "non-cloud-cluster-name"), @@ -320,17 +322,17 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE), - new SimpleEntry<>(ResourceAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_COMPUTE_ENGINE), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, "GCE-pid"), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.CLOUD_REGION, "country-region"), - new SimpleEntry<>(ResourceAttributes.HOST_ID, "GCE-instance-id"), - new SimpleEntry<>(ResourceAttributes.HOST_NAME, "GCE-instance-name"), - new SimpleEntry<>(ResourceAttributes.HOST_TYPE, "GCE-instance-type")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_REGION, "country-region"), + new SimpleEntry<>(HostIncubatingAttributes.HOST_ID, "GCE-instance-id"), + new SimpleEntry<>(HostIncubatingAttributes.HOST_NAME, "GCE-instance-name"), + new SimpleEntry<>(HostIncubatingAttributes.HOST_TYPE, "GCE-instance-type")), "gce_instance", Map.ofEntries( new SimpleEntry<>("instance_id", "GCE-instance-id"), @@ -339,15 +341,15 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( - ResourceAttributes.CLOUD_PLATFORM, - ResourceAttributes.CloudPlatformValues.AWS_EC2), - new SimpleEntry<>(ResourceAttributes.CLOUD_ACCOUNT_ID, "aws-id"), + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EC2), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, "aws-id"), new SimpleEntry<>( - ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(ResourceAttributes.CLOUD_REGION, "country-region"), - new SimpleEntry<>(ResourceAttributes.HOST_ID, "aws-instance-id")), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), + new SimpleEntry<>(CloudIncubatingAttributes.CLOUD_REGION, "country-region"), + new SimpleEntry<>(HostIncubatingAttributes.HOST_ID, "aws-instance-id")), "aws_ec2_instance", Map.ofEntries( new SimpleEntry<>("region", "country-region-zone"), @@ -356,10 +358,10 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc // test cases for generic_task generateOTelResourceMappingTestArgs( Map.ofEntries( - new SimpleEntry<>(ResourceAttributes.SERVICE_NAME, "my-service-prevailed"), - new SimpleEntry<>(ResourceAttributes.FAAS_NAME, "my-service-ignored"), - new SimpleEntry<>(ResourceAttributes.SERVICE_NAMESPACE, "prod"), - new SimpleEntry<>(ResourceAttributes.FAAS_INSTANCE, "1234")), + new SimpleEntry<>(ServiceAttributes.SERVICE_NAME, "my-service-prevailed"), + new SimpleEntry<>(FaasIncubatingAttributes.FAAS_NAME, "my-service-ignored"), + new SimpleEntry<>(ServiceIncubatingAttributes.SERVICE_NAMESPACE, "prod"), + new SimpleEntry<>(FaasIncubatingAttributes.FAAS_INSTANCE, "1234")), "generic_task", Map.ofEntries( new SimpleEntry<>("job", "my-service-prevailed"), @@ -368,10 +370,10 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc new SimpleEntry<>("location", "global"))), generateOTelResourceMappingTestArgs( Map.ofEntries( - new SimpleEntry<>(ResourceAttributes.SERVICE_NAME, "unknown_service_foo"), - new SimpleEntry<>(ResourceAttributes.FAAS_NAME, "my-service-faas"), - new SimpleEntry<>(ResourceAttributes.SERVICE_NAMESPACE, "prod"), - new SimpleEntry<>(ResourceAttributes.FAAS_INSTANCE, "1234")), + new SimpleEntry<>(ServiceAttributes.SERVICE_NAME, "unknown_service_foo"), + new SimpleEntry<>(FaasIncubatingAttributes.FAAS_NAME, "my-service-faas"), + new SimpleEntry<>(ServiceIncubatingAttributes.SERVICE_NAMESPACE, "prod"), + new SimpleEntry<>(FaasIncubatingAttributes.FAAS_INSTANCE, "1234")), "generic_task", Map.ofEntries( new SimpleEntry<>("job", "my-service-faas"), @@ -380,9 +382,9 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc new SimpleEntry<>("location", "global"))), generateOTelResourceMappingTestArgs( Map.ofEntries( - new SimpleEntry<>(ResourceAttributes.SERVICE_NAME, "unknown_service_foo"), - new SimpleEntry<>(ResourceAttributes.SERVICE_NAMESPACE, "prod"), - new SimpleEntry<>(ResourceAttributes.FAAS_INSTANCE, "1234")), + new SimpleEntry<>(ServiceAttributes.SERVICE_NAME, "unknown_service_foo"), + new SimpleEntry<>(ServiceIncubatingAttributes.SERVICE_NAMESPACE, "prod"), + new SimpleEntry<>(FaasIncubatingAttributes.FAAS_INSTANCE, "1234")), "generic_task", Map.ofEntries( new SimpleEntry<>("job", "unknown_service_foo"), @@ -391,9 +393,9 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc new SimpleEntry<>("location", "global"))), generateOTelResourceMappingTestArgs( Map.ofEntries( - new SimpleEntry<>(ResourceAttributes.SERVICE_NAME, "my-service-name"), - new SimpleEntry<>(ResourceAttributes.SERVICE_NAMESPACE, "prod"), - new SimpleEntry<>(ResourceAttributes.SERVICE_INSTANCE_ID, "1234")), + new SimpleEntry<>(ServiceAttributes.SERVICE_NAME, "my-service-name"), + new SimpleEntry<>(ServiceIncubatingAttributes.SERVICE_NAMESPACE, "prod"), + new SimpleEntry<>(ServiceIncubatingAttributes.SERVICE_INSTANCE_ID, "1234")), "generic_task", Map.ofEntries( new SimpleEntry<>("job", "my-service-name"), @@ -403,8 +405,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc // test cases for generic_node generateOTelResourceMappingTestArgs( Map.ofEntries( - new SimpleEntry<>(ResourceAttributes.SERVICE_NAME, "unknown_service"), - new SimpleEntry<>(ResourceAttributes.SERVICE_NAMESPACE, "prod")), + new SimpleEntry<>(ServiceAttributes.SERVICE_NAME, "unknown_service"), + new SimpleEntry<>(ServiceIncubatingAttributes.SERVICE_NAMESPACE, "prod")), "generic_node", Map.ofEntries( new SimpleEntry<>("namespace", "prod"), From 6ab1101d0ddee5d723131cc629d3fdbab818d7a7 Mon Sep 17 00:00:00 2001 From: Tiemen Schut Date: Fri, 23 May 2025 09:05:42 +0200 Subject: [PATCH 2/4] Run `./gradlew spotlessApply` --- .../detectors/AttributesExtractorUtil.java | 8 +-- .../opentelemetry/detectors/GCPResource.java | 38 ++++++++----- .../detectors/GCPResourceTest.java | 3 +- .../metric/MetricConfiguration.java | 5 +- .../cloud/opentelemetry/metric/FakeData.java | 1 - .../trace/TraceTranslatorTest.java | 5 +- .../resource/ResourceTranslator.java | 22 +++++--- .../resource/ResourceTranslatorTest.java | 56 ++++++++++++------- 8 files changed, 84 insertions(+), 54 deletions(-) diff --git a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java index c85c815c..e13289ee 100644 --- a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java +++ b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/AttributesExtractorUtil.java @@ -23,9 +23,8 @@ * A utility class that contains method that facilitate extraction of attributes from environment * variables and metadata configurations. * - *

This class only adds helper methods to extract {@link CloudIncubatingAttributes} - * and {@link FaasIncubatingAttributes} that are common - * across all the supported compute environments. + *

This class only adds helper methods to extract {@link CloudIncubatingAttributes} and {@link + * FaasIncubatingAttributes} that are common across all the supported compute environments. * * @deprecated Not for public use. This class is expected to be retained only as package private. */ @@ -82,7 +81,8 @@ public static void addCloudRegionFromMetadataUsingZone( // Parsing required to scope up to a region String[] splitArr = zone.split("-"); if (splitArr.length > 2) { - attributesBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, splitArr[0] + "-" + splitArr[1]); + attributesBuilder.put( + CloudIncubatingAttributes.CLOUD_REGION, splitArr[0] + "-" + splitArr[1]); } } } diff --git a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java index 6b301aee..b86be6b4 100644 --- a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java +++ b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java @@ -25,7 +25,6 @@ import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.semconv.incubating.*; - import java.util.Map; import java.util.Optional; import java.util.logging.Logger; @@ -69,7 +68,9 @@ public Attributes getAttributes() { // This is running on some sort of GCPCompute - figure out the platform AttributesBuilder attrBuilder = Attributes.builder(); - attrBuilder.put(CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP); + attrBuilder.put( + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP); attrBuilder.put(CloudIncubatingAttributes.CLOUD_ACCOUNT_ID, detectedPlatform.getProjectId()); switch (detectedPlatform.getSupportedPlatform()) { @@ -112,7 +113,8 @@ private void addGCEAttributes(AttributesBuilder attrBuilder, Map CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_COMPUTE_ENGINE); Optional.ofNullable(attributesMap.get(GCE_AVAILABILITY_ZONE)) - .ifPresent(zone -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, zone)); + .ifPresent( + zone -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, zone)); Optional.ofNullable(attributesMap.get(GCE_CLOUD_REGION)) .ifPresent(region -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, region)); Optional.ofNullable(attributesMap.get(GCE_INSTANCE_ID)) @@ -126,7 +128,8 @@ private void addGCEAttributes(AttributesBuilder attrBuilder, Map Optional.ofNullable(attributesMap.get(GCE_INSTANCE_HOSTNAME)) .ifPresent( instanceHostname -> - attrBuilder.put(GcpIncubatingAttributes.GCP_GCE_INSTANCE_HOSTNAME, instanceHostname)); + attrBuilder.put( + GcpIncubatingAttributes.GCP_GCE_INSTANCE_HOSTNAME, instanceHostname)); Optional.ofNullable(attributesMap.get(GCE_MACHINE_TYPE)) .ifPresent(machineType -> attrBuilder.put(HostIncubatingAttributes.HOST_TYPE, machineType)); } @@ -155,7 +158,8 @@ private void addGKEAttributes(AttributesBuilder attrBuilder, Map switch (locationType) { case GKE_LOCATION_TYPE_REGION: attrBuilder.put( - CloudIncubatingAttributes.CLOUD_REGION, attributesMap.get(GKE_CLUSTER_LOCATION)); + CloudIncubatingAttributes.CLOUD_REGION, + attributesMap.get(GKE_CLUSTER_LOCATION)); break; case GKE_LOCATION_TYPE_ZONE: attrBuilder.put( @@ -181,7 +185,8 @@ private void addGKEAttributes(AttributesBuilder attrBuilder, Map */ private void addGCRAttributes(AttributesBuilder attrBuilder, Map attributesMap) { attrBuilder.put( - CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_CLOUD_RUN); + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_CLOUD_RUN); addCommonAttributesForServerlessCompute(attrBuilder, attributesMap); } @@ -208,20 +213,25 @@ private void addGCFAttributes(AttributesBuilder attrBuilder, Map */ private void addGAEAttributes(AttributesBuilder attrBuilder, Map attributesMap) { attrBuilder.put( - CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_APP_ENGINE); + CloudIncubatingAttributes.CLOUD_PLATFORM, + CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_APP_ENGINE); Optional.ofNullable(attributesMap.get(GAE_MODULE_NAME)) .ifPresent(appName -> attrBuilder.put(FaasIncubatingAttributes.FAAS_NAME, appName)); Optional.ofNullable(attributesMap.get(GAE_APP_VERSION)) - .ifPresent(appVersion -> attrBuilder.put(FaasIncubatingAttributes.FAAS_VERSION, appVersion)); + .ifPresent( + appVersion -> attrBuilder.put(FaasIncubatingAttributes.FAAS_VERSION, appVersion)); Optional.ofNullable(attributesMap.get(GAE_INSTANCE_ID)) .ifPresent( - appInstanceId -> attrBuilder.put(FaasIncubatingAttributes.FAAS_INSTANCE, appInstanceId)); + appInstanceId -> + attrBuilder.put(FaasIncubatingAttributes.FAAS_INSTANCE, appInstanceId)); Optional.ofNullable(attributesMap.get(GAE_CLOUD_REGION)) - .ifPresent(cloudRegion -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, cloudRegion)); + .ifPresent( + cloudRegion -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, cloudRegion)); Optional.ofNullable(attributesMap.get(GAE_AVAILABILITY_ZONE)) .ifPresent( cloudAvailabilityZone -> - attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, cloudAvailabilityZone)); + attrBuilder.put( + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, cloudAvailabilityZone)); } /** @@ -238,9 +248,11 @@ private void addCommonAttributesForServerlessCompute( Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_REVISION)) .ifPresent(revision -> attrBuilder.put(FaasIncubatingAttributes.FAAS_VERSION, revision)); Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_INSTANCE_ID)) - .ifPresent(instanceId -> attrBuilder.put(FaasIncubatingAttributes.FAAS_INSTANCE, instanceId)); + .ifPresent( + instanceId -> attrBuilder.put(FaasIncubatingAttributes.FAAS_INSTANCE, instanceId)); Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_AVAILABILITY_ZONE)) - .ifPresent(zone -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, zone)); + .ifPresent( + zone -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, zone)); Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_CLOUD_REGION)) .ifPresent(region -> attrBuilder.put(CloudIncubatingAttributes.CLOUD_REGION, region)); } diff --git a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java index b9a0e880..a2102aef 100644 --- a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java +++ b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java @@ -25,12 +25,11 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; +import io.opentelemetry.semconv.incubating.*; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; import java.util.ServiceLoader; - -import io.opentelemetry.semconv.incubating.*; import org.junit.jupiter.api.Test; import org.mockito.Mockito; 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 77dc1322..2cd47660 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 @@ -29,7 +29,6 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.semconv.ServiceAttributes; import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; - import java.time.Duration; import java.util.Collections; import java.util.List; @@ -144,8 +143,8 @@ public final String getProjectId() { * metric labels. * *

The default filter adds {@link ServiceAttributes#SERVICE_NAME}, {@link - * ServiceIncubatingAttributes#SERVICE_NAMESPACE}, and {@link ServiceIncubatingAttributes#SERVICE_INSTANCE_ID} as - * metric labels. + * ServiceIncubatingAttributes#SERVICE_NAMESPACE}, and {@link + * ServiceIncubatingAttributes#SERVICE_INSTANCE_ID} as metric labels. * * @return a {@link Predicate} that acts as a resource attribute filter. * @see Builder#setResourceAttributesFilter(Predicate) for details. diff --git a/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java b/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java index e1d0ddae..7625e3f1 100644 --- a/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java +++ b/exporters/metrics/src/test/java/com/google/cloud/opentelemetry/metric/FakeData.java @@ -46,7 +46,6 @@ import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; - import java.util.Arrays; import java.util.Collections; import java.util.Date; diff --git a/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java b/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java index 029ab226..b552a4b0 100644 --- a/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java +++ b/exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceTranslatorTest.java @@ -35,6 +35,8 @@ import io.opentelemetry.sdk.testing.trace.TestSpanData; import io.opentelemetry.sdk.trace.data.EventData; import io.opentelemetry.sdk.trace.data.StatusData; +import io.opentelemetry.semconv.ServiceAttributes; +import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -43,9 +45,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; - -import io.opentelemetry.semconv.ServiceAttributes; -import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; 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 f2f4d04d..32975dcf 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 @@ -19,7 +19,6 @@ import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.semconv.ServiceAttributes; import io.opentelemetry.semconv.incubating.*; - import java.util.Arrays; import java.util.List; import java.util.Map; @@ -100,7 +99,8 @@ public static AttributeMapping create( AttributeMapping.create( "location", Arrays.asList( - CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, + CloudIncubatingAttributes.CLOUD_REGION)), AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME), AttributeMapping.create("namespace_name", K8sIncubatingAttributes.K8S_NAMESPACE_NAME), AttributeMapping.create("container_name", K8sIncubatingAttributes.K8S_CONTAINER_NAME), @@ -110,7 +110,8 @@ public static AttributeMapping create( AttributeMapping.create( "location", Arrays.asList( - CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, + CloudIncubatingAttributes.CLOUD_REGION)), AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME), AttributeMapping.create("namespace_name", K8sIncubatingAttributes.K8S_NAMESPACE_NAME), AttributeMapping.create("pod_name", K8sIncubatingAttributes.K8S_POD_NAME)); @@ -119,7 +120,8 @@ public static AttributeMapping create( AttributeMapping.create( "location", Arrays.asList( - CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, + CloudIncubatingAttributes.CLOUD_REGION)), AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME), AttributeMapping.create("node_name", K8sIncubatingAttributes.K8S_NODE_NAME)); private static final List K8S_CLUSTER_LABELS = @@ -127,7 +129,8 @@ public static AttributeMapping create( AttributeMapping.create( "location", Arrays.asList( - CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION)), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, + CloudIncubatingAttributes.CLOUD_REGION)), AttributeMapping.create("cluster_name", K8sIncubatingAttributes.K8S_CLUSTER_NAME)); private static final List AWS_EC2_INSTANCE_LABELS = Arrays.asList( @@ -145,7 +148,8 @@ public static AttributeMapping create( AttributeMapping.create( "location", Arrays.asList( - CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, + CloudIncubatingAttributes.CLOUD_REGION), "global"), AttributeMapping.create("namespace", ServiceIncubatingAttributes.SERVICE_NAMESPACE, ""), AttributeMapping.create( @@ -155,14 +159,16 @@ public static AttributeMapping create( AttributeMapping.create( "task_id", Arrays.asList( - ServiceIncubatingAttributes.SERVICE_INSTANCE_ID, FaasIncubatingAttributes.FAAS_INSTANCE), + ServiceIncubatingAttributes.SERVICE_INSTANCE_ID, + FaasIncubatingAttributes.FAAS_INSTANCE), "")); private static final List GENERIC_NODE_LABELS = Arrays.asList( AttributeMapping.create( "location", Arrays.asList( - CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, CloudIncubatingAttributes.CLOUD_REGION), + CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, + CloudIncubatingAttributes.CLOUD_REGION), "global"), AttributeMapping.create("namespace", ServiceIncubatingAttributes.SERVICE_NAMESPACE, ""), AttributeMapping.create( diff --git a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java index 1910963e..01be5c67 100644 --- a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java +++ b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java @@ -21,13 +21,12 @@ import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.sdk.resources.Resource; +import io.opentelemetry.semconv.ServiceAttributes; +import io.opentelemetry.semconv.incubating.*; import java.util.AbstractMap.SimpleEntry; import java.util.Collections; import java.util.Map; import java.util.stream.Stream; - -import io.opentelemetry.semconv.ServiceAttributes; -import io.opentelemetry.semconv.incubating.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -48,7 +47,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), @@ -62,7 +62,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "GKE-cluster-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "GKE-testNameSpace"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "GKE-testHostName"), - new SimpleEntry<>(K8sIncubatingAttributes.K8S_CONTAINER_NAME, "GKE-testContainerName")), + new SimpleEntry<>( + K8sIncubatingAttributes.K8S_CONTAINER_NAME, "GKE-testContainerName")), "k8s_container", Map.ofEntries( new SimpleEntry<>("location", "country-region-zone"), @@ -73,7 +74,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), @@ -82,7 +84,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "EKS-cluster-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "EKS-namespace-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "EKS-pod-name"), - new SimpleEntry<>(K8sIncubatingAttributes.K8S_CONTAINER_NAME, "EKS-container-name")), + new SimpleEntry<>( + K8sIncubatingAttributes.K8S_CONTAINER_NAME, "EKS-container-name")), "k8s_container", Map.ofEntries( new SimpleEntry<>("cluster_name", "EKS-cluster-name"), @@ -103,7 +106,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "AKS-cluster-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "AKS-namespace-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "AKS-pod-name"), - new SimpleEntry<>(K8sIncubatingAttributes.K8S_CONTAINER_NAME, "AKS-container-name")), + new SimpleEntry<>( + K8sIncubatingAttributes.K8S_CONTAINER_NAME, "AKS-container-name")), "k8s_container", Map.ofEntries( new SimpleEntry<>("cluster_name", "AKS-cluster-name"), @@ -115,7 +119,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc Map.ofEntries( new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), + new SimpleEntry<>( + K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), new SimpleEntry<>( K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "non-cloud-namespace-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "non-cloud-pod-name"), @@ -132,7 +137,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), @@ -152,7 +158,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), @@ -190,7 +197,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc Map.ofEntries( new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), + new SimpleEntry<>( + K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), new SimpleEntry<>( K8sIncubatingAttributes.K8S_NAMESPACE_NAME, "non-cloud-namespace-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_POD_NAME, "non-cloud-pod-name")), @@ -204,7 +212,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), @@ -222,7 +231,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), @@ -256,7 +266,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc Map.ofEntries( new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), + new SimpleEntry<>( + K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name"), new SimpleEntry<>(K8sIncubatingAttributes.K8S_NODE_NAME, "non-cloud-node-name")), "k8s_node", Map.ofEntries( @@ -267,7 +278,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_KUBERNETES_ENGINE), @@ -283,7 +295,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EKS), @@ -313,7 +326,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc Map.ofEntries( new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE, "country-region-zone"), - new SimpleEntry<>(K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name")), + new SimpleEntry<>( + K8sIncubatingAttributes.K8S_CLUSTER_NAME, "non-cloud-cluster-name")), "k8s_cluster", Map.ofEntries( new SimpleEntry<>("cluster_name", "non-cloud-cluster-name"), @@ -322,7 +336,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.GCP), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.GCP_COMPUTE_ENGINE), @@ -341,7 +356,8 @@ private static Stream provideOTelResourceAttributesToMonitoredResourc generateOTelResourceMappingTestArgs( Map.ofEntries( new SimpleEntry<>( - CloudIncubatingAttributes.CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS), new SimpleEntry<>( CloudIncubatingAttributes.CLOUD_PLATFORM, CloudIncubatingAttributes.CloudPlatformIncubatingValues.AWS_EC2), From ba96bf9c1d121763bc923b4c017f6c9e6102b1a2 Mon Sep 17 00:00:00 2001 From: Tiemen Schut Date: Fri, 23 May 2025 09:06:51 +0200 Subject: [PATCH 3/4] Remove * imports --- .../google/cloud/opentelemetry/detectors/GCPResource.java | 7 ++++++- .../cloud/opentelemetry/detectors/GCPResourceTest.java | 8 +++++++- .../cloud/opentelemetry/resource/ResourceTranslator.java | 7 ++++++- .../opentelemetry/resource/ResourceTranslatorTest.java | 8 +++++++- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java index b86be6b4..c1beb07e 100644 --- a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java +++ b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java @@ -24,7 +24,12 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.incubating.*; +import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; +import io.opentelemetry.semconv.incubating.FaasIncubatingAttributes; +import io.opentelemetry.semconv.incubating.GcpIncubatingAttributes; +import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; +import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; + import java.util.Map; import java.util.Optional; import java.util.logging.Logger; diff --git a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java index a2102aef..40a92e59 100644 --- a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java +++ b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java @@ -25,11 +25,17 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.incubating.*; + import java.util.EnumSet; import java.util.HashMap; import java.util.Map; import java.util.ServiceLoader; + +import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; +import io.opentelemetry.semconv.incubating.FaasIncubatingAttributes; +import io.opentelemetry.semconv.incubating.GcpIncubatingAttributes; +import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; +import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; import org.junit.jupiter.api.Test; import org.mockito.Mockito; 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 32975dcf..53a5df7f 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 @@ -18,7 +18,12 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.semconv.ServiceAttributes; -import io.opentelemetry.semconv.incubating.*; +import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; +import io.opentelemetry.semconv.incubating.FaasIncubatingAttributes; +import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; +import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; +import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; + import java.util.Arrays; import java.util.List; import java.util.Map; diff --git a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java index 01be5c67..74d26acf 100644 --- a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java +++ b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java @@ -22,11 +22,17 @@ import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.semconv.ServiceAttributes; -import io.opentelemetry.semconv.incubating.*; + import java.util.AbstractMap.SimpleEntry; import java.util.Collections; import java.util.Map; import java.util.stream.Stream; + +import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; +import io.opentelemetry.semconv.incubating.FaasIncubatingAttributes; +import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; +import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; +import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; From 0081bf36e26e016ddad767d2b90cd713589c308e Mon Sep 17 00:00:00 2001 From: Tiemen Schut Date: Fri, 23 May 2025 09:08:04 +0200 Subject: [PATCH 4/4] More `./gradlew spotlessApply` --- .../cloud/opentelemetry/detectors/GCPResource.java | 1 - .../cloud/opentelemetry/detectors/GCPResourceTest.java | 10 ++++------ .../opentelemetry/resource/ResourceTranslator.java | 1 - .../opentelemetry/resource/ResourceTranslatorTest.java | 10 ++++------ 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java index c1beb07e..56111035 100644 --- a/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java +++ b/detectors/resources/src/main/java/com/google/cloud/opentelemetry/detectors/GCPResource.java @@ -29,7 +29,6 @@ import io.opentelemetry.semconv.incubating.GcpIncubatingAttributes; import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; - import java.util.Map; import java.util.Optional; import java.util.logging.Logger; diff --git a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java index 40a92e59..16adb2a0 100644 --- a/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java +++ b/detectors/resources/src/test/java/com/google/cloud/opentelemetry/detectors/GCPResourceTest.java @@ -25,17 +25,15 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; - -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; -import java.util.ServiceLoader; - import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; import io.opentelemetry.semconv.incubating.FaasIncubatingAttributes; import io.opentelemetry.semconv.incubating.GcpIncubatingAttributes; import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; +import java.util.ServiceLoader; import org.junit.jupiter.api.Test; import org.mockito.Mockito; 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 53a5df7f..00c6e677 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 @@ -23,7 +23,6 @@ import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; - import java.util.Arrays; import java.util.List; import java.util.Map; diff --git a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java index 74d26acf..9141ca67 100644 --- a/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java +++ b/shared/resourcemapping/src/test/java/com/google/cloud/opentelemetry/resource/ResourceTranslatorTest.java @@ -22,17 +22,15 @@ import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.semconv.ServiceAttributes; - -import java.util.AbstractMap.SimpleEntry; -import java.util.Collections; -import java.util.Map; -import java.util.stream.Stream; - import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; import io.opentelemetry.semconv.incubating.FaasIncubatingAttributes; import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; import io.opentelemetry.semconv.incubating.K8sIncubatingAttributes; import io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes; +import java.util.AbstractMap.SimpleEntry; +import java.util.Collections; +import java.util.Map; +import java.util.stream.Stream; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource;