Update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.3.0-alpha (#1267)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
This commit is contained in:
parent
425bfb99fb
commit
baf0eaa36e
|
@ -12,6 +12,7 @@ dependencies {
|
|||
api("io.opentelemetry:opentelemetry-sdk")
|
||||
|
||||
implementation("io.opentelemetry.semconv:opentelemetry-semconv")
|
||||
implementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating:1.25.0-alpha")
|
||||
|
||||
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
|
||||
|
||||
|
|
|
@ -5,13 +5,21 @@
|
|||
|
||||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_VERSION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.AWS_ELASTIC_BEANSTALK;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudProviderValues.AWS;
|
||||
import static io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes.SERVICE_INSTANCE_ID;
|
||||
import static io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes.SERVICE_NAMESPACE;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonFactory;
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.core.JsonToken;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.common.AttributesBuilder;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
|
@ -58,7 +66,7 @@ public final class BeanstalkResource {
|
|||
|
||||
if (!parser.isExpectedStartObjectToken()) {
|
||||
logger.log(Level.WARNING, "Invalid Beanstalk config: ", configPath);
|
||||
return Resource.create(attrBuilders.build(), ResourceAttributes.SCHEMA_URL);
|
||||
return Resource.create(attrBuilders.build(), SchemaUrls.V1_25_0);
|
||||
}
|
||||
|
||||
while (parser.nextToken() != JsonToken.END_OBJECT) {
|
||||
|
@ -66,13 +74,13 @@ public final class BeanstalkResource {
|
|||
String value = parser.getText();
|
||||
switch (parser.currentName()) {
|
||||
case DEVELOPMENT_ID:
|
||||
attrBuilders.put(ResourceAttributes.SERVICE_INSTANCE_ID, value);
|
||||
attrBuilders.put(SERVICE_INSTANCE_ID, value);
|
||||
break;
|
||||
case VERSION_LABEL:
|
||||
attrBuilders.put(ResourceAttributes.SERVICE_VERSION, value);
|
||||
attrBuilders.put(SERVICE_VERSION, value);
|
||||
break;
|
||||
case ENVIRONMENT_NAME:
|
||||
attrBuilders.put(ResourceAttributes.SERVICE_NAMESPACE, value);
|
||||
attrBuilders.put(SERVICE_NAMESPACE, value);
|
||||
break;
|
||||
default:
|
||||
parser.skipChildren();
|
||||
|
@ -83,12 +91,10 @@ public final class BeanstalkResource {
|
|||
return Resource.empty();
|
||||
}
|
||||
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS);
|
||||
attrBuilders.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.AWS_ELASTIC_BEANSTALK);
|
||||
attrBuilders.put(CLOUD_PROVIDER, AWS);
|
||||
attrBuilders.put(CLOUD_PLATFORM, AWS_ELASTIC_BEANSTALK);
|
||||
|
||||
return Resource.create(attrBuilders.build(), ResourceAttributes.SCHEMA_URL);
|
||||
return Resource.create(attrBuilders.build(), SchemaUrls.V1_25_0);
|
||||
}
|
||||
|
||||
private BeanstalkResource() {}
|
||||
|
|
|
@ -5,13 +5,25 @@
|
|||
|
||||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_ACCOUNT_ID;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.AWS_EC2;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_ID;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_IMAGE_ID;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_TYPE;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonFactory;
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.core.JsonToken;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.common.AttributesBuilder;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
@ -78,9 +90,8 @@ public final class Ec2Resource {
|
|||
String hostname = fetchHostname(hostnameUrl, token);
|
||||
|
||||
AttributesBuilder attrBuilders = Attributes.builder();
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS);
|
||||
attrBuilders.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.AWS_EC2);
|
||||
attrBuilders.put(CLOUD_PROVIDER, CloudIncubatingAttributes.CloudProviderValues.AWS);
|
||||
attrBuilders.put(CLOUD_PLATFORM, AWS_EC2);
|
||||
|
||||
try (JsonParser parser = JSON_FACTORY.createParser(identity)) {
|
||||
parser.nextToken();
|
||||
|
@ -93,22 +104,22 @@ public final class Ec2Resource {
|
|||
String value = parser.nextTextValue();
|
||||
switch (parser.currentName()) {
|
||||
case "instanceId":
|
||||
attrBuilders.put(ResourceAttributes.HOST_ID, value);
|
||||
attrBuilders.put(HOST_ID, value);
|
||||
break;
|
||||
case "availabilityZone":
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, value);
|
||||
attrBuilders.put(CLOUD_AVAILABILITY_ZONE, value);
|
||||
break;
|
||||
case "instanceType":
|
||||
attrBuilders.put(ResourceAttributes.HOST_TYPE, value);
|
||||
attrBuilders.put(HOST_TYPE, value);
|
||||
break;
|
||||
case "imageId":
|
||||
attrBuilders.put(ResourceAttributes.HOST_IMAGE_ID, value);
|
||||
attrBuilders.put(HOST_IMAGE_ID, value);
|
||||
break;
|
||||
case "accountId":
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_ACCOUNT_ID, value);
|
||||
attrBuilders.put(CLOUD_ACCOUNT_ID, value);
|
||||
break;
|
||||
case "region":
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_REGION, value);
|
||||
attrBuilders.put(CLOUD_REGION, value);
|
||||
break;
|
||||
default:
|
||||
parser.skipChildren();
|
||||
|
@ -119,9 +130,9 @@ public final class Ec2Resource {
|
|||
return Resource.empty();
|
||||
}
|
||||
|
||||
attrBuilders.put(ResourceAttributes.HOST_NAME, hostname);
|
||||
attrBuilders.put(HOST_NAME, hostname);
|
||||
|
||||
return Resource.create(attrBuilders.build(), ResourceAttributes.SCHEMA_URL);
|
||||
return Resource.create(attrBuilders.build(), SchemaUrls.V1_25_0);
|
||||
}
|
||||
|
||||
private static String fetchToken(URL tokenUrl) {
|
||||
|
|
|
@ -5,13 +5,34 @@
|
|||
|
||||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_CONTAINER_ARN;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_LAUNCHTYPE;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_TASK_ARN;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_TASK_FAMILY;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_TASK_REVISION;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_GROUP_ARNS;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_GROUP_NAMES;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_STREAM_ARNS;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_STREAM_NAMES;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_ACCOUNT_ID;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_RESOURCE_ID;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.AWS_ECS;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudProviderValues.AWS;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_ID;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_IMAGE_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_NAME;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonFactory;
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.core.JsonToken;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.common.AttributesBuilder;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.Locale;
|
||||
|
@ -58,7 +79,7 @@ public final class EcsResource {
|
|||
// For TaskARN, Family, Revision.
|
||||
// May put the same attribute twice but that shouldn't matter.
|
||||
fetchMetadata(httpClient, ecsMetadataUrl + "/task", attrBuilders);
|
||||
return Resource.create(attrBuilders.build(), ResourceAttributes.SCHEMA_URL);
|
||||
return Resource.create(attrBuilders.build(), SchemaUrls.V1_25_0);
|
||||
}
|
||||
// Not running on ECS
|
||||
return Resource.empty();
|
||||
|
@ -70,9 +91,8 @@ public final class EcsResource {
|
|||
if (json.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS);
|
||||
attrBuilders.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.AWS_ECS);
|
||||
attrBuilders.put(CLOUD_PROVIDER, AWS);
|
||||
attrBuilders.put(CLOUD_PLATFORM, AWS_ECS);
|
||||
try (JsonParser parser = JSON_FACTORY.createParser(json)) {
|
||||
parser.nextToken();
|
||||
LogArnBuilder logArnBuilder = new LogArnBuilder();
|
||||
|
@ -82,17 +102,14 @@ public final class EcsResource {
|
|||
.getLogGroupArn()
|
||||
.ifPresent(
|
||||
logGroupArn -> {
|
||||
attrBuilders.put(
|
||||
ResourceAttributes.AWS_LOG_GROUP_ARNS, Collections.singletonList(logGroupArn));
|
||||
attrBuilders.put(AWS_LOG_GROUP_ARNS, Collections.singletonList(logGroupArn));
|
||||
});
|
||||
|
||||
logArnBuilder
|
||||
.getLogStreamArn()
|
||||
.ifPresent(
|
||||
logStreamArn -> {
|
||||
attrBuilders.put(
|
||||
ResourceAttributes.AWS_LOG_STREAM_ARNS,
|
||||
Collections.singletonList(logStreamArn));
|
||||
attrBuilders.put(AWS_LOG_STREAM_ARNS, Collections.singletonList(logStreamArn));
|
||||
});
|
||||
} catch (IOException e) {
|
||||
logger.log(Level.WARNING, "Can't get ECS metadata", e);
|
||||
|
@ -151,26 +168,28 @@ public final class EcsResource {
|
|||
String value = parser.nextTextValue();
|
||||
switch (parser.currentName()) {
|
||||
case "AvailabilityZone":
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, value);
|
||||
attrBuilders.put(CLOUD_AVAILABILITY_ZONE, value);
|
||||
break;
|
||||
case "DockerId":
|
||||
attrBuilders.put(ResourceAttributes.CONTAINER_ID, value);
|
||||
attrBuilders.put(CONTAINER_ID, value);
|
||||
break;
|
||||
case "DockerName":
|
||||
attrBuilders.put(ResourceAttributes.CONTAINER_NAME, value);
|
||||
attrBuilders.put(CONTAINER_NAME, value);
|
||||
break;
|
||||
case "ContainerARN":
|
||||
arn = value;
|
||||
attrBuilders.put(ResourceAttributes.AWS_ECS_CONTAINER_ARN, value);
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_RESOURCE_ID, value);
|
||||
attrBuilders.put(AWS_ECS_CONTAINER_ARN, value);
|
||||
attrBuilders.put(CLOUD_RESOURCE_ID, value);
|
||||
logArnBuilder.setContainerArn(value);
|
||||
break;
|
||||
case "Image":
|
||||
DockerImage parsedImage = DockerImage.parse(value);
|
||||
if (parsedImage != null) {
|
||||
attrBuilders.put(ResourceAttributes.CONTAINER_IMAGE_NAME, parsedImage.getRepository());
|
||||
attrBuilders.put(CONTAINER_IMAGE_NAME, parsedImage.getRepository());
|
||||
// TODO: CONTAINER_IMAGE_TAG has been replaced with CONTAINER_IMAGE_TAGS
|
||||
attrBuilders.put(ResourceAttributes.CONTAINER_IMAGE_TAG, parsedImage.getTag());
|
||||
attrBuilders.put(
|
||||
io.opentelemetry.semconv.ResourceAttributes.CONTAINER_IMAGE_TAG,
|
||||
parsedImage.getTag());
|
||||
}
|
||||
break;
|
||||
case "ImageID":
|
||||
|
@ -181,11 +200,11 @@ public final class EcsResource {
|
|||
parseResponse(parser, attrBuilders, logArnBuilder);
|
||||
break;
|
||||
case "awslogs-group":
|
||||
attrBuilders.put(ResourceAttributes.AWS_LOG_GROUP_NAMES, value);
|
||||
attrBuilders.put(AWS_LOG_GROUP_NAMES, value);
|
||||
logArnBuilder.setLogGroupName(value);
|
||||
break;
|
||||
case "awslogs-stream":
|
||||
attrBuilders.put(ResourceAttributes.AWS_LOG_STREAM_NAMES, value);
|
||||
attrBuilders.put(AWS_LOG_STREAM_NAMES, value);
|
||||
logArnBuilder.setLogStreamName(value);
|
||||
break;
|
||||
case "awslogs-region":
|
||||
|
@ -193,16 +212,16 @@ public final class EcsResource {
|
|||
break;
|
||||
case "TaskARN":
|
||||
arn = value;
|
||||
attrBuilders.put(ResourceAttributes.AWS_ECS_TASK_ARN, value);
|
||||
attrBuilders.put(AWS_ECS_TASK_ARN, value);
|
||||
break;
|
||||
case "LaunchType":
|
||||
attrBuilders.put(ResourceAttributes.AWS_ECS_LAUNCHTYPE, value.toLowerCase(Locale.ROOT));
|
||||
attrBuilders.put(AWS_ECS_LAUNCHTYPE, value.toLowerCase(Locale.ROOT));
|
||||
break;
|
||||
case "Family":
|
||||
attrBuilders.put(ResourceAttributes.AWS_ECS_TASK_FAMILY, value);
|
||||
attrBuilders.put(AWS_ECS_TASK_FAMILY, value);
|
||||
break;
|
||||
case "Revision":
|
||||
attrBuilders.put(ResourceAttributes.AWS_ECS_TASK_REVISION, value);
|
||||
attrBuilders.put(AWS_ECS_TASK_REVISION, value);
|
||||
break;
|
||||
default:
|
||||
parser.skipChildren();
|
||||
|
@ -210,9 +229,8 @@ public final class EcsResource {
|
|||
}
|
||||
}
|
||||
|
||||
getRegion(arn).ifPresent(region -> attrBuilders.put(ResourceAttributes.CLOUD_REGION, region));
|
||||
getAccountId(arn)
|
||||
.ifPresent(accountId -> attrBuilders.put(ResourceAttributes.CLOUD_ACCOUNT_ID, accountId));
|
||||
getRegion(arn).ifPresent(region -> attrBuilders.put(CLOUD_REGION, region));
|
||||
getAccountId(arn).ifPresent(accountId -> attrBuilders.put(CLOUD_ACCOUNT_ID, accountId));
|
||||
}
|
||||
|
||||
private EcsResource() {}
|
||||
|
|
|
@ -5,13 +5,20 @@
|
|||
|
||||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.AWS_EKS;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudProviderValues.AWS;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_ID;
|
||||
import static io.opentelemetry.semconv.incubating.K8sIncubatingAttributes.K8S_CLUSTER_NAME;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonFactory;
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.core.JsonToken;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.common.AttributesBuilder;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
@ -65,21 +72,20 @@ public final class EksResource {
|
|||
}
|
||||
|
||||
AttributesBuilder attrBuilders = Attributes.builder();
|
||||
attrBuilders.put(ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS);
|
||||
attrBuilders.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.AWS_EKS);
|
||||
attrBuilders.put(CLOUD_PROVIDER, AWS);
|
||||
attrBuilders.put(CLOUD_PLATFORM, AWS_EKS);
|
||||
|
||||
String clusterName = getClusterName(httpClient);
|
||||
if (clusterName != null && !clusterName.isEmpty()) {
|
||||
attrBuilders.put(ResourceAttributes.K8S_CLUSTER_NAME, clusterName);
|
||||
attrBuilders.put(K8S_CLUSTER_NAME, clusterName);
|
||||
}
|
||||
|
||||
String containerId = dockerHelper.getContainerId();
|
||||
if (containerId != null && !containerId.isEmpty()) {
|
||||
attrBuilders.put(ResourceAttributes.CONTAINER_ID, containerId);
|
||||
attrBuilders.put(CONTAINER_ID, containerId);
|
||||
}
|
||||
|
||||
return Resource.create(attrBuilders.build(), ResourceAttributes.SCHEMA_URL);
|
||||
return Resource.create(attrBuilders.build(), SchemaUrls.V1_25_0);
|
||||
}
|
||||
|
||||
private static boolean isEks(
|
||||
|
|
|
@ -5,10 +5,18 @@
|
|||
|
||||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.AWS_LAMBDA;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudProviderValues.AWS;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_VERSION;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.common.AttributesBuilder;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
@ -39,23 +47,20 @@ public final class LambdaResource {
|
|||
return Resource.empty();
|
||||
}
|
||||
|
||||
AttributesBuilder builder =
|
||||
Attributes.builder()
|
||||
.put(ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.AWS);
|
||||
builder.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.AWS_LAMBDA);
|
||||
AttributesBuilder builder = Attributes.builder().put(CLOUD_PROVIDER, AWS);
|
||||
builder.put(CLOUD_PLATFORM, AWS_LAMBDA);
|
||||
|
||||
if (!region.isEmpty()) {
|
||||
builder.put(ResourceAttributes.CLOUD_REGION, region);
|
||||
builder.put(CLOUD_REGION, region);
|
||||
}
|
||||
if (!functionName.isEmpty()) {
|
||||
builder.put(ResourceAttributes.FAAS_NAME, functionName);
|
||||
builder.put(FAAS_NAME, functionName);
|
||||
}
|
||||
if (!functionVersion.isEmpty()) {
|
||||
builder.put(ResourceAttributes.FAAS_VERSION, functionVersion);
|
||||
builder.put(FAAS_VERSION, functionVersion);
|
||||
}
|
||||
|
||||
return Resource.create(builder.build(), ResourceAttributes.SCHEMA_URL);
|
||||
return Resource.create(builder.build(), SchemaUrls.V1_25_0);
|
||||
}
|
||||
|
||||
private static boolean isLambda(String... envVariables) {
|
||||
|
|
|
@ -6,6 +6,11 @@
|
|||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
|
||||
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_VERSION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes.SERVICE_INSTANCE_ID;
|
||||
import static io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes.SERVICE_NAMESPACE;
|
||||
import static org.assertj.core.api.Assertions.entry;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
|
@ -13,7 +18,7 @@ import com.google.common.io.Files;
|
|||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ServiceLoader;
|
||||
|
@ -33,12 +38,12 @@ class BeanstalkResourceTest {
|
|||
Attributes attributes = resource.getAttributes();
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_elastic_beanstalk"),
|
||||
entry(ResourceAttributes.SERVICE_INSTANCE_ID, "4"),
|
||||
entry(ResourceAttributes.SERVICE_VERSION, "2"),
|
||||
entry(ResourceAttributes.SERVICE_NAMESPACE, "HttpSubscriber-env"));
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_elastic_beanstalk"),
|
||||
entry(SERVICE_INSTANCE_ID, "4"),
|
||||
entry(SERVICE_VERSION, "2"),
|
||||
entry(SERVICE_NAMESPACE, "HttpSubscriber-env"));
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -6,6 +6,15 @@
|
|||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_ACCOUNT_ID;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_ID;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_IMAGE_ID;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_TYPE;
|
||||
import static org.assertj.core.api.Assertions.entry;
|
||||
|
||||
import com.linecorp.armeria.common.AggregatedHttpRequest;
|
||||
|
@ -16,7 +25,7 @@ import com.linecorp.armeria.testing.junit5.server.mock.MockWebServerExtension;
|
|||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.util.ServiceLoader;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
@ -53,20 +62,20 @@ class Ec2ResourceTest {
|
|||
server.enqueue(HttpResponse.of("ec2-1-2-3-4"));
|
||||
|
||||
Resource resource = Ec2Resource.buildResource("localhost:" + server.httpPort());
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
Attributes attributes = resource.getAttributes();
|
||||
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_ec2"),
|
||||
entry(ResourceAttributes.HOST_ID, "i-1234567890abcdef0"),
|
||||
entry(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "us-west-2b"),
|
||||
entry(ResourceAttributes.HOST_TYPE, "t2.micro"),
|
||||
entry(ResourceAttributes.HOST_IMAGE_ID, "ami-5fb8c835"),
|
||||
entry(ResourceAttributes.CLOUD_ACCOUNT_ID, "123456789012"),
|
||||
entry(ResourceAttributes.CLOUD_REGION, "us-west-2"),
|
||||
entry(ResourceAttributes.HOST_NAME, "ec2-1-2-3-4"));
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_ec2"),
|
||||
entry(HOST_ID, "i-1234567890abcdef0"),
|
||||
entry(CLOUD_AVAILABILITY_ZONE, "us-west-2b"),
|
||||
entry(HOST_TYPE, "t2.micro"),
|
||||
entry(HOST_IMAGE_ID, "ami-5fb8c835"),
|
||||
entry(CLOUD_ACCOUNT_ID, "123456789012"),
|
||||
entry(CLOUD_REGION, "us-west-2"),
|
||||
entry(HOST_NAME, "ec2-1-2-3-4"));
|
||||
|
||||
AggregatedHttpRequest request1 = server.takeRequest().request();
|
||||
assertThat(request1.path()).isEqualTo("/latest/api/token");
|
||||
|
@ -88,20 +97,20 @@ class Ec2ResourceTest {
|
|||
server.enqueue(HttpResponse.of("ec2-1-2-3-4"));
|
||||
|
||||
Resource resource = Ec2Resource.buildResource("localhost:" + server.httpPort());
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
Attributes attributes = resource.getAttributes();
|
||||
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_ec2"),
|
||||
entry(ResourceAttributes.HOST_ID, "i-1234567890abcdef0"),
|
||||
entry(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "us-west-2b"),
|
||||
entry(ResourceAttributes.HOST_TYPE, "t2.micro"),
|
||||
entry(ResourceAttributes.HOST_IMAGE_ID, "ami-5fb8c835"),
|
||||
entry(ResourceAttributes.CLOUD_ACCOUNT_ID, "123456789012"),
|
||||
entry(ResourceAttributes.CLOUD_REGION, "us-west-2"),
|
||||
entry(ResourceAttributes.HOST_NAME, "ec2-1-2-3-4"));
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_ec2"),
|
||||
entry(HOST_ID, "i-1234567890abcdef0"),
|
||||
entry(CLOUD_AVAILABILITY_ZONE, "us-west-2b"),
|
||||
entry(HOST_TYPE, "t2.micro"),
|
||||
entry(HOST_IMAGE_ID, "ami-5fb8c835"),
|
||||
entry(CLOUD_ACCOUNT_ID, "123456789012"),
|
||||
entry(CLOUD_REGION, "us-west-2"),
|
||||
entry(HOST_NAME, "ec2-1-2-3-4"));
|
||||
|
||||
AggregatedHttpRequest request1 = server.takeRequest().request();
|
||||
assertThat(request1.path()).isEqualTo("/latest/api/token");
|
||||
|
|
|
@ -6,6 +6,24 @@
|
|||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_CONTAINER_ARN;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_LAUNCHTYPE;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_TASK_ARN;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_TASK_FAMILY;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_ECS_TASK_REVISION;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_GROUP_ARNS;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_GROUP_NAMES;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_STREAM_ARNS;
|
||||
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_LOG_STREAM_NAMES;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_ACCOUNT_ID;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_RESOURCE_ID;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_ID;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_IMAGE_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_NAME;
|
||||
import static org.assertj.core.api.Assertions.entry;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
|
@ -14,7 +32,7 @@ import io.opentelemetry.api.common.AttributeKey;
|
|||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Collections;
|
||||
|
@ -48,28 +66,26 @@ class EcsResourceTest {
|
|||
Resource resource = EcsResource.buildResource(mockSysEnv, mockHttpClient);
|
||||
Attributes attributes = resource.getAttributes();
|
||||
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_ecs"),
|
||||
entry(ResourceAttributes.CLOUD_ACCOUNT_ID, "012345678910"),
|
||||
entry(ResourceAttributes.CLOUD_REGION, "us-east-2"),
|
||||
entry(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "us-east-2b"),
|
||||
entry(ResourceAttributes.CONTAINER_NAME, "ecs-nginx-5-nginx-curl-ccccb9f49db0dfe0d901"),
|
||||
entry(
|
||||
ResourceAttributes.CONTAINER_ID,
|
||||
"43481a6ce4842eec8fe72fc28500c6b52edcc0917f105b83379f88cac1ff3946"),
|
||||
entry(ResourceAttributes.CONTAINER_IMAGE_NAME, "nrdlngr/nginx-curl"),
|
||||
entry(ResourceAttributes.CONTAINER_IMAGE_TAG, "latest"),
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_ecs"),
|
||||
entry(CLOUD_ACCOUNT_ID, "012345678910"),
|
||||
entry(CLOUD_REGION, "us-east-2"),
|
||||
entry(CLOUD_AVAILABILITY_ZONE, "us-east-2b"),
|
||||
entry(CONTAINER_NAME, "ecs-nginx-5-nginx-curl-ccccb9f49db0dfe0d901"),
|
||||
entry(CONTAINER_ID, "43481a6ce4842eec8fe72fc28500c6b52edcc0917f105b83379f88cac1ff3946"),
|
||||
entry(CONTAINER_IMAGE_NAME, "nrdlngr/nginx-curl"),
|
||||
entry(io.opentelemetry.semconv.ResourceAttributes.CONTAINER_IMAGE_TAG, "latest"),
|
||||
entry(
|
||||
AttributeKey.stringKey("aws.ecs.container.image.id"),
|
||||
"sha256:2e00ae64383cfc865ba0a2ba37f61b50a120d2d9378559dcd458dc0de47bc165"),
|
||||
entry(
|
||||
ResourceAttributes.AWS_ECS_TASK_ARN,
|
||||
AWS_ECS_TASK_ARN,
|
||||
"arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3"),
|
||||
entry(ResourceAttributes.AWS_ECS_TASK_FAMILY, "nginx"),
|
||||
entry(ResourceAttributes.AWS_ECS_TASK_REVISION, "5"));
|
||||
entry(AWS_ECS_TASK_FAMILY, "nginx"),
|
||||
entry(AWS_ECS_TASK_REVISION, "5"));
|
||||
}
|
||||
|
||||
// Suppression is required for CONTAINER_IMAGE_TAG until we are ready to upgrade.
|
||||
|
@ -87,50 +103,45 @@ class EcsResourceTest {
|
|||
Resource resource = EcsResource.buildResource(mockSysEnv, mockHttpClient);
|
||||
Attributes attributes = resource.getAttributes();
|
||||
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_ecs"),
|
||||
entry(ResourceAttributes.CLOUD_ACCOUNT_ID, "111122223333"),
|
||||
entry(ResourceAttributes.CLOUD_REGION, "us-west-2"),
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_ecs"),
|
||||
entry(CLOUD_ACCOUNT_ID, "111122223333"),
|
||||
entry(CLOUD_REGION, "us-west-2"),
|
||||
entry(
|
||||
ResourceAttributes.CLOUD_RESOURCE_ID,
|
||||
CLOUD_RESOURCE_ID,
|
||||
"arn:aws:ecs:us-west-2:111122223333:container/0206b271-b33f-47ab-86c6-a0ba208a70a9"),
|
||||
entry(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, "us-west-2d"),
|
||||
entry(ResourceAttributes.CONTAINER_NAME, "ecs-curltest-26-curl-cca48e8dcadd97805600"),
|
||||
entry(
|
||||
ResourceAttributes.CONTAINER_ID,
|
||||
"ea32192c8553fbff06c9340478a2ff089b2bb5646fb718b4ee206641c9086d66"),
|
||||
entry(
|
||||
ResourceAttributes.CONTAINER_IMAGE_NAME,
|
||||
"111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest"),
|
||||
entry(ResourceAttributes.CONTAINER_IMAGE_TAG, "latest"),
|
||||
entry(CLOUD_AVAILABILITY_ZONE, "us-west-2d"),
|
||||
entry(CONTAINER_NAME, "ecs-curltest-26-curl-cca48e8dcadd97805600"),
|
||||
entry(CONTAINER_ID, "ea32192c8553fbff06c9340478a2ff089b2bb5646fb718b4ee206641c9086d66"),
|
||||
entry(CONTAINER_IMAGE_NAME, "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest"),
|
||||
entry(io.opentelemetry.semconv.ResourceAttributes.CONTAINER_IMAGE_TAG, "latest"),
|
||||
entry(
|
||||
AttributeKey.stringKey("aws.ecs.container.image.id"),
|
||||
"sha256:d691691e9652791a60114e67b365688d20d19940dde7c4736ea30e660d8d3553"),
|
||||
entry(
|
||||
ResourceAttributes.AWS_ECS_CONTAINER_ARN,
|
||||
AWS_ECS_CONTAINER_ARN,
|
||||
"arn:aws:ecs:us-west-2:111122223333:container/0206b271-b33f-47ab-86c6-a0ba208a70a9"),
|
||||
entry(AWS_LOG_GROUP_NAMES, Collections.singletonList("/ecs/metadata")),
|
||||
entry(
|
||||
ResourceAttributes.AWS_LOG_GROUP_NAMES, Collections.singletonList("/ecs/metadata")),
|
||||
entry(
|
||||
ResourceAttributes.AWS_LOG_GROUP_ARNS,
|
||||
AWS_LOG_GROUP_ARNS,
|
||||
Collections.singletonList(
|
||||
"arn:aws:logs:us-west-2:111122223333:log-group:/ecs/metadata")),
|
||||
entry(
|
||||
ResourceAttributes.AWS_LOG_STREAM_NAMES,
|
||||
AWS_LOG_STREAM_NAMES,
|
||||
Collections.singletonList("ecs/curl/8f03e41243824aea923aca126495f665")),
|
||||
entry(
|
||||
ResourceAttributes.AWS_LOG_STREAM_ARNS,
|
||||
AWS_LOG_STREAM_ARNS,
|
||||
Collections.singletonList(
|
||||
"arn:aws:logs:us-west-2:111122223333:log-group:/ecs/metadata:log-stream:ecs/curl/8f03e41243824aea923aca126495f665")),
|
||||
entry(
|
||||
ResourceAttributes.AWS_ECS_TASK_ARN,
|
||||
AWS_ECS_TASK_ARN,
|
||||
"arn:aws:ecs:us-west-2:111122223333:task/default/158d1c8083dd49d6b527399fd6414f5c"),
|
||||
entry(ResourceAttributes.AWS_ECS_LAUNCHTYPE, "ec2"),
|
||||
entry(ResourceAttributes.AWS_ECS_TASK_FAMILY, "curltest"),
|
||||
entry(ResourceAttributes.AWS_ECS_TASK_REVISION, "26"));
|
||||
entry(AWS_ECS_LAUNCHTYPE, "ec2"),
|
||||
entry(AWS_ECS_TASK_FAMILY, "curltest"),
|
||||
entry(AWS_ECS_TASK_REVISION, "26"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -9,6 +9,10 @@ import static io.opentelemetry.contrib.aws.resource.EksResource.AUTH_CONFIGMAP_P
|
|||
import static io.opentelemetry.contrib.aws.resource.EksResource.CW_CONFIGMAP_PATH;
|
||||
import static io.opentelemetry.contrib.aws.resource.EksResource.K8S_SVC_URL;
|
||||
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes.CONTAINER_ID;
|
||||
import static io.opentelemetry.semconv.incubating.K8sIncubatingAttributes.K8S_CLUSTER_NAME;
|
||||
import static org.assertj.core.api.Assertions.entry;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
@ -18,7 +22,7 @@ import com.google.common.io.Files;
|
|||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ServiceLoader;
|
||||
|
@ -59,13 +63,13 @@ public class EksResourceTest {
|
|||
mockK8sKeystoreFile.getPath());
|
||||
Attributes attributes = eksResource.getAttributes();
|
||||
|
||||
assertThat(eksResource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
assertThat(eksResource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_eks"),
|
||||
entry(ResourceAttributes.K8S_CLUSTER_NAME, "my-cluster"),
|
||||
entry(ResourceAttributes.CONTAINER_ID, "0123456789A"));
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_eks"),
|
||||
entry(K8S_CLUSTER_NAME, "my-cluster"),
|
||||
entry(CONTAINER_ID, "0123456789A"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -6,6 +6,11 @@
|
|||
package io.opentelemetry.contrib.aws.resource;
|
||||
|
||||
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_VERSION;
|
||||
import static java.util.Collections.emptyMap;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static org.assertj.core.api.Assertions.entry;
|
||||
|
@ -13,7 +18,7 @@ import static org.assertj.core.api.Assertions.entry;
|
|||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import io.opentelemetry.semconv.SchemaUrls;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.ServiceLoader;
|
||||
|
@ -32,12 +37,12 @@ class LambdaResourceTest {
|
|||
LambdaResource.buildResource(singletonMap("AWS_LAMBDA_FUNCTION_NAME", "my-function"));
|
||||
Attributes attributes = resource.getAttributes();
|
||||
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_lambda"),
|
||||
entry(ResourceAttributes.FAAS_NAME, "my-function"));
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_lambda"),
|
||||
entry(FAAS_NAME, "my-function"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -50,14 +55,14 @@ class LambdaResourceTest {
|
|||
Resource resource = LambdaResource.buildResource(envVars);
|
||||
Attributes attributes = resource.getAttributes();
|
||||
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(ResourceAttributes.SCHEMA_URL);
|
||||
assertThat(resource.getSchemaUrl()).isEqualTo(SchemaUrls.V1_25_0);
|
||||
assertThat(attributes)
|
||||
.containsOnly(
|
||||
entry(ResourceAttributes.CLOUD_PROVIDER, "aws"),
|
||||
entry(ResourceAttributes.CLOUD_PLATFORM, "aws_lambda"),
|
||||
entry(ResourceAttributes.CLOUD_REGION, "us-east-1"),
|
||||
entry(ResourceAttributes.FAAS_NAME, "my-function"),
|
||||
entry(ResourceAttributes.FAAS_VERSION, "1.2.3"));
|
||||
entry(CLOUD_PROVIDER, "aws"),
|
||||
entry(CLOUD_PLATFORM, "aws_lambda"),
|
||||
entry(CLOUD_REGION, "us-east-1"),
|
||||
entry(FAAS_NAME, "my-function"),
|
||||
entry(FAAS_VERSION, "1.2.3"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -13,7 +13,7 @@ val DEPENDENCY_BOMS = listOf(
|
|||
"com.linecorp.armeria:armeria-bom:1.28.1",
|
||||
"org.junit:junit-bom:5.10.2",
|
||||
"io.grpc:grpc-bom:1.63.0",
|
||||
"io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:2.2.0-alpha",
|
||||
"io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:2.3.0-alpha",
|
||||
"org.testcontainers:testcontainers-bom:1.19.7"
|
||||
)
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ dependencies {
|
|||
implementation("com.google.cloud.opentelemetry:detector-resources-support:0.28.0")
|
||||
|
||||
implementation("io.opentelemetry.semconv:opentelemetry-semconv")
|
||||
implementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating:1.25.0-alpha")
|
||||
|
||||
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
|
||||
|
||||
|
|
|
@ -27,6 +27,26 @@ import static com.google.cloud.opentelemetry.detection.AttributeKeys.SERVERLESS_
|
|||
import static com.google.cloud.opentelemetry.detection.AttributeKeys.SERVERLESS_COMPUTE_INSTANCE_ID;
|
||||
import static com.google.cloud.opentelemetry.detection.AttributeKeys.SERVERLESS_COMPUTE_NAME;
|
||||
import static com.google.cloud.opentelemetry.detection.AttributeKeys.SERVERLESS_COMPUTE_REVISION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_ACCOUNT_ID;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_APP_ENGINE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_CLOUD_FUNCTIONS;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_CLOUD_RUN;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudProviderValues.GCP;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_INSTANCE;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_VERSION;
|
||||
import static io.opentelemetry.semconv.incubating.GcpIncubatingAttributes.GCP_GCE_INSTANCE_HOSTNAME;
|
||||
import static io.opentelemetry.semconv.incubating.GcpIncubatingAttributes.GCP_GCE_INSTANCE_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_ID;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_TYPE;
|
||||
import static io.opentelemetry.semconv.incubating.K8sIncubatingAttributes.K8S_CLUSTER_NAME;
|
||||
|
||||
import com.google.cloud.opentelemetry.detection.DetectedPlatform;
|
||||
import com.google.cloud.opentelemetry.detection.GCPPlatformDetector;
|
||||
|
@ -35,7 +55,6 @@ import io.opentelemetry.api.common.AttributesBuilder;
|
|||
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.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.logging.Logger;
|
||||
|
@ -69,8 +88,8 @@ public class GCPResourceProvider implements ResourceProvider {
|
|||
|
||||
// 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(CLOUD_PROVIDER, GCP);
|
||||
attrBuilder.put(CLOUD_ACCOUNT_ID, detectedPlatform.getProjectId());
|
||||
|
||||
switch (detectedPlatform.getSupportedPlatform()) {
|
||||
case GOOGLE_KUBERNETES_ENGINE:
|
||||
|
@ -108,28 +127,25 @@ public class GCPResourceProvider implements ResourceProvider {
|
|||
*/
|
||||
private static void addGceAttributes(
|
||||
AttributesBuilder attrBuilder, Map<String, String> attributesMap) {
|
||||
attrBuilder.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE);
|
||||
attrBuilder.put(CLOUD_PLATFORM, GCP_COMPUTE_ENGINE);
|
||||
|
||||
Optional.ofNullable(attributesMap.get(GCE_AVAILABILITY_ZONE))
|
||||
.ifPresent(zone -> attrBuilder.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, zone));
|
||||
.ifPresent(zone -> attrBuilder.put(CLOUD_AVAILABILITY_ZONE, zone));
|
||||
Optional.ofNullable(attributesMap.get(GCE_CLOUD_REGION))
|
||||
.ifPresent(region -> attrBuilder.put(ResourceAttributes.CLOUD_REGION, region));
|
||||
.ifPresent(region -> attrBuilder.put(CLOUD_REGION, region));
|
||||
Optional.ofNullable(attributesMap.get(GCE_INSTANCE_ID))
|
||||
.ifPresent(instanceId -> attrBuilder.put(ResourceAttributes.HOST_ID, instanceId));
|
||||
.ifPresent(instanceId -> attrBuilder.put(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(HOST_NAME, instanceName);
|
||||
attrBuilder.put(GCP_GCE_INSTANCE_NAME, instanceName);
|
||||
});
|
||||
Optional.ofNullable(attributesMap.get(GCE_INSTANCE_HOSTNAME))
|
||||
.ifPresent(
|
||||
instanceHostname ->
|
||||
attrBuilder.put(ResourceAttributes.GCP_GCE_INSTANCE_HOSTNAME, instanceHostname));
|
||||
instanceHostname -> attrBuilder.put(GCP_GCE_INSTANCE_HOSTNAME, instanceHostname));
|
||||
Optional.ofNullable(attributesMap.get(GCE_MACHINE_TYPE))
|
||||
.ifPresent(machineType -> attrBuilder.put(ResourceAttributes.HOST_TYPE, machineType));
|
||||
.ifPresent(machineType -> attrBuilder.put(HOST_TYPE, machineType));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -141,28 +157,23 @@ public class GCPResourceProvider implements ResourceProvider {
|
|||
*/
|
||||
private static void addGkeAttributes(
|
||||
AttributesBuilder attrBuilder, Map<String, String> attributesMap) {
|
||||
attrBuilder.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE);
|
||||
attrBuilder.put(CLOUD_PLATFORM, GCP_KUBERNETES_ENGINE);
|
||||
|
||||
Optional.ofNullable(attributesMap.get(GKE_CLUSTER_NAME))
|
||||
.ifPresent(
|
||||
clusterName -> attrBuilder.put(ResourceAttributes.K8S_CLUSTER_NAME, clusterName));
|
||||
.ifPresent(clusterName -> attrBuilder.put(K8S_CLUSTER_NAME, clusterName));
|
||||
Optional.ofNullable(attributesMap.get(GKE_HOST_ID))
|
||||
.ifPresent(hostId -> attrBuilder.put(ResourceAttributes.HOST_ID, hostId));
|
||||
.ifPresent(hostId -> attrBuilder.put(HOST_ID, hostId));
|
||||
Optional.ofNullable(attributesMap.get(GKE_CLUSTER_LOCATION_TYPE))
|
||||
.ifPresent(
|
||||
locationType -> {
|
||||
if (attributesMap.get(GKE_CLUSTER_LOCATION) != null) {
|
||||
switch (locationType) {
|
||||
case GKE_LOCATION_TYPE_REGION:
|
||||
attrBuilder.put(
|
||||
ResourceAttributes.CLOUD_REGION, attributesMap.get(GKE_CLUSTER_LOCATION));
|
||||
attrBuilder.put(CLOUD_REGION, attributesMap.get(GKE_CLUSTER_LOCATION));
|
||||
break;
|
||||
case GKE_LOCATION_TYPE_ZONE:
|
||||
attrBuilder.put(
|
||||
ResourceAttributes.CLOUD_AVAILABILITY_ZONE,
|
||||
attributesMap.get(GKE_CLUSTER_LOCATION));
|
||||
CLOUD_AVAILABILITY_ZONE, attributesMap.get(GKE_CLUSTER_LOCATION));
|
||||
break;
|
||||
default:
|
||||
// TODO: Figure out how to handle unexpected conditions like this
|
||||
|
@ -184,8 +195,7 @@ public class GCPResourceProvider implements ResourceProvider {
|
|||
*/
|
||||
private static void addGcrAttributes(
|
||||
AttributesBuilder attrBuilder, Map<String, String> attributesMap) {
|
||||
attrBuilder.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.GCP_CLOUD_RUN);
|
||||
attrBuilder.put(CLOUD_PLATFORM, GCP_CLOUD_RUN);
|
||||
addCommonAttributesForServerlessCompute(attrBuilder, attributesMap);
|
||||
}
|
||||
|
||||
|
@ -198,9 +208,7 @@ public class GCPResourceProvider implements ResourceProvider {
|
|||
*/
|
||||
private static void addGcfAttributes(
|
||||
AttributesBuilder attrBuilder, Map<String, String> attributesMap) {
|
||||
attrBuilder.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.GCP_CLOUD_FUNCTIONS);
|
||||
attrBuilder.put(CLOUD_PLATFORM, GCP_CLOUD_FUNCTIONS);
|
||||
addCommonAttributesForServerlessCompute(attrBuilder, attributesMap);
|
||||
}
|
||||
|
||||
|
@ -213,21 +221,19 @@ public class GCPResourceProvider implements ResourceProvider {
|
|||
*/
|
||||
private static void addGaeAttributes(
|
||||
AttributesBuilder attrBuilder, Map<String, String> attributesMap) {
|
||||
attrBuilder.put(
|
||||
ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.GCP_APP_ENGINE);
|
||||
attrBuilder.put(CLOUD_PLATFORM, GCP_APP_ENGINE);
|
||||
Optional.ofNullable(attributesMap.get(GAE_MODULE_NAME))
|
||||
.ifPresent(appName -> attrBuilder.put(ResourceAttributes.FAAS_NAME, appName));
|
||||
.ifPresent(appName -> attrBuilder.put(FAAS_NAME, appName));
|
||||
Optional.ofNullable(attributesMap.get(GAE_APP_VERSION))
|
||||
.ifPresent(appVersion -> attrBuilder.put(ResourceAttributes.FAAS_VERSION, appVersion));
|
||||
.ifPresent(appVersion -> attrBuilder.put(FAAS_VERSION, appVersion));
|
||||
Optional.ofNullable(attributesMap.get(GAE_INSTANCE_ID))
|
||||
.ifPresent(
|
||||
appInstanceId -> attrBuilder.put(ResourceAttributes.FAAS_INSTANCE, appInstanceId));
|
||||
.ifPresent(appInstanceId -> attrBuilder.put(FAAS_INSTANCE, appInstanceId));
|
||||
Optional.ofNullable(attributesMap.get(GAE_CLOUD_REGION))
|
||||
.ifPresent(cloudRegion -> attrBuilder.put(ResourceAttributes.CLOUD_REGION, cloudRegion));
|
||||
.ifPresent(cloudRegion -> attrBuilder.put(CLOUD_REGION, cloudRegion));
|
||||
Optional.ofNullable(attributesMap.get(GAE_AVAILABILITY_ZONE))
|
||||
.ifPresent(
|
||||
cloudAvailabilityZone ->
|
||||
attrBuilder.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, cloudAvailabilityZone));
|
||||
attrBuilder.put(CLOUD_AVAILABILITY_ZONE, cloudAvailabilityZone));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -240,14 +246,14 @@ public class GCPResourceProvider implements ResourceProvider {
|
|||
private static void addCommonAttributesForServerlessCompute(
|
||||
AttributesBuilder attrBuilder, Map<String, String> attributesMap) {
|
||||
Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_NAME))
|
||||
.ifPresent(name -> attrBuilder.put(ResourceAttributes.FAAS_NAME, name));
|
||||
.ifPresent(name -> attrBuilder.put(FAAS_NAME, name));
|
||||
Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_REVISION))
|
||||
.ifPresent(revision -> attrBuilder.put(ResourceAttributes.FAAS_VERSION, revision));
|
||||
.ifPresent(revision -> attrBuilder.put(FAAS_VERSION, revision));
|
||||
Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_INSTANCE_ID))
|
||||
.ifPresent(instanceId -> attrBuilder.put(ResourceAttributes.FAAS_INSTANCE, instanceId));
|
||||
.ifPresent(instanceId -> attrBuilder.put(FAAS_INSTANCE, instanceId));
|
||||
Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_AVAILABILITY_ZONE))
|
||||
.ifPresent(zone -> attrBuilder.put(ResourceAttributes.CLOUD_AVAILABILITY_ZONE, zone));
|
||||
.ifPresent(zone -> attrBuilder.put(CLOUD_AVAILABILITY_ZONE, zone));
|
||||
Optional.ofNullable(attributesMap.get(SERVERLESS_COMPUTE_CLOUD_REGION))
|
||||
.ifPresent(region -> attrBuilder.put(ResourceAttributes.CLOUD_REGION, region));
|
||||
.ifPresent(region -> attrBuilder.put(CLOUD_REGION, region));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,26 @@ import static com.google.cloud.opentelemetry.detection.AttributeKeys.SERVERLESS_
|
|||
import static com.google.cloud.opentelemetry.detection.AttributeKeys.SERVERLESS_COMPUTE_NAME;
|
||||
import static com.google.cloud.opentelemetry.detection.AttributeKeys.SERVERLESS_COMPUTE_REVISION;
|
||||
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_ACCOUNT_ID;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_AVAILABILITY_ZONE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PLATFORM;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_PROVIDER;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CLOUD_REGION;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_APP_ENGINE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_CLOUD_FUNCTIONS;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_CLOUD_RUN;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE;
|
||||
import static io.opentelemetry.semconv.incubating.CloudIncubatingAttributes.CloudProviderValues.GCP;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_INSTANCE;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.FaasIncubatingAttributes.FAAS_VERSION;
|
||||
import static io.opentelemetry.semconv.incubating.GcpIncubatingAttributes.GCP_GCE_INSTANCE_HOSTNAME;
|
||||
import static io.opentelemetry.semconv.incubating.GcpIncubatingAttributes.GCP_GCE_INSTANCE_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_ID;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.HostIncubatingAttributes.HOST_TYPE;
|
||||
import static io.opentelemetry.semconv.incubating.K8sIncubatingAttributes.K8S_CLUSTER_NAME;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
|
@ -37,7 +57,6 @@ import com.google.common.collect.ImmutableMap;
|
|||
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;
|
||||
|
@ -157,24 +176,16 @@ class GCPResourceProviderTest {
|
|||
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(10)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.GCP_COMPUTE_ENGINE)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(ResourceAttributes.HOST_ID, detectedAttributes.get(GCE_INSTANCE_ID))
|
||||
.containsEntry(ResourceAttributes.HOST_NAME, detectedAttributes.get(GCE_INSTANCE_NAME))
|
||||
.containsEntry(
|
||||
ResourceAttributes.GCP_GCE_INSTANCE_NAME, detectedAttributes.get(GCE_INSTANCE_NAME))
|
||||
.containsEntry(
|
||||
ResourceAttributes.GCP_GCE_INSTANCE_HOSTNAME,
|
||||
detectedAttributes.get(GCE_INSTANCE_HOSTNAME))
|
||||
.containsEntry(ResourceAttributes.HOST_TYPE, detectedAttributes.get(GCE_MACHINE_TYPE))
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_AVAILABILITY_ZONE,
|
||||
detectedAttributes.get(GCE_AVAILABILITY_ZONE))
|
||||
.containsEntry(ResourceAttributes.CLOUD_REGION, detectedAttributes.get(GCE_CLOUD_REGION));
|
||||
.containsEntry(CLOUD_PROVIDER, GCP)
|
||||
.containsEntry(CLOUD_PLATFORM, GCP_COMPUTE_ENGINE)
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(HOST_ID, detectedAttributes.get(GCE_INSTANCE_ID))
|
||||
.containsEntry(HOST_NAME, detectedAttributes.get(GCE_INSTANCE_NAME))
|
||||
.containsEntry(GCP_GCE_INSTANCE_NAME, detectedAttributes.get(GCE_INSTANCE_NAME))
|
||||
.containsEntry(GCP_GCE_INSTANCE_HOSTNAME, detectedAttributes.get(GCE_INSTANCE_HOSTNAME))
|
||||
.containsEntry(HOST_TYPE, detectedAttributes.get(GCE_MACHINE_TYPE))
|
||||
.containsEntry(CLOUD_AVAILABILITY_ZONE, detectedAttributes.get(GCE_AVAILABILITY_ZONE))
|
||||
.containsEntry(CLOUD_REGION, detectedAttributes.get(GCE_CLOUD_REGION));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -189,10 +200,9 @@ class GCPResourceProviderTest {
|
|||
verifyGkeMapping(gotResource, mockPlatform);
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(6)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_REGION, mockPlatform.getAttributes().get(GKE_CLUSTER_LOCATION))
|
||||
.doesNotContainKey(ResourceAttributes.CLOUD_AVAILABILITY_ZONE);
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(CLOUD_REGION, mockPlatform.getAttributes().get(GKE_CLUSTER_LOCATION))
|
||||
.doesNotContainKey(CLOUD_AVAILABILITY_ZONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -207,11 +217,10 @@ class GCPResourceProviderTest {
|
|||
verifyGkeMapping(gotResource, mockPlatform);
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(6)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_AVAILABILITY_ZONE,
|
||||
mockPlatform.getAttributes().get(GKE_CLUSTER_LOCATION))
|
||||
.doesNotContainKey(ResourceAttributes.CLOUD_REGION);
|
||||
CLOUD_AVAILABILITY_ZONE, mockPlatform.getAttributes().get(GKE_CLUSTER_LOCATION))
|
||||
.doesNotContainKey(CLOUD_REGION);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -234,9 +243,9 @@ class GCPResourceProviderTest {
|
|||
verify(mockPlatform, Mockito.times(1)).getProjectId();
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(5)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.doesNotContainKey(ResourceAttributes.CLOUD_REGION)
|
||||
.doesNotContainKey(ResourceAttributes.CLOUD_AVAILABILITY_ZONE);
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.doesNotContainKey(CLOUD_REGION)
|
||||
.doesNotContainKey(CLOUD_AVAILABILITY_ZONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -250,22 +259,18 @@ class GCPResourceProviderTest {
|
|||
verifyGkeMapping(gotResource, mockPlatform);
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(5)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.doesNotContainKey(ResourceAttributes.CLOUD_REGION)
|
||||
.doesNotContainKey(ResourceAttributes.CLOUD_AVAILABILITY_ZONE);
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.doesNotContainKey(CLOUD_REGION)
|
||||
.doesNotContainKey(CLOUD_AVAILABILITY_ZONE);
|
||||
}
|
||||
|
||||
private static void verifyGkeMapping(Resource gotResource, DetectedPlatform detectedPlatform) {
|
||||
Map<String, String> detectedAttributes = detectedPlatform.getAttributes();
|
||||
assertThat(gotResource.getAttributes())
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.GCP_KUBERNETES_ENGINE)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP)
|
||||
.containsEntry(ResourceAttributes.HOST_ID, detectedAttributes.get(GKE_HOST_ID))
|
||||
.containsEntry(
|
||||
ResourceAttributes.K8S_CLUSTER_NAME, detectedAttributes.get(GKE_CLUSTER_NAME));
|
||||
.containsEntry(CLOUD_PLATFORM, GCP_KUBERNETES_ENGINE)
|
||||
.containsEntry(CLOUD_PROVIDER, GCP)
|
||||
.containsEntry(HOST_ID, detectedAttributes.get(GKE_HOST_ID))
|
||||
.containsEntry(K8S_CLUSTER_NAME, detectedAttributes.get(GKE_CLUSTER_NAME));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -281,9 +286,8 @@ class GCPResourceProviderTest {
|
|||
verifyServerlessMapping(gotResource, mockPlatform);
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(8)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PLATFORM, ResourceAttributes.CloudPlatformValues.GCP_CLOUD_RUN)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID);
|
||||
.containsEntry(CLOUD_PLATFORM, GCP_CLOUD_RUN)
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -300,31 +304,21 @@ class GCPResourceProviderTest {
|
|||
verifyServerlessMapping(gotResource, mockPlatform);
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(8)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.GCP_CLOUD_FUNCTIONS)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID);
|
||||
.containsEntry(CLOUD_PLATFORM, GCP_CLOUD_FUNCTIONS)
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID);
|
||||
}
|
||||
|
||||
private static void verifyServerlessMapping(
|
||||
Resource gotResource, DetectedPlatform detectedPlatform) {
|
||||
Map<String, String> detectedAttributes = detectedPlatform.getAttributes();
|
||||
assertThat(gotResource.getAttributes())
|
||||
.containsEntry(CLOUD_PROVIDER, GCP)
|
||||
.containsEntry(FAAS_NAME, detectedAttributes.get(SERVERLESS_COMPUTE_NAME))
|
||||
.containsEntry(FAAS_VERSION, detectedAttributes.get(SERVERLESS_COMPUTE_REVISION))
|
||||
.containsEntry(FAAS_INSTANCE, detectedAttributes.get(SERVERLESS_COMPUTE_INSTANCE_ID))
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP)
|
||||
.containsEntry(
|
||||
ResourceAttributes.FAAS_NAME, detectedAttributes.get(SERVERLESS_COMPUTE_NAME))
|
||||
.containsEntry(
|
||||
ResourceAttributes.FAAS_VERSION, detectedAttributes.get(SERVERLESS_COMPUTE_REVISION))
|
||||
.containsEntry(
|
||||
ResourceAttributes.FAAS_INSTANCE,
|
||||
detectedAttributes.get(SERVERLESS_COMPUTE_INSTANCE_ID))
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_AVAILABILITY_ZONE,
|
||||
detectedAttributes.get(SERVERLESS_COMPUTE_AVAILABILITY_ZONE))
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_REGION,
|
||||
detectedAttributes.get(SERVERLESS_COMPUTE_CLOUD_REGION));
|
||||
CLOUD_AVAILABILITY_ZONE, detectedAttributes.get(SERVERLESS_COMPUTE_AVAILABILITY_ZONE))
|
||||
.containsEntry(CLOUD_REGION, detectedAttributes.get(SERVERLESS_COMPUTE_CLOUD_REGION));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -339,19 +333,14 @@ class GCPResourceProviderTest {
|
|||
|
||||
assertThat(gotResource.getAttributes())
|
||||
.hasSize(8)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PROVIDER, ResourceAttributes.CloudProviderValues.GCP)
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_PLATFORM,
|
||||
ResourceAttributes.CloudPlatformValues.GCP_APP_ENGINE)
|
||||
.containsEntry(ResourceAttributes.CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(ResourceAttributes.FAAS_NAME, detectedAttributes.get(GAE_MODULE_NAME))
|
||||
.containsEntry(ResourceAttributes.FAAS_VERSION, detectedAttributes.get(GAE_APP_VERSION))
|
||||
.containsEntry(ResourceAttributes.FAAS_INSTANCE, detectedAttributes.get(GAE_INSTANCE_ID))
|
||||
.containsEntry(
|
||||
ResourceAttributes.CLOUD_AVAILABILITY_ZONE,
|
||||
detectedAttributes.get(GAE_AVAILABILITY_ZONE))
|
||||
.containsEntry(ResourceAttributes.CLOUD_REGION, detectedAttributes.get(GAE_CLOUD_REGION));
|
||||
.containsEntry(CLOUD_PROVIDER, GCP)
|
||||
.containsEntry(CLOUD_PLATFORM, GCP_APP_ENGINE)
|
||||
.containsEntry(CLOUD_ACCOUNT_ID, DUMMY_PROJECT_ID)
|
||||
.containsEntry(FAAS_NAME, detectedAttributes.get(GAE_MODULE_NAME))
|
||||
.containsEntry(FAAS_VERSION, detectedAttributes.get(GAE_APP_VERSION))
|
||||
.containsEntry(FAAS_INSTANCE, detectedAttributes.get(GAE_INSTANCE_ID))
|
||||
.containsEntry(CLOUD_AVAILABILITY_ZONE, detectedAttributes.get(GAE_AVAILABILITY_ZONE))
|
||||
.containsEntry(CLOUD_REGION, detectedAttributes.get(GAE_CLOUD_REGION));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -16,7 +16,6 @@ dependencies {
|
|||
implementation("org.codehaus.plexus:plexus-component-annotations:2.1.1")
|
||||
|
||||
implementation("io.opentelemetry:opentelemetry-api")
|
||||
implementation("io.opentelemetry:opentelemetry-api-events")
|
||||
implementation("io.opentelemetry:opentelemetry-sdk")
|
||||
implementation("io.opentelemetry:opentelemetry-sdk-trace")
|
||||
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
|
||||
|
|
|
@ -9,7 +9,7 @@ otelJava.moduleName.set("io.opentelemetry.contrib.metrics.micrometer")
|
|||
dependencies {
|
||||
api("io.opentelemetry:opentelemetry-api")
|
||||
api("io.opentelemetry:opentelemetry-sdk-metrics")
|
||||
api("io.opentelemetry:opentelemetry-extension-incubator")
|
||||
api("io.opentelemetry:opentelemetry-api-incubator")
|
||||
|
||||
compileOnly("io.micrometer:micrometer-core:1.5.0") // do not auto-update this version
|
||||
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
|
||||
|
|
|
@ -11,6 +11,14 @@ import io.micrometer.prometheus.PrometheusConfig;
|
|||
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleCounterBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleGaugeBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleHistogramBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongCounterBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongGaugeBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongHistogramBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleCounter;
|
||||
import io.opentelemetry.api.metrics.DoubleCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleGaugeBuilder;
|
||||
|
@ -33,14 +41,6 @@ import io.opentelemetry.api.metrics.ObservableDoubleUpDownCounter;
|
|||
import io.opentelemetry.api.metrics.ObservableLongCounter;
|
||||
import io.opentelemetry.api.metrics.ObservableLongGauge;
|
||||
import io.opentelemetry.api.metrics.ObservableLongUpDownCounter;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleCounterBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleGaugeBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleHistogramBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleUpDownCounterBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongCounterBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongGaugeBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongHistogramBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongUpDownCounterBuilder;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleCounter;
|
||||
import io.opentelemetry.api.metrics.DoubleCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleCounter;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleMeasurement;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleCounterBuilder;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
final class MicrometerDoubleCounter extends AbstractCounter
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.DoubleGauge;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.LongGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleGauge;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleMeasurement;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.DoubleGauge;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleGaugeBuilder;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class MicrometerDoubleGauge extends AbstractGauge
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleHistogramBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleHistogram;
|
||||
import io.opentelemetry.api.metrics.DoubleHistogramBuilder;
|
||||
import io.opentelemetry.api.metrics.LongHistogramBuilder;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleHistogramBuilder;
|
||||
import java.util.List;
|
||||
|
||||
public final class MicrometerDoubleHistogram extends AbstractHistogram implements DoubleHistogram {
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleUpDownCounter;
|
||||
import io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleMeasurement;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleUpDownCounter;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleUpDownCounterBuilder;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
final class MicrometerDoubleUpDownCounter extends AbstractUpDownCounter
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.LongCounter;
|
||||
import io.opentelemetry.api.metrics.LongCounterBuilder;
|
||||
|
@ -14,7 +15,6 @@ import io.opentelemetry.api.metrics.ObservableLongMeasurement;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongCounterBuilder;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class MicrometerLongCounter extends AbstractCounter
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongGaugeBuilder;
|
||||
import io.opentelemetry.api.incubator.metrics.LongGauge;
|
||||
import io.opentelemetry.api.metrics.LongGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableLongGauge;
|
||||
import io.opentelemetry.api.metrics.ObservableLongMeasurement;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongGaugeBuilder;
|
||||
import io.opentelemetry.extension.incubator.metrics.LongGauge;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class MicrometerLongGauge extends AbstractGauge
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongHistogramBuilder;
|
||||
import io.opentelemetry.api.metrics.LongHistogram;
|
||||
import io.opentelemetry.api.metrics.LongHistogramBuilder;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongHistogramBuilder;
|
||||
import java.util.List;
|
||||
|
||||
final class MicrometerLongHistogram extends AbstractHistogram implements LongHistogram {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
package io.opentelemetry.contrib.metrics.micrometer.internal.instruments;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.LongUpDownCounter;
|
||||
import io.opentelemetry.api.metrics.LongUpDownCounterBuilder;
|
||||
|
@ -14,7 +15,6 @@ import io.opentelemetry.api.metrics.ObservableLongUpDownCounter;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.InstrumentState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongUpDownCounterBuilder;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class MicrometerLongUpDownCounter extends AbstractUpDownCounter
|
||||
|
|
|
@ -14,6 +14,7 @@ import io.micrometer.core.instrument.Tag;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleCounter;
|
||||
import io.opentelemetry.api.metrics.DoubleCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleCounter;
|
||||
|
@ -22,7 +23,6 @@ import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
|||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleCounterBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -13,13 +13,13 @@ import io.micrometer.core.instrument.Tag;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleGauge;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleGaugeBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -15,6 +15,7 @@ import io.micrometer.core.instrument.distribution.HistogramSnapshot;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleHistogramBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleHistogram;
|
||||
import io.opentelemetry.api.metrics.DoubleHistogramBuilder;
|
||||
import io.opentelemetry.context.Context;
|
||||
|
@ -22,7 +23,6 @@ import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
|||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleHistogramBuilder;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
|
|
@ -13,6 +13,7 @@ import io.micrometer.core.instrument.Tag;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedDoubleUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.DoubleUpDownCounter;
|
||||
import io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableDoubleUpDownCounter;
|
||||
|
@ -21,7 +22,6 @@ import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
|||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedDoubleUpDownCounterBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -14,6 +14,7 @@ import io.micrometer.core.instrument.Tag;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.LongCounter;
|
||||
import io.opentelemetry.api.metrics.LongCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableLongCounter;
|
||||
|
@ -22,7 +23,6 @@ import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
|||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongCounterBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -13,13 +13,13 @@ import io.micrometer.core.instrument.Tag;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.LongGaugeBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableLongGauge;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongGaugeBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -15,6 +15,7 @@ import io.micrometer.core.instrument.distribution.HistogramSnapshot;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongHistogramBuilder;
|
||||
import io.opentelemetry.api.metrics.LongHistogram;
|
||||
import io.opentelemetry.api.metrics.LongHistogramBuilder;
|
||||
import io.opentelemetry.context.Context;
|
||||
|
@ -22,7 +23,6 @@ import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
|||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongHistogramBuilder;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
|
|
@ -13,6 +13,7 @@ import io.micrometer.core.instrument.Tag;
|
|||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.incubator.metrics.ExtendedLongUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.LongUpDownCounter;
|
||||
import io.opentelemetry.api.metrics.LongUpDownCounterBuilder;
|
||||
import io.opentelemetry.api.metrics.ObservableLongUpDownCounter;
|
||||
|
@ -21,7 +22,6 @@ import io.opentelemetry.contrib.metrics.micrometer.TestCallbackRegistrar;
|
|||
import io.opentelemetry.contrib.metrics.micrometer.internal.Constants;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterProviderSharedState;
|
||||
import io.opentelemetry.contrib.metrics.micrometer.internal.state.MeterSharedState;
|
||||
import io.opentelemetry.extension.incubator.metrics.ExtendedLongUpDownCounterBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
package io.opentelemetry.contrib.resourceproviders;
|
||||
|
||||
import static io.opentelemetry.semconv.ResourceAttributes.SERVICE_NAME;
|
||||
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_NAME;
|
||||
import static java.util.logging.Level.FINE;
|
||||
import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
package io.opentelemetry.contrib.resourceproviders;
|
||||
|
||||
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_NAME;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
@ -12,7 +13,6 @@ import static org.mockito.Mockito.when;
|
|||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.semconv.ResourceAttributes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
|
@ -55,9 +55,7 @@ class AppServerServiceNameProviderTest {
|
|||
@Test
|
||||
void shouldApply() {
|
||||
Resource existing =
|
||||
Resource.builder()
|
||||
.put(ResourceAttributes.SERVICE_NAME.getKey(), "unknown_service:java")
|
||||
.build();
|
||||
Resource.builder().put(SERVICE_NAME.getKey(), "unknown_service:java").build();
|
||||
|
||||
ConfigProperties config = mock(ConfigProperties.class);
|
||||
|
||||
|
@ -82,8 +80,7 @@ class AppServerServiceNameProviderTest {
|
|||
|
||||
@Test
|
||||
void shouldApply_serviceNameAlreadyInResource() {
|
||||
Resource existing =
|
||||
Resource.builder().put(ResourceAttributes.SERVICE_NAME.getKey(), "shemp").build();
|
||||
Resource existing = Resource.builder().put(SERVICE_NAME.getKey(), "shemp").build();
|
||||
|
||||
ConfigProperties config = mock(ConfigProperties.class);
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@ otelJava.moduleName.set("io.opentelemetry.contrib.sampler")
|
|||
|
||||
dependencies {
|
||||
api("io.opentelemetry:opentelemetry-sdk")
|
||||
api("io.opentelemetry.semconv:opentelemetry-semconv")
|
||||
implementation("io.opentelemetry.semconv:opentelemetry-semconv")
|
||||
implementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating:1.25.0-alpha")
|
||||
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
|
||||
api("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
package io.opentelemetry.contrib.sampler;
|
||||
|
||||
import static io.opentelemetry.semconv.SemanticAttributes.THREAD_NAME;
|
||||
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_NAME;
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
|
||||
package io.opentelemetry.contrib.sampler;
|
||||
|
||||
import static io.opentelemetry.semconv.SemanticAttributes.THREAD_NAME;
|
||||
import static io.opentelemetry.semconv.SemanticAttributes.URL_FULL;
|
||||
import static io.opentelemetry.semconv.SemanticAttributes.URL_PATH;
|
||||
import static io.opentelemetry.semconv.UrlAttributes.URL_FULL;
|
||||
import static io.opentelemetry.semconv.UrlAttributes.URL_PATH;
|
||||
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_NAME;
|
||||
import static java.util.Collections.emptyList;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||
|
|
Loading…
Reference in New Issue