diff --git a/CHANGELOG.md b/CHANGELOG.md index bf26961..ab12fe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +## Version 1.39.0 (2026-01-28) + +* Bump to semconv v1.39.0 + ## Version 1.38.0 (2026-01-27) * Bump to semconv v1.38.0 diff --git a/build.gradle.kts b/build.gradle.kts index 1364750..93a8e72 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.38.0" +var semanticConventionsVersion = "1.39.0" val schemaUrlVersions = listOf( semanticConventionsVersion, + "1.38.0", "1.37.0", "1.36.0", "1.35.0", diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt b/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt index da6b089..f9df3b7 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt @@ -1,2 +1,4 @@ -Comparing source compatibility of opentelemetry-semconv-1.38.0-SNAPSHOT.jar against opentelemetry-semconv-1.38.0.jar -No changes. \ No newline at end of file +Comparing source compatibility of opentelemetry-semconv-1.39.0-SNAPSHOT.jar against opentelemetry-semconv-1.38.0.jar +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.semconv.SchemaUrls (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_39_0 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 2ca29bd..205012d 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 @@ -95,6 +95,9 @@ public final class CloudIncubatingAttributes { /** Values for {@link #CLOUD_PLATFORM}. */ public static final class CloudPlatformIncubatingValues { + /** Akamai Cloud Compute */ + public static final String AKAMAI_CLOUD_COMPUTE = "akamai_cloud.compute"; + /** Alibaba Cloud Elastic Compute Service */ public static final String ALIBABA_CLOUD_ECS = "alibaba_cloud_ecs"; @@ -146,6 +149,9 @@ public static final class CloudPlatformIncubatingValues { /** Azure Red Hat OpenShift */ public static final String AZURE_OPENSHIFT = "azure.openshift"; + /** Google Vertex AI Agent Engine */ + public static final String GCP_AGENT_ENGINE = "gcp.agent_engine"; + /** Google Bare Metal Solution (BMS) */ public static final String GCP_BARE_METAL_SOLUTION = "gcp_bare_metal_solution"; @@ -167,6 +173,9 @@ public static final class CloudPlatformIncubatingValues { /** Red Hat OpenShift on Google Cloud */ public static final String GCP_OPENSHIFT = "gcp_openshift"; + /** Server on Hetzner Cloud */ + public static final String HETZNER_CLOUD_SERVER = "hetzner.cloud_server"; + /** Red Hat OpenShift on IBM Cloud */ public static final String IBM_CLOUD_OPENSHIFT = "ibm_cloud_openshift"; @@ -185,11 +194,17 @@ public static final class CloudPlatformIncubatingValues { /** Tencent Cloud Serverless Cloud Function (SCF) */ public static final String TENCENT_CLOUD_SCF = "tencent_cloud_scf"; + /** Vultr Cloud Compute */ + public static final String VULTR_CLOUD_COMPUTE = "vultr.cloud_compute"; + private CloudPlatformIncubatingValues() {} } /** Values for {@link #CLOUD_PROVIDER}. */ public static final class CloudProviderIncubatingValues { + /** Akamai Cloud */ + public static final String AKAMAI_CLOUD = "akamai_cloud"; + /** Alibaba Cloud */ public static final String ALIBABA_CLOUD = "alibaba_cloud"; @@ -205,6 +220,9 @@ public static final class CloudProviderIncubatingValues { /** Heroku Platform as a Service */ public static final String HEROKU = "heroku"; + /** Hetzner */ + public static final String HETZNER = "hetzner"; + /** IBM Cloud */ public static final String IBM_CLOUD = "ibm_cloud"; @@ -214,6 +232,9 @@ public static final class CloudProviderIncubatingValues { /** Tencent Cloud */ public static final String TENCENT_CLOUD = "tencent_cloud"; + /** Vultr */ + public static final String VULTR = "vultr"; + private CloudProviderIncubatingValues() {} } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingAttributes.java index 798552c..d5c108f 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingAttributes.java @@ -82,7 +82,7 @@ public final class ContainerIncubatingAttributes { * *

Docker defines a sha256 of the image id; {@code container.image.id} corresponds to the * {@code Image} field from the Docker container inspect API + * href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Container/operation/ContainerInspect">API * endpoint. K8s defines a link to the container registry repository with digest {@code "imageID": * "registry.azurecr.io * /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"}. @@ -101,7 +101,7 @@ public final class ContainerIncubatingAttributes { *

Notes: * *

