diff --git a/CHANGELOG.md b/CHANGELOG.md index 01e0c88a..df155122 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +* Bump to semconv v1.38.0 + ## Version 1.37.0 (2025-08-27) * Bump to semconv v1.37.0 diff --git a/build.gradle.kts b/build.gradle.kts index 4fd0c0e9..13647505 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.37.0" +var semanticConventionsVersion = "1.38.0" val schemaUrlVersions = listOf( semanticConventionsVersion, + "1.37.0", "1.36.0", "1.35.0", "1.34.0", diff --git a/buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 b/buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 index 0181c136..c29e7e5d 100644 --- a/buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 +++ b/buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 @@ -43,7 +43,11 @@ public final class {{ my_class_name }} { {%- for attribute in ctx.attributes | rejectattr("name", "in", ctx.excluded_attributes) | rejectattr("type", "eq", "any") -%} {%- if attribute is experimental -%} {%- if attribute is deprecated -%} - {%- set deprecated_javadoc = "@deprecated " ~ attribute.deprecated.note -%} + {%- if attribute.deprecated.note == "Uncategorized." -%} + {%- set deprecated_javadoc = "@deprecated" -%} + {%- else -%} + {%- set deprecated_javadoc = "@deprecated " ~ attribute.deprecated.note -%} + {%- endif -%} {%- else -%} {%- set deprecated_javadoc = "" -%} {%- endif -%} @@ -80,7 +84,11 @@ public final class {{ my_class_name }} { * @deprecated deprecated in favor of stable {@link {{stable_class_link}}}. */ {%- elif attribute is deprecated -%} - {{ ["Values for {@link #" ~ attribute.name | screaming_snake_case ~ "}", "@deprecated " ~ attribute.deprecated.note ] | comment }} + {%- if attribute.deprecated.note == "Uncategorized." -%} + {{ ["Values for {@link #" ~ attribute.name | screaming_snake_case ~ "}", "@deprecated"] | comment }} + {%- else -%} + {{ ["Values for {@link #" ~ attribute.name | screaming_snake_case ~ "}", "@deprecated " ~ attribute.deprecated.note ] | comment }} + {%- endif -%} {%- else -%} /** Values for {@link #{{ attribute.name | screaming_snake_case }}}. */ {%- endif -%} @@ -90,7 +98,11 @@ public final class {{ my_class_name }} { public static final class {{ attribute.name | pascal_case }}IncubatingValues { {%- for member in attribute.type.members %} {%- if member is experimental and member is deprecated -%} - {{ [member.brief or (member.id ~ '.'), "@deprecated " ~ member.deprecated.note] | comment }} + {%- if member.deprecated.note == "Uncategorized." -%} + {{ [member.brief or (member.id ~ '.'), "@deprecated"] | comment }} + {%- else -%} + {{ [member.brief or (member.id ~ '.'), "@deprecated " ~ member.deprecated.note] | comment }} + {%- endif -%} @Deprecated public static final {{ attribute.type | instantiated_type | map_text("java_enum_type") }} {{ member.id | screaming_snake_case }} = {{ member.value | print_member_value }}; {% elif member is experimental or enum_deprecated_in_favor_of_stable.value %} {{ [member.brief or (member.id ~ '.')] | comment }} diff --git a/buildscripts/templates/registry/java/SemanticAttributes.java.j2 b/buildscripts/templates/registry/java/SemanticAttributes.java.j2 index 20a2cfc8..65fb5766 100644 --- a/buildscripts/templates/registry/java/SemanticAttributes.java.j2 +++ b/buildscripts/templates/registry/java/SemanticAttributes.java.j2 @@ -41,7 +41,11 @@ public final class {{ my_class_name }} { {%- for attribute in ctx.attributes | rejectattr("name", "in", ctx.excluded_attributes) -%} {%- if attribute is stable -%} {%- if attribute is deprecated -%} - {%- set deprecated_javadoc = "@deprecated " ~ attribute.deprecated.note -%} + {%- if attribute.deprecated.note == "Uncategorized." -%} + {%- set deprecated_javadoc = "@deprecated" -%} + {%- else -%} + {%- set deprecated_javadoc = "@deprecated " ~ attribute.deprecated.note -%} + {%- endif -%} {%- endif -%} {{ [attribute.brief, concat_if("\n\nNotes:\n\n", attribute.note), deprecated_javadoc] | comment }} {%- if attribute is deprecated -%} diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt b/docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt index c9c445b9..e30c0f74 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.37.0-SNAPSHOT.jar against opentelemetry-semconv-1.37.0.jar -No changes. \ No newline at end of file +Comparing source compatibility of opentelemetry-semconv-1.38.0-SNAPSHOT.jar against opentelemetry-semconv-1.37.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_38_0 diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingAttributes.java index 6d800e99..be0c1058 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingAttributes.java @@ -77,6 +77,29 @@ public final class AppIncubatingAttributes { public static final AttributeKey APP_SCREEN_COORDINATE_Y = longKey("app.screen.coordinate.y"); + /** + * An identifier that uniquely differentiates this screen from other screens in the same + * application. + * + *

Notes: + * + *

