From c519396307508fc7838bf06b001e9e0a845760eb Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Mon, 27 Jan 2025 11:16:33 -0600 Subject: [PATCH 1/2] Bump to semantic-conventions v1.30.0 --- build.gradle.kts | 3 +- .../opentelemetry-semconv.txt | 15 +- .../ArtifactIncubatingAttributes.java | 6 +- .../incubating/AwsIncubatingAttributes.java | 8 +- .../incubating/AzureIncubatingAttributes.java | 93 +++++ .../CassandraIncubatingAttributes.java | 87 +++++ .../incubating/CicdIncubatingAttributes.java | 81 +++++ .../incubating/CloudIncubatingAttributes.java | 9 + .../incubating/CodeIncubatingAttributes.java | 50 ++- .../incubating/DbIncubatingAttributes.java | 332 +++++++++++++++--- .../DotnetIncubatingAttributes.java | 18 +- .../ElasticsearchIncubatingAttributes.java | 25 ++ .../incubating/EventIncubatingAttributes.java | 9 +- .../incubating/FaasIncubatingAttributes.java | 2 +- .../incubating/GenAiIncubatingAttributes.java | 41 ++- .../incubating/K8sIncubatingAttributes.java | 40 ++- .../NetworkIncubatingAttributes.java | 53 +++ .../ProcessIncubatingAttributes.java | 2 +- .../ProfileIncubatingAttributes.java | 3 + .../incubating/RpcIncubatingAttributes.java | 2 +- .../SecurityRuleIncubatingAttributes.java | 64 ++++ .../SystemIncubatingAttributes.java | 18 +- .../incubating/VcsIncubatingAttributes.java | 49 ++- .../IncubatingAvailabilityTest.java | 30 +- .../semconv/DotnetAttributes.java | 42 +++ .../io/opentelemetry/semconv/SchemaUrls.java | 1 + .../semconv/AvailabilityTest.java | 1 + 27 files changed, 986 insertions(+), 98 deletions(-) create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CassandraIncubatingAttributes.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ElasticsearchIncubatingAttributes.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SecurityRuleIncubatingAttributes.java create mode 100644 semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java diff --git a/build.gradle.kts b/build.gradle.kts index ae67503..0aff62e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,9 +11,10 @@ val snapshot = true // end // The release version of https://github.com/open-telemetry/semantic-conventions used to generate classes -var semanticConventionsVersion = "1.29.0" +var semanticConventionsVersion = "1.30.0" val schemaUrlVersions = listOf( semanticConventionsVersion, + "1.29.0", "1.28.0", "1.27.0", "1.26.0", diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt b/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt index 8b0e83a..e168e54 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt @@ -1,4 +1,4 @@ -Comparing source compatibility of opentelemetry-semconv-1.29.0-SNAPSHOT.jar against +Comparing source compatibility of opentelemetry-semconv-1.30.0-SNAPSHOT.jar against +++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.semconv.AttributeKeyTemplate (not serializable) +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. GENERIC TEMPLATES: +++ T:java.lang.Object @@ -17,6 +17,18 @@ Comparing source compatibility of opentelemetry-semconv-1.29.0-SNAPSHOT.jar agai +++ NEW SUPERCLASS: java.lang.Object +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.api.common.AttributeKey CLIENT_ADDRESS +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.api.common.AttributeKey CLIENT_PORT ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.semconv.DotnetAttributes (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.api.common.AttributeKey DOTNET_GC_HEAP_GENERATION ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.semconv.DotnetAttributes$DotnetGcHeapGenerationValues (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String GEN1 + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String GEN0 + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String GEN2 + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String LOH + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String POH +++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.semconv.ErrorAttributes (not serializable) +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. +++ NEW SUPERCLASS: java.lang.Object @@ -117,6 +129,7 @@ Comparing source compatibility of opentelemetry-semconv-1.29.0-SNAPSHOT.jar agai +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. +++ NEW SUPERCLASS: java.lang.Object +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_24_0 + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_30_0 +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_29_0 +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_28_0 +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_27_0 diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ArtifactIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ArtifactIncubatingAttributes.java index 3e6d5d8..a788352 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ArtifactIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ArtifactIncubatingAttributes.java @@ -24,9 +24,9 @@ public final class ArtifactIncubatingAttributes { /** * The full hash value (see - * glossary), of the built attestation. Some envelopes in the software attestation space also - * refer to this as the digest. + * glossary), of the built attestation. Some envelopes in the software attestation space + * also refer to this as the digest. */ public static final AttributeKey ARTIFACT_ATTESTATION_HASH = stringKey("artifact.attestation.hash"); diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingAttributes.java index 5cfd416..8cf1f00 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingAttributes.java @@ -151,6 +151,10 @@ public final class AwsIncubatingAttributes { /** The ARN of an EKS cluster. */ public static final AttributeKey AWS_EKS_CLUSTER_ARN = stringKey("aws.eks.cluster.arn"); + /** The AWS extended request ID as returned in the response header {@code x-amz-id-2}. */ + public static final AttributeKey AWS_EXTENDED_REQUEST_ID = + stringKey("aws.extended_request_id"); + /** * The full invoked ARN as provided on the {@code Context} passed to the function ({@code * Lambda-Runtime-Invoked-Function-Arn} header on the {@code /runtime/invocation/next} @@ -204,8 +208,8 @@ public final class AwsIncubatingAttributes { stringArrayKey("aws.log.stream.names"); /** - * The AWS request ID as returned in the response headers {@code x-amz-request-id} or {@code - * x-amz-requestid}. + * The AWS request ID as returned in the response headers {@code x-amzn-requestid}, {@code + * x-amzn-request-id} or {@code x-amz-request-id}. */ public static final AttributeKey AWS_REQUEST_ID = stringKey("aws.request_id"); diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java new file mode 100644 index 0000000..d4388a2 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java @@ -0,0 +1,93 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +import static io.opentelemetry.api.common.AttributeKey.doubleKey; +import static io.opentelemetry.api.common.AttributeKey.longKey; +import static io.opentelemetry.api.common.AttributeKey.stringArrayKey; +import static io.opentelemetry.api.common.AttributeKey.stringKey; + +import io.opentelemetry.api.common.AttributeKey; +import java.util.List; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 +@SuppressWarnings("unused") +public final class AzureIncubatingAttributes { + /** The unique identifier of the client instance. */ + public static final AttributeKey AZURE_CLIENT_ID = stringKey("azure.client.id"); + + /** Cosmos client connection mode. */ + public static final AttributeKey AZURE_COSMOSDB_CONNECTION_MODE = + stringKey("azure.cosmosdb.connection.mode"); + + /** + * Account or request consistency level. + */ + public static final AttributeKey AZURE_COSMOSDB_CONSISTENCY_LEVEL = + stringKey("azure.cosmosdb.consistency.level"); + + /** + * List of regions contacted during operation in the order that they were contacted. If there is + * more than one region listed, it indicates that the operation was performed on multiple regions + * i.e. cross-regional call. + * + *

Notes: + * + *

