From 45f4d7c24a5d09fdb905db3ea33c1c0cfdbc0c99 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Tue, 28 Jan 2025 11:40:17 -0800 Subject: [PATCH] chore: bump semantic convention 1.30.0 (#2572) --- opentelemetry-appender-log/src/lib.rs | 10 +- .../scripts/generate-consts-from-spec.sh | 11 +- .../templates/registry/rust/weaver.yaml | 2 +- .../src/attribute.rs | 552 +++++++-- opentelemetry-semantic-conventions/src/lib.rs | 2 +- .../src/metric.rs | 1087 +++++++++++++---- .../src/trace.rs | 55 +- 7 files changed, 1388 insertions(+), 331 deletions(-) diff --git a/opentelemetry-appender-log/src/lib.rs b/opentelemetry-appender-log/src/lib.rs index 878c45a7bc..1cc75de47f 100644 --- a/opentelemetry-appender-log/src/lib.rs +++ b/opentelemetry-appender-log/src/lib.rs @@ -116,7 +116,9 @@ use opentelemetry::{ InstrumentationScope, Key, }; #[cfg(feature = "experimental_metadata_attributes")] -use opentelemetry_semantic_conventions::attribute::{CODE_FILEPATH, CODE_LINENO, CODE_NAMESPACE}; +use opentelemetry_semantic_conventions::attribute::{ + CODE_FILEPATH, CODE_LINE_NUMBER, CODE_NAMESPACE, +}; pub struct OpenTelemetryLogBridge where @@ -158,7 +160,7 @@ where } if let Some(line_no) = record.line() { - log_record.add_attribute(Key::new(CODE_LINENO), AnyValue::from(line_no)); + log_record.add_attribute(Key::new(CODE_LINE_NUMBER), AnyValue::from(line_no)); } if let Some(module) = record.module_path() { @@ -1171,7 +1173,7 @@ mod tests { #[test] fn logbridge_code_attributes() { use opentelemetry_semantic_conventions::attribute::{ - CODE_FILEPATH, CODE_LINENO, CODE_NAMESPACE, + CODE_FILEPATH, CODE_LINE_NUMBER, CODE_NAMESPACE, }; let exporter = InMemoryLogExporter::default(); @@ -1212,7 +1214,7 @@ mod tests { Some(AnyValue::String(StringValue::from("service"))), get(CODE_NAMESPACE) ); - assert_eq!(Some(AnyValue::Int(101)), get(CODE_LINENO)); + assert_eq!(Some(AnyValue::Int(101)), get(CODE_LINE_NUMBER)); } #[test] diff --git a/opentelemetry-semantic-conventions/scripts/generate-consts-from-spec.sh b/opentelemetry-semantic-conventions/scripts/generate-consts-from-spec.sh index 7dd423477b..74c1df9d84 100755 --- a/opentelemetry-semantic-conventions/scripts/generate-consts-from-spec.sh +++ b/opentelemetry-semantic-conventions/scripts/generate-consts-from-spec.sh @@ -5,8 +5,8 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CRATE_DIR="${SCRIPT_DIR}/../" # freeze the spec version and generator version to make generation reproducible -SPEC_VERSION=1.29.0 -WEAVER_VERSION=v0.11.0 +SPEC_VERSION=1.30.0 +WEAVER_VERSION=v0.12.0 cd "$CRATE_DIR" @@ -48,7 +48,14 @@ expression=' s/\[([a-zA-Z0-9\.\s]+,[a-zA-Z0-9\.\s]+)\]/\\[\1\\]/g s/\\\[([^\]]+)\]\(([^)]+)\)/[\1](\2)/g ' + +# TODO - remove this with semconv 1.31.0. Refer: https://github.com/open-telemetry/semantic-conventions/pull/1827 +# Fix broken and malformed K8s JobSpec link +link_fix_expression='s/\\\[K8s JobSpec\\\]\(https:\/\/kubernetes\.io\/docs\/reference\/generated\/kubernetes-api\/v1\.30\/#jobspec-v1-batch\./[K8s JobSpec](https:\/\/kubernetes\.io\/docs\/reference\/generated\/kubernetes-api\/v1\.30\/#jobspec-v1-batch)./g' + "${SED[@]}" -E "${expression}" src/metric.rs "${SED[@]}" -E "${expression}" src/attribute.rs +"${SED[@]}" -E "${link_fix_expression}" src/metric.rs + cargo fmt diff --git a/opentelemetry-semantic-conventions/scripts/templates/registry/rust/weaver.yaml b/opentelemetry-semantic-conventions/scripts/templates/registry/rust/weaver.yaml index e1ec32584b..cda3945f94 100644 --- a/opentelemetry-semantic-conventions/scripts/templates/registry/rust/weaver.yaml +++ b/opentelemetry-semantic-conventions/scripts/templates/registry/rust/weaver.yaml @@ -14,7 +14,7 @@ comment_formats: default_comment_format: rust params: - schema_url: "https://opentelemetry.io/schemas/1.29.0" + schema_url: "https://opentelemetry.io/schemas/1.30.0" exclude_root_namespace: [] excluded_attributes: ["messaging.client_id"] diff --git a/opentelemetry-semantic-conventions/src/attribute.rs b/opentelemetry-semantic-conventions/src/attribute.rs index 91b70da95a..e3e6c61c22 100644 --- a/opentelemetry-semantic-conventions/src/attribute.rs +++ b/opentelemetry-semantic-conventions/src/attribute.rs @@ -41,7 +41,7 @@ pub const ANDROID_STATE: &str = "android.state"; #[cfg(feature = "semconv_experimental")] pub const ARTIFACT_ATTESTATION_FILENAME: &str = "artifact.attestation.filename"; -/// The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), of the built attestation. Some envelopes in the software attestation space also refer to this as the [digest](https://github.com/in-toto/attestation/blob/main/spec/README.md#in-toto-attestation-framework-spec). +/// The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), of the built attestation. Some envelopes in the [software attestation space](https://github.com/in-toto/attestation/tree/main/spec) also refer to this as the **digest**. /// /// ## Notes /// @@ -503,6 +503,16 @@ pub const AWS_ECS_TASK_REVISION: &str = "aws.ecs.task.revision"; #[cfg(feature = "semconv_experimental")] pub const AWS_EKS_CLUSTER_ARN: &str = "aws.eks.cluster.arn"; +/// The AWS extended request ID as returned in the response header `x-amz-id-2`. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ="` +#[cfg(feature = "semconv_experimental")] +pub const AWS_EXTENDED_REQUEST_ID: &str = "aws.extended_request_id"; + /// The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable). /// /// ## Notes @@ -570,7 +580,7 @@ pub const AWS_LOG_STREAM_ARNS: &str = "aws.log.stream.arns"; #[cfg(feature = "semconv_experimental")] pub const AWS_LOG_STREAM_NAMES: &str = "aws.log.stream.names"; -/// The AWS request ID as returned in the response headers `x-amz-request-id` or `x-amz-requestid`. +/// The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`. /// /// ## Notes /// @@ -709,6 +719,82 @@ pub const AZ_NAMESPACE: &str = "az.namespace"; #[cfg(feature = "semconv_experimental")] pub const AZ_SERVICE_REQUEST_ID: &str = "az.service_request_id"; +/// The unique identifier of the client instance. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"3ba4827d-4422-483f-b59f-85b74211c11d"` +/// - `"storage-client-1"` +#[cfg(feature = "semconv_experimental")] +pub const AZURE_CLIENT_ID: &str = "azure.client.id"; + +/// Cosmos client connection mode. +/// +/// ## Notes +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_CONNECTION_MODE: &str = "azure.cosmosdb.connection.mode"; + +/// Account or request [consistency level](https://learn.microsoft.com/azure/cosmos-db/consistency-levels). +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"Eventual"` +/// - `"ConsistentPrefix"` +/// - `"BoundedStaleness"` +/// - `"Strong"` +/// - `"Session"` +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_CONSISTENCY_LEVEL: &str = "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 `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/subscription/subscriptions/list-locations?view=rest-subscription-2021-10-01&tabs=HTTP#location) +/// +/// # Examples +/// +/// - `[ +/// "North Central US", +/// "Australia East", +/// "Australia Southeast", +/// ]` +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS: &str = + "azure.cosmosdb.operation.contacted_regions"; + +/// The number of request units consumed by the operation. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `46.18` +/// - `1.0` +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_OPERATION_REQUEST_CHARGE: &str = "azure.cosmosdb.operation.request_charge"; + +/// Request payload size in bytes. +/// +/// ## Notes +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_REQUEST_BODY_SIZE: &str = "azure.cosmosdb.request.body.size"; + +/// Cosmos DB sub status code. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `1000` +/// - `1002` +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_RESPONSE_SUB_STATUS_CODE: &str = "azure.cosmosdb.response.sub_status_code"; + /// Array of brand name and version separated by a space /// /// ## Notes @@ -763,6 +849,59 @@ pub const BROWSER_MOBILE: &str = "browser.mobile"; #[cfg(feature = "semconv_experimental")] pub const BROWSER_PLATFORM: &str = "browser.platform"; +/// The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html). +/// +/// ## Notes +#[cfg(feature = "semconv_experimental")] +pub const CASSANDRA_CONSISTENCY_LEVEL: &str = "cassandra.consistency.level"; + +/// The data center of the coordinating node for a query. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"us-west-2"` +#[cfg(feature = "semconv_experimental")] +pub const CASSANDRA_COORDINATOR_DC: &str = "cassandra.coordinator.dc"; + +/// The ID of the coordinating node for a query. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"be13faa2-8574-4d71-926d-27f16cf8a7af"` +#[cfg(feature = "semconv_experimental")] +pub const CASSANDRA_COORDINATOR_ID: &str = "cassandra.coordinator.id"; + +/// The fetch size used for paging, i.e. how many rows will be returned at once. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `5000` +#[cfg(feature = "semconv_experimental")] +pub const CASSANDRA_PAGE_SIZE: &str = "cassandra.page.size"; + +/// Whether or not the query is idempotent. +/// +/// ## Notes +#[cfg(feature = "semconv_experimental")] +pub const CASSANDRA_QUERY_IDEMPOTENT: &str = "cassandra.query.idempotent"; + +/// The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `0` +/// - `2` +#[cfg(feature = "semconv_experimental")] +pub const CASSANDRA_SPECULATIVE_EXECUTION_COUNT: &str = "cassandra.speculative_execution.count"; + /// The human readable name of the pipeline within a CI/CD system. /// /// ## Notes @@ -776,6 +915,19 @@ pub const BROWSER_PLATFORM: &str = "browser.platform"; #[cfg(feature = "semconv_experimental")] pub const CICD_PIPELINE_NAME: &str = "cicd.pipeline.name"; +/// The result of a pipeline run. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"success"` +/// - `"failure"` +/// - `"timeout"` +/// - `"skipped"` +#[cfg(feature = "semconv_experimental")] +pub const CICD_PIPELINE_RESULT: &str = "cicd.pipeline.result"; + /// The unique identifier of a pipeline run within a CI/CD system. /// /// ## Notes @@ -786,6 +938,18 @@ pub const CICD_PIPELINE_NAME: &str = "cicd.pipeline.name"; #[cfg(feature = "semconv_experimental")] pub const CICD_PIPELINE_RUN_ID: &str = "cicd.pipeline.run.id"; +/// The pipeline run goes through these states during its lifecycle. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"pending"` +/// - `"executing"` +/// - `"finalizing"` +#[cfg(feature = "semconv_experimental")] +pub const CICD_PIPELINE_RUN_STATE: &str = "cicd.pipeline.run.state"; + /// The human readable name of a task within a pipeline. Task here most closely aligns with a [computing process](https://wikipedia.org/wiki/Pipeline_(computing)) in a pipeline. Other terms for tasks include commands, steps, and procedures. /// /// ## Notes @@ -831,6 +995,30 @@ pub const CICD_PIPELINE_TASK_RUN_URL_FULL: &str = "cicd.pipeline.task.run.url.fu #[cfg(feature = "semconv_experimental")] pub const CICD_PIPELINE_TASK_TYPE: &str = "cicd.pipeline.task.type"; +/// The name of a component of the CICD system. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"controller"` +/// - `"scheduler"` +/// - `"agent"` +#[cfg(feature = "semconv_experimental")] +pub const CICD_SYSTEM_COMPONENT: &str = "cicd.system.component"; + +/// The state of a CICD worker / agent. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"idle"` +/// - `"busy"` +/// - `"down"` +#[cfg(feature = "semconv_experimental")] +pub const CICD_WORKER_STATE: &str = "cicd.worker.state"; + /// Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. /// /// ## Notes @@ -1159,7 +1347,7 @@ pub const CLOUDFOUNDRY_SYSTEM_ID: &str = "cloudfoundry.system.id"; #[cfg(feature = "semconv_experimental")] pub const CLOUDFOUNDRY_SYSTEM_INSTANCE_ID: &str = "cloudfoundry.system.instance.id"; -/// The column number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`. +/// Deprecated, use `code.column.number` /// /// ## Notes /// @@ -1167,8 +1355,19 @@ pub const CLOUDFOUNDRY_SYSTEM_INSTANCE_ID: &str = "cloudfoundry.system.instance. /// /// - `16` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `code.column.number`")] pub const CODE_COLUMN: &str = "code.column"; +/// The column number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `16` +#[cfg(feature = "semconv_experimental")] +pub const CODE_COLUMN_NUMBER: &str = "code.column.number"; + /// The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). /// /// ## Notes @@ -1177,9 +1376,19 @@ pub const CODE_COLUMN: &str = "code.column"; /// /// - `"/usr/local/MyApplication/content_root/app/index.php"` #[cfg(feature = "semconv_experimental")] +pub const CODE_FILE_PATH: &str = "code.file.path"; + +/// Deprecated, use `code.file.path` instead +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"/usr/local/MyApplication/content_root/app/index.php"` +#[cfg(feature = "semconv_experimental")] pub const CODE_FILEPATH: &str = "code.filepath"; -/// The method or function name, or equivalent (usually rightmost part of the code unit's name). +/// Deprecated, use `code.function.name` instead /// /// ## Notes /// @@ -1187,9 +1396,20 @@ pub const CODE_FILEPATH: &str = "code.filepath"; /// /// - `"serveRequest"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `code.function.name`")] pub const CODE_FUNCTION: &str = "code.function"; -/// The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`. +/// The method or function name, or equivalent (usually rightmost part of the code unit's name). +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"serveRequest"` +#[cfg(feature = "semconv_experimental")] +pub const CODE_FUNCTION_NAME: &str = "code.function.name"; + +/// The line number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`. /// /// ## Notes /// @@ -1197,9 +1417,20 @@ pub const CODE_FUNCTION: &str = "code.function"; /// /// - `42` #[cfg(feature = "semconv_experimental")] +pub const CODE_LINE_NUMBER: &str = "code.line.number"; + +/// Deprecated, use `code.line.number` instead +/// +/// ## Notes +/// +/// # Examples +/// +/// - `42` +#[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `code.line.number`")] pub const CODE_LINENO: &str = "code.lineno"; -/// The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit. +/// The "namespace" within which `code.function.name` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function.name` form a unique identifier for the code unit. /// /// ## Notes /// @@ -1407,13 +1638,14 @@ pub const CONTAINER_RUNTIME: &str = "container.runtime"; #[cfg(feature = "semconv_experimental")] pub const CPU_MODE: &str = "cpu.mode"; -/// The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html). +/// Deprecated, use `cassandra.consistency.level` instead. /// /// ## Notes #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `cassandra.consistency.level`.")] pub const DB_CASSANDRA_CONSISTENCY_LEVEL: &str = "db.cassandra.consistency_level"; -/// The data center of the coordinating node for a query. +/// Deprecated, use `cassandra.coordinator.dc` instead. /// /// ## Notes /// @@ -1421,9 +1653,10 @@ pub const DB_CASSANDRA_CONSISTENCY_LEVEL: &str = "db.cassandra.consistency_level /// /// - `"us-west-2"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `cassandra.coordinator.dc`.")] pub const DB_CASSANDRA_COORDINATOR_DC: &str = "db.cassandra.coordinator.dc"; -/// The ID of the coordinating node for a query. +/// Deprecated, use `cassandra.coordinator.id` instead. /// /// ## Notes /// @@ -1431,15 +1664,17 @@ pub const DB_CASSANDRA_COORDINATOR_DC: &str = "db.cassandra.coordinator.dc"; /// /// - `"be13faa2-8574-4d71-926d-27f16cf8a7af"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `cassandra.coordinator.id`.")] pub const DB_CASSANDRA_COORDINATOR_ID: &str = "db.cassandra.coordinator.id"; -/// Whether or not the query is idempotent. +/// Deprecated, use `cassandra.query.idempotent` instead. /// /// ## Notes #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `cassandra.query.idempotent`.")] pub const DB_CASSANDRA_IDEMPOTENCE: &str = "db.cassandra.idempotence"; -/// The fetch size used for paging, i.e. how many rows will be returned at once. +/// Deprecated, use `cassandra.page.size` instead. /// /// ## Notes /// @@ -1447,9 +1682,10 @@ pub const DB_CASSANDRA_IDEMPOTENCE: &str = "db.cassandra.idempotence"; /// /// - `5000` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `cassandra.page.size`.")] pub const DB_CASSANDRA_PAGE_SIZE: &str = "db.cassandra.page_size"; -/// The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively. +/// Deprecated, use `cassandra.speculative_execution.count` instead. /// /// ## Notes /// @@ -1458,6 +1694,7 @@ pub const DB_CASSANDRA_PAGE_SIZE: &str = "db.cassandra.page_size"; /// - `0` /// - `2` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `cassandra.speculative_execution.count`.")] pub const DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT: &str = "db.cassandra.speculative_execution_count"; @@ -1526,8 +1763,6 @@ pub const DB_CLIENT_CONNECTIONS_STATE: &str = "db.client.connections.state"; /// 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. -/// /// # Examples /// /// - `"public.users"` @@ -1546,7 +1781,7 @@ pub const DB_COLLECTION_NAME: &str = "db.collection.name"; #[deprecated(note = "Replaced by `server.address` and `server.port`.")] pub const DB_CONNECTION_STRING: &str = "db.connection_string"; -/// Unique Cosmos client instance id. +/// Deprecated, use `azure.client.id` instead. /// /// ## Notes /// @@ -1554,15 +1789,17 @@ pub const DB_CONNECTION_STRING: &str = "db.connection_string"; /// /// - `"3ba4827d-4422-483f-b59f-85b74211c11d"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.client.id`.")] pub const DB_COSMOSDB_CLIENT_ID: &str = "db.cosmosdb.client_id"; -/// Cosmos client connection mode. +/// Deprecated, use `azure.cosmosdb.connection.mode` instead. /// /// ## Notes #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.connection.mode`.")] pub const DB_COSMOSDB_CONNECTION_MODE: &str = "db.cosmosdb.connection_mode"; -/// Account or request [consistency level](https://learn.microsoft.com/azure/cosmos-db/consistency-levels). +/// Deprecated, use `cosmosdb.consistency.level` instead. /// /// ## Notes /// @@ -1574,6 +1811,7 @@ pub const DB_COSMOSDB_CONNECTION_MODE: &str = "db.cosmosdb.connection_mode"; /// - `"Strong"` /// - `"Session"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.consistency.level`.")] pub const DB_COSMOSDB_CONSISTENCY_LEVEL: &str = "db.cosmosdb.consistency_level"; /// Deprecated, use `db.collection.name` instead. @@ -1594,12 +1832,10 @@ pub const DB_COSMOSDB_CONTAINER: &str = "db.cosmosdb.container"; #[deprecated(note = "No replacement at this time.")] pub const DB_COSMOSDB_OPERATION_TYPE: &str = "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 `azure.cosmosdb.operation.contacted_regions` instead. /// /// ## Notes /// -/// Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/subscription/subscriptions/list-locations?view=rest-subscription-2021-10-01&tabs=HTTP#location) -/// /// # Examples /// /// - `[ @@ -1608,9 +1844,10 @@ pub const DB_COSMOSDB_OPERATION_TYPE: &str = "db.cosmosdb.operation_type"; /// "Australia Southeast", /// ]` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.operation.contacted_regions`.")] pub const DB_COSMOSDB_REGIONS_CONTACTED: &str = "db.cosmosdb.regions_contacted"; -/// Request units consumed for the operation. +/// Deprecated, use `azure.cosmosdb.operation.request_charge` instead. /// /// ## Notes /// @@ -1619,12 +1856,14 @@ pub const DB_COSMOSDB_REGIONS_CONTACTED: &str = "db.cosmosdb.regions_contacted"; /// - `46.18` /// - `1.0` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.operation.request_charge`.")] pub const DB_COSMOSDB_REQUEST_CHARGE: &str = "db.cosmosdb.request_charge"; -/// Request payload size in bytes. +/// Deprecated, use `azure.cosmosdb.request.body.size` instead. /// /// ## Notes #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.request.body.size`.")] pub const DB_COSMOSDB_REQUEST_CONTENT_LENGTH: &str = "db.cosmosdb.request_content_length"; /// Deprecated, use `db.response.status_code` instead. @@ -1639,7 +1878,7 @@ pub const DB_COSMOSDB_REQUEST_CONTENT_LENGTH: &str = "db.cosmosdb.request_conten #[deprecated(note = "Replaced by `db.response.status_code`.")] pub const DB_COSMOSDB_STATUS_CODE: &str = "db.cosmosdb.status_code"; -/// Cosmos DB sub status code. +/// Deprecated, use `azure.cosmosdb.response.sub_status_code` instead. /// /// ## Notes /// @@ -1648,6 +1887,7 @@ pub const DB_COSMOSDB_STATUS_CODE: &str = "db.cosmosdb.status_code"; /// - `1000` /// - `1002` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.response.sub_status_code`.")] pub const DB_COSMOSDB_SUB_STATUS_CODE: &str = "db.cosmosdb.sub_status_code"; /// Deprecated, use `db.namespace` instead. @@ -1661,7 +1901,7 @@ pub const DB_COSMOSDB_SUB_STATUS_CODE: &str = "db.cosmosdb.sub_status_code"; #[deprecated(note = "Replaced by `db.namespace`.")] pub const DB_ELASTICSEARCH_CLUSTER_NAME: &str = "db.elasticsearch.cluster.name"; -/// Represents the human-readable identifier of the node/instance to which a request was routed. +/// Deprecated, use `elasticsearch.node.name` instead. /// /// ## Notes /// @@ -1669,19 +1909,19 @@ pub const DB_ELASTICSEARCH_CLUSTER_NAME: &str = "db.elasticsearch.cluster.name"; /// /// - `"instance-0000000001"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `elasticsearch.node.name`.")] pub const DB_ELASTICSEARCH_NODE_NAME: &str = "db.elasticsearch.node.name"; -/// A dynamic value in the url path. +/// Deprecated, use `db.operation.parameter` instead. /// /// ## Notes /// -/// Many Elasticsearch url paths allow dynamic values. These SHOULD be recorded in span attributes in the format `db.elasticsearch.path_parts.[key]`, where `[key]` is the url path part name. The implementation SHOULD reference the [elasticsearch schema](https://raw.githubusercontent.com/elastic/elasticsearch-specification/main/output/schema/schema.json) in order to map the path part values to their names. -/// /// # Examples /// /// - `"db.elasticsearch.path_parts.index=test-index"` /// - `"db.elasticsearch.path_parts.doc_id=123"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `db.operation.parameter`.")] pub const DB_ELASTICSEARCH_PATH_PARTS: &str = "db.elasticsearch.path_parts"; /// Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. @@ -1750,7 +1990,6 @@ pub const DB_NAME: &str = "db.name"; /// If a database system has multiple namespace components, they SHOULD be concatenated (potentially using database system specific conventions) from most general to most specific namespace component, and more specific namespaces SHOULD NOT be captured without the more general namespaces, to ensure that "startswith" queries for the more general namespaces will be valid. /// Semantic conventions for individual database systems SHOULD document what `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. /// /// # Examples /// @@ -1777,7 +2016,6 @@ pub const DB_OPERATION: &str = "db.operation"; /// ## Notes /// /// Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` SHOULD never be `1`. -/// This attribute has stability level RELEASE CANDIDATE. /// /// # Examples /// @@ -1802,8 +2040,6 @@ pub const DB_OPERATION_BATCH_SIZE: &str = "db.operation.batch.size"; /// otherwise `db.operation.name` SHOULD be `BATCH` or some other database /// system specific term if more applicable. /// -/// This attribute has stability level RELEASE CANDIDATE. -/// /// # Examples /// /// - `"findAndModify"` @@ -1818,7 +2054,6 @@ pub const DB_OPERATION_NAME: &str = "db.operation.name"; /// /// If a parameter has no name and instead is referenced only by index, then `[key]` SHOULD be the 0-based index. /// If `db.query.text` is also captured, then `db.operation.parameter.[key]` SHOULD match up with the parameterized placeholders present in `db.query.text`. -/// This attribute has stability level RELEASE CANDIDATE. /// /// # Examples /// @@ -1845,7 +2080,6 @@ pub const DB_QUERY_PARAMETER: &str = "db.query.parameter"; /// /// `db.query.summary` provides static summary of the query text. It describes a class of database queries and is useful as a grouping key, especially when analyzing telemetry for database calls involving complex queries. /// 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 summary](../../docs/database/database-spans.md#generating-a-summary-of-the-query-text) section. -/// This attribute has stability level RELEASE CANDIDATE. /// /// # Examples /// @@ -1862,7 +2096,6 @@ pub const DB_QUERY_SUMMARY: &str = "db.query.summary"; /// For sanitization see [Sanitization of `db.query.text`](../../docs/database/database-spans.md#sanitization-of-dbquerytext). /// 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 `; ` or some other database system specific 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. /// /// # Examples /// @@ -1902,7 +2135,6 @@ pub const DB_RESPONSE_RETURNED_ROWS: &str = "db.response.returned_rows"; /// /// 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 `db.response.status_code` means in the context of that system. -/// This attribute has stability level RELEASE CANDIDATE. /// /// # Examples /// @@ -1936,14 +2168,20 @@ pub const DB_SQL_TABLE: &str = "db.sql.table"; #[deprecated(note = "Replaced by `db.query.text`.")] pub const DB_STATEMENT: &str = "db.statement"; +/// Deprecated, use `db.system.name` instead. +/// +/// ## Notes +#[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `db.system.name`.")] +pub const DB_SYSTEM: &str = "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 `db.system` is set to `postgresql` based on the instrumentation's best knowledge. -/// This attribute has stability level RELEASE CANDIDATE +/// 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 `db.system.name` is set to `postgresql` based on the instrumentation's best knowledge #[cfg(feature = "semconv_experimental")] -pub const DB_SYSTEM: &str = "db.system"; +pub const DB_SYSTEM_NAME: &str = "db.system.name"; /// Deprecated, no replacement at this time. /// @@ -2123,9 +2361,18 @@ pub const DNS_QUESTION_NAME: &str = "dns.question.name"; /// - `"gen0"` /// - `"gen1"` /// - `"gen2"` -#[cfg(feature = "semconv_experimental")] pub const DOTNET_GC_HEAP_GENERATION: &str = "dotnet.gc.heap.generation"; +/// Represents the human-readable identifier of the node/instance to which a request was routed. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"instance-0000000001"` +#[cfg(feature = "semconv_experimental")] +pub const ELASTICSEARCH_NODE_NAME: &str = "elasticsearch.node.name"; + /// Deprecated, use `user.id` instead. /// /// ## Notes @@ -2195,35 +2442,20 @@ pub const ERROR_TYPE: &str = "error.type"; /// /// ## Notes /// -/// Event names are subject to the same rules as [attribute names](/docs/general/attribute-naming.md). 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. -/// /// # Examples /// /// - `"browser.mouse.click"` /// - `"device.app.lifecycle"` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by EventName top-level field on the LogRecord")] pub const EVENT_NAME: &str = "event.name"; -/// SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span. +/// Indicates that the exception is escaping the scope of the span. /// /// ## Notes -/// -/// An exception is considered to have escaped (or left) the scope of a span, -/// if that span is ended while the exception is still logically "in flight". -/// This may be actually "in flight" in some languages (e.g. if the exception -/// is passed to a Context manager's `__exit__` method in Python) but will -/// usually be caught at the point of recording the exception in most languages. -/// -/// It is usually not possible to determine at the point where an exception is thrown -/// whether it will escape the scope of a span. -/// However, it is trivial to know that an exception -/// will escape, if one checks for an active exception just before ending the span, -/// as done in the [example for recording span exceptions](https://opentelemetry.io/docs/specs/semconv/exceptions/exceptions-spans/#recording-an-exception). -/// -/// It follows that an exception may still escape the scope of the span -/// even if the `exception.escaped` attribute was not set or set to false, -/// since the event might have been recorded at a time where it was not -/// clear whether the exception will escape +#[deprecated( + note = "It's no longer recommended to record exceptions that are handled and do not escape the scope of a span." +)] pub const EXCEPTION_ESCAPED: &str = "exception.escaped"; /// The exception message. @@ -2382,7 +2614,7 @@ pub const FAAS_MAX_MEMORY: &str = "faas.max_memory"; /// 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.namespace`/`code.function`](/docs/general/attributes.md#source-code-attributes) +/// [`code.namespace`/`code.function.name`](/docs/general/attributes.md#source-code-attributes) /// span attributes). /// /// For some cloud providers, the above definition is ambiguous. The following @@ -2811,7 +3043,7 @@ pub const GEN_AI_COMPLETION: &str = "gen_ai.completion"; #[cfg(feature = "semconv_experimental")] pub const GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT: &str = "gen_ai.openai.request.response_format"; -/// Requests with same seed value more likely to return same result. +/// Deprecated, use `gen_ai.request.seed`. /// /// ## Notes /// @@ -2819,6 +3051,7 @@ pub const GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT: &str = "gen_ai.openai.request.r /// /// - `100` #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `gen_ai.request.seed` attribute.")] pub const GEN_AI_OPENAI_REQUEST_SEED: &str = "gen_ai.openai.request.seed"; /// The service tier requested. May be a specific tier, default, or auto. @@ -2931,6 +3164,16 @@ pub const GEN_AI_REQUEST_MODEL: &str = "gen_ai.request.model"; #[cfg(feature = "semconv_experimental")] pub const GEN_AI_REQUEST_PRESENCE_PENALTY: &str = "gen_ai.request.presence_penalty"; +/// Requests with same seed value more likely to return same result. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `100` +#[cfg(feature = "semconv_experimental")] +pub const GEN_AI_REQUEST_SEED: &str = "gen_ai.request.seed"; + /// List of sequences that the model will use to stop generating further tokens. /// /// ## Notes @@ -3018,8 +3261,10 @@ pub const GEN_AI_RESPONSE_MODEL: &str = "gen_ai.response.model"; /// by `gen_ai.request.model` and `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 `gen_ai.system` -/// is set to `openai` based on the instrumentation's best knowledge. +/// Multiple systems, including Azure OpenAI and Gemini, are accessible by OpenAI client +/// libraries. In such cases, the `gen_ai.system` is set to `openai` based on the +/// instrumentation's best knowledge, instead of the actual system. The `server.address` +/// attribute may help identify the actual system in use for `openai`. /// /// For custom model, a custom friendly name SHOULD be used. /// If none of these options apply, the `gen_ai.system` SHOULD be set to `_OTHER`. @@ -3983,6 +4228,20 @@ pub const K8S_JOB_UID: &str = "k8s.job.uid"; #[cfg(feature = "semconv_experimental")] pub const K8S_NAMESPACE_NAME: &str = "k8s.namespace.name"; +/// The phase of the K8s namespace. +/// +/// ## Notes +/// +/// This attribute aligns with the `phase` field of the +/// [K8s NamespaceStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#namespacestatus-v1-core) +/// +/// # Examples +/// +/// - `"active"` +/// - `"terminating"` +#[cfg(feature = "semconv_experimental")] +pub const K8S_NAMESPACE_PHASE: &str = "k8s.namespace.phase"; + /// The name of the Node. /// /// ## Notes @@ -4912,6 +5171,18 @@ pub const NETWORK_CARRIER_MNC: &str = "network.carrier.mnc"; #[cfg(feature = "semconv_experimental")] pub const NETWORK_CARRIER_NAME: &str = "network.carrier.name"; +/// The state of network connection +/// +/// ## Notes +/// +/// Connection states are defined as part of the [rfc9293](https://datatracker.ietf.org/doc/html/rfc9293#section-3.3.2) +/// +/// # Examples +/// +/// - `"close_wait"` +#[cfg(feature = "semconv_experimental")] +pub const NETWORK_CONNECTION_STATE: &str = "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. /// /// ## Notes @@ -4940,6 +5211,7 @@ pub const NETWORK_CONNECTION_TYPE: &str = "network.connection.type"; /// /// - `"lo"` /// - `"eth0"` +#[cfg(feature = "semconv_experimental")] pub const NETWORK_INTERFACE_NAME: &str = "network.interface.name"; /// The network IO operation direction. @@ -5703,7 +5975,7 @@ pub const RPC_MESSAGE_UNCOMPRESSED_SIZE: &str = "rpc.message.uncompressed_size"; /// /// ## 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.function` 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, which can be different from the name of any implementing method/function. The `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). /// /// # Examples /// @@ -5729,6 +6001,89 @@ pub const RPC_SERVICE: &str = "rpc.service"; #[cfg(feature = "semconv_experimental")] pub const RPC_SYSTEM: &str = "rpc.system"; +/// A categorization value keyword used by the entity using the rule for detection of this event +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"Attempted Information Leak"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_CATEGORY: &str = "security_rule.category"; + +/// The description of the rule generating the event. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"Block requests to public DNS over HTTPS / TLS protocols"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_DESCRIPTION: &str = "security_rule.description"; + +/// Name of the license under which the rule used to generate this event is made available. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"Apache 2.0"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_LICENSE: &str = "security_rule.license"; + +/// The name of the rule or signature generating the event. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"BLOCK_DNS_over_TLS"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_NAME: &str = "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. +/// +/// # Examples +/// +/// - `"https://en.wikipedia.org/wiki/DNS_over_TLS"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_REFERENCE: &str = "security_rule.reference"; + +/// Name of the ruleset, policy, group, or parent category in which the rule used to generate this event is a member. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"Standard_Protocol_Filters"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_RULESET_NAME: &str = "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. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"550e8400-e29b-41d4-a716-446655440000"` +/// - `"1100110011"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_UUID: &str = "security_rule.uuid"; + +/// The version / revision of the rule being used for analysis. +/// +/// ## Notes +/// +/// # Examples +/// +/// - `"1.0.0"` +#[cfg(feature = "semconv_experimental")] +pub const SECURITY_RULE_VERSION: &str = "security_rule.version"; + /// Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. /// /// ## Notes @@ -5973,7 +6328,7 @@ pub const SYSTEM_FILESYSTEM_TYPE: &str = "system.filesystem.type"; #[cfg(feature = "semconv_experimental")] pub const SYSTEM_MEMORY_STATE: &str = "system.memory.state"; -/// A stateless protocol MUST NOT set this attribute +/// Deprecated, use `network.connection.state` instead. /// /// ## Notes /// @@ -5981,6 +6336,9 @@ pub const SYSTEM_MEMORY_STATE: &str = "system.memory.state"; /// /// - `"close_wait"` #[cfg(feature = "semconv_experimental")] +#[deprecated( + note = "Removed, report network connection state with `network.connection.state` attribute" +)] pub const SYSTEM_NETWORK_STATE: &str = "system.network.state"; /// The paging access direction @@ -6820,6 +7178,10 @@ pub const VCS_LINE_CHANGE_TYPE: &str = "vcs.line_change.type"; /// /// ## Notes /// +/// `base` refers to the starting point of a change. For example, `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. +/// /// # Examples /// /// - `"my-feature-branch"` @@ -6831,15 +7193,19 @@ pub const VCS_REF_BASE_NAME: &str = "vcs.ref.base.name"; /// /// ## Notes /// -/// The revision can be a full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), +/// `base` refers to the starting point of a change. For example, `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)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), /// of the recorded change to a ref within a repository pointing to a /// commit [commit](https://git-scm.com/docs/git-commit) object. It does -/// not necessarily have to be a hash; it can simply define a -/// [revision number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html) +/// not necessarily have to be a hash; it can simply define a [revision +/// number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html) /// which is an integer that is monotonically increasing. In cases where -/// it is identical to the `ref.base.name`, it SHOULD still be included. It is -/// up to the implementer to decide which value to set as the revision -/// based on the VCS system and situational context. +/// it is identical to the `ref.base.name`, it SHOULD still be included. +/// It is up to the implementer to decide which value to set as the +/// revision based on the VCS system and situational context. /// /// # Examples /// @@ -6854,6 +7220,10 @@ pub const VCS_REF_BASE_REVISION: &str = "vcs.ref.base.revision"; /// /// ## Notes /// +/// `base` refers to the starting point of a change. For example, `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. +/// /// # Examples /// /// - `"branch"` @@ -6865,6 +7235,9 @@ pub const VCS_REF_BASE_TYPE: &str = "vcs.ref.base.type"; /// /// ## Notes /// +/// `head` refers to where you are right now; the current reference at a +/// given time. +/// /// # Examples /// /// - `"my-feature-branch"` @@ -6876,15 +7249,17 @@ pub const VCS_REF_HEAD_NAME: &str = "vcs.ref.head.name"; /// /// ## Notes /// -/// The revision can be a full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), +/// `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)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), /// of the recorded change to a ref within a repository pointing to a /// commit [commit](https://git-scm.com/docs/git-commit) object. It does -/// not necessarily have to be a hash; it can simply define a -/// [revision number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html) +/// not necessarily have to be a hash; it can simply define a [revision +/// number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html) /// which is an integer that is monotonically increasing. In cases where -/// it is identical to the `ref.head.name`, it SHOULD still be included. It is -/// up to the implementer to decide which value to set as the revision -/// based on the VCS system and situational context. +/// it is identical to the `ref.head.name`, it SHOULD still be included. +/// It is up to the implementer to decide which value to set as the +/// revision based on the VCS system and situational context. /// /// # Examples /// @@ -6899,6 +7274,9 @@ pub const VCS_REF_HEAD_REVISION: &str = "vcs.ref.head.revision"; /// /// ## Notes /// +/// `head` refers to where you are right now; the current reference at a +/// given time. +/// /// # Examples /// /// - `"branch"` @@ -6941,6 +7319,21 @@ pub const VCS_REPOSITORY_CHANGE_ID: &str = "vcs.repository.change.id"; #[deprecated(note = "Deprecated, use `vcs.change.title` instead.")] pub const VCS_REPOSITORY_CHANGE_TITLE: &str = "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. +/// +/// # Examples +/// +/// - `"semantic-conventions"` +/// - `"my-cool-repo"` +#[cfg(feature = "semconv_experimental")] +pub const VCS_REPOSITORY_NAME: &str = "vcs.repository.name"; + /// Deprecated, use `vcs.ref.head.name` instead. /// /// ## Notes @@ -6979,10 +7372,13 @@ pub const VCS_REPOSITORY_REF_REVISION: &str = "vcs.repository.ref.revision"; #[deprecated(note = "Deprecated, use `vcs.ref.head.type` instead.")] pub const VCS_REPOSITORY_REF_TYPE: &str = "vcs.repository.ref.type"; -/// The [URL](https://wikipedia.org/wiki/URL) of the repository providing the complete address in order to locate and identify the repository. +/// The [canonical URL](https://support.google.com/webmasters/answer/10347851?hl=en#:~:text=A%20canonical%20URL%20is%20the,Google%20chooses%20one%20as%20canonical.) 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 `.git` extension. +/// /// # Examples /// /// - `"https://github.com/opentelemetry/open-telemetry-collector-contrib"` diff --git a/opentelemetry-semantic-conventions/src/lib.rs b/opentelemetry-semantic-conventions/src/lib.rs index bdb0a9277e..21a73cfcb4 100644 --- a/opentelemetry-semantic-conventions/src/lib.rs +++ b/opentelemetry-semantic-conventions/src/lib.rs @@ -22,4 +22,4 @@ pub mod trace; /// The schema URL that matches the version of the semantic conventions that /// this crate defines. -pub const SCHEMA_URL: &str = "https://opentelemetry.io/schemas/1.29.0"; +pub const SCHEMA_URL: &str = "https://opentelemetry.io/schemas/1.30.0"; diff --git a/opentelemetry-semantic-conventions/src/metric.rs b/opentelemetry-semantic-conventions/src/metric.rs index 837101e0df..086d6a9b6b 100644 --- a/opentelemetry-semantic-conventions/src/metric.rs +++ b/opentelemetry-semantic-conventions/src/metric.rs @@ -183,6 +183,152 @@ pub const ASPNETCORE_RATE_LIMITING_REQUESTS: &str = "aspnetcore.rate_limiting.re /// | [`crate::attribute::HTTP_ROUTE`] | `Conditionally_required`: if and only if a route was successfully matched. pub const ASPNETCORE_ROUTING_MATCH_ATTEMPTS: &str = "aspnetcore.routing.match_attempts"; +/// ## Description +/// +/// Number of active client instances +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{instance}` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::SERVER_ADDRESS`] | `Recommended` +/// | [`crate::attribute::SERVER_PORT`] | `Conditionally_required`: If using a port other than the default port for this DBMS and if `server.address` is set. +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_CLIENT_ACTIVE_INSTANCE_COUNT: &str = + "azure.cosmosdb.client.active_instance.count"; + +/// ## Description +/// +/// [Request units](https://learn.microsoft.com/azure/cosmos-db/request-units) consumed by the operation +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `histogram` | +/// | Unit: | `{request_unit}` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::AZURE_COSMOSDB_CONSISTENCY_LEVEL`] | `Conditionally_required`: If available. +/// | [`crate::attribute::AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS`] | `{"recommended": "if available"}` +/// | [`crate::attribute::AZURE_COSMOSDB_RESPONSE_SUB_STATUS_CODE`] | `Conditionally_required`: when response was received and contained sub-code. +/// | [`crate::attribute::DB_COLLECTION_NAME`] | `Conditionally_required`: If available. +/// | [`crate::attribute::DB_NAMESPACE`] | `Conditionally_required`: If available. +/// | [`crate::attribute::DB_OPERATION_NAME`] | `Conditionally_required`: If readily available and if there is a single operation name that describes the database call. The operation name MAY be parsed from the query text, in which case it SHOULD be the single operation name found in the query. +/// | [`crate::attribute::DB_RESPONSE_STATUS_CODE`] | `Conditionally_required`: If the operation failed and status code is available. +/// | [`crate::attribute::ERROR_TYPE`] | `Conditionally_required`: If and only if the operation failed. +/// | [`crate::attribute::SERVER_ADDRESS`] | `Recommended` +/// | [`crate::attribute::SERVER_PORT`] | `Conditionally_required`: If using a port other than the default port for this DBMS and if `server.address` is set. +#[cfg(feature = "semconv_experimental")] +pub const AZURE_COSMOSDB_CLIENT_OPERATION_REQUEST_CHARGE: &str = + "azure.cosmosdb.client.operation.request_charge"; + +/// ## Description +/// +/// The number of pipeline runs currently active in the system by state +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{run}` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::CICD_PIPELINE_NAME`] | `Required` +/// | [`crate::attribute::CICD_PIPELINE_RUN_STATE`] | `Required` +#[cfg(feature = "semconv_experimental")] +pub const CICD_PIPELINE_RUN_ACTIVE: &str = "cicd.pipeline.run.active"; + +/// ## Description +/// +/// Duration of a pipeline run grouped by pipeline, state and result +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `histogram` | +/// | Unit: | `s` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::CICD_PIPELINE_NAME`] | `Required` +/// | [`crate::attribute::CICD_PIPELINE_RESULT`] | `Conditionally_required`: If and only if the pipeline run result has been set during that state. +/// | [`crate::attribute::CICD_PIPELINE_RUN_STATE`] | `Required` +/// | [`crate::attribute::ERROR_TYPE`] | `Conditionally_required`: If and only if the pipeline run failed. +#[cfg(feature = "semconv_experimental")] +pub const CICD_PIPELINE_RUN_DURATION: &str = "cicd.pipeline.run.duration"; + +/// ## Description +/// +/// The number of errors encountered in pipeline runs (eg. compile, test failures). +/// +/// ## Notes +/// +/// There might be errors in a pipeline run that are non fatal (eg. they are suppressed) or in a parallel stage multiple stages could have a fatal error. +/// This means that this error count might not be the same as the count of metric `cicd.pipeline.run.duration` with run result `failure` +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `counter` | +/// | Unit: | `{error}` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::CICD_PIPELINE_NAME`] | `Required` +/// | [`crate::attribute::ERROR_TYPE`] | `Required` +#[cfg(feature = "semconv_experimental")] +pub const CICD_PIPELINE_RUN_ERRORS: &str = "cicd.pipeline.run.errors"; + +/// ## Description +/// +/// The number of errors in a component of the CICD system (eg. controller, scheduler, agent). +/// +/// ## Notes +/// +/// Errors in pipeline run execution are explicitly excluded. Ie a test failure is not counted in this metric +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `counter` | +/// | Unit: | `{error}` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::CICD_SYSTEM_COMPONENT`] | `Required` +/// | [`crate::attribute::ERROR_TYPE`] | `Required` +#[cfg(feature = "semconv_experimental")] +pub const CICD_SYSTEM_ERRORS: &str = "cicd.system.errors"; + +/// ## Description +/// +/// The number of workers on the CICD system by state +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{count}` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::CICD_WORKER_STATE`] | `Required` +#[cfg(feature = "semconv_experimental")] +pub const CICD_WORKER_COUNT: &str = "cicd.worker.count"; + /// ## Description /// /// Total CPU time consumed @@ -195,7 +341,7 @@ pub const ASPNETCORE_ROUTING_MATCH_ATTEMPTS: &str = "aspnetcore.routing.match_at /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -216,7 +362,7 @@ pub const CONTAINER_CPU_TIME: &str = "container.cpu.time"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{cpu}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -237,7 +383,7 @@ pub const CONTAINER_CPU_USAGE: &str = "container.cpu.usage"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -259,7 +405,7 @@ pub const CONTAINER_DISK_IO: &str = "container.disk.io"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const CONTAINER_MEMORY_USAGE: &str = "container.memory.usage"; @@ -275,7 +421,7 @@ pub const CONTAINER_MEMORY_USAGE: &str = "container.memory.usage"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -298,7 +444,7 @@ pub const CONTAINER_NETWORK_IO: &str = "container.network.io"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const CONTAINER_UPTIME: &str = "container.uptime"; @@ -310,7 +456,7 @@ pub const CONTAINER_UPTIME: &str = "container.uptime"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -328,7 +474,7 @@ pub const DB_CLIENT_CONNECTION_COUNT: &str = "db.client.connection.count"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -345,7 +491,7 @@ pub const DB_CLIENT_CONNECTION_CREATE_TIME: &str = "db.client.connection.create_ /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -362,7 +508,7 @@ pub const DB_CLIENT_CONNECTION_IDLE_MAX: &str = "db.client.connection.idle.max"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -379,7 +525,7 @@ pub const DB_CLIENT_CONNECTION_IDLE_MIN: &str = "db.client.connection.idle.min"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -396,7 +542,7 @@ pub const DB_CLIENT_CONNECTION_MAX: &str = "db.client.connection.max"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{request}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -413,7 +559,7 @@ pub const DB_CLIENT_CONNECTION_PENDING_REQUESTS: &str = "db.client.connection.pe /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{timeout}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -430,7 +576,7 @@ pub const DB_CLIENT_CONNECTION_TIMEOUTS: &str = "db.client.connection.timeouts"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -447,7 +593,7 @@ pub const DB_CLIENT_CONNECTION_USE_TIME: &str = "db.client.connection.use_time"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -464,7 +610,7 @@ pub const DB_CLIENT_CONNECTION_WAIT_TIME: &str = "db.client.connection.wait_time /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `ms` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -484,7 +630,7 @@ pub const DB_CLIENT_CONNECTIONS_CREATE_TIME: &str = "db.client.connections.creat /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -502,7 +648,7 @@ pub const DB_CLIENT_CONNECTIONS_IDLE_MAX: &str = "db.client.connections.idle.max /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -520,7 +666,7 @@ pub const DB_CLIENT_CONNECTIONS_IDLE_MIN: &str = "db.client.connections.idle.min /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -538,7 +684,7 @@ pub const DB_CLIENT_CONNECTIONS_MAX: &str = "db.client.connections.max"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{request}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -556,7 +702,7 @@ pub const DB_CLIENT_CONNECTIONS_PENDING_REQUESTS: &str = "db.client.connections. /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{timeout}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -574,7 +720,7 @@ pub const DB_CLIENT_CONNECTIONS_TIMEOUTS: &str = "db.client.connections.timeouts /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -593,7 +739,7 @@ pub const DB_CLIENT_CONNECTIONS_USAGE: &str = "db.client.connections.usage"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `ms` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -613,7 +759,7 @@ pub const DB_CLIENT_CONNECTIONS_USE_TIME: &str = "db.client.connections.use_time /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `ms` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -627,13 +773,13 @@ pub const DB_CLIENT_CONNECTIONS_WAIT_TIME: &str = "db.client.connections.wait_ti /// ## Description /// -/// Number of active client instances +/// Deprecated, use `azure.cosmosdb.client.active_instance.count` instead /// ## Metadata /// | | | /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{instance}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -641,18 +787,19 @@ pub const DB_CLIENT_CONNECTIONS_WAIT_TIME: &str = "db.client.connections.wait_ti /// | [`crate::attribute::SERVER_ADDRESS`] | `Recommended` /// | [`crate::attribute::SERVER_PORT`] | `Conditionally_required`: If using a port other than the default port for this DBMS and if `server.address` is set. #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.client.active_instance.count`.")] pub const DB_CLIENT_COSMOSDB_ACTIVE_INSTANCE_COUNT: &str = "db.client.cosmosdb.active_instance.count"; /// ## Description /// -/// [Request charge](https://learn.microsoft.com/azure/cosmos-db/request-units) consumed by the operation +/// Deprecated, use `azure.cosmosdb.client.operation.request_charge` instead /// ## Metadata /// | | | /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `{request_unit}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -663,11 +810,8 @@ pub const DB_CLIENT_COSMOSDB_ACTIVE_INSTANCE_COUNT: &str = /// | [`crate::attribute::DB_COSMOSDB_SUB_STATUS_CODE`] | `Conditionally_required`: when response was received and contained sub-code. /// | [`crate::attribute::DB_NAMESPACE`] | `Conditionally_required`: If available. /// | [`crate::attribute::DB_OPERATION_NAME`] | `Conditionally_required`: If readily available and if there is a single operation name that describes the database call. The operation name MAY be parsed from the query text, in which case it SHOULD be the single operation name found in the query. -/// | [`crate::attribute::DB_RESPONSE_STATUS_CODE`] | `Conditionally_required`: If the operation failed and status code is available. -/// | [`crate::attribute::ERROR_TYPE`] | `Conditionally_required`: If and only if the operation failed. -/// | [`crate::attribute::SERVER_ADDRESS`] | `Recommended` -/// | [`crate::attribute::SERVER_PORT`] | `Conditionally_required`: If using a port other than the default port for this DBMS and if `server.address` is set. #[cfg(feature = "semconv_experimental")] +#[deprecated(note = "Replaced by `azure.cosmosdb.client.operation.request_charge`.")] pub const DB_CLIENT_COSMOSDB_OPERATION_REQUEST_CHARGE: &str = "db.client.cosmosdb.operation.request_charge"; @@ -683,7 +827,7 @@ pub const DB_CLIENT_COSMOSDB_OPERATION_REQUEST_CHARGE: &str = /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Release_candidate` | /// /// ## Attributes /// | Name | Requirement | @@ -694,7 +838,7 @@ pub const DB_CLIENT_COSMOSDB_OPERATION_REQUEST_CHARGE: &str = /// | [`crate::attribute::DB_QUERY_SUMMARY`] | `{"recommended": "if readily available or if instrumentation supports query summarization."}` /// | [`crate::attribute::DB_QUERY_TEXT`] | `Opt_in` /// | [`crate::attribute::DB_RESPONSE_STATUS_CODE`] | `Conditionally_required`: If the operation failed and status code is available. -/// | [`crate::attribute::DB_SYSTEM`] | `Required` +/// | [`crate::attribute::DB_SYSTEM_NAME`] | `Required` /// | [`crate::attribute::ERROR_TYPE`] | `Conditionally_required`: If and only if the operation failed. /// | [`crate::attribute::NETWORK_PEER_ADDRESS`] | `{"recommended": "if applicable for this database system."}` /// | [`crate::attribute::NETWORK_PEER_PORT`] | `{"recommended": "if and only if `network.peer.address` is set."}` @@ -711,7 +855,7 @@ pub const DB_CLIENT_OPERATION_DURATION: &str = "db.client.operation.duration"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `{row}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -722,7 +866,7 @@ pub const DB_CLIENT_OPERATION_DURATION: &str = "db.client.operation.duration"; /// | [`crate::attribute::DB_QUERY_SUMMARY`] | `{"recommended": "if readily available or if instrumentation supports query summarization."}` /// | [`crate::attribute::DB_QUERY_TEXT`] | `Opt_in` /// | [`crate::attribute::DB_RESPONSE_STATUS_CODE`] | `Conditionally_required`: If the operation failed and status code is available. -/// | [`crate::attribute::DB_SYSTEM`] | `Required` +/// | [`crate::attribute::DB_SYSTEM_NAME`] | `Required` /// | [`crate::attribute::ERROR_TYPE`] | `Conditionally_required`: If and only if the operation failed. /// | [`crate::attribute::NETWORK_PEER_ADDRESS`] | `{"recommended": "if applicable for this database system."}` /// | [`crate::attribute::NETWORK_PEER_PORT`] | `{"recommended": "if and only if `network.peer.address` is set."}` @@ -739,7 +883,7 @@ pub const DB_CLIENT_RESPONSE_RETURNED_ROWS: &str = "db.client.response.returned_ /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -762,8 +906,7 @@ pub const DNS_LOOKUP_DURATION: &str = "dns.lookup.duration"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{assembly}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_ASSEMBLY_COUNT: &str = "dotnet.assembly.count"; /// ## Description @@ -779,13 +922,12 @@ pub const DOTNET_ASSEMBLY_COUNT: &str = "dotnet.assembly.count"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{exception}` | -/// | Status: | `Experimental` | +/// | Status: | `Stable` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::ERROR_TYPE`] | `Required` -#[cfg(feature = "semconv_experimental")] pub const DOTNET_EXCEPTIONS: &str = "dotnet.exceptions"; /// ## Description @@ -801,13 +943,12 @@ pub const DOTNET_EXCEPTIONS: &str = "dotnet.exceptions"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{collection}` | -/// | Status: | `Experimental` | +/// | Status: | `Stable` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::DOTNET_GC_HEAP_GENERATION`] | `Required` -#[cfg(feature = "semconv_experimental")] pub const DOTNET_GC_COLLECTIONS: &str = "dotnet.gc.collections"; /// ## Description @@ -823,8 +964,7 @@ pub const DOTNET_GC_COLLECTIONS: &str = "dotnet.gc.collections"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_GC_HEAP_TOTAL_ALLOCATED: &str = "dotnet.gc.heap.total_allocated"; /// ## Description @@ -840,13 +980,12 @@ pub const DOTNET_GC_HEAP_TOTAL_ALLOCATED: &str = "dotnet.gc.heap.total_allocated /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Stable` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::DOTNET_GC_HEAP_GENERATION`] | `Required` -#[cfg(feature = "semconv_experimental")] pub const DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE: &str = "dotnet.gc.last_collection.heap.fragmentation.size"; @@ -863,13 +1002,12 @@ pub const DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE: &str = /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Stable` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::DOTNET_GC_HEAP_GENERATION`] | `Required` -#[cfg(feature = "semconv_experimental")] pub const DOTNET_GC_LAST_COLLECTION_HEAP_SIZE: &str = "dotnet.gc.last_collection.heap.size"; /// ## Description @@ -885,8 +1023,7 @@ pub const DOTNET_GC_LAST_COLLECTION_HEAP_SIZE: &str = "dotnet.gc.last_collection /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE: &str = "dotnet.gc.last_collection.memory.committed_size"; @@ -903,8 +1040,7 @@ pub const DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE: &str = /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_GC_PAUSE_TIME: &str = "dotnet.gc.pause.time"; /// ## Description @@ -920,8 +1056,7 @@ pub const DOTNET_GC_PAUSE_TIME: &str = "dotnet.gc.pause.time"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_JIT_COMPILATION_TIME: &str = "dotnet.jit.compilation.time"; /// ## Description @@ -937,8 +1072,7 @@ pub const DOTNET_JIT_COMPILATION_TIME: &str = "dotnet.jit.compilation.time"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_JIT_COMPILED_IL_SIZE: &str = "dotnet.jit.compiled_il.size"; /// ## Description @@ -954,8 +1088,7 @@ pub const DOTNET_JIT_COMPILED_IL_SIZE: &str = "dotnet.jit.compiled_il.size"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{method}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_JIT_COMPILED_METHODS: &str = "dotnet.jit.compiled_methods"; /// ## Description @@ -971,8 +1104,7 @@ pub const DOTNET_JIT_COMPILED_METHODS: &str = "dotnet.jit.compiled_methods"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{contention}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_MONITOR_LOCK_CONTENTIONS: &str = "dotnet.monitor.lock_contentions"; /// ## Description @@ -988,8 +1120,7 @@ pub const DOTNET_MONITOR_LOCK_CONTENTIONS: &str = "dotnet.monitor.lock_contentio /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{cpu}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_PROCESS_CPU_COUNT: &str = "dotnet.process.cpu.count"; /// ## Description @@ -1005,13 +1136,12 @@ pub const DOTNET_PROCESS_CPU_COUNT: &str = "dotnet.process.cpu.count"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Stable` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::CPU_MODE`] | `Required` -#[cfg(feature = "semconv_experimental")] pub const DOTNET_PROCESS_CPU_TIME: &str = "dotnet.process.cpu.time"; /// ## Description @@ -1027,8 +1157,7 @@ pub const DOTNET_PROCESS_CPU_TIME: &str = "dotnet.process.cpu.time"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_PROCESS_MEMORY_WORKING_SET: &str = "dotnet.process.memory.working_set"; /// ## Description @@ -1044,8 +1173,7 @@ pub const DOTNET_PROCESS_MEMORY_WORKING_SET: &str = "dotnet.process.memory.worki /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{work_item}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_THREAD_POOL_QUEUE_LENGTH: &str = "dotnet.thread_pool.queue.length"; /// ## Description @@ -1061,8 +1189,7 @@ pub const DOTNET_THREAD_POOL_QUEUE_LENGTH: &str = "dotnet.thread_pool.queue.leng /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{thread}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_THREAD_POOL_THREAD_COUNT: &str = "dotnet.thread_pool.thread.count"; /// ## Description @@ -1078,8 +1205,7 @@ pub const DOTNET_THREAD_POOL_THREAD_COUNT: &str = "dotnet.thread_pool.thread.cou /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{work_item}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_THREAD_POOL_WORK_ITEM_COUNT: &str = "dotnet.thread_pool.work_item.count"; /// ## Description @@ -1095,8 +1221,7 @@ pub const DOTNET_THREAD_POOL_WORK_ITEM_COUNT: &str = "dotnet.thread_pool.work_it /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{timer}` | -/// | Status: | `Experimental` | -#[cfg(feature = "semconv_experimental")] +/// | Status: | `Stable` | pub const DOTNET_TIMER_COUNT: &str = "dotnet.timer.count"; /// ## Description @@ -1107,7 +1232,7 @@ pub const DOTNET_TIMER_COUNT: &str = "dotnet.timer.count"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{coldstart}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1124,7 +1249,7 @@ pub const FAAS_COLDSTARTS: &str = "faas.coldstarts"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1141,7 +1266,7 @@ pub const FAAS_CPU_USAGE: &str = "faas.cpu_usage"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{error}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1158,7 +1283,7 @@ pub const FAAS_ERRORS: &str = "faas.errors"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1175,7 +1300,7 @@ pub const FAAS_INIT_DURATION: &str = "faas.init_duration"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{invocation}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1192,7 +1317,7 @@ pub const FAAS_INVOCATIONS: &str = "faas.invocations"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1209,7 +1334,7 @@ pub const FAAS_INVOKE_DURATION: &str = "faas.invoke_duration"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1226,7 +1351,7 @@ pub const FAAS_MEM_USAGE: &str = "faas.mem_usage"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1243,7 +1368,7 @@ pub const FAAS_NET_IO: &str = "faas.net_io"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{timeout}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1260,7 +1385,7 @@ pub const FAAS_TIMEOUTS: &str = "faas.timeouts"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1283,7 +1408,7 @@ pub const GEN_AI_CLIENT_OPERATION_DURATION: &str = "gen_ai.client.operation.dura /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `{token}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1306,7 +1431,7 @@ pub const GEN_AI_CLIENT_TOKEN_USAGE: &str = "gen_ai.client.token.usage"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1329,7 +1454,7 @@ pub const GEN_AI_SERVER_REQUEST_DURATION: &str = "gen_ai.server.request.duration /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1351,7 +1476,7 @@ pub const GEN_AI_SERVER_TIME_PER_OUTPUT_TOKEN: &str = "gen_ai.server.time_per_ou /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1377,7 +1502,7 @@ pub const GEN_AI_SERVER_TIME_TO_FIRST_TOKEN: &str = "gen_ai.server.time_to_first /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `%` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_CONFIG_GOGC: &str = "go.config.gogc"; @@ -1393,7 +1518,7 @@ pub const GO_CONFIG_GOGC: &str = "go.config.gogc"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{goroutine}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_GOROUTINE_COUNT: &str = "go.goroutine.count"; @@ -1409,7 +1534,7 @@ pub const GO_GOROUTINE_COUNT: &str = "go.goroutine.count"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_MEMORY_ALLOCATED: &str = "go.memory.allocated"; @@ -1425,7 +1550,7 @@ pub const GO_MEMORY_ALLOCATED: &str = "go.memory.allocated"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{allocation}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_MEMORY_ALLOCATIONS: &str = "go.memory.allocations"; @@ -1441,7 +1566,7 @@ pub const GO_MEMORY_ALLOCATIONS: &str = "go.memory.allocations"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_MEMORY_GC_GOAL: &str = "go.memory.gc.goal"; @@ -1457,7 +1582,7 @@ pub const GO_MEMORY_GC_GOAL: &str = "go.memory.gc.goal"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_MEMORY_LIMIT: &str = "go.memory.limit"; @@ -1473,7 +1598,7 @@ pub const GO_MEMORY_LIMIT: &str = "go.memory.limit"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1494,7 +1619,7 @@ pub const GO_MEMORY_USED: &str = "go.memory.used"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{thread}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_PROCESSOR_LIMIT: &str = "go.processor.limit"; @@ -1510,7 +1635,7 @@ pub const GO_PROCESSOR_LIMIT: &str = "go.processor.limit"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const GO_SCHEDULE_DURATION: &str = "go.schedule.duration"; @@ -1522,7 +1647,7 @@ pub const GO_SCHEDULE_DURATION: &str = "go.schedule.duration"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{request}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1543,7 +1668,7 @@ pub const HTTP_CLIENT_ACTIVE_REQUESTS: &str = "http.client.active_requests"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1564,7 +1689,7 @@ pub const HTTP_CLIENT_CONNECTION_DURATION: &str = "http.client.connection.durati /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1590,7 +1715,7 @@ pub const HTTP_CLIENT_OPEN_CONNECTIONS: &str = "http.client.open_connections"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1643,7 +1768,7 @@ pub const HTTP_CLIENT_REQUEST_DURATION: &str = "http.client.request.duration"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1668,7 +1793,7 @@ pub const HTTP_CLIENT_RESPONSE_BODY_SIZE: &str = "http.client.response.body.size /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{request}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1692,7 +1817,7 @@ pub const HTTP_SERVER_ACTIVE_REQUESTS: &str = "http.server.active_requests"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1747,7 +1872,7 @@ pub const HTTP_SERVER_REQUEST_DURATION: &str = "http.server.request.duration"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1773,7 +1898,7 @@ pub const HTTP_SERVER_RESPONSE_BODY_SIZE: &str = "http.server.response.body.size /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `J` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1793,7 +1918,7 @@ pub const HW_ENERGY: &str = "hw.energy"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{error}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1818,7 +1943,7 @@ pub const HW_ERRORS: &str = "hw.errors"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `W` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1836,13 +1961,13 @@ pub const HW_POWER: &str = "hw.power"; /// /// ## Notes /// -/// `hw.status` is currently specified as an *UpDownCounter* but would ideally be represented using a [*StateSet* as defined in OpenMetrics](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#stateset). This semantic convention will be updated once *StateSet* is specified in OpenTelemetry. This planned change is not expected to have any consequence on the way users query their timeseries backend to retrieve the values of `hw.status` over time +/// `hw.status` is currently specified as an *UpDownCounter* but would ideally be represented using a [*StateSet* as defined in OpenMetrics](https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#stateset). This semantic convention will be updated once *StateSet* is specified in OpenTelemetry. This planned change is not expected to have any consequence on the way users query their timeseries backend to retrieve the values of `hw.status` over time /// ## Metadata /// | | | /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1863,7 +1988,7 @@ pub const HW_STATUS: &str = "hw.status"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{buffer}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1880,7 +2005,7 @@ pub const JVM_BUFFER_COUNT: &str = "jvm.buffer.count"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1897,7 +2022,7 @@ pub const JVM_BUFFER_MEMORY_LIMIT: &str = "jvm.buffer.memory.limit"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -1915,7 +2040,7 @@ pub const JVM_BUFFER_MEMORY_USAGE: &str = "jvm.buffer.memory.usage"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2036,7 +2161,7 @@ pub const JVM_MEMORY_COMMITTED: &str = "jvm.memory.committed"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2109,7 +2234,7 @@ pub const JVM_MEMORY_USED_AFTER_LAST_GC: &str = "jvm.memory.used_after_last_gc"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{run_queue_item}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const JVM_SYSTEM_CPU_LOAD_1M: &str = "jvm.system.cpu.load_1m"; @@ -2125,7 +2250,7 @@ pub const JVM_SYSTEM_CPU_LOAD_1M: &str = "jvm.system.cpu.load_1m"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const JVM_SYSTEM_CPU_UTILIZATION: &str = "jvm.system.cpu.utilization"; @@ -2146,6 +2271,336 @@ pub const JVM_SYSTEM_CPU_UTILIZATION: &str = "jvm.system.cpu.utilization"; /// | [`crate::attribute::JVM_THREAD_STATE`] | `Recommended` pub const JVM_THREAD_COUNT: &str = "jvm.thread.count"; +/// ## Description +/// +/// The number of actively running jobs for a cronjob +/// +/// ## Notes +/// +/// This metric aligns with the `active` field of the +/// [K8s CronJobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#cronjobstatus-v1-batch). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.cronjob`](../resource/k8s.md#cronjob) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{job}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_CRONJOB_ACTIVE_JOBS: &str = "k8s.cronjob.active_jobs"; + +/// ## Description +/// +/// Number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod +/// +/// ## Notes +/// +/// This metric aligns with the `currentNumberScheduled` field of the +/// [K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.daemonset`](../resource/k8s.md#daemonset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{node}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_DAEMONSET_CURRENT_SCHEDULED_NODES: &str = "k8s.daemonset.current_scheduled_nodes"; + +/// ## Description +/// +/// Number of nodes that should be running the daemon pod (including nodes currently running the daemon pod) +/// +/// ## Notes +/// +/// This metric aligns with the `desiredNumberScheduled` field of the +/// [K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.daemonset`](../resource/k8s.md#daemonset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{node}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_DAEMONSET_DESIRED_SCHEDULED_NODES: &str = "k8s.daemonset.desired_scheduled_nodes"; + +/// ## Description +/// +/// Number of nodes that are running the daemon pod, but are not supposed to run the daemon pod +/// +/// ## Notes +/// +/// This metric aligns with the `numberMisscheduled` field of the +/// [K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.daemonset`](../resource/k8s.md#daemonset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{node}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_DAEMONSET_MISSCHEDULED_NODES: &str = "k8s.daemonset.misscheduled_nodes"; + +/// ## Description +/// +/// Number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready +/// +/// ## Notes +/// +/// This metric aligns with the `numberReady` field of the +/// [K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.daemonset`](../resource/k8s.md#daemonset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{node}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_DAEMONSET_READY_NODES: &str = "k8s.daemonset.ready_nodes"; + +/// ## Description +/// +/// Total number of available replica pods (ready for at least minReadySeconds) targeted by this deployment +/// +/// ## Notes +/// +/// This metric aligns with the `availableReplicas` field of the +/// [K8s DeploymentStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.deployment`](../resource/k8s.md#deployment) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_DEPLOYMENT_AVAILABLE_PODS: &str = "k8s.deployment.available_pods"; + +/// ## Description +/// +/// Number of desired replica pods in this deployment +/// +/// ## Notes +/// +/// This metric aligns with the `replicas` field of the +/// [K8s DeploymentSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentspec-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.deployment`](../resource/k8s.md#deployment) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_DEPLOYMENT_DESIRED_PODS: &str = "k8s.deployment.desired_pods"; + +/// ## Description +/// +/// Current number of replica pods managed by this horizontal pod autoscaler, as last seen by the autoscaler +/// +/// ## Notes +/// +/// This metric aligns with the `currentReplicas` field of the +/// [K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling) +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_HPA_CURRENT_PODS: &str = "k8s.hpa.current_pods"; + +/// ## Description +/// +/// Desired number of replica pods managed by this horizontal pod autoscaler, as last calculated by the autoscaler +/// +/// ## Notes +/// +/// This metric aligns with the `desiredReplicas` field of the +/// [K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling) +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_HPA_DESIRED_PODS: &str = "k8s.hpa.desired_pods"; + +/// ## Description +/// +/// The upper limit for the number of replica pods to which the autoscaler can scale up +/// +/// ## Notes +/// +/// This metric aligns with the `maxReplicas` field of the +/// [K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling) +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_HPA_MAX_PODS: &str = "k8s.hpa.max_pods"; + +/// ## Description +/// +/// The lower limit for the number of replica pods to which the autoscaler can scale down +/// +/// ## Notes +/// +/// This metric aligns with the `minReplicas` field of the +/// [K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling) +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_HPA_MIN_PODS: &str = "k8s.hpa.min_pods"; + +/// ## Description +/// +/// The number of pending and actively running pods for a job +/// +/// ## Notes +/// +/// This metric aligns with the `active` field of the +/// [K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.job`](../resource/k8s.md#job) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_JOB_ACTIVE_PODS: &str = "k8s.job.active_pods"; + +/// ## Description +/// +/// The desired number of successfully finished pods the job should be run with +/// +/// ## Notes +/// +/// This metric aligns with the `completions` field of the +/// [K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.job`](../resource/k8s.md#job) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_JOB_DESIRED_SUCCESSFUL_PODS: &str = "k8s.job.desired_successful_pods"; + +/// ## Description +/// +/// The number of pods which reached phase Failed for a job +/// +/// ## Notes +/// +/// This metric aligns with the `failed` field of the +/// [K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.job`](../resource/k8s.md#job) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_JOB_FAILED_PODS: &str = "k8s.job.failed_pods"; + +/// ## Description +/// +/// The max desired number of pods the job should run at any given time +/// +/// ## Notes +/// +/// This metric aligns with the `parallelism` field of the +/// [K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.job`](../resource/k8s.md#job) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_JOB_MAX_PARALLEL_PODS: &str = "k8s.job.max_parallel_pods"; + +/// ## Description +/// +/// The number of pods which reached phase Succeeded for a job +/// +/// ## Notes +/// +/// This metric aligns with the `succeeded` field of the +/// [K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.job`](../resource/k8s.md#job) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_JOB_SUCCESSFUL_PODS: &str = "k8s.job.successful_pods"; + +/// ## Description +/// +/// Describes number of K8s namespaces that are currently in a given phase. +/// +/// ## Notes +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.namespace`](../resource/k8s.md#namespace) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{namespace}` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::K8S_NAMESPACE_PHASE`] | `Required` +#[cfg(feature = "semconv_experimental")] +pub const K8S_NAMESPACE_PHASE: &str = "k8s.namespace.phase"; + /// ## Description /// /// Total CPU time consumed @@ -2158,7 +2613,7 @@ pub const JVM_THREAD_COUNT: &str = "jvm.thread.count"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_NODE_CPU_TIME: &str = "k8s.node.cpu.time"; @@ -2174,7 +2629,7 @@ pub const K8S_NODE_CPU_TIME: &str = "k8s.node.cpu.time"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{cpu}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_NODE_CPU_USAGE: &str = "k8s.node.cpu.usage"; @@ -2190,7 +2645,7 @@ pub const K8S_NODE_CPU_USAGE: &str = "k8s.node.cpu.usage"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_NODE_MEMORY_USAGE: &str = "k8s.node.memory.usage"; @@ -2202,7 +2657,7 @@ pub const K8S_NODE_MEMORY_USAGE: &str = "k8s.node.memory.usage"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{error}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2220,7 +2675,7 @@ pub const K8S_NODE_NETWORK_ERRORS: &str = "k8s.node.network.errors"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2243,7 +2698,7 @@ pub const K8S_NODE_NETWORK_IO: &str = "k8s.node.network.io"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_NODE_UPTIME: &str = "k8s.node.uptime"; @@ -2259,7 +2714,7 @@ pub const K8S_NODE_UPTIME: &str = "k8s.node.uptime"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_POD_CPU_TIME: &str = "k8s.pod.cpu.time"; @@ -2275,7 +2730,7 @@ pub const K8S_POD_CPU_TIME: &str = "k8s.pod.cpu.time"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{cpu}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_POD_CPU_USAGE: &str = "k8s.pod.cpu.usage"; @@ -2291,7 +2746,7 @@ pub const K8S_POD_CPU_USAGE: &str = "k8s.pod.cpu.usage"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_POD_MEMORY_USAGE: &str = "k8s.pod.memory.usage"; @@ -2303,7 +2758,7 @@ pub const K8S_POD_MEMORY_USAGE: &str = "k8s.pod.memory.usage"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{error}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2321,7 +2776,7 @@ pub const K8S_POD_NETWORK_ERRORS: &str = "k8s.pod.network.errors"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2344,10 +2799,165 @@ pub const K8S_POD_NETWORK_IO: &str = "k8s.pod.network.io"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const K8S_POD_UPTIME: &str = "k8s.pod.uptime"; +/// ## Description +/// +/// Total number of available replica pods (ready for at least minReadySeconds) targeted by this replicaset +/// +/// ## Notes +/// +/// This metric aligns with the `availableReplicas` field of the +/// [K8s ReplicaSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicasetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.replicaset`](../resource/k8s.md#replicaset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_REPLICASET_AVAILABLE_PODS: &str = "k8s.replicaset.available_pods"; + +/// ## Description +/// +/// Number of desired replica pods in this replicaset +/// +/// ## Notes +/// +/// This metric aligns with the `replicas` field of the +/// [K8s ReplicaSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicasetspec-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.replicaset`](../resource/k8s.md#replicaset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_REPLICASET_DESIRED_PODS: &str = "k8s.replicaset.desired_pods"; + +/// ## Description +/// +/// Total number of available replica pods (ready for at least minReadySeconds) targeted by this replication controller +/// +/// ## Notes +/// +/// This metric aligns with the `availableReplicas` field of the +/// [K8s ReplicationControllerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerstatus-v1-core) +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_REPLICATION_CONTROLLER_AVAILABLE_PODS: &str = + "k8s.replication_controller.available_pods"; + +/// ## Description +/// +/// Number of desired replica pods in this replication controller +/// +/// ## Notes +/// +/// This metric aligns with the `replicas` field of the +/// [K8s ReplicationControllerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerspec-v1-core) +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_REPLICATION_CONTROLLER_DESIRED_PODS: &str = "k8s.replication_controller.desired_pods"; + +/// ## Description +/// +/// The number of replica pods created by the statefulset controller from the statefulset version indicated by currentRevision +/// +/// ## Notes +/// +/// This metric aligns with the `currentReplicas` field of the +/// [K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.statefulset`](../resource/k8s.md#statefulset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_STATEFULSET_CURRENT_PODS: &str = "k8s.statefulset.current_pods"; + +/// ## Description +/// +/// Number of desired replica pods in this statefulset +/// +/// ## Notes +/// +/// This metric aligns with the `replicas` field of the +/// [K8s StatefulSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetspec-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.statefulset`](../resource/k8s.md#statefulset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_STATEFULSET_DESIRED_PODS: &str = "k8s.statefulset.desired_pods"; + +/// ## Description +/// +/// The number of replica pods created for this statefulset with a Ready Condition +/// +/// ## Notes +/// +/// This metric aligns with the `readyReplicas` field of the +/// [K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.statefulset`](../resource/k8s.md#statefulset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_STATEFULSET_READY_PODS: &str = "k8s.statefulset.ready_pods"; + +/// ## Description +/// +/// Number of replica pods created by the statefulset controller from the statefulset version indicated by updateRevision +/// +/// ## Notes +/// +/// This metric aligns with the `updatedReplicas` field of the +/// [K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps). +/// +/// This metric SHOULD, at a minimum, be reported against a +/// [`k8s.statefulset`](../resource/k8s.md#statefulset) resource +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `updowncounter` | +/// | Unit: | `{pod}` | +/// | Status: | `Development` | +#[cfg(feature = "semconv_experimental")] +pub const K8S_STATEFULSET_UPDATED_PODS: &str = "k8s.statefulset.updated_pods"; + /// ## Description /// /// Number of connections that are currently active on the server. @@ -2556,7 +3166,7 @@ pub const KESTREL_UPGRADED_CONNECTIONS: &str = "kestrel.upgraded_connections"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{message}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2586,7 +3196,7 @@ pub const MESSAGING_CLIENT_CONSUMED_MESSAGES: &str = "messaging.client.consumed. /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2613,7 +3223,7 @@ pub const MESSAGING_CLIENT_OPERATION_DURATION: &str = "messaging.client.operatio /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{message}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2642,7 +3252,7 @@ pub const MESSAGING_CLIENT_PUBLISHED_MESSAGES: &str = "messaging.client.publishe /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{message}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2670,7 +3280,7 @@ pub const MESSAGING_CLIENT_SENT_MESSAGES: &str = "messaging.client.sent.messages /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2696,7 +3306,7 @@ pub const MESSAGING_PROCESS_DURATION: &str = "messaging.process.duration"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{message}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2717,7 +3327,7 @@ pub const MESSAGING_PROCESS_MESSAGES: &str = "messaging.process.messages"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2738,7 +3348,7 @@ pub const MESSAGING_PUBLISH_DURATION: &str = "messaging.publish.duration"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{message}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2759,7 +3369,7 @@ pub const MESSAGING_PUBLISH_MESSAGES: &str = "messaging.publish.messages"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2780,7 +3390,7 @@ pub const MESSAGING_RECEIVE_DURATION: &str = "messaging.receive.duration"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{message}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2805,7 +3415,7 @@ pub const MESSAGING_RECEIVE_MESSAGES: &str = "messaging.receive.messages"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_DELAY_MAX: &str = "nodejs.eventloop.delay.max"; @@ -2821,7 +3431,7 @@ pub const NODEJS_EVENTLOOP_DELAY_MAX: &str = "nodejs.eventloop.delay.max"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_DELAY_MEAN: &str = "nodejs.eventloop.delay.mean"; @@ -2837,7 +3447,7 @@ pub const NODEJS_EVENTLOOP_DELAY_MEAN: &str = "nodejs.eventloop.delay.mean"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_DELAY_MIN: &str = "nodejs.eventloop.delay.min"; @@ -2853,7 +3463,7 @@ pub const NODEJS_EVENTLOOP_DELAY_MIN: &str = "nodejs.eventloop.delay.min"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_DELAY_P50: &str = "nodejs.eventloop.delay.p50"; @@ -2869,7 +3479,7 @@ pub const NODEJS_EVENTLOOP_DELAY_P50: &str = "nodejs.eventloop.delay.p50"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_DELAY_P90: &str = "nodejs.eventloop.delay.p90"; @@ -2885,7 +3495,7 @@ pub const NODEJS_EVENTLOOP_DELAY_P90: &str = "nodejs.eventloop.delay.p90"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_DELAY_P99: &str = "nodejs.eventloop.delay.p99"; @@ -2901,7 +3511,7 @@ pub const NODEJS_EVENTLOOP_DELAY_P99: &str = "nodejs.eventloop.delay.p99"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_DELAY_STDDEV: &str = "nodejs.eventloop.delay.stddev"; @@ -2917,7 +3527,7 @@ pub const NODEJS_EVENTLOOP_DELAY_STDDEV: &str = "nodejs.eventloop.delay.stddev"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2938,7 +3548,7 @@ pub const NODEJS_EVENTLOOP_TIME: &str = "nodejs.eventloop.time"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const NODEJS_EVENTLOOP_UTILIZATION: &str = "nodejs.eventloop.utilization"; @@ -2950,7 +3560,7 @@ pub const NODEJS_EVENTLOOP_UTILIZATION: &str = "nodejs.eventloop.utilization"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{count}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2967,7 +3577,7 @@ pub const PROCESS_CONTEXT_SWITCHES: &str = "process.context_switches"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -2984,7 +3594,7 @@ pub const PROCESS_CPU_TIME: &str = "process.cpu.time"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3001,7 +3611,7 @@ pub const PROCESS_CPU_UTILIZATION: &str = "process.cpu.utilization"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3018,7 +3628,7 @@ pub const PROCESS_DISK_IO: &str = "process.disk.io"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const PROCESS_MEMORY_USAGE: &str = "process.memory.usage"; @@ -3030,7 +3640,7 @@ pub const PROCESS_MEMORY_USAGE: &str = "process.memory.usage"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const PROCESS_MEMORY_VIRTUAL: &str = "process.memory.virtual"; @@ -3042,7 +3652,7 @@ pub const PROCESS_MEMORY_VIRTUAL: &str = "process.memory.virtual"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3059,7 +3669,7 @@ pub const PROCESS_NETWORK_IO: &str = "process.network.io"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{count}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const PROCESS_OPEN_FILE_DESCRIPTOR_COUNT: &str = "process.open_file_descriptor.count"; @@ -3071,7 +3681,7 @@ pub const PROCESS_OPEN_FILE_DESCRIPTOR_COUNT: &str = "process.open_file_descript /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{fault}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3088,7 +3698,7 @@ pub const PROCESS_PAGING_FAULTS: &str = "process.paging.faults"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{thread}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const PROCESS_THREAD_COUNT: &str = "process.thread.count"; @@ -3105,7 +3715,7 @@ pub const PROCESS_THREAD_COUNT: &str = "process.thread.count"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const PROCESS_UPTIME: &str = "process.uptime"; @@ -3124,7 +3734,7 @@ pub const PROCESS_UPTIME: &str = "process.uptime"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `ms` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_CLIENT_DURATION: &str = "rpc.client.duration"; @@ -3140,7 +3750,7 @@ pub const RPC_CLIENT_DURATION: &str = "rpc.client.duration"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_CLIENT_REQUEST_SIZE: &str = "rpc.client.request.size"; @@ -3158,7 +3768,7 @@ pub const RPC_CLIENT_REQUEST_SIZE: &str = "rpc.client.request.size"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `{count}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_CLIENT_REQUESTS_PER_RPC: &str = "rpc.client.requests_per_rpc"; @@ -3174,7 +3784,7 @@ pub const RPC_CLIENT_REQUESTS_PER_RPC: &str = "rpc.client.requests_per_rpc"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_CLIENT_RESPONSE_SIZE: &str = "rpc.client.response.size"; @@ -3192,7 +3802,7 @@ pub const RPC_CLIENT_RESPONSE_SIZE: &str = "rpc.client.response.size"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `{count}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_CLIENT_RESPONSES_PER_RPC: &str = "rpc.client.responses_per_rpc"; @@ -3211,7 +3821,7 @@ pub const RPC_CLIENT_RESPONSES_PER_RPC: &str = "rpc.client.responses_per_rpc"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `ms` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_SERVER_DURATION: &str = "rpc.server.duration"; @@ -3227,7 +3837,7 @@ pub const RPC_SERVER_DURATION: &str = "rpc.server.duration"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_SERVER_REQUEST_SIZE: &str = "rpc.server.request.size"; @@ -3245,7 +3855,7 @@ pub const RPC_SERVER_REQUEST_SIZE: &str = "rpc.server.request.size"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `{count}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_SERVER_REQUESTS_PER_RPC: &str = "rpc.server.requests_per_rpc"; @@ -3261,7 +3871,7 @@ pub const RPC_SERVER_REQUESTS_PER_RPC: &str = "rpc.server.requests_per_rpc"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_SERVER_RESPONSE_SIZE: &str = "rpc.server.response.size"; @@ -3279,7 +3889,7 @@ pub const RPC_SERVER_RESPONSE_SIZE: &str = "rpc.server.response.size"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `{count}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const RPC_SERVER_RESPONSES_PER_RPC: &str = "rpc.server.responses_per_rpc"; @@ -3333,7 +3943,7 @@ pub const SIGNALR_SERVER_CONNECTION_DURATION: &str = "signalr.server.connection. /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{Hz}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3345,24 +3955,32 @@ pub const SYSTEM_CPU_FREQUENCY: &str = "system.cpu.frequency"; /// ## Description /// /// Reports the number of logical (virtual) processor cores created by the operating system to manage multitasking +/// +/// ## Notes +/// +/// Calculated by multiplying the number of sockets by the number of cores per socket, and then by the number of threads per core /// ## Metadata /// | | | /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{cpu}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const SYSTEM_CPU_LOGICAL_COUNT: &str = "system.cpu.logical.count"; /// ## Description /// /// Reports the number of actual physical processor cores on the hardware +/// +/// ## Notes +/// +/// Calculated by multiplying the number of sockets by the number of cores per socket /// ## Metadata /// | | | /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{cpu}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const SYSTEM_CPU_PHYSICAL_COUNT: &str = "system.cpu.physical.count"; @@ -3374,7 +3992,7 @@ pub const SYSTEM_CPU_PHYSICAL_COUNT: &str = "system.cpu.physical.count"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3392,7 +4010,7 @@ pub const SYSTEM_CPU_TIME: &str = "system.cpu.time"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3408,7 +4026,7 @@ pub const SYSTEM_CPU_UTILIZATION: &str = "system.cpu.utilization"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3435,7 +4053,7 @@ pub const SYSTEM_DISK_IO: &str = "system.disk.io"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3452,7 +4070,7 @@ pub const SYSTEM_DISK_IO_TIME: &str = "system.disk.io_time"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3467,7 +4085,7 @@ pub const SYSTEM_DISK_LIMIT: &str = "system.disk.limit"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{operation}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3492,7 +4110,7 @@ pub const SYSTEM_DISK_MERGED: &str = "system.disk.merged"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3508,7 +4126,7 @@ pub const SYSTEM_DISK_OPERATION_TIME: &str = "system.disk.operation_time"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{operation}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3526,7 +4144,7 @@ pub const SYSTEM_DISK_OPERATIONS: &str = "system.disk.operations"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3551,7 +4169,7 @@ pub const SYSTEM_FILESYSTEM_LIMIT: &str = "system.filesystem.limit"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3570,7 +4188,7 @@ pub const SYSTEM_FILESYSTEM_USAGE: &str = "system.filesystem.usage"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3599,7 +4217,7 @@ pub const SYSTEM_FILESYSTEM_UTILIZATION: &str = "system.filesystem.utilization"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const SYSTEM_LINUX_MEMORY_AVAILABLE: &str = "system.linux.memory.available"; @@ -3617,7 +4235,7 @@ pub const SYSTEM_LINUX_MEMORY_AVAILABLE: &str = "system.linux.memory.available"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3638,7 +4256,7 @@ pub const SYSTEM_LINUX_MEMORY_SLAB_USAGE: &str = "system.linux.memory.slab.usage /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const SYSTEM_MEMORY_LIMIT: &str = "system.memory.limit"; @@ -3655,7 +4273,7 @@ pub const SYSTEM_MEMORY_LIMIT: &str = "system.memory.limit"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const SYSTEM_MEMORY_SHARED: &str = "system.memory.shared"; @@ -3672,7 +4290,7 @@ pub const SYSTEM_MEMORY_SHARED: &str = "system.memory.shared"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3687,7 +4305,7 @@ pub const SYSTEM_MEMORY_USAGE: &str = "system.memory.usage"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3702,14 +4320,14 @@ pub const SYSTEM_MEMORY_UTILIZATION: &str = "system.memory.utilization"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{connection}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | +/// | [`crate::attribute::NETWORK_CONNECTION_STATE`] | `Recommended` /// | [`crate::attribute::NETWORK_INTERFACE_NAME`] | `Recommended` /// | [`crate::attribute::NETWORK_TRANSPORT`] | `Recommended` -/// | [`crate::attribute::SYSTEM_NETWORK_STATE`] | `Recommended` #[cfg(feature = "semconv_experimental")] pub const SYSTEM_NETWORK_CONNECTIONS: &str = "system.network.connections"; @@ -3729,7 +4347,7 @@ pub const SYSTEM_NETWORK_CONNECTIONS: &str = "system.network.connections"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{packet}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3755,7 +4373,7 @@ pub const SYSTEM_NETWORK_DROPPED: &str = "system.network.dropped"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{error}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3771,7 +4389,7 @@ pub const SYSTEM_NETWORK_ERRORS: &str = "system.network.errors"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3787,7 +4405,7 @@ pub const SYSTEM_NETWORK_IO: &str = "system.network.io"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{packet}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3803,7 +4421,7 @@ pub const SYSTEM_NETWORK_PACKETS: &str = "system.network.packets"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{fault}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3818,7 +4436,7 @@ pub const SYSTEM_PAGING_FAULTS: &str = "system.paging.faults"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{operation}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3836,7 +4454,7 @@ pub const SYSTEM_PAGING_OPERATIONS: &str = "system.paging.operations"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3852,7 +4470,7 @@ pub const SYSTEM_PAGING_USAGE: &str = "system.paging.usage"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `1` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3870,7 +4488,7 @@ pub const SYSTEM_PAGING_UTILIZATION: &str = "system.paging.utilization"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{process}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3887,7 +4505,7 @@ pub const SYSTEM_PROCESS_COUNT: &str = "system.process.count"; /// |:-|:- /// | Instrument: | `counter` | /// | Unit: | `{process}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const SYSTEM_PROCESS_CREATED: &str = "system.process.created"; @@ -3904,7 +4522,7 @@ pub const SYSTEM_PROCESS_CREATED: &str = "system.process.created"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const SYSTEM_UPTIME: &str = "system.uptime"; @@ -3920,7 +4538,7 @@ pub const SYSTEM_UPTIME: &str = "system.uptime"; /// |:-|:- /// | Instrument: | `histogram` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3941,7 +4559,7 @@ pub const V8JS_GC_DURATION: &str = "v8js.gc.duration"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3962,7 +4580,7 @@ pub const V8JS_HEAP_SPACE_AVAILABLE_SIZE: &str = "v8js.heap.space.available_size /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -3983,7 +4601,7 @@ pub const V8JS_HEAP_SPACE_PHYSICAL_SIZE: &str = "v8js.heap.space.physical_size"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -4004,7 +4622,7 @@ pub const V8JS_MEMORY_HEAP_LIMIT: &str = "v8js.memory.heap.limit"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `By` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -4021,12 +4639,13 @@ pub const V8JS_MEMORY_HEAP_USED: &str = "v8js.memory.heap.used"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{change}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::VCS_CHANGE_STATE`] | `Required` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` #[cfg(feature = "semconv_experimental")] pub const VCS_CHANGE_COUNT: &str = "vcs.change.count"; @@ -4039,13 +4658,14 @@ pub const VCS_CHANGE_COUNT: &str = "vcs.change.count"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::VCS_CHANGE_STATE`] | `Required` /// | [`crate::attribute::VCS_REF_HEAD_NAME`] | `Required` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` #[cfg(feature = "semconv_experimental")] pub const VCS_CHANGE_DURATION: &str = "vcs.change.duration"; @@ -4058,16 +4678,42 @@ pub const VCS_CHANGE_DURATION: &str = "vcs.change.duration"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | +/// | [`crate::attribute::VCS_REF_BASE_NAME`] | `Recommended` +/// | [`crate::attribute::VCS_REF_BASE_REVISION`] | `Opt_in` /// | [`crate::attribute::VCS_REF_HEAD_NAME`] | `Required` +/// | [`crate::attribute::VCS_REF_HEAD_REVISION`] | `Opt_in` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` #[cfg(feature = "semconv_experimental")] pub const VCS_CHANGE_TIME_TO_APPROVAL: &str = "vcs.change.time_to_approval"; +/// ## Description +/// +/// The amount of time since its creation it took a change (pull request/merge request/changelist) to get merged into the target(base) ref +/// ## Metadata +/// | | | +/// |:-|:- +/// | Instrument: | `gauge` | +/// | Unit: | `s` | +/// | Status: | `Development` | +/// +/// ## Attributes +/// | Name | Requirement | +/// |:-|:- | +/// | [`crate::attribute::VCS_REF_BASE_NAME`] | `Recommended` +/// | [`crate::attribute::VCS_REF_BASE_REVISION`] | `Opt_in` +/// | [`crate::attribute::VCS_REF_HEAD_NAME`] | `Required` +/// | [`crate::attribute::VCS_REF_HEAD_REVISION`] | `Opt_in` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` +/// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` +#[cfg(feature = "semconv_experimental")] +pub const VCS_CHANGE_TIME_TO_MERGE: &str = "vcs.change.time_to_merge"; + /// ## Description /// /// The number of unique contributors to a repository @@ -4076,11 +4722,12 @@ pub const VCS_CHANGE_TIME_TO_APPROVAL: &str = "vcs.change.time_to_approval"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{contributor}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` #[cfg(feature = "semconv_experimental")] pub const VCS_CONTRIBUTOR_COUNT: &str = "vcs.contributor.count"; @@ -4093,19 +4740,20 @@ pub const VCS_CONTRIBUTOR_COUNT: &str = "vcs.contributor.count"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{ref}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::VCS_REF_TYPE`] | `Required` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` #[cfg(feature = "semconv_experimental")] pub const VCS_REF_COUNT: &str = "vcs.ref.count"; /// ## Description /// -/// The number of lines added/removed in a ref (branch) relative to the ref from the `vcs.ref.base.name` attribute +/// The number of lines added/removed in a ref (branch) relative to the ref from the `vcs.ref.base.name` attribute. /// /// ## Notes /// @@ -4117,7 +4765,7 @@ pub const VCS_REF_COUNT: &str = "vcs.ref.count"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{line}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -4128,6 +4776,7 @@ pub const VCS_REF_COUNT: &str = "vcs.ref.count"; /// | [`crate::attribute::VCS_REF_BASE_TYPE`] | `Required` /// | [`crate::attribute::VCS_REF_HEAD_NAME`] | `Required` /// | [`crate::attribute::VCS_REF_HEAD_TYPE`] | `Required` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` #[cfg(feature = "semconv_experimental")] pub const VCS_REF_LINES_DELTA: &str = "vcs.ref.lines_delta"; @@ -4145,7 +4794,7 @@ pub const VCS_REF_LINES_DELTA: &str = "vcs.ref.lines_delta"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `{revision}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | @@ -4155,6 +4804,7 @@ pub const VCS_REF_LINES_DELTA: &str = "vcs.ref.lines_delta"; /// | [`crate::attribute::VCS_REF_BASE_TYPE`] | `Required` /// | [`crate::attribute::VCS_REF_HEAD_NAME`] | `Required` /// | [`crate::attribute::VCS_REF_HEAD_TYPE`] | `Required` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` /// | [`crate::attribute::VCS_REVISION_DELTA_DIRECTION`] | `Required` #[cfg(feature = "semconv_experimental")] @@ -4168,13 +4818,14 @@ pub const VCS_REF_REVISIONS_DELTA: &str = "vcs.ref.revisions_delta"; /// |:-|:- /// | Instrument: | `gauge` | /// | Unit: | `s` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | /// /// ## Attributes /// | Name | Requirement | /// |:-|:- | /// | [`crate::attribute::VCS_REF_HEAD_NAME`] | `Required` /// | [`crate::attribute::VCS_REF_HEAD_TYPE`] | `Required` +/// | [`crate::attribute::VCS_REPOSITORY_NAME`] | `Recommended` /// | [`crate::attribute::VCS_REPOSITORY_URL_FULL`] | `Required` #[cfg(feature = "semconv_experimental")] pub const VCS_REF_TIME: &str = "vcs.ref.time"; @@ -4187,6 +4838,6 @@ pub const VCS_REF_TIME: &str = "vcs.ref.time"; /// |:-|:- /// | Instrument: | `updowncounter` | /// | Unit: | `{repository}` | -/// | Status: | `Experimental` | +/// | Status: | `Development` | #[cfg(feature = "semconv_experimental")] pub const VCS_REPOSITORY_COUNT: &str = "vcs.repository.count"; diff --git a/opentelemetry-semantic-conventions/src/trace.rs b/opentelemetry-semantic-conventions/src/trace.rs index a37ce1dead..7cbe6df87c 100644 --- a/opentelemetry-semantic-conventions/src/trace.rs +++ b/opentelemetry-semantic-conventions/src/trace.rs @@ -94,6 +94,9 @@ pub use crate::attribute::AWS_DYNAMODB_TABLE_NAMES; #[cfg(feature = "semconv_experimental")] pub use crate::attribute::AWS_DYNAMODB_TOTAL_SEGMENTS; +#[cfg(feature = "semconv_experimental")] +pub use crate::attribute::AWS_EXTENDED_REQUEST_ID; + #[cfg(feature = "semconv_experimental")] pub use crate::attribute::AWS_LAMBDA_INVOKED_ARN; @@ -124,60 +127,54 @@ pub use crate::attribute::AZ_NAMESPACE; #[cfg(feature = "semconv_experimental")] pub use crate::attribute::AZ_SERVICE_REQUEST_ID; -pub use crate::attribute::CLIENT_ADDRESS; - -pub use crate::attribute::CLIENT_PORT; - #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::CLOUD_RESOURCE_ID; +pub use crate::attribute::AZURE_CLIENT_ID; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_CASSANDRA_CONSISTENCY_LEVEL; +pub use crate::attribute::AZURE_COSMOSDB_CONNECTION_MODE; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_CASSANDRA_COORDINATOR_DC; +pub use crate::attribute::AZURE_COSMOSDB_CONSISTENCY_LEVEL; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_CASSANDRA_COORDINATOR_ID; +pub use crate::attribute::AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_CASSANDRA_IDEMPOTENCE; +pub use crate::attribute::AZURE_COSMOSDB_OPERATION_REQUEST_CHARGE; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_CASSANDRA_PAGE_SIZE; +pub use crate::attribute::AZURE_COSMOSDB_REQUEST_BODY_SIZE; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT; +pub use crate::attribute::AZURE_COSMOSDB_RESPONSE_SUB_STATUS_CODE; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COLLECTION_NAME; +pub use crate::attribute::CASSANDRA_CONSISTENCY_LEVEL; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COSMOSDB_CLIENT_ID; +pub use crate::attribute::CASSANDRA_COORDINATOR_DC; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COSMOSDB_CONNECTION_MODE; +pub use crate::attribute::CASSANDRA_COORDINATOR_ID; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COSMOSDB_CONSISTENCY_LEVEL; +pub use crate::attribute::CASSANDRA_PAGE_SIZE; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COSMOSDB_REGIONS_CONTACTED; +pub use crate::attribute::CASSANDRA_QUERY_IDEMPOTENT; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COSMOSDB_REQUEST_CHARGE; +pub use crate::attribute::CASSANDRA_SPECULATIVE_EXECUTION_COUNT; -#[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COSMOSDB_REQUEST_CONTENT_LENGTH; +pub use crate::attribute::CLIENT_ADDRESS; -#[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_COSMOSDB_SUB_STATUS_CODE; +pub use crate::attribute::CLIENT_PORT; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_ELASTICSEARCH_NODE_NAME; +pub use crate::attribute::CLOUD_RESOURCE_ID; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_ELASTICSEARCH_PATH_PARTS; +pub use crate::attribute::DB_COLLECTION_NAME; #[cfg(feature = "semconv_experimental")] pub use crate::attribute::DB_NAMESPACE; @@ -204,10 +201,14 @@ pub use crate::attribute::DB_RESPONSE_RETURNED_ROWS; pub use crate::attribute::DB_RESPONSE_STATUS_CODE; #[cfg(feature = "semconv_experimental")] -pub use crate::attribute::DB_SYSTEM; +pub use crate::attribute::DB_SYSTEM_NAME; + +#[cfg(feature = "semconv_experimental")] +pub use crate::attribute::ELASTICSEARCH_NODE_NAME; pub use crate::attribute::ERROR_TYPE; +#[allow(deprecated)] pub use crate::attribute::EXCEPTION_ESCAPED; pub use crate::attribute::EXCEPTION_MESSAGE; @@ -279,9 +280,6 @@ pub use crate::attribute::FEATURE_FLAG_VERSION; #[cfg(feature = "semconv_experimental")] pub use crate::attribute::GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT; -#[cfg(feature = "semconv_experimental")] -pub use crate::attribute::GEN_AI_OPENAI_REQUEST_SEED; - #[cfg(feature = "semconv_experimental")] pub use crate::attribute::GEN_AI_OPENAI_REQUEST_SERVICE_TIER; @@ -309,6 +307,9 @@ pub use crate::attribute::GEN_AI_REQUEST_MODEL; #[cfg(feature = "semconv_experimental")] pub use crate::attribute::GEN_AI_REQUEST_PRESENCE_PENALTY; +#[cfg(feature = "semconv_experimental")] +pub use crate::attribute::GEN_AI_REQUEST_SEED; + #[cfg(feature = "semconv_experimental")] pub use crate::attribute::GEN_AI_REQUEST_STOP_SEQUENCES;