A screen represents only the part of the device display drawn by the app. It typically + * contains multiple widgets or UI components and is larger in scope than individual widgets. + * Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets). + */ + public static final AttributeKey APP_SCREEN_ID = stringKey("app.screen.id"); + + /** + * The name of an application screen. + * + *

Notes: + * + *

A screen represents only the part of the device display drawn by the app. It typically + * contains multiple widgets or UI components and is larger in scope than individual widgets. + * Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets). + */ + public static final AttributeKey APP_SCREEN_NAME = stringKey("app.screen.name"); + /** * An identifier that uniquely differentiates this widget from other widgets in the same * application. 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 index 54c066a1..93163553 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java @@ -39,7 +39,7 @@ public final class AzureIncubatingAttributes { *

Notes: * *

Region name matches the format of {@code displayName} in Azure + * href="https://learn.microsoft.com/rest/api/resources/subscriptions/list-locations">Azure * Location API */ public static final AttributeKey> AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS = 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 859a0c24..798552c5 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.43/#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.43/#tag/Image/operation/ImageInspect">Docker * and CRI * report those under the {@code RepoDigests} field. @@ -111,9 +111,9 @@ public final class ContainerIncubatingAttributes { /** * Container image tags. An example can be found in Docker Image - * Inspect. Should be only the {@code } section of the full name for example from {@code - * registry.example.com/my-org/my-image:}. + * href="https://docs.docker.com/reference/api/engine/version/v1.43/#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:}. */ public static final AttributeKey> CONTAINER_IMAGE_TAGS = stringArrayKey("container.image.tags"); 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 d2494a33..5f8605e6 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 @@ -217,7 +217,7 @@ public final class DbIncubatingAttributes { /** * Deprecated, use {@code db.response.status_code} instead. * - * @deprecated Replaced by {@code db.response.status_code}. + * @deprecated Use {@code db.response.status_code} instead. */ @Deprecated public static final AttributeKey DB_COSMOSDB_STATUS_CODE = @@ -393,6 +393,9 @@ public final class DbIncubatingAttributes { *

{@code db.query.parameter.} SHOULD match up with the parameterized placeholders present * in {@code db.query.text}. * + *

It is RECOMMENDED to capture the value as provided by the application without attempting to + * do any case normalization. + * *

{@code db.query.parameter.} SHOULD NOT be captured on batch operations. * *