Region name matches the format of {@code displayName} in Azure + * Location API + */ + public static final AttributeKey> AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS = + stringArrayKey("azure.cosmosdb.operation.contacted_regions"); + + /** The number of request units consumed by the operation. */ + public static final AttributeKey AZURE_COSMOSDB_OPERATION_REQUEST_CHARGE = + doubleKey("azure.cosmosdb.operation.request_charge"); + + /** Request payload size in bytes. */ + public static final AttributeKey AZURE_COSMOSDB_REQUEST_BODY_SIZE = + longKey("azure.cosmosdb.request.body.size"); + + /** Cosmos DB sub status code. */ + public static final AttributeKey AZURE_COSMOSDB_RESPONSE_SUB_STATUS_CODE = + longKey("azure.cosmosdb.response.sub_status_code"); + + // Enum definitions + /** Values for {@link #AZURE_COSMOSDB_CONNECTION_MODE}. */ + public static final class AzureCosmosdbConnectionModeIncubatingValues { + /** Gateway (HTTP) connection. */ + public static final String GATEWAY = "gateway"; + + /** Direct connection. */ + public static final String DIRECT = "direct"; + + private AzureCosmosdbConnectionModeIncubatingValues() {} + } + + /** Values for {@link #AZURE_COSMOSDB_CONSISTENCY_LEVEL}. */ + public static final class AzureCosmosdbConsistencyLevelIncubatingValues { + /** strong. */ + public static final String STRONG = "Strong"; + + /** bounded_staleness. */ + public static final String BOUNDED_STALENESS = "BoundedStaleness"; + + /** session. */ + public static final String SESSION = "Session"; + + /** eventual. */ + public static final String EVENTUAL = "Eventual"; + + /** consistent_prefix. */ + public static final String CONSISTENT_PREFIX = "ConsistentPrefix"; + + private AzureCosmosdbConsistencyLevelIncubatingValues() {} + } + + private AzureIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CassandraIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CassandraIncubatingAttributes.java new file mode 100644 index 0000000..bd36f9d --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CassandraIncubatingAttributes.java @@ -0,0 +1,87 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +import static io.opentelemetry.api.common.AttributeKey.booleanKey; +import static io.opentelemetry.api.common.AttributeKey.longKey; +import static io.opentelemetry.api.common.AttributeKey.stringKey; + +import io.opentelemetry.api.common.AttributeKey; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 +@SuppressWarnings("unused") +public final class CassandraIncubatingAttributes { + /** + * The consistency level of the query. Based on consistency values from CQL. + */ + public static final AttributeKey CASSANDRA_CONSISTENCY_LEVEL = + stringKey("cassandra.consistency.level"); + + /** The data center of the coordinating node for a query. */ + public static final AttributeKey CASSANDRA_COORDINATOR_DC = + stringKey("cassandra.coordinator.dc"); + + /** The ID of the coordinating node for a query. */ + public static final AttributeKey CASSANDRA_COORDINATOR_ID = + stringKey("cassandra.coordinator.id"); + + /** The fetch size used for paging, i.e. how many rows will be returned at once. */ + public static final AttributeKey CASSANDRA_PAGE_SIZE = longKey("cassandra.page.size"); + + /** Whether or not the query is idempotent. */ + public static final AttributeKey CASSANDRA_QUERY_IDEMPOTENT = + booleanKey("cassandra.query.idempotent"); + + /** + * The number of times a query was speculatively executed. Not set or {@code 0} if the query was + * not executed speculatively. + */ + public static final AttributeKey CASSANDRA_SPECULATIVE_EXECUTION_COUNT = + longKey("cassandra.speculative_execution.count"); + + // Enum definitions + /** Values for {@link #CASSANDRA_CONSISTENCY_LEVEL}. */ + public static final class CassandraConsistencyLevelIncubatingValues { + /** all. */ + public static final String ALL = "all"; + + /** each_quorum. */ + public static final String EACH_QUORUM = "each_quorum"; + + /** quorum. */ + public static final String QUORUM = "quorum"; + + /** local_quorum. */ + public static final String LOCAL_QUORUM = "local_quorum"; + + /** one. */ + public static final String ONE = "one"; + + /** two. */ + public static final String TWO = "two"; + + /** three. */ + public static final String THREE = "three"; + + /** local_one. */ + public static final String LOCAL_ONE = "local_one"; + + /** any. */ + public static final String ANY = "any"; + + /** serial. */ + public static final String SERIAL = "serial"; + + /** local_serial. */ + public static final String LOCAL_SERIAL = "local_serial"; + + private CassandraConsistencyLevelIncubatingValues() {} + } + + private CassandraIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingAttributes.java index 1746610..5d27227 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingAttributes.java @@ -16,9 +16,16 @@ public final class CicdIncubatingAttributes { /** The human readable name of the pipeline within a CI/CD system. */ public static final AttributeKey CICD_PIPELINE_NAME = stringKey("cicd.pipeline.name"); + /** The result of a pipeline run. */ + public static final AttributeKey CICD_PIPELINE_RESULT = stringKey("cicd.pipeline.result"); + /** The unique identifier of a pipeline run within a CI/CD system. */ public static final AttributeKey CICD_PIPELINE_RUN_ID = stringKey("cicd.pipeline.run.id"); + /** The pipeline run goes through these states during its lifecycle. */ + public static final AttributeKey CICD_PIPELINE_RUN_STATE = + stringKey("cicd.pipeline.run.state"); + /** * The human readable name of a task within a pipeline. Task here most closely aligns with a computing process in a pipeline. @@ -42,7 +49,64 @@ public final class CicdIncubatingAttributes { public static final AttributeKey CICD_PIPELINE_TASK_TYPE = stringKey("cicd.pipeline.task.type"); + /** The name of a component of the CICD system. */ + public static final AttributeKey CICD_SYSTEM_COMPONENT = + stringKey("cicd.system.component"); + + /** The state of a CICD worker / agent. */ + public static final AttributeKey CICD_WORKER_STATE = stringKey("cicd.worker.state"); + // Enum definitions + /** Values for {@link #CICD_PIPELINE_RESULT}. */ + public static final class CicdPipelineResultIncubatingValues { + /** The pipeline run finished successfully. */ + public static final String SUCCESS = "success"; + + /** + * The pipeline run did not finish successfully, eg. due to a compile error or a failing test. + * Such failures are usually detected by non-zero exit codes of the tools executed in the + * pipeline run. + */ + public static final String FAILURE = "failure"; + + /** + * The pipeline run failed due to an error in the CICD system, eg. due to the worker being + * killed. + */ + public static final String ERROR = "error"; + + /** A timeout caused the pipeline run to be interrupted. */ + public static final String TIMEOUT = "timeout"; + + /** The pipeline run was cancelled, eg. by a user manually cancelling the pipeline run. */ + public static final String CANCELLATION = "cancellation"; + + /** The pipeline run was skipped, eg. due to a precondition not being met. */ + public static final String SKIP = "skip"; + + private CicdPipelineResultIncubatingValues() {} + } + + /** Values for {@link #CICD_PIPELINE_RUN_STATE}. */ + public static final class CicdPipelineRunStateIncubatingValues { + /** + * The run pending state spans from the event triggering the pipeline run until the execution of + * the run starts (eg. time spent in a queue, provisioning agents, creating run resources). + */ + public static final String PENDING = "pending"; + + /** The executing state spans the execution of any run tasks (eg. build, test). */ + public static final String EXECUTING = "executing"; + + /** + * The finalizing state spans from when the run has finished executing (eg. cleanup of run + * resources). + */ + public static final String FINALIZING = "finalizing"; + + private CicdPipelineRunStateIncubatingValues() {} + } + /** Values for {@link #CICD_PIPELINE_TASK_TYPE}. */ public static final class CicdPipelineTaskTypeIncubatingValues { /** build */ @@ -57,5 +121,22 @@ public static final class CicdPipelineTaskTypeIncubatingValues { private CicdPipelineTaskTypeIncubatingValues() {} } + /** Values for {@link #CICD_WORKER_STATE}. */ + public static final class CicdWorkerStateIncubatingValues { + /** + * The worker is not performing work for the CICD system. It is available to the CICD system to + * perform work on (online / idle). + */ + public static final String AVAILABLE = "available"; + + /** The worker is performing work for the CICD system. */ + public static final String BUSY = "busy"; + + /** The worker is not available to the CICD system (disconnected / down). */ + public static final String OFFLINE = "offline"; + + private CicdWorkerStateIncubatingValues() {} + } + private CicdIncubatingAttributes() {} } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java index 8ede5de..6e747fb 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java @@ -167,6 +167,12 @@ public static final class CloudPlatformIncubatingValues { /** Red Hat OpenShift on IBM Cloud */ public static final String IBM_CLOUD_OPENSHIFT = "ibm_cloud_openshift"; + /** Compute on Oracle Cloud Infrastructure (OCI) */ + public static final String ORACLE_CLOUD_COMPUTE = "oracle_cloud_compute"; + + /** Kubernetes Engine (OKE) on Oracle Cloud Infrastructure (OCI) */ + public static final String ORACLE_CLOUD_OKE = "oracle_cloud_oke"; + /** Tencent Cloud Cloud Virtual Machine (CVM) */ public static final String TENCENT_CLOUD_CVM = "tencent_cloud_cvm"; @@ -199,6 +205,9 @@ public static final class CloudProviderIncubatingValues { /** IBM Cloud */ public static final String IBM_CLOUD = "ibm_cloud"; + /** Oracle Cloud Infrastructure (OCI) */ + public static final String ORACLE_CLOUD = "oracle_cloud"; + /** Tencent Cloud */ public static final String TENCENT_CLOUD = "tencent_cloud"; diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CodeIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CodeIncubatingAttributes.java index a0175b3..bd644b1 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CodeIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CodeIncubatingAttributes.java @@ -15,32 +15,62 @@ @SuppressWarnings("unused") public final class CodeIncubatingAttributes { /** - * The column number in {@code code.filepath} best representing the operation. It SHOULD point - * within the code unit named in {@code code.function}. + * Deprecated, use {@code code.column.number} + * + *