Docker + * href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect">Docker * and CRI * report those under the {@code RepoDigests} field. @@ -111,7 +111,7 @@ public final class ContainerIncubatingAttributes { /** * Container image tags. An example can be found in Docker + * href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect">Docker * Image Inspect. Should be only the {@code } section of the full name for example from * {@code registry.example.com/my-org/my-image:}. */ 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 5f8605e..58fabba 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 @@ -422,7 +422,7 @@ public final class DbIncubatingAttributes { *

Summary may be available to the instrumentation through instrumentation hooks or other * means. If it is not available, instrumentations that support query parsing SHOULD generate a * summary following Generating query + * href="/docs/db/database-spans.md#generating-a-summary-of-the-query">Generating query * summary section. * * @deprecated deprecated in favor of stable {@link @@ -437,7 +437,7 @@ public final class DbIncubatingAttributes { *

Notes: * *

For sanitization see Sanitization of {@code + * href="/docs/db/database-spans.md#sanitization-of-dbquerytext">Sanitization of {@code * db.query.text}. For batch operations, if the individual operations are known to have the * same query text then that query text SHOULD be used, otherwise all of the individual query * texts SHOULD be concatenated with separator {@code ; } or some other database system specific diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java index a9fc9ad..983e7b4 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java @@ -47,7 +47,7 @@ public final class ErrorIncubatingAttributes { *

If the operation has completed successfully, instrumentations SHOULD NOT set {@code * error.type}. * - *

If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status + *

If a specific domain defines its own set of error identifiers (such as HTTP or RPC status * codes), it's RECOMMENDED to: * *

+ * + * @deprecated Replaced by {@code service.peer.name}. */ - public static final AttributeKey PEER_SERVICE = stringKey("peer.service"); + @Deprecated public static final AttributeKey PEER_SERVICE = stringKey("peer.service"); // Enum definitions diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PprofIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PprofIncubatingAttributes.java index a860c31..0ddc466 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PprofIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PprofIncubatingAttributes.java @@ -7,6 +7,7 @@ import static io.opentelemetry.api.common.AttributeKey.booleanKey; 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; @@ -47,6 +48,31 @@ public final class PprofIncubatingAttributes { public static final AttributeKey> PPROF_PROFILE_COMMENT = stringArrayKey("pprof.profile.comment"); + /** + * Documentation link for this profile type. + * + *

Notes: + * + *

The URL must be absolute and may be missing if the profile was generated by code that did + * not supply a link + */ + public static final AttributeKey PPROF_PROFILE_DOC_URL = + stringKey("pprof.profile.doc_url"); + + /** + * Frames with Function.function_name fully matching the regexp will be dropped from the samples, + * along with their successors. + */ + public static final AttributeKey PPROF_PROFILE_DROP_FRAMES = + stringKey("pprof.profile.drop_frames"); + + /** + * Frames with Function.function_name fully matching the regexp will be kept, even if it matches + * drop_frames. + */ + public static final AttributeKey PPROF_PROFILE_KEEP_FRAMES = + stringKey("pprof.profile.keep_frames"); + // Enum definitions private PprofIncubatingAttributes() {} 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 ef04acd..4794265 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 @@ -18,105 +18,95 @@ @SuppressWarnings("unused") public final class RpcIncubatingAttributes { /** - * The error codes of the Connect - * request. Error codes are always string values. + * Deprecated, use {@code rpc.response.status_code} attribute instead. + * + * @deprecated Replaced by {@code rpc.response.status_code}. */ + @Deprecated public static final AttributeKey RPC_CONNECT_RPC_ERROR_CODE = stringKey("rpc.connect_rpc.error_code"); /** - * Connect request metadata, {@code } being the normalized Connect Metadata key (lowercase), - * the value being the metadata values. - * - *

Notes: - * - *

Instrumentations SHOULD require an explicit configuration of which metadata values are to be - * captured. Including all request metadata values can be a security risk - explicit configuration - * helps avoid leaking sensitive information. + * Deprecated, use {@code rpc.request.metadata} instead. * - *

For example, a property {@code my-custom-key} with value {@code ["1.2.3.4", "1.2.3.5"]} - * SHOULD be recorded as the {@code rpc.connect_rpc.request.metadata.my-custom-key} attribute with - * value {@code ["1.2.3.4", "1.2.3.5"]} + * @deprecated Replaced by {@code rpc.request.metadata}. */ + @Deprecated public static final AttributeKeyTemplate> RPC_CONNECT_RPC_REQUEST_METADATA = stringArrayKeyTemplate("rpc.connect_rpc.request.metadata"); /** - * Connect response metadata, {@code } being the normalized Connect Metadata key (lowercase), - * the value being the metadata values. - * - *

Notes: - * - *

Instrumentations SHOULD require an explicit configuration of which metadata values are to be - * captured. Including all response metadata values can be a security risk - explicit - * configuration helps avoid leaking sensitive information. + * Deprecated, use {@code rpc.response.metadata} instead. * - *

For example, a property {@code my-custom-key} with value {@code "attribute_value"} SHOULD be - * recorded as the {@code rpc.connect_rpc.response.metadata.my-custom-key} attribute with value - * {@code ["attribute_value"]} + * @deprecated Replaced by {@code rpc.response.metadata}. */ + @Deprecated public static final AttributeKeyTemplate> RPC_CONNECT_RPC_RESPONSE_METADATA = stringArrayKeyTemplate("rpc.connect_rpc.response.metadata"); /** - * gRPC request metadata, {@code } being the normalized gRPC Metadata key (lowercase), the - * value being the metadata values. - * - *

Notes: - * - *

Instrumentations SHOULD require an explicit configuration of which metadata values are to be - * captured. Including all request metadata values can be a security risk - explicit configuration - * helps avoid leaking sensitive information. + * Deprecated, use {@code rpc.request.metadata} instead. * - *

For example, a property {@code my-custom-key} with value {@code ["1.2.3.4", "1.2.3.5"]} - * SHOULD be recorded as {@code rpc.grpc.request.metadata.my-custom-key} attribute with value - * {@code ["1.2.3.4", "1.2.3.5"]} + * @deprecated Replaced by {@code rpc.request.metadata}. */ + @Deprecated public static final AttributeKeyTemplate> RPC_GRPC_REQUEST_METADATA = stringArrayKeyTemplate("rpc.grpc.request.metadata"); /** - * gRPC response metadata, {@code } being the normalized gRPC Metadata key (lowercase), the - * value being the metadata values. - * - *

Notes: - * - *

Instrumentations SHOULD require an explicit configuration of which metadata values are to be - * captured. Including all response metadata values can be a security risk - explicit - * configuration helps avoid leaking sensitive information. + * Deprecated, use {@code rpc.response.metadata} instead. * - *

For example, a property {@code my-custom-key} with value {@code ["attribute_value"]} SHOULD - * be recorded as the {@code rpc.grpc.response.metadata.my-custom-key} attribute with value {@code - * ["attribute_value"]} + * @deprecated Replaced by {@code rpc.response.metadata}. */ + @Deprecated public static final AttributeKeyTemplate> RPC_GRPC_RESPONSE_METADATA = stringArrayKeyTemplate("rpc.grpc.response.metadata"); /** - * The numeric status - * code of the gRPC request. + * Deprecated, use string representation on the {@code rpc.response.status_code} attribute + * instead. + * + * @deprecated Use string representation of the gRPC status code on the {@code + * rpc.response.status_code} attribute. */ + @Deprecated public static final AttributeKey RPC_GRPC_STATUS_CODE = longKey("rpc.grpc.status_code"); - /** {@code error.code} property of response if it is an error response. */ + /** + * Deprecated, use string representation on the {@code rpc.response.status_code} attribute + * instead. + * + * @deprecated Use string representation of the error code on the {@code rpc.response.status_code} + * attribute. + */ + @Deprecated public static final AttributeKey RPC_JSONRPC_ERROR_CODE = longKey("rpc.jsonrpc.error_code"); - /** {@code error.message} property of response if it is an error response. */ + /** + * Deprecated, use span status description or {@code error.message} attribute on other signals. + * + * @deprecated Use the span status description or {@code error.message} attribute on other + * signals. + */ + @Deprecated public static final AttributeKey RPC_JSONRPC_ERROR_MESSAGE = stringKey("rpc.jsonrpc.error_message"); /** - * {@code id} property of request or response. Since protocol allows id to be int, string, {@code - * null} or missing (for notifications), value is expected to be cast to string for simplicity. - * Use empty string in case of {@code null} value. Omit entirely if this is a notification. + * Deprecated, use {@code jsonrpc.request.id} instead. + * + * @deprecated Replaced by {@code jsonrpc.request.id}. */ + @Deprecated public static final AttributeKey RPC_JSONRPC_REQUEST_ID = stringKey("rpc.jsonrpc.request_id"); /** - * Protocol version as in {@code jsonrpc} property of request/response. Since JSON-RPC 1.0 doesn't - * specify this, the value can be omitted. + * Deprecated, use {@code jsonrpc.protocol.version} instead. + * + * @deprecated Replaced by {@code jsonrpc.protocol.version}. */ + @Deprecated public static final AttributeKey RPC_JSONRPC_VERSION = stringKey("rpc.jsonrpc.version"); /** Compressed size of the message in bytes. */ @@ -140,20 +130,117 @@ public final class RpcIncubatingAttributes { public static final AttributeKey RPC_MESSAGE_UNCOMPRESSED_SIZE = longKey("rpc.message.uncompressed_size"); - /** This is the logical name of the method from the RPC interface perspective. */ + /** + * The fully-qualified logical name of the method from the RPC interface perspective. + * + *

Notes: + * + *

The method name MAY have unbounded cardinality in edge or error cases. + * + *

Some RPC frameworks or libraries provide a fixed set of recognized methods for client stubs + * and server implementations. Instrumentations for such frameworks MUST set this attribute to the + * original method name only when the method is recognized by the framework or library. + * + *

When the method is not recognized, for example, when the server receives a request for a + * method that is not predefined on the server, or when instrumentation is not able to reliably + * detect if the method is predefined, the attribute MUST be set to {@code _OTHER}. In such cases, + * tracing instrumentations MUST also set {@code rpc.method_original} attribute to the original + * method value. + * + *

If the RPC instrumentation could end up converting valid RPC methods to {@code _OTHER}, then + * it SHOULD provide a way to configure the list of recognized RPC methods. + * + *

The {@code rpc.method} can be different from the name of any implementing method/function. + * The {@code code.function.name} attribute may be used to record the fully-qualified method + * actually executing the call on the server side, or the RPC client stub method on the client + * side. + */ public static final AttributeKey RPC_METHOD = stringKey("rpc.method"); + /** The original name of the method used by the client. */ + public static final AttributeKey RPC_METHOD_ORIGINAL = stringKey("rpc.method_original"); + + /** + * RPC request metadata, {@code } being the normalized RPC metadata key (lowercase), the + * value being the metadata values. + * + *

Notes: + * + *

Instrumentations SHOULD require an explicit configuration of which metadata values are to be + * captured. Including all request metadata values can be a security risk - explicit configuration + * helps avoid leaking sensitive information. + * + *

For example, a property {@code my-custom-key} with value {@code ["1.2.3.4", "1.2.3.5"]} + * SHOULD be recorded as {@code rpc.request.metadata.my-custom-key} attribute with value {@code + * ["1.2.3.4", "1.2.3.5"]} + */ + public static final AttributeKeyTemplate> RPC_REQUEST_METADATA = + stringArrayKeyTemplate("rpc.request.metadata"); + + /** + * RPC response metadata, {@code } being the normalized RPC metadata key (lowercase), the + * value being the metadata values. + * + *

Notes: + * + *

Instrumentations SHOULD require an explicit configuration of which metadata values are to be + * captured. Including all response metadata values can be a security risk - explicit + * configuration helps avoid leaking sensitive information. + * + *

For example, a property {@code my-custom-key} with value {@code ["attribute_value"]} SHOULD + * be recorded as the {@code rpc.response.metadata.my-custom-key} attribute with value {@code + * ["attribute_value"]} + */ + public static final AttributeKeyTemplate> RPC_RESPONSE_METADATA = + stringArrayKeyTemplate("rpc.response.metadata"); + + /** + * Status code of the RPC returned by the RPC server or generated by the client + * + *

Notes: + * + *

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 + * RPC frameworks SHOULD document what {@code rpc.response.status_code} means in the context of + * that system and which values are considered to represent errors. + */ + public static final AttributeKey RPC_RESPONSE_STATUS_CODE = + stringKey("rpc.response.status_code"); + /** - * The full (logical) name of the service being called, including its package name, if applicable. + * Deprecated, use fully-qualified {@code rpc.method} instead. + * + * @deprecated Value should be included in {@code rpc.method} which is expected to be a + * fully-qualified name. */ - public static final AttributeKey RPC_SERVICE = stringKey("rpc.service"); + @Deprecated public static final AttributeKey RPC_SERVICE = stringKey("rpc.service"); - /** A string identifying the remoting system. See below for a list of well-known identifiers. */ - public static final AttributeKey RPC_SYSTEM = stringKey("rpc.system"); + /** + * Deprecated, use {@code rpc.system.name} attribute instead. + * + * @deprecated Replaced by {@code rpc.system.name}. + */ + @Deprecated public static final AttributeKey RPC_SYSTEM = stringKey("rpc.system"); + + /** + * The Remote Procedure Call (RPC) system. + * + *

Notes: + * + *

The client and server RPC systems may differ for the same RPC interaction. For example, a + * client may use Apache Dubbo or Connect RPC to communicate with a server that uses gRPC since + * both protocols provide compatibility with gRPC. + */ + public static final AttributeKey RPC_SYSTEM_NAME = stringKey("rpc.system.name"); // Enum definitions - /** Values for {@link #RPC_CONNECT_RPC_ERROR_CODE}. */ + /** + * Values for {@link #RPC_CONNECT_RPC_ERROR_CODE} + * + * @deprecated Replaced by {@code rpc.response.status_code}. + */ + @Deprecated public static final class RpcConnectRpcErrorCodeIncubatingValues { /** cancelled. */ public static final String CANCELLED = "cancelled"; @@ -206,7 +293,13 @@ public static final class RpcConnectRpcErrorCodeIncubatingValues { private RpcConnectRpcErrorCodeIncubatingValues() {} } - /** Values for {@link #RPC_GRPC_STATUS_CODE}. */ + /** + * Values for {@link #RPC_GRPC_STATUS_CODE} + * + * @deprecated Use string representation of the gRPC status code on the {@code + * rpc.response.status_code} attribute. + */ + @Deprecated public static final class RpcGrpcStatusCodeIncubatingValues { /** OK */ public static final long OK = 0; @@ -273,7 +366,12 @@ public static final class RpcMessageTypeIncubatingValues { private RpcMessageTypeIncubatingValues() {} } - /** Values for {@link #RPC_SYSTEM}. */ + /** + * Values for {@link #RPC_SYSTEM} + * + * @deprecated Replaced by {@code rpc.system.name}. + */ + @Deprecated public static final class RpcSystemIncubatingValues { /** gRPC */ public static final String GRPC = "grpc"; @@ -299,5 +397,22 @@ public static final class RpcSystemIncubatingValues { private RpcSystemIncubatingValues() {} } + /** Values for {@link #RPC_SYSTEM_NAME}. */ + public static final class RpcSystemNameIncubatingValues { + /** gRPC */ + public static final String GRPC = "grpc"; + + /** Apache Dubbo */ + public static final String DUBBO = "dubbo"; + + /** Connect RPC */ + public static final String CONNECTRPC = "connectrpc"; + + /** JSON-RPC */ + public static final String JSONRPC = "jsonrpc"; + + private RpcSystemNameIncubatingValues() {} + } + private RpcIncubatingAttributes() {} } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java index d5b9c01..e33649e 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java @@ -81,8 +81,22 @@ public final class ServiceIncubatingAttributes { public static final AttributeKey SERVICE_NAMESPACE = stringKey("service.namespace"); /** - * The version string of the service API or implementation. The format is not defined by these - * conventions. + * Logical name of the service on the other side of the connection. SHOULD be equal to the actual + * {@code service.name} resource attribute of the + * remote service if any. + */ + public static final AttributeKey SERVICE_PEER_NAME = stringKey("service.peer.name"); + + /** + * Logical namespace of the service on the other side of the connection. SHOULD be equal to the + * actual {@code service.namespace} resource + * attribute of the remote service if any. + */ + public static final AttributeKey SERVICE_PEER_NAMESPACE = + stringKey("service.peer.namespace"); + + /** + * The version string of the service component. The format is not defined by these conventions. * * @deprecated deprecated in favor of stable {@link * io.opentelemetry.semconv.ServiceAttributes#SERVICE_VERSION} attribute. 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 322c12e..d1d7195 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,6 +50,10 @@ public final class SystemIncubatingAttributes { public static final AttributeKey SYSTEM_FILESYSTEM_TYPE = stringKey("system.filesystem.type"); + /** The Linux Slab memory state */ + public static final AttributeKey SYSTEM_MEMORY_LINUX_SLAB_STATE = + stringKey("system.memory.linux.slab.state"); + /** The memory state */ public static final AttributeKey SYSTEM_MEMORY_STATE = stringKey("system.memory.state"); @@ -168,6 +172,17 @@ public static final class SystemFilesystemTypeIncubatingValues { private SystemFilesystemTypeIncubatingValues() {} } + /** Values for {@link #SYSTEM_MEMORY_LINUX_SLAB_STATE}. */ + public static final class SystemMemoryLinuxSlabStateIncubatingValues { + /** reclaimable. */ + public static final String RECLAIMABLE = "reclaimable"; + + /** unreclaimable. */ + public static final String UNRECLAIMABLE = "unreclaimable"; + + private SystemMemoryLinuxSlabStateIncubatingValues() {} + } + /** Values for {@link #SYSTEM_MEMORY_STATE}. */ public static final class SystemMemoryStateIncubatingValues { /** Actual used virtual memory in bytes. */ diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java index aa21c7c..3a419ad 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java @@ -18,7 +18,7 @@ public final class UserAgentIncubatingAttributes { * *

Notes: * - *

Example of extracting browser's name from original + *

Example of extracting browser's name from original * string. In the case of using a user-agent for non-browser products, such as microservices with * multiple names/versions inside the {@code user_agent.original}, the most significant name * SHOULD be selected. In such a scenario it should align with {@code user_agent.version} @@ -77,7 +77,7 @@ public final class UserAgentIncubatingAttributes { * *

Notes: * - *

Example of extracting browser's version from + *

Example of extracting browser's version from * original string. In the case of using a user-agent for non-browser products, such as * microservices with multiple names/versions inside the {@code user_agent.original}, the most * significant version SHOULD be selected. In such a scenario it should align with {@code diff --git a/semconv/src/main/java/io/opentelemetry/semconv/DbAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/DbAttributes.java index e90afcc..b029d72 100644 --- a/semconv/src/main/java/io/opentelemetry/semconv/DbAttributes.java +++ b/semconv/src/main/java/io/opentelemetry/semconv/DbAttributes.java @@ -87,7 +87,7 @@ public final class DbAttributes { *

Summary may be available to the instrumentation through instrumentation hooks or other * means. If it is not available, instrumentations that support query parsing SHOULD generate a * summary following Generating query + * href="/docs/db/database-spans.md#generating-a-summary-of-the-query">Generating query * summary section. */ public static final AttributeKey DB_QUERY_SUMMARY = stringKey("db.query.summary"); @@ -98,7 +98,7 @@ public final class DbAttributes { *

Notes: * *

For sanitization see Sanitization of {@code + * href="/docs/db/database-spans.md#sanitization-of-dbquerytext">Sanitization of {@code * db.query.text}. For batch operations, if the individual operations are known to have the * same query text then that query text SHOULD be used, otherwise all of the individual query * texts SHOULD be concatenated with separator {@code ; } or some other database system specific diff --git a/semconv/src/main/java/io/opentelemetry/semconv/ErrorAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/ErrorAttributes.java index 07f5de2..80b4cae 100644 --- a/semconv/src/main/java/io/opentelemetry/semconv/ErrorAttributes.java +++ b/semconv/src/main/java/io/opentelemetry/semconv/ErrorAttributes.java @@ -33,7 +33,7 @@ public final class ErrorAttributes { *

If the operation has completed successfully, instrumentations SHOULD NOT set {@code * error.type}. * - *

If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status + *

If a specific domain defines its own set of error identifiers (such as HTTP or RPC status * codes), it's RECOMMENDED to: * *

    diff --git a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java index ff88cc9..0b09b71 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_39_0 = "https://opentelemetry.io/schemas/1.39.0"; public static final String V1_38_0 = "https://opentelemetry.io/schemas/1.38.0"; public static final String V1_37_0 = "https://opentelemetry.io/schemas/1.37.0"; public static final String V1_36_0 = "https://opentelemetry.io/schemas/1.36.0"; diff --git a/semconv/src/main/java/io/opentelemetry/semconv/ServiceAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/ServiceAttributes.java index 16bf114..471f524 100644 --- a/semconv/src/main/java/io/opentelemetry/semconv/ServiceAttributes.java +++ b/semconv/src/main/java/io/opentelemetry/semconv/ServiceAttributes.java @@ -27,8 +27,7 @@ public final class ServiceAttributes { public static final AttributeKey SERVICE_NAME = stringKey("service.name"); /** - * The version string of the service API or implementation. The format is not defined by these - * conventions. + * The version string of the service component. The format is not defined by these conventions. */ public static final AttributeKey SERVICE_VERSION = stringKey("service.version");