Examples: @@ -400,8 +403,8 @@ public final class DbIncubatingAttributes { *

*/ @@ -452,7 +455,7 @@ public final class DbIncubatingAttributes { /** * Deprecated, use {@code db.namespace} instead. * - * @deprecated Replaced by {@code db.namespace}. + * @deprecated */ @Deprecated public static final AttributeKey DB_REDIS_DATABASE_INDEX = diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java index 8ae2f4ab..89496996 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java @@ -23,10 +23,8 @@ public final class DnsIncubatingAttributes { * *

Notes: * - *

If the name field contains non-printable characters (below 32 or above 126), those - * characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes - * should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n - * respectively. + *

The name represents the queried domain name as it appears in the DNS query without any + * additional normalization. */ public static final AttributeKey DNS_QUESTION_NAME = stringKey("dns.question.name"); diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EnduserIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EnduserIncubatingAttributes.java index d91bd3c1..45f611c5 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EnduserIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/EnduserIncubatingAttributes.java @@ -48,7 +48,7 @@ public final class EnduserIncubatingAttributes { /** * Deprecated, use {@code user.roles} instead. * - * @deprecated Replaced by {@code user.roles}. + * @deprecated Use {@code user.roles} instead. */ @Deprecated public static final AttributeKey ENDUSER_ROLE = stringKey("enduser.role"); 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 c48a0163..bb20249c 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,7 +16,8 @@ public final class EventIncubatingAttributes { /** * Identifies the class / type of event. * - * @deprecated Replaced by EventName top-level field on the LogRecord. + * @deprecated The value of this attribute MUST now be set as the value of the EventName field on + * the LogRecord to indicate that the LogRecord represents an Event. */ @Deprecated public static final AttributeKey EVENT_NAME = stringKey("event.name"); 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 f8f637a3..1a542d9d 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 @@ -156,7 +156,7 @@ public final class FaasIncubatingAttributes { * href="https://cloud.google.com/run/docs/managing/revisions">revision (i.e., the * function name plus the revision suffix). *

  • Google Cloud Functions: The value of the {@code + * href="https://cloud.google.com/run/docs/container-contract#services-env-vars">{@code * K_REVISION} environment variable. *
  • Azure Functions: Not applicable. Do not set this attribute. * diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingAttributes.java index b328e255..74470210 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingAttributes.java @@ -78,6 +78,58 @@ public final class GcpIncubatingAttributes { public static final AttributeKey GCP_APPHUB_WORKLOAD_ID = stringKey("gcp.apphub.workload.id"); + /** The container within GCP where the AppHub destination application is defined. */ + public static final AttributeKey GCP_APPHUB_DESTINATION_APPLICATION_CONTAINER = + stringKey("gcp.apphub_destination.application.container"); + + /** The name of the destination application as configured in AppHub. */ + public static final AttributeKey GCP_APPHUB_DESTINATION_APPLICATION_ID = + stringKey("gcp.apphub_destination.application.id"); + + /** The GCP zone or region where the destination application is defined. */ + public static final AttributeKey GCP_APPHUB_DESTINATION_APPLICATION_LOCATION = + stringKey("gcp.apphub_destination.application.location"); + + /** + * Criticality of a destination workload indicates its importance to the business as specified in + * AppHub type + * enum + */ + public static final AttributeKey GCP_APPHUB_DESTINATION_SERVICE_CRITICALITY_TYPE = + stringKey("gcp.apphub_destination.service.criticality_type"); + + /** + * Software lifecycle stage of a destination service as defined AppHub + * environment type + */ + public static final AttributeKey GCP_APPHUB_DESTINATION_SERVICE_ENVIRONMENT_TYPE = + stringKey("gcp.apphub_destination.service.environment_type"); + + /** The name of the destination service as configured in AppHub. */ + public static final AttributeKey GCP_APPHUB_DESTINATION_SERVICE_ID = + stringKey("gcp.apphub_destination.service.id"); + + /** + * Criticality of a destination workload indicates its importance to the business as specified in + * AppHub type + * enum + */ + public static final AttributeKey GCP_APPHUB_DESTINATION_WORKLOAD_CRITICALITY_TYPE = + stringKey("gcp.apphub_destination.workload.criticality_type"); + + /** + * Environment of a destination workload is the stage of a software lifecycle as provided in the + * AppHub + * environment type + */ + public static final AttributeKey GCP_APPHUB_DESTINATION_WORKLOAD_ENVIRONMENT_TYPE = + stringKey("gcp.apphub_destination.workload.environment_type"); + + /** The name of the destination workload as configured in AppHub. */ + public static final AttributeKey GCP_APPHUB_DESTINATION_WORKLOAD_ID = + stringKey("gcp.apphub_destination.workload.id"); + /** * Identifies the Google Cloud service for which the official client library is intended. * @@ -194,5 +246,73 @@ public static final class GcpApphubWorkloadEnvironmentTypeIncubatingValues { private GcpApphubWorkloadEnvironmentTypeIncubatingValues() {} } + /** Values for {@link #GCP_APPHUB_DESTINATION_SERVICE_CRITICALITY_TYPE}. */ + public static final class GcpApphubDestinationServiceCriticalityTypeIncubatingValues { + /** Mission critical service. */ + public static final String MISSION_CRITICAL = "MISSION_CRITICAL"; + + /** High impact. */ + public static final String HIGH = "HIGH"; + + /** Medium impact. */ + public static final String MEDIUM = "MEDIUM"; + + /** Low impact. */ + public static final String LOW = "LOW"; + + private GcpApphubDestinationServiceCriticalityTypeIncubatingValues() {} + } + + /** Values for {@link #GCP_APPHUB_DESTINATION_SERVICE_ENVIRONMENT_TYPE}. */ + public static final class GcpApphubDestinationServiceEnvironmentTypeIncubatingValues { + /** Production environment. */ + public static final String PRODUCTION = "PRODUCTION"; + + /** Staging environment. */ + public static final String STAGING = "STAGING"; + + /** Test environment. */ + public static final String TEST = "TEST"; + + /** Development environment. */ + public static final String DEVELOPMENT = "DEVELOPMENT"; + + private GcpApphubDestinationServiceEnvironmentTypeIncubatingValues() {} + } + + /** Values for {@link #GCP_APPHUB_DESTINATION_WORKLOAD_CRITICALITY_TYPE}. */ + public static final class GcpApphubDestinationWorkloadCriticalityTypeIncubatingValues { + /** Mission critical service. */ + public static final String MISSION_CRITICAL = "MISSION_CRITICAL"; + + /** High impact. */ + public static final String HIGH = "HIGH"; + + /** Medium impact. */ + public static final String MEDIUM = "MEDIUM"; + + /** Low impact. */ + public static final String LOW = "LOW"; + + private GcpApphubDestinationWorkloadCriticalityTypeIncubatingValues() {} + } + + /** Values for {@link #GCP_APPHUB_DESTINATION_WORKLOAD_ENVIRONMENT_TYPE}. */ + public static final class GcpApphubDestinationWorkloadEnvironmentTypeIncubatingValues { + /** Production environment. */ + public static final String PRODUCTION = "PRODUCTION"; + + /** Staging environment. */ + public static final String STAGING = "STAGING"; + + /** Test environment. */ + public static final String TEST = "TEST"; + + /** Development environment. */ + public static final String DEVELOPMENT = "DEVELOPMENT"; + + private GcpApphubDestinationWorkloadEnvironmentTypeIncubatingValues() {} + } + private GcpIncubatingAttributes() {} } 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 e085d0fc..66d6a260 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 @@ -58,6 +58,36 @@ public final class GenAiIncubatingAttributes { public static final AttributeKey GEN_AI_DATA_SOURCE_ID = stringKey("gen_ai.data_source.id"); + /** The number of dimensions the resulting output embeddings should have. */ + public static final AttributeKey GEN_AI_EMBEDDINGS_DIMENSION_COUNT = + longKey("gen_ai.embeddings.dimension.count"); + + /** A free-form explanation for the assigned score provided by the evaluator. */ + public static final AttributeKey GEN_AI_EVALUATION_EXPLANATION = + stringKey("gen_ai.evaluation.explanation"); + + /** The name of the evaluation metric used for the GenAI response. */ + public static final AttributeKey GEN_AI_EVALUATION_NAME = + stringKey("gen_ai.evaluation.name"); + + /** + * Human readable label for evaluation. + * + *

    Notes: + * + *

    This attribute provides a human-readable interpretation of the evaluation score produced by + * an evaluator. For example, a score value of 1 could mean "relevant" in one evaluation system + * and "not relevant" in another, depending on the scoring range and evaluator. The label SHOULD + * have low cardinality. Possible values depend on the evaluation metric and evaluator used; + * implementations SHOULD document the possible values. + */ + public static final AttributeKey GEN_AI_EVALUATION_SCORE_LABEL = + stringKey("gen_ai.evaluation.score.label"); + + /** The evaluation score returned by the evaluator. */ + public static final AttributeKey GEN_AI_EVALUATION_SCORE_VALUE = + doubleKey("gen_ai.evaluation.score.value"); + /** * Deprecated, use {@code gen_ai.output.type}. * @@ -468,11 +498,19 @@ public static final class GenAiSystemIncubatingValues { /** Cohere */ public static final String COHERE = "cohere"; - /** Azure AI Inference */ - public static final String AZ_AI_INFERENCE = "az.ai.inference"; + /** + * Azure AI Inference + * + * @deprecated Replaced by {@code azure.ai.inference}. + */ + @Deprecated public static final String AZ_AI_INFERENCE = "az.ai.inference"; - /** Azure OpenAI */ - public static final String AZ_AI_OPENAI = "az.ai.openai"; + /** + * Azure OpenAI + * + * @deprecated Replaced by {@code azure.ai.openai}. + */ + @Deprecated public static final String AZ_AI_OPENAI = "az.ai.openai"; /** Azure AI Inference */ public static final String AZURE_AI_INFERENCE = "azure.ai.inference"; @@ -489,12 +527,8 @@ public static final class GenAiSystemIncubatingValues { /** Perplexity */ public static final String PERPLEXITY = "perplexity"; - /** - * xAI - * - * @deprecated Replaced by {@code x_ai}. - */ - @Deprecated public static final String XAI = "xai"; + /** xAI */ + public static final String XAI = "xai"; /** DeepSeek */ public static final String DEEPSEEK = "deepseek"; diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java index e339628c..0bfe0b95 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java @@ -29,9 +29,9 @@ public final class HttpIncubatingAttributes { stringKey("http.connection.state"); /** - * Deprecated, use {@code network.protocol.name} instead. + * Deprecated, use {@code network.protocol.name} and {@code network.protocol.version} instead. * - * @deprecated Replaced by {@code network.protocol.name}. + * @deprecated Split into {@code network.protocol.name} and {@code network.protocol.version} */ @Deprecated public static final AttributeKey HTTP_FLAVOR = stringKey("http.flavor"); @@ -101,8 +101,10 @@ public final class HttpIncubatingAttributes { * *

    HTTP request method value SHOULD be "known" to the instrumentation. By default, this * convention defines "known" methods as the ones listed in RFC9110 and the PATCH - * method defined in RFC5789. + * href="https://www.rfc-editor.org/rfc/rfc9110.html#name-methods">RFC9110, the PATCH method + * defined in RFC5789 and the QUERY + * method defined in httpbis-safe-method-w-body. * *

    If the HTTP request method is not known to instrumentation, it MUST set the {@code * http.request.method} attribute to {@code _OTHER}. @@ -256,8 +258,8 @@ public final class HttpIncubatingAttributes { longKey("http.response_content_length_uncompressed"); /** - * The matched route, that is, the path template in the format used by the respective server - * framework. + * The matched route template for the request. This MUST be low-cardinality and include all static + * path segments, with dynamic path segments represented with placeholders. * *

    Notes: * @@ -266,6 +268,18 @@ public final class HttpIncubatingAttributes { * the application root if there is * one. * + *

    A static path segment is a part of the route template with a fixed, low-cardinality value. + * This includes literal strings like {@code /users/} and placeholders that are constrained to a + * finite, predefined set of values, e.g. {@code {controller}} or {@code {action}}. + * + *

    A dynamic path segment is a placeholder for a value that can have high cardinality and is + * not constrained to a predefined list like static path segments. + * + *

    Instrumentations SHOULD use routing information provided by the corresponding web framework. + * They SHOULD pick the most precise source of routing information and MAY support custom route + * formatting. Instrumentations SHOULD document the format and the API used to obtain the route + * string. + * * @deprecated deprecated in favor of stable {@link * io.opentelemetry.semconv.HttpAttributes#HTTP_ROUTE} attribute. */ @@ -331,7 +345,7 @@ private HttpConnectionStateIncubatingValues() {} /** * Values for {@link #HTTP_FLAVOR} * - * @deprecated Replaced by {@code network.protocol.name}. + * @deprecated Split into {@code network.protocol.name} and {@code network.protocol.version} */ @Deprecated public static final class HttpFlavorIncubatingValues { @@ -356,43 +370,90 @@ public static final class HttpFlavorIncubatingValues { private HttpFlavorIncubatingValues() {} } - /** - * Values for {@link #HTTP_REQUEST_METHOD}. - * - * @deprecated deprecated in favor of stable {@link - * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues}. - */ - @Deprecated + /** Values for {@link #HTTP_REQUEST_METHOD}. */ public static final class HttpRequestMethodIncubatingValues { - /** CONNECT method. */ - public static final String CONNECT = "CONNECT"; - - /** DELETE method. */ - public static final String DELETE = "DELETE"; - - /** GET method. */ - public static final String GET = "GET"; - - /** HEAD method. */ - public static final String HEAD = "HEAD"; - - /** OPTIONS method. */ - public static final String OPTIONS = "OPTIONS"; - - /** PATCH method. */ - public static final String PATCH = "PATCH"; - - /** POST method. */ - public static final String POST = "POST"; - - /** PUT method. */ - public static final String PUT = "PUT"; - - /** TRACE method. */ - public static final String TRACE = "TRACE"; - - /** Any HTTP method that the instrumentation has no prior knowledge of. */ - public static final String OTHER = "_OTHER"; + /** + * CONNECT method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#CONNECT} value. + */ + @Deprecated public static final String CONNECT = "CONNECT"; + + /** + * DELETE method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#DELETE} value. + */ + @Deprecated public static final String DELETE = "DELETE"; + + /** + * GET method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#GET} value. + */ + @Deprecated public static final String GET = "GET"; + + /** + * HEAD method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#HEAD} value. + */ + @Deprecated public static final String HEAD = "HEAD"; + + /** + * OPTIONS method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#OPTIONS} value. + */ + @Deprecated public static final String OPTIONS = "OPTIONS"; + + /** + * PATCH method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#PATCH} value. + */ + @Deprecated public static final String PATCH = "PATCH"; + + /** + * POST method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#POST} value. + */ + @Deprecated public static final String POST = "POST"; + + /** + * PUT method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#PUT} value. + */ + @Deprecated public static final String PUT = "PUT"; + + /** + * TRACE method. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#TRACE} value. + */ + @Deprecated public static final String TRACE = "TRACE"; + + /** QUERY method. */ + public static final String QUERY = "QUERY"; + + /** + * Any HTTP method that the instrumentation has no prior knowledge of. + * + * @deprecated deprecated in favor of stable {@link + * io.opentelemetry.semconv.HttpAttributes.HttpRequestMethodValues#OTHER} value. + */ + @Deprecated public static final String OTHER = "_OTHER"; private HttpRequestMethodIncubatingValues() {} } 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 5d3ac286..6bcf182b 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 @@ -477,6 +477,21 @@ public final class K8sIncubatingAttributes { /** The name of the Pod. */ public static final AttributeKey K8S_POD_NAME = stringKey("k8s.pod.name"); + /** + * The phase for the pod. Corresponds to the {@code phase} field of the: K8s + * PodStatus + */ + public static final AttributeKey K8S_POD_STATUS_PHASE = stringKey("k8s.pod.status.phase"); + + /** + * The reason for the pod state. Corresponds to the {@code reason} field of the: K8s + * PodStatus + */ + public static final AttributeKey K8S_POD_STATUS_REASON = + stringKey("k8s.pod.status.reason"); + /** The UID of the Pod. */ public static final AttributeKey K8S_POD_UID = stringKey("k8s.pod.uid"); @@ -543,7 +558,7 @@ public final class K8sIncubatingAttributes { * string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, * just the resource name (e.g., pods, services, configmaps). Both forms are supported by * Kubernetes for object count quotas. See Kubernetes + * href="https://kubernetes.io/docs/concepts/policy/resource-quotas/#quota-on-object-count">Kubernetes * Resource Quotas documentation for more details. */ public static final AttributeKey K8S_RESOURCEQUOTA_RESOURCE_NAME = @@ -708,6 +723,68 @@ public static final class K8sNodeConditionTypeIncubatingValues { private K8sNodeConditionTypeIncubatingValues() {} } + /** Values for {@link #K8S_POD_STATUS_PHASE}. */ + public static final class K8sPodStatusPhaseIncubatingValues { + /** + * The pod has been accepted by the system, but one or more of the containers has not been + * started. This includes time before being bound to a node, as well as time spent pulling + * images onto the host. + */ + public static final String PENDING = "Pending"; + + /** + * The pod has been bound to a node and all of the containers have been started. At least one + * container is still running or is in the process of being restarted. + */ + public static final String RUNNING = "Running"; + + /** + * All containers in the pod have voluntarily terminated with a container exit code of 0, and + * the system is not going to restart any of these containers. + */ + public static final String SUCCEEDED = "Succeeded"; + + /** + * All containers in the pod have terminated, and at least one container has terminated in a + * failure (exited with a non-zero exit code or was stopped by the system). + */ + public static final String FAILED = "Failed"; + + /** + * For some reason the state of the pod could not be obtained, typically due to an error in + * communicating with the host of the pod. + */ + public static final String UNKNOWN = "Unknown"; + + private K8sPodStatusPhaseIncubatingValues() {} + } + + /** Values for {@link #K8S_POD_STATUS_REASON}. */ + public static final class K8sPodStatusReasonIncubatingValues { + /** The pod is evicted. */ + public static final String EVICTED = "Evicted"; + + /** The pod is in a status because of its node affinity */ + public static final String NODE_AFFINITY = "NodeAffinity"; + + /** + * The reason on a pod when its state cannot be confirmed as kubelet is unresponsive on the node + * it is (was) running. + */ + public static final String NODE_LOST = "NodeLost"; + + /** The node is shutdown */ + public static final String SHUTDOWN = "Shutdown"; + + /** + * The pod was rejected admission to the node because of an error during admission that could + * not be categorized. + */ + public static final String UNEXPECTED_ADMISSION_ERROR = "UnexpectedAdmissionError"; + + private K8sPodStatusReasonIncubatingValues() {} + } + /** Values for {@link #K8S_VOLUME_TYPE}. */ public static final class K8sVolumeTypeIncubatingValues { /** diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/MessagingIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/MessagingIncubatingAttributes.java index 7903508e..7ac8bb8c 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/MessagingIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/MessagingIncubatingAttributes.java @@ -164,7 +164,8 @@ public final class MessagingIncubatingAttributes { /** * Deprecated, use {@code messaging.destination.partition.id} instead. * - * @deprecated Replaced by {@code messaging.destination.partition.id}. + * @deprecated Record string representation of the partition id in {@code + * messaging.destination.partition.id} attribute. */ @Deprecated public static final AttributeKey MESSAGING_KAFKA_DESTINATION_PARTITION = diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NfsIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NfsIncubatingAttributes.java new file mode 100644 index 00000000..2c9fc339 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NfsIncubatingAttributes.java @@ -0,0 +1,29 @@ +/* + * 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 NfsIncubatingAttributes { + /** NFSv4+ operation name. */ + public static final AttributeKey NFS_OPERATION_NAME = stringKey("nfs.operation.name"); + + /** + * Linux: one of "hit" (NFSD_STATS_RC_HITS), "miss" (NFSD_STATS_RC_MISSES), or "nocache" + * (NFSD_STATS_RC_NOCACHE -- uncacheable) + */ + public static final AttributeKey NFS_SERVER_REPCACHE_STATUS = + stringKey("nfs.server.repcache.status"); + + // Enum definitions + + private NfsIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OncRpcIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OncRpcIncubatingAttributes.java new file mode 100644 index 00000000..7e896d97 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OncRpcIncubatingAttributes.java @@ -0,0 +1,34 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +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 OncRpcIncubatingAttributes { + /** ONC/Sun RPC procedure name. */ + public static final AttributeKey ONC_RPC_PROCEDURE_NAME = + stringKey("onc_rpc.procedure.name"); + + /** ONC/Sun RPC procedure number. */ + public static final AttributeKey ONC_RPC_PROCEDURE_NUMBER = + longKey("onc_rpc.procedure.number"); + + /** ONC/Sun RPC program name. */ + public static final AttributeKey ONC_RPC_PROGRAM_NAME = stringKey("onc_rpc.program.name"); + + /** ONC/Sun RPC program version. */ + public static final AttributeKey ONC_RPC_VERSION = longKey("onc_rpc.version"); + + // Enum definitions + + private OncRpcIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingAttributes.java new file mode 100644 index 00000000..e5ee7d77 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingAttributes.java @@ -0,0 +1,27 @@ +/* + * 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 OpenshiftIncubatingAttributes { + /** The name of the cluster quota. */ + public static final AttributeKey OPENSHIFT_CLUSTERQUOTA_NAME = + stringKey("openshift.clusterquota.name"); + + /** The UID of the cluster quota. */ + public static final AttributeKey OPENSHIFT_CLUSTERQUOTA_UID = + stringKey("openshift.clusterquota.uid"); + + // Enum definitions + + private OpenshiftIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PeerIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PeerIncubatingAttributes.java index 34176a7c..a8fb0e43 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PeerIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PeerIncubatingAttributes.java @@ -17,6 +17,17 @@ public final class PeerIncubatingAttributes { * The {@code service.name} of the remote service. * SHOULD be equal to the actual {@code service.name} resource attribute of the remote service if * any. + * + *

    Notes: + * + *

    Examples of {@code peer.service} that users may specify: + * + *

      + *
    • A Redis cache of auth tokens as {@code peer.service="AuthTokenCache"}. + *
    • A gRPC service {@code rpc.service="io.opentelemetry.AuthService"} may be hosted in both a + * gateway, {@code peer.service="ExternalApiService"} and a backend, {@code + * peer.service="AuthService"}. + *
    */ public static final AttributeKey PEER_SERVICE = stringKey("peer.service"); 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 new file mode 100644 index 00000000..a860c31e --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/PprofIncubatingAttributes.java @@ -0,0 +1,53 @@ +/* + * 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.stringArrayKey; + +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 PprofIncubatingAttributes { + /** + * Provides an indication that multiple symbols map to this location's address, for example due to + * identical code folding by the linker. In that case the line information represents one of the + * multiple symbols. This field must be recomputed when the symbolization state of the profile + * changes. + */ + public static final AttributeKey PPROF_LOCATION_IS_FOLDED = + booleanKey("pprof.location.is_folded"); + + /** Indicates that there are filenames related to this mapping. */ + public static final AttributeKey PPROF_MAPPING_HAS_FILENAMES = + booleanKey("pprof.mapping.has_filenames"); + + /** Indicates that there are functions related to this mapping. */ + public static final AttributeKey PPROF_MAPPING_HAS_FUNCTIONS = + booleanKey("pprof.mapping.has_functions"); + + /** Indicates that there are inline frames related to this mapping. */ + public static final AttributeKey PPROF_MAPPING_HAS_INLINE_FRAMES = + booleanKey("pprof.mapping.has_inline_frames"); + + /** Indicates that there are line numbers related to this mapping. */ + public static final AttributeKey PPROF_MAPPING_HAS_LINE_NUMBERS = + booleanKey("pprof.mapping.has_line_numbers"); + + /** + * Free-form text associated with the profile. This field should not be used to store any + * machine-readable information, it is only for human-friendly content. + */ + public static final AttributeKey> PPROF_PROFILE_COMMENT = + stringArrayKey("pprof.profile.comment"); + + // Enum definitions + + private PprofIncubatingAttributes() {} +} 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 50bd9bd5..3d844492 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 @@ -56,7 +56,7 @@ public final class ProcessIncubatingAttributes { /** Specifies whether the context switches for this data point were voluntary or involuntary. */ public static final AttributeKey PROCESS_CONTEXT_SWITCH_TYPE = - stringKey("process.context_switch_type"); + stringKey("process.context_switch.type"); /** * Deprecated, use {@code cpu.mode} instead. @@ -160,9 +160,11 @@ public final class ProcessIncubatingAttributes { public static final AttributeKey PROCESS_OWNER = stringKey("process.owner"); /** - * The type of page fault for this data point. Type {@code major} is for major/hard page faults, - * and {@code minor} is for minor/soft page faults. + * Deprecated, use {@code system.paging.fault.type} instead. + * + * @deprecated Replaced by {@code system.paging.fault.type}. */ + @Deprecated public static final AttributeKey PROCESS_PAGING_FAULT_TYPE = stringKey("process.paging.fault_type"); @@ -206,6 +208,13 @@ public final class ProcessIncubatingAttributes { public static final AttributeKey PROCESS_SESSION_LEADER_PID = longKey("process.session_leader.pid"); + /** + * The process state, e.g., Linux Process State + * Codes + */ + public static final AttributeKey PROCESS_STATE = stringKey("process.state"); + /** * Process title (proctitle) * @@ -269,7 +278,12 @@ public static final class ProcessCpuStateIncubatingValues { private ProcessCpuStateIncubatingValues() {} } - /** Values for {@link #PROCESS_PAGING_FAULT_TYPE}. */ + /** + * Values for {@link #PROCESS_PAGING_FAULT_TYPE} + * + * @deprecated Replaced by {@code system.paging.fault.type}. + */ + @Deprecated public static final class ProcessPagingFaultTypeIncubatingValues { /** major. */ public static final String MAJOR = "major"; @@ -280,5 +294,22 @@ public static final class ProcessPagingFaultTypeIncubatingValues { private ProcessPagingFaultTypeIncubatingValues() {} } + /** Values for {@link #PROCESS_STATE}. */ + public static final class ProcessStateIncubatingValues { + /** running. */ + public static final String RUNNING = "running"; + + /** sleeping. */ + public static final String SLEEPING = "sleeping"; + + /** stopped. */ + public static final String STOPPED = "stopped"; + + /** defunct. */ + public static final String DEFUNCT = "defunct"; + + private ProcessStateIncubatingValues() {} + } + private ProcessIncubatingAttributes() {} } 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 9e166fa8..ef04acd0 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 @@ -140,29 +140,11 @@ public final class RpcIncubatingAttributes { public static final AttributeKey RPC_MESSAGE_UNCOMPRESSED_SIZE = longKey("rpc.message.uncompressed_size"); - /** - * The name of the (logical) method being called, must be equal to the $method part in the span - * name. - * - *

    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.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). - */ + /** This is the logical name of the method from the RPC interface perspective. */ public static final AttributeKey RPC_METHOD = stringKey("rpc.method"); /** * The full (logical) name of the service being called, including its package name, if applicable. - * - *

    Notes: - * - *

    This is the logical name of the service from the RPC interface perspective, which can be - * different from the name of any implementing class. The {@code code.namespace} attribute may be - * used to store the latter (despite the attribute name, it may include a class name; e.g., class - * with method actually executing the call on the server side, RPC client stub class on the client - * side). */ public static final AttributeKey RPC_SERVICE = stringKey("rpc.service"); @@ -308,6 +290,12 @@ public static final class RpcSystemIncubatingValues { /** Connect RPC */ public static final String CONNECT_RPC = "connect_rpc"; + /** ONC RPC (Sun RPC) */ + public static final String ONC_RPC = "onc_rpc"; + + /** JSON-RPC */ + public static final String JSONRPC = "jsonrpc"; + private RpcSystemIncubatingValues() {} } 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 dc44a681..322c12e5 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 @@ -14,7 +14,12 @@ // buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 @SuppressWarnings("unused") public final class SystemIncubatingAttributes { - /** Deprecated, use {@code cpu.logical_number} instead. */ + /** + * Deprecated, use {@code cpu.logical_number} instead. + * + * @deprecated Replaced by {@code cpu.logical_number}. + */ + @Deprecated public static final AttributeKey SYSTEM_CPU_LOGICAL_NUMBER = longKey("system.cpu.logical_number"); @@ -60,24 +65,34 @@ public final class SystemIncubatingAttributes { public static final AttributeKey SYSTEM_PAGING_DIRECTION = stringKey("system.paging.direction"); + /** The paging fault type */ + public static final AttributeKey SYSTEM_PAGING_FAULT_TYPE = + stringKey("system.paging.fault.type"); + /** The memory paging state */ public static final AttributeKey SYSTEM_PAGING_STATE = stringKey("system.paging.state"); - /** The memory paging type */ + /** + * Deprecated, use {@code system.paging.fault.type} instead. + * + * @deprecated Replaced by {@code system.paging.fault.type}. + */ + @Deprecated public static final AttributeKey SYSTEM_PAGING_TYPE = stringKey("system.paging.type"); /** - * The process state, e.g., Linux Process State - * Codes + * Deprecated, use {@code process.state} instead. + * + * @deprecated Replaced by {@code process.state}. */ + @Deprecated public static final AttributeKey SYSTEM_PROCESS_STATUS = stringKey("system.process.status"); /** - * Deprecated, use {@code system.process.status} instead. + * Deprecated, use {@code process.state} instead. * - * @deprecated Replaced by {@code system.process.status}. + * @deprecated Replaced by {@code process.state}. */ @Deprecated public static final AttributeKey SYSTEM_PROCESSES_STATUS = @@ -235,6 +250,17 @@ public static final class SystemPagingDirectionIncubatingValues { private SystemPagingDirectionIncubatingValues() {} } + /** Values for {@link #SYSTEM_PAGING_FAULT_TYPE}. */ + public static final class SystemPagingFaultTypeIncubatingValues { + /** major. */ + public static final String MAJOR = "major"; + + /** minor. */ + public static final String MINOR = "minor"; + + private SystemPagingFaultTypeIncubatingValues() {} + } + /** Values for {@link #SYSTEM_PAGING_STATE}. */ public static final class SystemPagingStateIncubatingValues { /** used. */ @@ -246,7 +272,12 @@ public static final class SystemPagingStateIncubatingValues { private SystemPagingStateIncubatingValues() {} } - /** Values for {@link #SYSTEM_PAGING_TYPE}. */ + /** + * Values for {@link #SYSTEM_PAGING_TYPE} + * + * @deprecated Replaced by {@code system.paging.fault.type}. + */ + @Deprecated public static final class SystemPagingTypeIncubatingValues { /** major. */ public static final String MAJOR = "major"; @@ -257,7 +288,12 @@ public static final class SystemPagingTypeIncubatingValues { private SystemPagingTypeIncubatingValues() {} } - /** Values for {@link #SYSTEM_PROCESS_STATUS}. */ + /** + * Values for {@link #SYSTEM_PROCESS_STATUS} + * + * @deprecated Replaced by {@code process.state}. + */ + @Deprecated public static final class SystemProcessStatusIncubatingValues { /** running. */ public static final String RUNNING = "running"; @@ -277,7 +313,7 @@ private SystemProcessStatusIncubatingValues() {} /** * Values for {@link #SYSTEM_PROCESSES_STATUS} * - * @deprecated Replaced by {@code system.process.status}. + * @deprecated Replaced by {@code process.state}. */ @Deprecated public static final class SystemProcessesStatusIncubatingValues { diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ThreadIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ThreadIncubatingAttributes.java index e68d5e37..3c5cdeb7 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ThreadIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ThreadIncubatingAttributes.java @@ -14,10 +14,32 @@ // buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 @SuppressWarnings("unused") public final class ThreadIncubatingAttributes { - /** Current "managed" thread ID (as opposed to OS thread ID). */ + /** + * Current "managed" thread ID (as opposed to OS thread ID). + * + *

    Notes: + * + *

    Examples of where the value can be extracted from: + * + *

    | Language or platform | Source | | --- | --- | | JVM | {@code + * Thread.currentThread().threadId()} | | .NET | {@code Thread.CurrentThread.ManagedThreadId} | | + * Python | {@code threading.current_thread().ident} | | Ruby | {@code Thread.current.object_id} | + * | C++ | {@code std::this_thread::get_id()} | | Erlang | {@code erlang:self()} | + */ public static final AttributeKey THREAD_ID = longKey("thread.id"); - /** Current thread name. */ + /** + * Current thread name. + * + *

    Notes: + * + *

    Examples of where the value can be extracted from: + * + *

    | Language or platform | Source | | --- | --- | | JVM | {@code + * Thread.currentThread().getName()} | | .NET | {@code Thread.CurrentThread.Name} | | Python | + * {@code threading.current_thread().name} | | Ruby | {@code Thread.current.name} | | Erlang | + * {@code erlang:process_info(self(), registered_name)} | + */ public static final AttributeKey THREAD_NAME = stringKey("thread.name"); // Enum definitions 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 21cef5bd..8bb66ec4 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 @@ -187,10 +187,9 @@ public final class VcsIncubatingAttributes { stringKey("vcs.repository.ref.type"); /** - * The canonical - * URL of the repository providing the complete HTTP(S) address in order to locate and - * identify the repository through a browser. + * The canonical URL of the + * repository providing the complete HTTP(S) address in order to locate and identify the + * repository through a browser. * *

    Notes: * diff --git a/semconv/src/main/java/io/opentelemetry/semconv/HttpAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/HttpAttributes.java index 0aeec898..2be1b567 100644 --- a/semconv/src/main/java/io/opentelemetry/semconv/HttpAttributes.java +++ b/semconv/src/main/java/io/opentelemetry/semconv/HttpAttributes.java @@ -54,8 +54,10 @@ public final class HttpAttributes { * *

    HTTP request method value SHOULD be "known" to the instrumentation. By default, this * convention defines "known" methods as the ones listed in RFC9110 and the PATCH - * method defined in RFC5789. + * href="https://www.rfc-editor.org/rfc/rfc9110.html#name-methods">RFC9110, the PATCH method + * defined in RFC5789 and the QUERY + * method defined in httpbis-safe-method-w-body. * *

    If the HTTP request method is not known to instrumentation, it MUST set the {@code * http.request.method} attribute to {@code _OTHER}. @@ -126,8 +128,8 @@ public final class HttpAttributes { longKey("http.response.status_code"); /** - * The matched route, that is, the path template in the format used by the respective server - * framework. + * The matched route template for the request. This MUST be low-cardinality and include all static + * path segments, with dynamic path segments represented with placeholders. * *

    Notes: * @@ -135,6 +137,18 @@ public final class HttpAttributes { * attribute should have low-cardinality and the URI path can NOT substitute it. SHOULD include * the application root if there is * one. + * + *

    A static path segment is a part of the route template with a fixed, low-cardinality value. + * This includes literal strings like {@code /users/} and placeholders that are constrained to a + * finite, predefined set of values, e.g. {@code {controller}} or {@code {action}}. + * + *

    A dynamic path segment is a placeholder for a value that can have high cardinality and is + * not constrained to a predefined list like static path segments. + * + *

    Instrumentations SHOULD use routing information provided by the corresponding web framework. + * They SHOULD pick the most precise source of routing information and MAY support custom route + * formatting. Instrumentations SHOULD document the format and the API used to obtain the route + * string. */ public static final AttributeKey HTTP_ROUTE = stringKey("http.route"); diff --git a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java index 00624b51..ff88cc9b 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_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"; public static final String V1_35_0 = "https://opentelemetry.io/schemas/1.35.0";