diff --git a/RELEASING.md b/RELEASING.md index 8246e8fe44..852332e820 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -2,7 +2,7 @@ ## Pre Release -1: Upgrade to latest [semantic-conventions](docs/semantic-conventions.md) +1: Upgrade to latest [dependencies](docs/maintaining-dependencies.md) if required. 2: Make sure all relevant changes for this release are included under diff --git a/api/include/opentelemetry/trace/semantic_conventions.h b/api/include/opentelemetry/trace/semantic_conventions.h index a9290bff44..fb26385fbc 100644 --- a/api/include/opentelemetry/trace/semantic_conventions.h +++ b/api/include/opentelemetry/trace/semantic_conventions.h @@ -22,7 +22,7 @@ namespace SemanticConventions /** * The URL of the OpenTelemetry schema for these keys and values. */ -static constexpr const char *kSchemaUrl = "https://opentelemetry.io/schemas/1.26.0"; +static constexpr const char *kSchemaUrl = "https://opentelemetry.io/schemas/1.27.0"; /** * Uniquely identifies the framework API revision offered by a version ({@code os.version}) of the @@ -31,6 +31,69 @@ static constexpr const char *kSchemaUrl = "https://opentelemetry.io/schemas/1.26 */ static constexpr const char *kAndroidOsApiLevel = "android.os.api_level"; +/** + * The provenance filename of the built attestation which directly relates to the build artifact + * filename. This filename SHOULD accompany the artifact at publish time. See the SLSA + * Relationship specification for more information. + */ +static constexpr const char *kArtifactAttestationFilename = "artifact.attestation.filename"; + +/** + * The full hash value (see + * glossary), of the built attestation. Some envelopes in the software attestation space also + * refer to this as the digest. + */ +static constexpr const char *kArtifactAttestationHash = "artifact.attestation.hash"; + +/** + * The id of the build software attestation. + */ +static constexpr const char *kArtifactAttestationId = "artifact.attestation.id"; + +/** + * The human readable file name of the artifact, typically generated during build and release +processes. Often includes the package name and version in the file name. + * + *

Notes: +