+ * + * @deprecated Replaced by {@code code.column.number} */ - public static final AttributeKey CODE_COLUMN = longKey("code.column"); + @Deprecated public static final AttributeKey CODE_COLUMN = longKey("code.column"); + + /** + * The column number in {@code code.file.path} best representing the operation. It SHOULD point + * within the code unit named in {@code code.function.name}. + */ + public static final AttributeKey CODE_COLUMN_NUMBER = longKey("code.column.number"); /** * The source code file name that identifies the code unit as uniquely as possible (preferably an * absolute file path). */ + public static final AttributeKey CODE_FILE_PATH = stringKey("code.file.path"); + + /** Deprecated, use {@code code.file.path} instead */ public static final AttributeKey CODE_FILEPATH = stringKey("code.filepath"); + /** + * Deprecated, use {@code code.function.name} instead + * + *

+ * + * @deprecated Replaced by {@code code.function.name} + */ + @Deprecated public static final AttributeKey CODE_FUNCTION = stringKey("code.function"); + /** * The method or function name, or equivalent (usually rightmost part of the code unit's name). */ - public static final AttributeKey CODE_FUNCTION = stringKey("code.function"); + public static final AttributeKey CODE_FUNCTION_NAME = stringKey("code.function.name"); + + /** + * The line number in {@code code.file.path} best representing the operation. It SHOULD point + * within the code unit named in {@code code.function.name}. + */ + public static final AttributeKey CODE_LINE_NUMBER = longKey("code.line.number"); /** - * The line number in {@code code.filepath} best representing the operation. It SHOULD point - * within the code unit named in {@code code.function}. + * Deprecated, use {@code code.line.number} instead + * + *

+ * + * @deprecated Replaced by {@code code.line.number} */ - public static final AttributeKey CODE_LINENO = longKey("code.lineno"); + @Deprecated public static final AttributeKey CODE_LINENO = longKey("code.lineno"); /** - * The "namespace" within which {@code code.function} is defined. Usually the qualified class or - * module name, such that {@code code.namespace} + some separator + {@code code.function} form a - * unique identifier for the code unit. + * The "namespace" within which {@code code.function.name} is defined. Usually the qualified class + * or module name, such that {@code code.namespace} + some separator + {@code code.function.name} + * form a unique identifier for the code unit. */ public static final AttributeKey CODE_NAMESPACE = stringKey("code.namespace"); diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java index cd2b250..9fafeaf 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java @@ -21,31 +21,67 @@ @SuppressWarnings("unused") public final class DbIncubatingAttributes { /** - * The consistency level of the query. Based on consistency values from CQL. + * Deprecated, use {@code cassandra.consistency.level} instead. + * + *

+ * + * @deprecated Replaced by {@code cassandra.consistency.level}. */ + @Deprecated public static final AttributeKey DB_CASSANDRA_CONSISTENCY_LEVEL = stringKey("db.cassandra.consistency_level"); - /** The data center of the coordinating node for a query. */ + /** + * Deprecated, use {@code cassandra.coordinator.dc} instead. + * + *

+ * + * @deprecated Replaced by {@code cassandra.coordinator.dc}. + */ + @Deprecated public static final AttributeKey DB_CASSANDRA_COORDINATOR_DC = stringKey("db.cassandra.coordinator.dc"); - /** The ID of the coordinating node for a query. */ + /** + * Deprecated, use {@code cassandra.coordinator.id} instead. + * + *

+ * + * @deprecated Replaced by {@code cassandra.coordinator.id}. + */ + @Deprecated public static final AttributeKey DB_CASSANDRA_COORDINATOR_ID = stringKey("db.cassandra.coordinator.id"); - /** Whether or not the query is idempotent. */ + /** + * Deprecated, use {@code cassandra.query.idempotent} instead. + * + *

+ * + * @deprecated Replaced by {@code cassandra.query.idempotent}. + */ + @Deprecated public static final AttributeKey DB_CASSANDRA_IDEMPOTENCE = booleanKey("db.cassandra.idempotence"); - /** The fetch size used for paging, i.e. how many rows will be returned at once. */ + /** + * Deprecated, use {@code cassandra.page.size} instead. + * + *

+ * + * @deprecated Replaced by {@code cassandra.page.size}. + */ + @Deprecated public static final AttributeKey DB_CASSANDRA_PAGE_SIZE = longKey("db.cassandra.page_size"); /** - * The number of times a query was speculatively executed. Not set or {@code 0} if the query was - * not executed speculatively. + * Deprecated, use {@code cassandra.speculative_execution.count} instead. + * + *

+ * + * @deprecated Replaced by {@code cassandra.speculative_execution.count}. */ + @Deprecated public static final AttributeKey DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = longKey("db.cassandra.speculative_execution_count"); @@ -109,8 +145,6 @@ public final class DbIncubatingAttributes { * *

For batch operations, if the individual operations are known to have the same collection * name then that collection name SHOULD be used. - * - *

This attribute has stability level RELEASE CANDIDATE. */ public static final AttributeKey DB_COLLECTION_NAME = stringKey("db.collection.name"); @@ -124,18 +158,36 @@ public final class DbIncubatingAttributes { @Deprecated public static final AttributeKey DB_CONNECTION_STRING = stringKey("db.connection_string"); - /** Unique Cosmos client instance id. */ + /** + * Deprecated, use {@code azure.client.id} instead. + * + *

+ * + * @deprecated Replaced by {@code azure.client.id}. + */ + @Deprecated public static final AttributeKey DB_COSMOSDB_CLIENT_ID = stringKey("db.cosmosdb.client_id"); - /** Cosmos client connection mode. */ + /** + * Deprecated, use {@code azure.cosmosdb.connection.mode} instead. + * + *

+ * + * @deprecated Replaced by {@code azure.cosmosdb.connection.mode}. + */ + @Deprecated public static final AttributeKey DB_COSMOSDB_CONNECTION_MODE = stringKey("db.cosmosdb.connection_mode"); /** - * Account or request consistency level. + * Deprecated, use {@code cosmosdb.consistency.level} instead. + * + *

+ * + * @deprecated Replaced by {@code azure.cosmosdb.consistency.level}. */ + @Deprecated public static final AttributeKey DB_COSMOSDB_CONSISTENCY_LEVEL = stringKey("db.cosmosdb.consistency_level"); @@ -162,24 +214,35 @@ public final class DbIncubatingAttributes { stringKey("db.cosmosdb.operation_type"); /** - * List of regions contacted during operation in the order that they were contacted. If there is - * more than one region listed, it indicates that the operation was performed on multiple regions - * i.e. cross-regional call. + * Deprecated, use {@code azure.cosmosdb.operation.contacted_regions} instead. * - *

Notes: + *

* - *

Region name matches the format of {@code displayName} in Azure - * Location API + * @deprecated Replaced by {@code azure.cosmosdb.operation.contacted_regions}. */ + @Deprecated public static final AttributeKey> DB_COSMOSDB_REGIONS_CONTACTED = stringArrayKey("db.cosmosdb.regions_contacted"); - /** Request units consumed for the operation. */ + /** + * Deprecated, use {@code azure.cosmosdb.operation.request_charge} instead. + * + *

+ * + * @deprecated Replaced by {@code azure.cosmosdb.operation.request_charge}. + */ + @Deprecated public static final AttributeKey DB_COSMOSDB_REQUEST_CHARGE = doubleKey("db.cosmosdb.request_charge"); - /** Request payload size in bytes. */ + /** + * Deprecated, use {@code azure.cosmosdb.request.body.size} instead. + * + *

+ * + * @deprecated Replaced by {@code azure.cosmosdb.request.body.size}. + */ + @Deprecated public static final AttributeKey DB_COSMOSDB_REQUEST_CONTENT_LENGTH = longKey("db.cosmosdb.request_content_length"); @@ -194,7 +257,14 @@ public final class DbIncubatingAttributes { public static final AttributeKey DB_COSMOSDB_STATUS_CODE = longKey("db.cosmosdb.status_code"); - /** Cosmos DB sub status code. */ + /** + * Deprecated, use {@code azure.cosmosdb.response.sub_status_code} instead. + * + *

+ * + * @deprecated Replaced by {@code azure.cosmosdb.response.sub_status_code}. + */ + @Deprecated public static final AttributeKey DB_COSMOSDB_SUB_STATUS_CODE = longKey("db.cosmosdb.sub_status_code"); @@ -210,22 +280,24 @@ public final class DbIncubatingAttributes { stringKey("db.elasticsearch.cluster.name"); /** - * Represents the human-readable identifier of the node/instance to which a request was routed. + * Deprecated, use {@code elasticsearch.node.name} instead. + * + *

+ * + * @deprecated Replaced by {@code elasticsearch.node.name}. */ + @Deprecated public static final AttributeKey DB_ELASTICSEARCH_NODE_NAME = stringKey("db.elasticsearch.node.name"); /** - * A dynamic value in the url path. + * Deprecated, use {@code db.operation.parameter} instead. * - *

Notes: + *

* - *

Many Elasticsearch url paths allow dynamic values. These SHOULD be recorded in span - * attributes in the format {@code db.elasticsearch.path_parts.}, where {@code } is the - * url path part name. The implementation SHOULD reference the elasticsearch - * schema in order to map the path part values to their names. + * @deprecated Replaced by {@code db.operation.parameter}. */ + @Deprecated public static final AttributeKeyTemplate DB_ELASTICSEARCH_PATH_PARTS = stringKeyTemplate("db.elasticsearch.path_parts"); @@ -293,8 +365,7 @@ public final class DbIncubatingAttributes { * general namespaces, to ensure that "startswith" queries for the more general namespaces will be * valid. Semantic conventions for individual database systems SHOULD document what {@code * db.namespace} means in the context of that system. It is RECOMMENDED to capture the value as - * provided by the application without attempting to do any case normalization. This attribute has - * stability level RELEASE CANDIDATE. + * provided by the application without attempting to do any case normalization. */ public static final AttributeKey DB_NAMESPACE = stringKey("db.namespace"); @@ -313,8 +384,7 @@ public final class DbIncubatingAttributes { *

Notes: * *

Operations are only considered batches when they contain two or more operations, and so - * {@code db.operation.batch.size} SHOULD never be {@code 1}. This attribute has stability level - * RELEASE CANDIDATE. + * {@code db.operation.batch.size} SHOULD never be {@code 1}. */ public static final AttributeKey DB_OPERATION_BATCH_SIZE = longKey("db.operation.batch.size"); @@ -334,8 +404,6 @@ public final class DbIncubatingAttributes { * then that operation name SHOULD be used prepended by {@code BATCH }, otherwise {@code * db.operation.name} SHOULD be {@code BATCH} or some other database system specific term if more * applicable. - * - *

This attribute has stability level RELEASE CANDIDATE. */ public static final AttributeKey DB_OPERATION_NAME = stringKey("db.operation.name"); @@ -348,7 +416,7 @@ public final class DbIncubatingAttributes { *

If a parameter has no name and instead is referenced only by index, then {@code } * SHOULD be the 0-based index. If {@code db.query.text} is also captured, then {@code * db.operation.parameter.} SHOULD match up with the parameterized placeholders present in - * {@code db.query.text}. This attribute has stability level RELEASE CANDIDATE. + * {@code db.query.text}. */ public static final AttributeKeyTemplate DB_OPERATION_PARAMETER = stringKeyTemplate("db.operation.parameter"); @@ -376,7 +444,7 @@ public final class DbIncubatingAttributes { * through instrumentation hooks or other means. If it is not available, instrumentations that * support query parsing SHOULD generate a summary following Generating - * query summary section. This attribute has stability level RELEASE CANDIDATE. + * query summary section. */ public static final AttributeKey DB_QUERY_SUMMARY = stringKey("db.query.summary"); @@ -393,8 +461,7 @@ public final class DbIncubatingAttributes { * separator if more applicable. Even though parameterized query text can potentially have * sensitive data, by using a parameterized query the user is giving a strong signal that any * sensitive data will be passed as parameter values, and the benefit to observability of - * capturing the static part of the query text by default outweighs the risk. This attribute has - * stability level RELEASE CANDIDATE. + * capturing the static part of the query text by default outweighs the risk. */ public static final AttributeKey DB_QUERY_TEXT = stringKey("db.query.text"); @@ -421,8 +488,7 @@ public final class DbIncubatingAttributes { *

The status code returned by the database. Usually it represents an error code, but may also * represent partial success, warning, or differentiate between various types of successful * outcomes. Semantic conventions for individual database systems SHOULD document what {@code - * db.response.status_code} means in the context of that system. This attribute has stability - * level RELEASE CANDIDATE. + * db.response.status_code} means in the context of that system. */ public static final AttributeKey DB_RESPONSE_STATUS_CODE = stringKey("db.response.status_code"); @@ -445,17 +511,25 @@ public final class DbIncubatingAttributes { */ @Deprecated public static final AttributeKey DB_STATEMENT = stringKey("db.statement"); + /** + * Deprecated, use {@code db.system.name} instead. + * + *

+ * + * @deprecated Replaced by {@code db.system.name}. + */ + @Deprecated public static final AttributeKey DB_SYSTEM = stringKey("db.system"); + /** * The database management system (DBMS) product as identified by the client instrumentation. * *

Notes: * *

The actual DBMS may differ from the one identified by the client. For example, when using - * PostgreSQL client libraries to connect to a CockroachDB, the {@code db.system} is set to {@code - * postgresql} based on the instrumentation's best knowledge. This attribute has stability level - * RELEASE CANDIDATE. + * PostgreSQL client libraries to connect to a CockroachDB, the {@code db.system.name} is set to + * {@code postgresql} based on the instrumentation's best knowledge. */ - public static final AttributeKey DB_SYSTEM = stringKey("db.system"); + public static final AttributeKey DB_SYSTEM_NAME = stringKey("db.system.name"); /** * Deprecated, no replacement at this time. @@ -467,7 +541,12 @@ public final class DbIncubatingAttributes { @Deprecated public static final AttributeKey DB_USER = stringKey("db.user"); // Enum definitions - /** Values for {@link #DB_CASSANDRA_CONSISTENCY_LEVEL}. */ + /** + * Values for {@link #DB_CASSANDRA_CONSISTENCY_LEVEL} + * + * @deprecated Replaced by {@code cassandra.consistency.level}. + */ + @Deprecated public static final class DbCassandraConsistencyLevelIncubatingValues { /** all. */ public static final String ALL = "all"; @@ -532,7 +611,12 @@ public static final class DbClientConnectionsStateIncubatingValues { private DbClientConnectionsStateIncubatingValues() {} } - /** Values for {@link #DB_COSMOSDB_CONNECTION_MODE}. */ + /** + * Values for {@link #DB_COSMOSDB_CONNECTION_MODE} + * + * @deprecated Replaced by {@code azure.cosmosdb.connection.mode}. + */ + @Deprecated public static final class DbCosmosdbConnectionModeIncubatingValues { /** Gateway (HTTP) connection. */ public static final String GATEWAY = "gateway"; @@ -543,7 +627,12 @@ public static final class DbCosmosdbConnectionModeIncubatingValues { private DbCosmosdbConnectionModeIncubatingValues() {} } - /** Values for {@link #DB_COSMOSDB_CONSISTENCY_LEVEL}. */ + /** + * Values for {@link #DB_COSMOSDB_CONSISTENCY_LEVEL} + * + * @deprecated Replaced by {@code azure.cosmosdb.consistency.level}. + */ + @Deprecated public static final class DbCosmosdbConsistencyLevelIncubatingValues { /** strong. */ public static final String STRONG = "Strong"; @@ -618,7 +707,12 @@ public static final class DbCosmosdbOperationTypeIncubatingValues { private DbCosmosdbOperationTypeIncubatingValues() {} } - /** Values for {@link #DB_SYSTEM}. */ + /** + * Values for {@link #DB_SYSTEM} + * + * @deprecated Replaced by {@code db.system.name}. + */ + @Deprecated public static final class DbSystemIncubatingValues { /** Some other SQL database. Fallback only. See notes. */ public static final String OTHER_SQL = "other_sql"; @@ -785,5 +879,139 @@ public static final class DbSystemIncubatingValues { private DbSystemIncubatingValues() {} } + /** Values for {@link #DB_SYSTEM_NAME}. */ + public static final class DbSystemNameIncubatingValues { + /** Some other SQL database. Fallback only. */ + public static final String OTHER_SQL = "other_sql"; + + /** + * Adabas (Adaptable Database + * System) + */ + public static final String SOFTWAREAG_ADABAS = "softwareag.adabas"; + + /** Actian Ingres */ + public static final String ACTIAN_INGRES = "actian.ingres"; + + /** Amazon DynamoDB */ + public static final String AWS_DYNAMODB = "aws.dynamodb"; + + /** Amazon Redshift */ + public static final String AWS_REDSHIFT = "aws.redshift"; + + /** Azure Cosmos DB */ + public static final String AZURE_COSMOSDB = "azure.cosmosdb"; + + /** InterSystems Caché */ + public static final String INTERSYSTEMS_CACHE = "intersystems.cache"; + + /** Apache Cassandra */ + public static final String CASSANDRA = "cassandra"; + + /** ClickHouse */ + public static final String CLICKHOUSE = "clickhouse"; + + /** CockroachDB */ + public static final String COCKROACHDB = "cockroachdb"; + + /** Couchbase */ + public static final String COUCHBASE = "couchbase"; + + /** Apache CouchDB */ + public static final String COUCHDB = "couchdb"; + + /** Apache Derby */ + public static final String DERBY = "derby"; + + /** Elasticsearch */ + public static final String ELASTICSEARCH = "elasticsearch"; + + /** Firebird */ + public static final String FIREBIRDSQL = "firebirdsql"; + + /** Google Cloud Spanner */ + public static final String GCP_SPANNER = "gcp.spanner"; + + /** Apache Geode */ + public static final String GEODE = "geode"; + + /** H2 Database */ + public static final String H2DATABASE = "h2database"; + + /** Apache HBase */ + public static final String HBASE = "hbase"; + + /** Apache Hive */ + public static final String HIVE = "hive"; + + /** HyperSQL Database */ + public static final String HSQLDB = "hsqldb"; + + /** IBM Db2 */ + public static final String IBM_DB2 = "ibm.db2"; + + /** IBM Informix */ + public static final String IBM_INFORMIX = "ibm.informix"; + + /** IBM Netezza */ + public static final String IBM_NETEZZA = "ibm.netezza"; + + /** InfluxDB */ + public static final String INFLUXDB = "influxdb"; + + /** Instant */ + public static final String INSTANTDB = "instantdb"; + + /** MariaDB */ + public static final String MARIADB = "mariadb"; + + /** Memcached */ + public static final String MEMCACHED = "memcached"; + + /** MongoDB */ + public static final String MONGODB = "mongodb"; + + /** Microsoft SQL Server */ + public static final String MICROSOFT_SQL_SERVER = "microsoft.sql_server"; + + /** MySQL */ + public static final String MYSQL = "mysql"; + + /** Neo4j */ + public static final String NEO4J = "neo4j"; + + /** OpenSearch */ + public static final String OPENSEARCH = "opensearch"; + + /** Oracle Database */ + public static final String ORACLE_DB = "oracle.db"; + + /** PostgreSQL */ + public static final String POSTGRESQL = "postgresql"; + + /** Redis */ + public static final String REDIS = "redis"; + + /** + * SAP + * HANA + */ + public static final String SAP_HANA = "sap.hana"; + + /** SAP MaxDB */ + public static final String SAP_MAXDB = "sap.maxdb"; + + /** SQLite */ + public static final String SQLITE = "sqlite"; + + /** Teradata */ + public static final String TERADATA = "teradata"; + + /** Trino */ + public static final String TRINO = "trino"; + + private DbSystemNameIncubatingValues() {} + } + private DbIncubatingAttributes() {} } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java index c9655da..227d3d9 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java @@ -13,12 +13,26 @@ // buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 @SuppressWarnings("unused") public final class DotnetIncubatingAttributes { - /** Name of the garbage collector managed heap generation. */ + /** + * Name of the garbage collector managed heap generation. + * + *

+ * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.DotnetAttributes#DOTNET_GC_HEAP_GENERATION} attribute. + */ + @Deprecated public static final AttributeKey DOTNET_GC_HEAP_GENERATION = stringKey("dotnet.gc.heap.generation"); // Enum definitions - /** Values for {@link #DOTNET_GC_HEAP_GENERATION}. */ + /** + * Values for {@link #DOTNET_GC_HEAP_GENERATION}. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.DotnetAttributes.DotnetGcHeapGenerationValues}. + */ + @Deprecated public static final class DotnetGcHeapGenerationIncubatingValues { /** Generation 0 */ public static final String GEN0 = "gen0"; diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ElasticsearchIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ElasticsearchIncubatingAttributes.java new file mode 100644 index 0000000..e04bf1f --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ElasticsearchIncubatingAttributes.java @@ -0,0 +1,25 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +import static io.opentelemetry.api.common.AttributeKey.stringKey; + +import io.opentelemetry.api.common.AttributeKey; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 +@SuppressWarnings("unused") +public final class ElasticsearchIncubatingAttributes { + /** + * Represents the human-readable identifier of the node/instance to which a request was routed. + */ + public static final AttributeKey ELASTICSEARCH_NODE_NAME = + stringKey("elasticsearch.node.name"); + + // Enum definitions + + private ElasticsearchIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EventIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EventIncubatingAttributes.java index 42a9b78..a4be0c8 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EventIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EventIncubatingAttributes.java @@ -16,14 +16,11 @@ public final class EventIncubatingAttributes { /** * Identifies the class / type of event. * - *

Notes: + *

* - *

Event names are subject to the same rules as attribute names. Notably, event names are - * namespaced to avoid collisions and provide a clean separation of semantics for events in - * separate domains like browser, mobile, and kubernetes. + * @deprecated Replaced by EventName top-level field on the LogRecord */ - public static final AttributeKey EVENT_NAME = stringKey("event.name"); + @Deprecated public static final AttributeKey EVENT_NAME = stringKey("event.name"); // Enum definitions diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java index 88d8139..e27f054 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java @@ -115,7 +115,7 @@ public final class FaasIncubatingAttributes { *

This is the name of the function as configured/deployed on the FaaS platform and is usually * different from the name of the callback function (which may be stored in the {@code code.namespace}/{@code - * code.function} span attributes). + * code.function.name} span attributes). * *

For some cloud providers, the above definition is ambiguous. The following definition of * function name MUST be used for this attribute (and consequently the span name) for the listed diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java index 1cefc90..9fd95dc 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java @@ -31,7 +31,14 @@ public final class GenAiIncubatingAttributes { public static final AttributeKey GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT = stringKey("gen_ai.openai.request.response_format"); - /** Requests with same seed value more likely to return same result. */ + /** + * Deprecated, use {@code gen_ai.request.seed}. + * + *

+ * + * @deprecated Replaced by {@code gen_ai.request.seed} attribute. + */ + @Deprecated public static final AttributeKey GEN_AI_OPENAI_REQUEST_SEED = longKey("gen_ai.openai.request.seed"); @@ -95,6 +102,9 @@ public final class GenAiIncubatingAttributes { public static final AttributeKey GEN_AI_REQUEST_PRESENCE_PENALTY = doubleKey("gen_ai.request.presence_penalty"); + /** Requests with same seed value more likely to return same result. */ + public static final AttributeKey GEN_AI_REQUEST_SEED = longKey("gen_ai.request.seed"); + /** List of sequences that the model will use to stop generating further tokens. */ public static final AttributeKey> GEN_AI_REQUEST_STOP_SEQUENCES = stringArrayKey("gen_ai.request.stop_sequences"); @@ -131,9 +141,11 @@ public final class GenAiIncubatingAttributes { *

The {@code gen_ai.system} describes a family of GenAI models with specific model identified * by {@code gen_ai.request.model} and {@code gen_ai.response.model} attributes. * - *

The actual GenAI product may differ from the one identified by the client. For example, when - * using OpenAI client libraries to communicate with Mistral, the {@code gen_ai.system} is set to - * {@code openai} based on the instrumentation's best knowledge. + *

The actual GenAI product may differ from the one identified by the client. Multiple systems, + * including Azure OpenAI and Gemini, are accessible by OpenAI client libraries. In such cases, + * the {@code gen_ai.system} is set to {@code openai} based on the instrumentation's best + * knowledge, instead of the actual system. The {@code server.address} attribute may help identify + * the actual system in use for {@code openai}. * *

For custom model, a custom friendly name SHOULD be used. If none of these options apply, the * {@code gen_ai.system} SHOULD be set to {@code _OTHER}. @@ -232,6 +244,9 @@ public static final class GenAiSystemIncubatingValues { /** Vertex AI */ public static final String VERTEX_AI = "vertex_ai"; + /** Gemini */ + public static final String GEMINI = "gemini"; + /** Anthropic */ public static final String ANTHROPIC = "anthropic"; @@ -241,12 +256,30 @@ public static final class GenAiSystemIncubatingValues { /** Azure AI Inference */ public static final String AZ_AI_INFERENCE = "az.ai.inference"; + /** Azure OpenAI */ + public static final String AZ_AI_OPENAI = "az.ai.openai"; + /** IBM Watsonx AI */ public static final String IBM_WATSONX_AI = "ibm.watsonx.ai"; /** AWS Bedrock */ public static final String AWS_BEDROCK = "aws.bedrock"; + /** Perplexity */ + public static final String PERPLEXITY = "perplexity"; + + /** xAI */ + public static final String XAI = "xai"; + + /** DeepSeek */ + public static final String DEEPSEEK = "deepseek"; + + /** Groq */ + public static final String GROQ = "groq"; + + /** Mistral AI */ + public static final String MISTRAL_AI = "mistral_ai"; + private GenAiSystemIncubatingValues() {} } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java index 754ecc3..e9a539d 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java @@ -92,6 +92,17 @@ public final class K8sIncubatingAttributes { /** The name of the namespace that the pod is running in. */ public static final AttributeKey K8S_NAMESPACE_NAME = stringKey("k8s.namespace.name"); + /** + * The phase of the K8s namespace. + * + *

Notes: + * + *

This attribute aligns with the {@code phase} field of the K8s + * NamespaceStatus + */ + public static final AttributeKey K8S_NAMESPACE_PHASE = stringKey("k8s.namespace.phase"); + /** The name of the Node. */ public static final AttributeKey K8S_NODE_NAME = stringKey("k8s.node.name"); @@ -148,44 +159,61 @@ public final class K8sIncubatingAttributes { public static final AttributeKey K8S_VOLUME_TYPE = stringKey("k8s.volume.type"); // Enum definitions + /** Values for {@link #K8S_NAMESPACE_PHASE}. */ + public static final class K8sNamespacePhaseIncubatingValues { + /** + * Active namespace phase as described by K8s API + */ + public static final String ACTIVE = "active"; + + /** + * Terminating namespace phase as described by K8s API + */ + public static final String TERMINATING = "terminating"; + + private K8sNamespacePhaseIncubatingValues() {} + } + /** Values for {@link #K8S_VOLUME_TYPE}. */ public static final class K8sVolumeTypeIncubatingValues { /** * A persistentVolumeClaim + * href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim">persistentVolumeClaim * volume */ public static final String PERSISTENT_VOLUME_CLAIM = "persistentVolumeClaim"; /** * A configMap + * href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap">configMap * volume */ public static final String CONFIG_MAP = "configMap"; /** * A downwardAPI + * href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi">downwardAPI * volume */ public static final String DOWNWARD_API = "downwardAPI"; /** * An emptyDir + * href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir">emptyDir * volume */ public static final String EMPTY_DIR = "emptyDir"; /** - * A secret + * A secret * volume */ public static final String SECRET = "secret"; /** - * A local + * A local * volume */ public static final String LOCAL = "local"; diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java index 7d6776e..22ad6bd 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java @@ -26,6 +26,17 @@ public final class NetworkIncubatingAttributes { /** The name of the mobile carrier. */ public static final AttributeKey NETWORK_CARRIER_NAME = stringKey("network.carrier.name"); + /** + * The state of network connection + * + *

Notes: + * + *

Connection states are defined as part of the rfc9293 + */ + public static final AttributeKey NETWORK_CONNECTION_STATE = + stringKey("network.connection.state"); + /** * This describes more details regarding the connection.type. It may be the type of cell * technology connection, but it could be used for describing details about a wifi connection. @@ -37,6 +48,10 @@ public final class NetworkIncubatingAttributes { public static final AttributeKey NETWORK_CONNECTION_TYPE = stringKey("network.connection.type"); + /** The network interface name. */ + public static final AttributeKey NETWORK_INTERFACE_NAME = + stringKey("network.interface.name"); + /** The network IO operation direction. */ public static final AttributeKey NETWORK_IO_DIRECTION = stringKey("network.io.direction"); @@ -153,6 +168,44 @@ public final class NetworkIncubatingAttributes { @Deprecated public static final AttributeKey NETWORK_TYPE = stringKey("network.type"); // Enum definitions + /** Values for {@link #NETWORK_CONNECTION_STATE}. */ + public static final class NetworkConnectionStateIncubatingValues { + /** closed. */ + public static final String CLOSED = "closed"; + + /** close_wait. */ + public static final String CLOSE_WAIT = "close_wait"; + + /** closing. */ + public static final String CLOSING = "closing"; + + /** established. */ + public static final String ESTABLISHED = "established"; + + /** fin_wait_1. */ + public static final String FIN_WAIT_1 = "fin_wait_1"; + + /** fin_wait_2. */ + public static final String FIN_WAIT_2 = "fin_wait_2"; + + /** last_ack. */ + public static final String LAST_ACK = "last_ack"; + + /** listen. */ + public static final String LISTEN = "listen"; + + /** syn_received. */ + public static final String SYN_RECEIVED = "syn_received"; + + /** syn_sent. */ + public static final String SYN_SENT = "syn_sent"; + + /** time_wait. */ + public static final String TIME_WAIT = "time_wait"; + + private NetworkConnectionStateIncubatingValues() {} + } + /** Values for {@link #NETWORK_CONNECTION_SUBTYPE}. */ public static final class NetworkConnectionSubtypeIncubatingValues { /** GPRS */ diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java index 679ce11..0cb2883 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java @@ -133,7 +133,7 @@ public final class ProcessIncubatingAttributes { *

Control groups (cgroups) are a kernel feature used to organize and manage process resources. * This attribute provides the path(s) to the cgroup(s) associated with the process, which should * match the contents of the /proc//cgroup file. + * href="https://man7.org/linux/man-pages/man7/cgroups.7.html">/proc/[PID]/cgroup file. */ public static final AttributeKey PROCESS_LINUX_CGROUP = stringKey("process.linux.cgroup"); diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProfileIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProfileIncubatingAttributes.java index 320ad14..55ff371 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProfileIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProfileIncubatingAttributes.java @@ -51,6 +51,9 @@ public static final class ProfileFrameTypeIncubatingValues { /** V8JS */ public static final String V8JS = "v8js"; + /** Erlang */ + public static final String BEAM = "beam"; + private ProfileFrameTypeIncubatingValues() {} } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/RpcIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/RpcIncubatingAttributes.java index 46eca4e..718ec6d 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/RpcIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/RpcIncubatingAttributes.java @@ -131,7 +131,7 @@ public final class RpcIncubatingAttributes { *

Notes: * *

This is the logical name of the method from the RPC interface perspective, which can be - * different from the name of any implementing method/function. The {@code code.function} + * different from the name of any implementing method/function. The {@code code.function.name} * attribute may be used to store the latter (e.g., method actually executing the call on the * server side, RPC client stub method on the client side). */ diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SecurityRuleIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SecurityRuleIncubatingAttributes.java new file mode 100644 index 0000000..c563644 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SecurityRuleIncubatingAttributes.java @@ -0,0 +1,64 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +import static io.opentelemetry.api.common.AttributeKey.stringKey; + +import io.opentelemetry.api.common.AttributeKey; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 +@SuppressWarnings("unused") +public final class SecurityRuleIncubatingAttributes { + /** + * A categorization value keyword used by the entity using the rule for detection of this event + */ + public static final AttributeKey SECURITY_RULE_CATEGORY = + stringKey("security_rule.category"); + + /** The description of the rule generating the event. */ + public static final AttributeKey SECURITY_RULE_DESCRIPTION = + stringKey("security_rule.description"); + + /** Name of the license under which the rule used to generate this event is made available. */ + public static final AttributeKey SECURITY_RULE_LICENSE = + stringKey("security_rule.license"); + + /** The name of the rule or signature generating the event. */ + public static final AttributeKey SECURITY_RULE_NAME = stringKey("security_rule.name"); + + /** + * Reference URL to additional information about the rule used to generate this event. + * + *

Notes: + * + *

The URL can point to the vendor’s documentation about the rule. If that’s not available, it + * can also be a link to a more general page describing this type of alert. + */ + public static final AttributeKey SECURITY_RULE_REFERENCE = + stringKey("security_rule.reference"); + + /** + * Name of the ruleset, policy, group, or parent category in which the rule used to generate this + * event is a member. + */ + public static final AttributeKey SECURITY_RULE_RULESET_NAME = + stringKey("security_rule.ruleset.name"); + + /** + * A rule ID that is unique within the scope of a set or group of agents, observers, or other + * entities using the rule for detection of this event. + */ + public static final AttributeKey SECURITY_RULE_UUID = stringKey("security_rule.uuid"); + + /** The version / revision of the rule being used for analysis. */ + public static final AttributeKey SECURITY_RULE_VERSION = + stringKey("security_rule.version"); + + // Enum definitions + + private SecurityRuleIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SystemIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SystemIncubatingAttributes.java index 7a85bba..fc33484 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SystemIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/SystemIncubatingAttributes.java @@ -50,7 +50,15 @@ public final class SystemIncubatingAttributes { /** The memory state */ public static final AttributeKey SYSTEM_MEMORY_STATE = stringKey("system.memory.state"); - /** A stateless protocol MUST NOT set this attribute */ + /** + * Deprecated, use {@code network.connection.state} instead. + * + *

+ * + * @deprecated Removed, report network connection state with {@code network.connection.state} + * attribute + */ + @Deprecated public static final AttributeKey SYSTEM_NETWORK_STATE = stringKey("system.network.state"); /** The paging access direction */ @@ -171,7 +179,13 @@ public static final class SystemMemoryStateIncubatingValues { private SystemMemoryStateIncubatingValues() {} } - /** Values for {@link #SYSTEM_NETWORK_STATE}. */ + /** + * Values for {@link #SYSTEM_NETWORK_STATE} + * + * @deprecated Removed, report network connection state with {@code network.connection.state} + * attribute + */ + @Deprecated public static final class SystemNetworkStateIncubatingValues { /** close. */ public static final String CLOSE = "close"; diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java index fe0baa5..aa0106a 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java @@ -34,6 +34,12 @@ public final class VcsIncubatingAttributes { /** * The name of the reference such as * branch or tag in the repository. + * + *

Notes: + * + *

{@code base} refers to the starting point of a change. For example, {@code main} would be + * the base reference of type branch if you've created a new reference of type branch from it and + * created new commits. */ public static final AttributeKey VCS_REF_BASE_NAME = stringKey("vcs.ref.base.name"); @@ -44,7 +50,9 @@ public final class VcsIncubatingAttributes { * *

Notes: * - *

The revision can be a full {@code base} refers to the starting point of a change. For example, {@code main} would be + * the base reference of type branch if you've created a new reference of type branch from it and + * created new commits. The revision can be a full hash value (see * glossary), of the recorded change to a ref within a repository pointing to a commit commit object. It does not necessarily have to @@ -60,12 +68,22 @@ public final class VcsIncubatingAttributes { /** * The type of the reference in the * repository. + * + *

Notes: + * + *

{@code base} refers to the starting point of a change. For example, {@code main} would be + * the base reference of type branch if you've created a new reference of type branch from it and + * created new commits. */ public static final AttributeKey VCS_REF_BASE_TYPE = stringKey("vcs.ref.base.type"); /** * The name of the reference such as * branch or tag in the repository. + * + *

Notes: + * + *

{@code head} refers to where you are right now; the current reference at a given time. */ public static final AttributeKey VCS_REF_HEAD_NAME = stringKey("vcs.ref.head.name"); @@ -76,7 +94,8 @@ public final class VcsIncubatingAttributes { * *

Notes: * - *

The revision can be a full {@code head} refers to where you are right now; the current reference at a given time.The + * revision can be a full hash value (see * glossary), of the recorded change to a ref within a repository pointing to a commit commit object. It does not necessarily have to @@ -92,6 +111,10 @@ public final class VcsIncubatingAttributes { /** * The type of the reference in the * repository. + * + *

Notes: + * + *

{@code head} refers to where you are right now; the current reference at a given time. */ public static final AttributeKey VCS_REF_HEAD_TYPE = stringKey("vcs.ref.head.type"); @@ -123,6 +146,17 @@ public final class VcsIncubatingAttributes { public static final AttributeKey VCS_REPOSITORY_CHANGE_TITLE = stringKey("vcs.repository.change.title"); + /** + * The human readable name of the repository. It SHOULD NOT include any additional identifier like + * Group/SubGroup in GitLab or organization in GitHub. + * + *

Notes: + * + *

Due to it only being the name, it can clash with forks of the same repository if collecting + * telemetry across multiple orgs or groups in the same backends. + */ + public static final AttributeKey VCS_REPOSITORY_NAME = stringKey("vcs.repository.name"); + /** * Deprecated, use {@code vcs.ref.head.name} instead. * @@ -157,8 +191,15 @@ public final class VcsIncubatingAttributes { stringKey("vcs.repository.ref.type"); /** - * The URL of the repository providing the complete - * address in order to locate and identify the repository. + * The canonical + * URL of the repository providing the complete HTTP(S) address in order to locate and + * identify the repository through a browser. + * + *

Notes: + * + *

In Git Version Control Systems, the canonical URL SHOULD NOT include the {@code .git} + * extension. */ public static final AttributeKey VCS_REPOSITORY_URL_FULL = stringKey("vcs.repository.url.full"); diff --git a/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java index 621c4eb..54417fb 100644 --- a/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java +++ b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java @@ -17,35 +17,52 @@ public class IncubatingAvailabilityTest { @Test void available() { isValidClass("io.opentelemetry.semconv.incubating.AndroidIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.ArtifactIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.AwsIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.AzIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.AzureIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.BrowserIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.CassandraIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.CicdIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.ClientIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.CloudeventsIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.CloudfoundryIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.CloudIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.CodeIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.CpuIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DbIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DeploymentIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DestinationIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DeviceIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DiskIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DnsIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.DotnetIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.ElasticsearchIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.EnduserIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.ErrorIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.EventIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.ExceptionIncubatingAttributes"); - isValidClass("io.opentelemetry.semconv.incubating.FileIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.FaasIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.FeatureFlagIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.FileIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.GcpIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.GenAiIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.GeoIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.GoIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.GraphqlIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.HerokuIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.HostIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.HttpIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.HwIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.JvmIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.K8sIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.LinuxIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.LogIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.MessageIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.NetIncubatingAttributes"); - isValidClass("io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.NetworkIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.NodejsIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.OciIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.OpentracingIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.OsIncubatingAttributes"); @@ -54,14 +71,23 @@ void available() { isValidClass("io.opentelemetry.semconv.incubating.PeerIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.PoolIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.ProcessIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.ProfileIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.RpcIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.SecurityRuleIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.ServerIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.ServiceIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.SessionIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.SourceIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.SystemIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.TelemetryIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.TestIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.TlsIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.UrlIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.UserAgentIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.UserIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.V8jsIncubatingAttributes"); + isValidClass("io.opentelemetry.semconv.incubating.VcsIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.WebengineIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.SchemaUrls"); } diff --git a/semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java new file mode 100644 index 0000000..d7118aa --- /dev/null +++ b/semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java @@ -0,0 +1,42 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv; + +import static io.opentelemetry.api.common.AttributeKey.stringKey; + +import io.opentelemetry.api.common.AttributeKey; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/java/SemanticAttributes.java.j2 +@SuppressWarnings("unused") +public final class DotnetAttributes { + /** Name of the garbage collector managed heap generation. */ + public static final AttributeKey DOTNET_GC_HEAP_GENERATION = + stringKey("dotnet.gc.heap.generation"); + + // Enum definition + /** Values for {@link #DOTNET_GC_HEAP_GENERATION}. */ + public static final class DotnetGcHeapGenerationValues { + /** Generation 0 */ + public static final String GEN0 = "gen0"; + + /** Generation 1 */ + public static final String GEN1 = "gen1"; + + /** Generation 2 */ + public static final String GEN2 = "gen2"; + + /** Large Object Heap */ + public static final String LOH = "loh"; + + /** Pinned Object Heap */ + public static final String POH = "poh"; + + private DotnetGcHeapGenerationValues() {} + } + + private DotnetAttributes() {} +} diff --git a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java index 5887f32..b8a8268 100644 --- a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java +++ b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java @@ -7,6 +7,7 @@ public final class SchemaUrls { + public static final String V1_30_0 = "https://opentelemetry.io/schemas/1.30.0"; public static final String V1_29_0 = "https://opentelemetry.io/schemas/1.29.0"; public static final String V1_28_0 = "https://opentelemetry.io/schemas/1.28.0"; public static final String V1_27_0 = "https://opentelemetry.io/schemas/1.27.0"; diff --git a/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java b/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java index 1c41e6f..041b234 100644 --- a/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java +++ b/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java @@ -17,6 +17,7 @@ public class AvailabilityTest { @Test void available() { isValidClass("io.opentelemetry.semconv.ClientAttributes"); + isValidClass("io.opentelemetry.semconv.DotnetAttributes"); isValidClass("io.opentelemetry.semconv.ErrorAttributes"); isValidClass("io.opentelemetry.semconv.ExceptionAttributes"); isValidClass("io.opentelemetry.semconv.HttpAttributes"); From 8fb5b61992a547886715377bf63c7b36300c6e9b Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Mon, 27 Jan 2025 11:21:33 -0600 Subject: [PATCH 2/2] Exclude dotnet namespace --- .../registry/incubating_java/weaver.yaml | 2 +- .../templates/registry/java/weaver.yaml | 2 +- .../opentelemetry-semconv.txt | 12 ---- .../DotnetIncubatingAttributes.java | 56 ------------------- .../IncubatingAvailabilityTest.java | 1 - .../semconv/DotnetAttributes.java | 42 -------------- .../semconv/AvailabilityTest.java | 1 - 7 files changed, 2 insertions(+), 114 deletions(-) delete mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java delete mode 100644 semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java diff --git a/buildscripts/templates/registry/incubating_java/weaver.yaml b/buildscripts/templates/registry/incubating_java/weaver.yaml index 34a14c9..725356c 100644 --- a/buildscripts/templates/registry/incubating_java/weaver.yaml +++ b/buildscripts/templates/registry/incubating_java/weaver.yaml @@ -1,5 +1,5 @@ params: - excluded_namespaces: ["ios", "aspnetcore", "signalr"] + excluded_namespaces: ["dotnet", "ios", "aspnetcore", "signalr"] excluded_attributes: ["messaging.client_id", "exception.escaped"] comment_formats: javadoc: diff --git a/buildscripts/templates/registry/java/weaver.yaml b/buildscripts/templates/registry/java/weaver.yaml index ef29dbd..a4d6138 100644 --- a/buildscripts/templates/registry/java/weaver.yaml +++ b/buildscripts/templates/registry/java/weaver.yaml @@ -1,5 +1,5 @@ params: - excluded_namespaces: ["ios", "aspnetcore", "signalr"] + excluded_namespaces: ["dotnet", "ios", "aspnetcore", "signalr"] # excluding "exception.escaped" from stable attributes # because we are anticipating it being deprecated soon excluded_attributes: ["messaging.client_id", "exception.escaped"] diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt b/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt index e168e54..0805b2d 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt @@ -17,18 +17,6 @@ Comparing source compatibility of opentelemetry-semconv-1.30.0-SNAPSHOT.jar agai +++ NEW SUPERCLASS: java.lang.Object +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.api.common.AttributeKey CLIENT_ADDRESS +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.api.common.AttributeKey CLIENT_PORT -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.semconv.DotnetAttributes (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.api.common.AttributeKey DOTNET_GC_HEAP_GENERATION -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.opentelemetry.semconv.DotnetAttributes$DotnetGcHeapGenerationValues (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String GEN1 - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String GEN0 - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String GEN2 - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String LOH - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String POH +++ NEW CLASS: PUBLIC(+) FINAL(+) io.opentelemetry.semconv.ErrorAttributes (not serializable) +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. +++ NEW SUPERCLASS: java.lang.Object diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java deleted file mode 100644 index 227d3d9..0000000 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DotnetIncubatingAttributes.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.semconv.incubating; - -import static io.opentelemetry.api.common.AttributeKey.stringKey; - -import io.opentelemetry.api.common.AttributeKey; - -// DO NOT EDIT, this is an Auto-generated file from -// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 -@SuppressWarnings("unused") -public final class DotnetIncubatingAttributes { - /** - * Name of the garbage collector managed heap generation. - * - *

- * - * @deprecated deprecated in favor of stable {@link - * io.opentelemetry.semconv.DotnetAttributes#DOTNET_GC_HEAP_GENERATION} attribute. - */ - @Deprecated - public static final AttributeKey DOTNET_GC_HEAP_GENERATION = - stringKey("dotnet.gc.heap.generation"); - - // Enum definitions - /** - * Values for {@link #DOTNET_GC_HEAP_GENERATION}. - * - * @deprecated deprecated in favor of stable {@link - * io.opentelemetry.semconv.DotnetAttributes.DotnetGcHeapGenerationValues}. - */ - @Deprecated - public static final class DotnetGcHeapGenerationIncubatingValues { - /** Generation 0 */ - public static final String GEN0 = "gen0"; - - /** Generation 1 */ - public static final String GEN1 = "gen1"; - - /** Generation 2 */ - public static final String GEN2 = "gen2"; - - /** Large Object Heap */ - public static final String LOH = "loh"; - - /** Pinned Object Heap */ - public static final String POH = "poh"; - - private DotnetGcHeapGenerationIncubatingValues() {} - } - - private DotnetIncubatingAttributes() {} -} diff --git a/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java index 54417fb..02bdec0 100644 --- a/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java +++ b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java @@ -37,7 +37,6 @@ void available() { isValidClass("io.opentelemetry.semconv.incubating.DeviceIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DiskIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.DnsIncubatingAttributes"); - isValidClass("io.opentelemetry.semconv.incubating.DotnetIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.ElasticsearchIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.EnduserIncubatingAttributes"); isValidClass("io.opentelemetry.semconv.incubating.ErrorIncubatingAttributes"); diff --git a/semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java deleted file mode 100644 index d7118aa..0000000 --- a/semconv/src/main/java/io/opentelemetry/semconv/DotnetAttributes.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.semconv; - -import static io.opentelemetry.api.common.AttributeKey.stringKey; - -import io.opentelemetry.api.common.AttributeKey; - -// DO NOT EDIT, this is an Auto-generated file from -// buildscripts/templates/registry/java/SemanticAttributes.java.j2 -@SuppressWarnings("unused") -public final class DotnetAttributes { - /** Name of the garbage collector managed heap generation. */ - public static final AttributeKey DOTNET_GC_HEAP_GENERATION = - stringKey("dotnet.gc.heap.generation"); - - // Enum definition - /** Values for {@link #DOTNET_GC_HEAP_GENERATION}. */ - public static final class DotnetGcHeapGenerationValues { - /** Generation 0 */ - public static final String GEN0 = "gen0"; - - /** Generation 1 */ - public static final String GEN1 = "gen1"; - - /** Generation 2 */ - public static final String GEN2 = "gen2"; - - /** Large Object Heap */ - public static final String LOH = "loh"; - - /** Pinned Object Heap */ - public static final String POH = "poh"; - - private DotnetGcHeapGenerationValues() {} - } - - private DotnetAttributes() {} -} diff --git a/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java b/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java index 041b234..1c41e6f 100644 --- a/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java +++ b/semconv/src/test/java/io/opentelemetry/semconv/AvailabilityTest.java @@ -17,7 +17,6 @@ public class AvailabilityTest { @Test void available() { isValidClass("io.opentelemetry.semconv.ClientAttributes"); - isValidClass("io.opentelemetry.semconv.DotnetAttributes"); isValidClass("io.opentelemetry.semconv.ErrorAttributes"); isValidClass("io.opentelemetry.semconv.ExceptionAttributes"); isValidClass("io.opentelemetry.semconv.HttpAttributes");