+ */ +static constexpr const char *kArtifactFilename = "artifact.filename"; + +/** + * The full hash value (see +glossary), often found in checksum.txt on a release of the artifact and used to verify package +integrity. + * + *

Notes: +

+ */ +static constexpr const char *kArtifactHash = "artifact.hash"; + +/** + * The Package URL of the package artifact provides a + * standard way to identify and locate the packaged artifact. + */ +static constexpr const char *kArtifactPurl = "artifact.purl"; + +/** + * The version of the artifact. + */ +static constexpr const char *kArtifactVersion = "artifact.version"; + /** * Rate-limiting result, shows whether the lease was acquired or contains a rejection reason */ @@ -397,6 +460,12 @@ href="https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.ht */ static constexpr const char *kAwsS3UploadId = "aws.s3.upload_id"; +/** + * The unique identifier of the service request. It's generated by the Azure service and returned + * with the response. + */ +static constexpr const char *kAzServiceRequestId = "az.service_request_id"; + /** * Array of brand name and version separated by a space * @@ -443,6 +512,39 @@ provides. */ static constexpr const char *kBrowserPlatform = "browser.platform"; +/** + * The human readable name of the pipeline within a CI/CD system. + */ +static constexpr const char *kCicdPipelineName = "cicd.pipeline.name"; + +/** + * The unique identifier of a pipeline run within a CI/CD system. + */ +static constexpr const char *kCicdPipelineRunId = "cicd.pipeline.run.id"; + +/** + * The human readable name of a task within a pipeline. Task here most closely aligns with a computing process in a pipeline. + * Other terms for tasks include commands, steps, and procedures. + */ +static constexpr const char *kCicdPipelineTaskName = "cicd.pipeline.task.name"; + +/** + * The unique identifier of a task run within a pipeline. + */ +static constexpr const char *kCicdPipelineTaskRunId = "cicd.pipeline.task.run.id"; + +/** + * The URL of the pipeline run providing the + * complete address in order to locate and identify the pipeline run. + */ +static constexpr const char *kCicdPipelineTaskRunUrlFull = "cicd.pipeline.task.run.url.full"; + +/** + * The type of the task within a pipeline. + */ +static constexpr const char *kCicdPipelineTaskType = "cicd.pipeline.task.type"; + /** * Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. @@ -523,7 +625,7 @@ Lambda: The function ARN. Take care not to use the "invoked ARN" directly but replace any alias suffix with -the resolved function version, as the same runtime instance may be invokable with multiple different +the resolved function version, as the same runtime instance may be invocable with multiple different aliases.
  • GCP: The URI of the resource
  • Azure: The identify Docker @@ -688,26 +785,36 @@ static constexpr const char *kContainerName = "container.name"; */ static constexpr const char *kContainerRuntime = "container.runtime"; +/** + * The mode of the CPU + */ +static constexpr const char *kCpuMode = "cpu.mode"; + /** * The name of the connection pool; unique within the instrumented application. In case the - * connection pool implementation doesn't provide a name, instrumentation should use a combination - * of {@code server.address} and {@code server.port} attributes formatted as {@code - * server.address:server.port}. + * connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination + * of parameters that would make the name unique, for example, combining attributes {@code + * server.address}, {@code server.port}, and {@code db.namespace}, formatted as {@code + * server.address:server.port/db.namespace}. Instrumentations that generate connection pool name + * following different patterns SHOULD document it. */ -static constexpr const char *kDbClientConnectionsPoolName = "db.client.connections.pool.name"; +static constexpr const char *kDbClientConnectionPoolName = "db.client.connection.pool.name"; /** * The state of a connection in the pool */ -static constexpr const char *kDbClientConnectionsState = "db.client.connections.state"; +static constexpr const char *kDbClientConnectionState = "db.client.connection.state"; /** * The name of a collection (table, container) within the database. * *

    Notes: -

    + */ static constexpr const char *kDbCollectionName = "db.collection.name"; @@ -725,17 +832,42 @@ provided by the application without attempting to do any case normalization.
  • batch operation. + * + *

    Notes: +

    + */ +static constexpr const char *kDbOperationBatchSize = "db.operation.batch.size"; + /** * The name of the operation or command being executed. * *

    Notes:

    +to do any case normalization. If the operation name is parsed from the query text, it SHOULD be the +first operation name found in the query. For batch operations, if the individual operations are +known to have the same operation name then that operation name SHOULD be used prepended by {@code +BATCH}, otherwise {@code db.operation.name} SHOULD be {@code BATCH} or some other database system +specific term if more applicable. */ static constexpr const char *kDbOperationName = "db.operation.name"; /** * The database query being executed. + * + *

    Notes: +

    */ static constexpr const char *kDbQueryText = "db.query.text"; @@ -817,11 +949,6 @@ static constexpr const char *kDbCosmosdbStatusCode = "db.cosmosdb.status_code"; */ static constexpr const char *kDbCosmosdbSubStatusCode = "db.cosmosdb.sub_status_code"; -/** - * Represents the identifier of an Elasticsearch cluster. - */ -static constexpr const char *kDbElasticsearchClusterName = "db.elasticsearch.cluster.name"; - /** * Represents the human-readable identifier of the node/instance to which a request was routed. */ @@ -832,15 +959,30 @@ static constexpr const char *kDbElasticsearchNodeName = "db.elasticsearch.node.n environment (aka deployment tier). * *

    Notes: -

    */ static constexpr const char *kEventName = "event.name"; @@ -1665,6 +1948,16 @@ static constexpr const char *kFilePath = "file.path"; */ static constexpr const char *kFileSize = "file.size"; +/** + * Identifies the Google Cloud service for which the official client library is intended. + * + *

    Notes: +

    + */ +static constexpr const char *kGcpClientService = "gcp.client.service"; + /** * The name of the Cloud Run execution being run for the @@ -1697,7 +1990,7 @@ static constexpr const char *kGcpGceInstanceHostname = "gcp.gce.instance.hostnam static constexpr const char *kGcpGceInstanceName = "gcp.gce.instance.name"; /** - * The full response received from the LLM. + * The full response received from the GenAI model. * *

    Notes:

    */ static constexpr const char *kDbOperationName = "db.operation.name"; /** * The database query being executed. + * + *

    Notes: +

    */ static constexpr const char *kDbQueryText = "db.query.text"; @@ -819,11 +951,6 @@ static constexpr const char *kDbCosmosdbStatusCode = "db.cosmosdb.status_code"; */ static constexpr const char *kDbCosmosdbSubStatusCode = "db.cosmosdb.sub_status_code"; -/** - * Represents the identifier of an Elasticsearch cluster. - */ -static constexpr const char *kDbElasticsearchClusterName = "db.elasticsearch.cluster.name"; - /** * Represents the human-readable identifier of the node/instance to which a request was routed. */ @@ -834,15 +961,30 @@ static constexpr const char *kDbElasticsearchNodeName = "db.elasticsearch.node.n environment (aka deployment tier). * *

    Notes: -

    */ static constexpr const char *kEventName = "event.name"; @@ -1667,6 +1950,16 @@ static constexpr const char *kFilePath = "file.path"; */ static constexpr const char *kFileSize = "file.size"; +/** + * Identifies the Google Cloud service for which the official client library is intended. + * + *

    Notes: +

    + */ +static constexpr const char *kGcpClientService = "gcp.client.service"; + /** * The name of the Cloud Run execution being run for the @@ -1699,7 +1992,7 @@ static constexpr const char *kGcpGceInstanceHostname = "gcp.gce.instance.hostnam static constexpr const char *kGcpGceInstanceName = "gcp.gce.instance.name"; /** - * The full response received from the LLM. + * The full response received from the GenAI model. * *

    Notes: