diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b93c808dcd..140af28811 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -19,70 +19,71 @@ /schemas/ @open-telemetry/specs-semconv-approvers @tigrannajaryan /internal/tools/schema_check.sh @open-telemetry/specs-semconv-approvers @tigrannajaryan -# Logs semantic conventions +# Logs and events semantic conventions /docs/exceptions/exceptions-logs.md @open-telemetry/specs-semconv-approvers @tigrannajaryan /docs/feature-flags/feature-flags-logs.md @open-telemetry/specs-semconv-approvers @tigrannajaryan /docs/general/events-general.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-event-approvers @tigrannajaryan /docs/general/logs-general.md @open-telemetry/specs-semconv-approvers @tigrannajaryan /docs/logs/ @open-telemetry/specs-semconv-approvers @tigrannajaryan /model/log/ @open-telemetry/specs-semconv-approvers @tigrannajaryan +/model/event/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-event-approvers -# JVM semantic conventions approvers +# JVM semantic conventions /docs/jvm/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-jvm-approvers /model/jvm/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-jvm-approvers -# HTTP semantic conventions approvers +# HTTP semantic conventions /docs/http/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers /model/http/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers -/model/server/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers -/model/client/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers -/model/network/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers @open-telemetry/semconv-security-approvers -/model/error/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers -/model/url/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers -/model/user-agent/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers +/model/error/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers +/model/client/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers +/model/network/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers @open-telemetry/semconv-security-approvers +/model/server/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers +/model/url/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers +/model/user-agent/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-http-approvers -# System semantic conventions approvers +# System semantic conventions /docs/system/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-system-approvers /docs/resource/host.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-system-approvers +/model/host/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-system-approvers /model/system/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-system-approvers -/model/host/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-system-approvers -# Mobile semantic conventions approvers +# Mobile semantic conventions /docs/mobile/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers -/model/device/device-events.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers +/model/device/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers -# K8s semantic conventions approvers +# K8s semantic conventions /docs/resource/k8s.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers /model/k8s/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers -# Container semantic conventions approvers +# Container semantic conventions /docs/resource/container.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-container-approvers /model/container/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-container-approvers /model/oci/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-container-approvers -# .NET semantic conventions approvers +# .NET semantic conventions /docs/dotnet/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-dotnet-approver @open-telemetry/semconv-http-approvers /docs/runtime/dotnet-metrics.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-dotnet-approver /model/aspnetcore/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-dotnet-approver @open-telemetry/semconv-http-approvers /model/dotnet/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-dotnet-approver @open-telemetry/semconv-http-approvers /model/signalr/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-dotnet-approver @open-telemetry/semconv-http-approvers -# Gen-AI semantic conventions approvers +# Gen-AI semantic conventions /docs/gen-ai/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-llm-approvers /model/gen-ai/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-llm-approvers -# Security semantic conventions approvers +# Security semantic conventions /model/dns/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-security-approvers /model/file/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-security-approvers -/model/network/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-security-approvers +# /model/network/ is defined in HTTP section /model/process/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-security-approvers /model/tls/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-security-approvers -/model/user/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-security-approvers +/model/user/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-security-approvers -# CICD semantic conventions approvers +# CICD semantic conventions +/model/artifact/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers /model/cicd/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers +/model/code/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers +/model/deployment/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers /model/test/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers /model/vcs/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers -/model/artifact/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers -/model/code/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers -/model/deployment/*-registry.yaml @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-cicd-approvers diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cc984d2902..cbdf29dc75 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -106,25 +106,25 @@ The YAML (model definition) and Markdown (documentation) files are organized in │ │ ├── ....md ├── model │ ├── {root-namespace} -│ │ ├── {root-namespace}-events.yaml -│ │ ├── {root-namespace}-metrics.yaml -│ │ ├── {root-namespace}-registry.yaml -│ │ ├── {root-namespace}-resources.yaml -│ │ ├── {root-namespace}-spans.yaml +│ │ ├── events.yaml +│ │ ├── metrics.yaml +│ │ ├── registry.yaml +│ │ ├── resources.yaml +│ │ ├── spans.yaml ``` -All attributes must be defined in the folder matching its root namespace under -`/{root-namespace}/{root-namespace}-registry.yaml` file. +All attributes must be defined in the folder matching their root namespace under +`/{root-namespace}/*registry.yaml` file. Corresponding markdown files are auto-generated (see [Update the markdown files](#2-update-the-markdown-files)) in `/docs/attribute_registry` folder. All semantic conventions definitions for telemetry signals should be placed under -`/model/{root-namespace}` and should follow `{root-namespace}-{signal}.yaml` pattern. For example, -HTTP spans are defined in `model/http/http-spans.yaml`. +`/model/{root-namespace}` and should follow `*{signal}.yaml` pattern. For example, +HTTP spans are defined in `model/http/spans.yaml`. YAML definitions could be broken down into multiple files. For example, AWS spans -are defined in `/model/aws/aws-lambda-spans.yaml` and `/model/aws/aws-sdk-spans.yaml` files. +are defined in `/model/aws/lambda-spans.yaml` and `/model/aws/sdk-spans.yaml` files. #### Schema files diff --git a/model/andrioid/android-registry.yaml b/model/andrioid/android-registry.yaml deleted file mode 100644 index b55ef0fd12..0000000000 --- a/model/andrioid/android-registry.yaml +++ /dev/null @@ -1,15 +0,0 @@ -groups: - - id: registry.android - type: attribute_group - display_name: Android Attributes - brief: > - The Android platform on which the Android application is running. - attributes: - - id: android.os.api_level - type: string - stability: experimental - brief: > - Uniquely identifies the framework API revision offered by a version - (`os.version`) of the android operating system. More information can be found - [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels). - examples: ['33', '32'] diff --git a/model/andrioid/android-resources.yaml b/model/andrioid/android-resources.yaml deleted file mode 100644 index 7138bc2902..0000000000 --- a/model/andrioid/android-resources.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: android - type: resource - name: android - brief: > - The Android platform on which the Android application is running. - attributes: - - ref: android.os.api_level diff --git a/model/andrioid/deprecated/android-registry-deprecated.yaml b/model/andrioid/deprecated/android-registry-deprecated.yaml deleted file mode 100644 index 3b0c9ce079..0000000000 --- a/model/andrioid/deprecated/android-registry-deprecated.yaml +++ /dev/null @@ -1,36 +0,0 @@ -groups: - - id: registry.android.deprecated - type: attribute_group - display_name: Deprecated Android Attributes - brief: > - This document defines attributes that represents an occurrence of a lifecycle transition on the Android platform. - attributes: - - id: android.state - stability: experimental - deprecated: "Replaced by `device.app.lifecycle`." - brief: > - Deprecated use the `device.app.lifecycle` event definition including - `android.state` as a payload field instead. - note: > - The Android lifecycle states are defined in [Activity lifecycle callbacks](https://developer.android.com/guide/components/activities/activity-lifecycle#lc), - and from which the `OS identifiers` are derived. - type: - members: - - id: created - value: 'created' - brief: > - Any time before Activity.onResume() or, if the app has no Activity, Context.startService() - has been called in the app for the first time. - stability: experimental - - id: background - value: 'background' - brief: > - Any time after Activity.onPause() or, if the app has no Activity, - Context.stopService() has been called when the app was in the foreground state. - stability: experimental - - id: foreground - value: 'foreground' - brief: > - Any time after Activity.onResume() or, if the app has no Activity, - Context.startService() has been called when the app was in either the created or background states. - stability: experimental diff --git a/model/artifact/artifact-registry.yaml b/model/artifact/artifact-registry.yaml deleted file mode 100644 index 11cb388eb6..0000000000 --- a/model/artifact/artifact-registry.yaml +++ /dev/null @@ -1,96 +0,0 @@ -groups: - - id: registry.artifact - type: attribute_group - brief: > - This group describes attributes specific to artifacts. Artifacts are - files or other immutable objects that are intended for distribution. This - definition aligns directly with the - [SLSA](https://slsa.dev/spec/v1.0/terminology#package-model) package - model. - attributes: - - id: artifact.filename - type: string - stability: experimental - brief: > - 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. - note: | - This file name can also act as the [Package Name](https://slsa.dev/spec/v1.0/terminology#package-model) - in cases where the package ecosystem maps accordingly. - Additionally, the artifact [can be published](https://slsa.dev/spec/v1.0/terminology#software-supply-chain) - for others, but that is not a guarantee. - examples: - [ - "golang-binary-amd64-v0.1.0", - "docker-image-amd64-v0.1.0", - "release-1.tar.gz", - "file-name-package.tar.gz", - ] - - id: artifact.version - type: string - stability: experimental - brief: > - The version of the artifact. - examples: ["v0.1.0", "1.2.1", "122691-build"] - - id: artifact.purl - type: string - stability: experimental - brief: > - The [Package URL](https://github.com/package-url/purl-spec) of the - [package artifact](https://slsa.dev/spec/v1.0/terminology#package-model) - provides a standard way to identify and locate the packaged artifact. - examples: - [ - "pkg:github/package-url/purl-spec@1209109710924", - "pkg:npm/foo@12.12.3", - ] - - id: artifact.hash - type: string - stability: experimental - brief: > - The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), - often found in checksum.txt on a release of the artifact and used to - verify package integrity. - note: | - The specific algorithm used to create the cryptographic hash value is - not defined. In situations where an artifact has multiple - cryptographic hashes, it is up to the implementer to choose which - hash value to set here; this should be the most secure hash algorithm - that is suitable for the situation and consistent with the - corresponding attestation. The implementer can then provide the other - hash values through an additional set of attribute extensions as they - deem necessary. - examples: - ["9ff4c52759e2c4ac70b7d517bc7fcdc1cda631ca0045271ddd1b192544f8a3e9"] - - id: artifact.attestation.id - type: string - stability: experimental - brief: > - The id of the build [software attestation](https://slsa.dev/attestation-model). - examples: ["123"] - - id: artifact.attestation.filename - type: string - stability: experimental - brief: > - 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](https://slsa.dev/spec/v1.0/distributing-provenance#relationship-between-artifacts-and-attestations) - specification for more information. - examples: - [ - "golang-binary-amd64-v0.1.0.attestation", - "docker-image-amd64-v0.1.0.intoto.json1", - "release-1.tar.gz.attestation", - "file-name-package.tar.gz.intoto.json1", - ] - - id: artifact.attestation.hash - type: string - stability: experimental - brief: > - 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). - examples: - ["1b31dfcd5b7f9267bf2ff47651df1cfb9147b9e4df1f335accf65b4cda498408"] diff --git a/model/aspnetcore/aspnetcore-metrics.yaml b/model/aspnetcore/aspnetcore-metrics.yaml deleted file mode 100644 index fd0c2c4d78..0000000000 --- a/model/aspnetcore/aspnetcore-metrics.yaml +++ /dev/null @@ -1,114 +0,0 @@ -groups: - - id: aspnetcore.common.rate_limiting.metrics.attributes - type: attribute_group - brief: Common ASP.NET Core rate-limiting metrics attributes - attributes: - - ref: aspnetcore.rate_limiting.policy - requirement_level: - conditionally_required: if the matched endpoint for the request had a rate-limiting policy. - - # routing - - id: metric.aspnetcore.routing.match_attempts - type: metric - metric_name: aspnetcore.routing.match_attempts - stability: stable - brief: Number of requests that were attempted to be matched to an endpoint. - instrument: counter - unit: "{match_attempt}" - note: | - Meter name: `Microsoft.AspNetCore.Routing`; Added in: ASP.NET Core 8.0 - attributes: - - ref: http.route - requirement_level: - conditionally_required: if and only if a route was successfully matched. - - ref: aspnetcore.routing.is_fallback - requirement_level: - conditionally_required: if and only if a route was successfully matched. - - ref: aspnetcore.routing.match_status - requirement_level: required - - # diagnostics - - id: metric.aspnetcore.diagnostics.exceptions - type: metric - metric_name: aspnetcore.diagnostics.exceptions - stability: stable - brief: Number of exceptions caught by exception handling middleware. - instrument: counter - unit: "{exception}" - note: | - Meter name: `Microsoft.AspNetCore.Diagnostics`; Added in: ASP.NET Core 8.0 - attributes: - - ref: error.type - brief: The full name of exception type. - examples: ['System.OperationCanceledException', 'Contoso.MyException'] - requirement_level: required - - ref: aspnetcore.diagnostics.handler.type - - ref: aspnetcore.diagnostics.exception.result - requirement_level: required - - # rate_limiting - - id: metric.aspnetcore.rate_limiting.active_request_leases - type: metric - metric_name: aspnetcore.rate_limiting.active_request_leases - stability: stable - brief: Number of requests that are currently active on the server that hold a rate limiting lease. - instrument: updowncounter - unit: "{request}" - note: | - Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0 - extends: aspnetcore.common.rate_limiting.metrics.attributes - - - id: metric.aspnetcore.rate_limiting.request_lease.duration - type: metric - metric_name: aspnetcore.rate_limiting.request_lease.duration - stability: stable - brief: The duration of rate limiting lease held by requests on the server. - instrument: histogram - unit: "s" - note: | - Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0 - extends: aspnetcore.common.rate_limiting.metrics.attributes - - - id: metric.aspnetcore.rate_limiting.request.time_in_queue - type: metric - metric_name: aspnetcore.rate_limiting.request.time_in_queue - stability: stable - brief: The time the request spent in a queue waiting to acquire a rate limiting lease. - instrument: histogram - unit: "s" - note: | - Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0 - extends: aspnetcore.common.rate_limiting.metrics.attributes - attributes: - - ref: aspnetcore.rate_limiting.result - requirement_level: required - - - id: metric.aspnetcore.rate_limiting.queued_requests - type: metric - metric_name: aspnetcore.rate_limiting.queued_requests - stability: stable - brief: Number of requests that are currently queued, waiting to acquire a rate limiting lease. - instrument: updowncounter - unit: "{request}" - note: | - Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0 - extends: aspnetcore.common.rate_limiting.metrics.attributes - - - id: metric.aspnetcore.rate_limiting.requests - type: metric - metric_name: aspnetcore.rate_limiting.requests - stability: stable - brief: Number of requests that tried to acquire a rate limiting lease. - instrument: counter - unit: "{request}" - note: | - Requests could be: - - * Rejected by global or endpoint rate limiting policies - * Canceled while waiting for the lease. - - Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0 - extends: aspnetcore.common.rate_limiting.metrics.attributes - attributes: - - ref: aspnetcore.rate_limiting.result - requirement_level: required diff --git a/model/aspnetcore/aspnetcore-registry.yaml b/model/aspnetcore/aspnetcore-registry.yaml deleted file mode 100644 index 16a28a5535..0000000000 --- a/model/aspnetcore/aspnetcore-registry.yaml +++ /dev/null @@ -1,88 +0,0 @@ -groups: - - id: registry.aspnetcore - type: attribute_group - display_name: ASP.NET Core Attributes - brief: ASP.NET Core attributes - attributes: - - id: aspnetcore.rate_limiting.policy - type: string - brief: Rate limiting policy name. - stability: stable - examples: ["fixed", "sliding", "token"] - - id: aspnetcore.rate_limiting.result - type: - members: - - id: acquired - value: 'acquired' - brief: "Lease was acquired" - stability: stable - - id: endpoint_limiter - value: 'endpoint_limiter' - brief: "Lease request was rejected by the endpoint limiter" - stability: stable - - id: global_limiter - value: 'global_limiter' - brief: "Lease request was rejected by the global limiter" - stability: stable - - id: request_canceled - value: 'request_canceled' - brief: "Lease request was canceled" - stability: stable - stability: stable - brief: Rate-limiting result, shows whether the lease was acquired or contains a rejection reason - examples: ["acquired", "request_canceled"] - requirement_level: required - - id: aspnetcore.routing.is_fallback - type: boolean - stability: stable - brief: A value that indicates whether the matched route is a fallback route. - examples: [true] - - id: aspnetcore.diagnostics.handler.type - type: string - stability: stable - brief: Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) - implementation that handled the exception. - examples: ["Contoso.MyHandler"] - requirement_level: - conditionally_required: if and only if the exception was handled by this handler. - - id: aspnetcore.request.is_unhandled - type: boolean - stability: stable - brief: Flag indicating if request was handled by the application pipeline. - examples: [true] - - id: aspnetcore.routing.match_status - type: - members: - - id: success - value: 'success' - brief: 'Match succeeded' - stability: stable - - id: failure - value: 'failure' - brief: 'Match failed' - stability: stable - stability: stable - brief: Match result - success or failure - examples: ["success", "failure"] - - id: aspnetcore.diagnostics.exception.result - type: - members: - - id: handled - value: 'handled' - brief: "Exception was handled by the exception handling middleware." - stability: stable - - id: unhandled - value: 'unhandled' - brief: "Exception was not handled by the exception handling middleware." - stability: stable - - id: skipped - value: 'skipped' - brief: "Exception handling was skipped because the response had started." - stability: stable - - id: aborted - value: 'aborted' - brief: "Exception handling didn't run because the request was aborted." - stability: stable - stability: stable - brief: ASP.NET Core exception middleware handling result - examples: ["handled", "unhandled"] diff --git a/model/aws/aws-ecs-resources.yaml b/model/aws/aws-ecs-resources.yaml deleted file mode 100644 index 7b14ff129c..0000000000 --- a/model/aws/aws-ecs-resources.yaml +++ /dev/null @@ -1,23 +0,0 @@ -groups: - - id: aws.ecs - type: resource - name: aws.ecs - brief: > - Resources used by AWS Elastic Container Service (ECS). - attributes: - - ref: aws.ecs.container.arn - requirement_level: recommended - - ref: aws.ecs.cluster.arn - requirement_level: recommended - - ref: aws.ecs.launchtype - requirement_level: recommended - - ref: aws.ecs.task.arn - requirement_level: recommended - - ref: aws.ecs.task.family - requirement_level: recommended - - ref: aws.ecs.task.id - requirement_level: - conditionally_required: If and only if `task.arn` is populated. - examples: [ '10838bed-421f-43ef-870a-f43feacbbb5b', '23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd' ] - - ref: aws.ecs.task.revision - requirement_level: recommended diff --git a/model/aws/aws-eks-resources.yaml b/model/aws/aws-eks-resources.yaml deleted file mode 100644 index ea849dfed9..0000000000 --- a/model/aws/aws-eks-resources.yaml +++ /dev/null @@ -1,9 +0,0 @@ -groups: - - id: aws.eks - type: resource - name: aws.eks - brief: > - Resources used by AWS Elastic Kubernetes Service (EKS). - attributes: - - ref: aws.eks.cluster.arn - requirement_level: recommended diff --git a/model/aws/aws-lambda-spans.yaml b/model/aws/aws-lambda-spans.yaml deleted file mode 100644 index 41943ab8cb..0000000000 --- a/model/aws/aws-lambda-spans.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: aws.lambda - type: span - brief: > - Span attributes used by AWS Lambda (in addition to general `faas` attributes). - attributes: - - ref: aws.lambda.invoked_arn - requirement_level: recommended diff --git a/model/aws/aws-logs-resources.yaml b/model/aws/aws-logs-resources.yaml deleted file mode 100644 index b5b379dfdf..0000000000 --- a/model/aws/aws-logs-resources.yaml +++ /dev/null @@ -1,15 +0,0 @@ -groups: - - id: aws.log - type: resource - name: aws.log - brief: > - Resources specific to Amazon Web Services. - attributes: - - ref: aws.log.group.names - requirement_level: recommended - - ref: aws.log.group.arns - requirement_level: recommended - - ref: aws.log.stream.names - requirement_level: recommended - - ref: aws.log.stream.arns - requirement_level: recommended diff --git a/model/aws/aws-registry.yaml b/model/aws/aws-registry.yaml deleted file mode 100644 index 75ebeee669..0000000000 --- a/model/aws/aws-registry.yaml +++ /dev/null @@ -1,479 +0,0 @@ -groups: - - id: registry.aws - type: attribute_group - display_name: General AWS Attributes - brief: > - This document defines generic attributes for AWS services. - attributes: - - id: aws.request_id - type: string - stability: experimental - brief: "The AWS request ID as returned in the response headers `x-amz-request-id` or `x-amz-requestid`." - examples: - - 79b9da39-b7ae-508a-a6bc-864b2829c622 - - C9ER4AJX75574TDJ - - id: registry.aws.dynamodb - type: attribute_group - display_name: Amazon DynamoDB Attributes - brief: > - This document defines attributes for AWS DynamoDB. - attributes: - - id: aws.dynamodb.table_names - type: string[] - stability: experimental - brief: The keys in the `RequestItems` object field. - examples: - - [Users, Cats] - - id: aws.dynamodb.consumed_capacity - type: string[] - stability: experimental - brief: "The JSON-serialized value of each item in the `ConsumedCapacity` response field." - examples: - - ['{ - "CapacityUnits": number, - "GlobalSecondaryIndexes": { - "string" : { - "CapacityUnits": number, - "ReadCapacityUnits": number, - "WriteCapacityUnits": number - } - }, - "LocalSecondaryIndexes": { - "string" : { - "CapacityUnits": number, - "ReadCapacityUnits": number, - "WriteCapacityUnits": number - } - }, - "ReadCapacityUnits": number, - "Table": { - "CapacityUnits": number, - "ReadCapacityUnits": number, - "WriteCapacityUnits": number - }, - "TableName": "string", - "WriteCapacityUnits": number - }'] - - id: aws.dynamodb.item_collection_metrics - type: string - stability: experimental - brief: "The JSON-serialized value of the `ItemCollectionMetrics` response field." - examples: - - '{ - "string" : [ - { - "ItemCollectionKey": { - "string" : { - "B": blob, - "BOOL": boolean, - "BS": [ blob ], - "L": [ - "AttributeValue" - ], - "M": { - "string" : "AttributeValue" - }, - "N": "string", - "NS": [ "string" ], - "NULL": boolean, - "S": "string", - "SS": [ "string" ] - } - }, - "SizeEstimateRangeGB": [ number ] - } - ] - }' - - id: aws.dynamodb.provisioned_read_capacity - type: double - stability: experimental - brief: "The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter." - examples: - - 1.0 - - 2.0 - - id: aws.dynamodb.provisioned_write_capacity - type: double - stability: experimental - brief: "The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter." - examples: - - 1.0 - - 2.0 - - id: aws.dynamodb.consistent_read - type: boolean - stability: experimental - brief: "The value of the `ConsistentRead` request parameter." - - id: aws.dynamodb.projection - type: string - stability: experimental - brief: "The value of the `ProjectionExpression` request parameter." - examples: - - Title - - Title, Price, Color - - Title, Description, RelatedItems, ProductReviews - - id: aws.dynamodb.limit - type: int - stability: experimental - brief: "The value of the `Limit` request parameter." - examples: - - 10 - - id: aws.dynamodb.attributes_to_get - type: string[] - stability: experimental - brief: "The value of the `AttributesToGet` request parameter." - examples: - - [lives, id] - - id: aws.dynamodb.index_name - type: string - stability: experimental - brief: "The value of the `IndexName` request parameter." - examples: - - name_to_group - - id: aws.dynamodb.select - type: string - stability: experimental - brief: "The value of the `Select` request parameter." - examples: - - ALL_ATTRIBUTES - - COUNT - - id: aws.dynamodb.global_secondary_indexes - type: string[] - stability: experimental - brief: "The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field" - examples: - - ['{ - "IndexName": "string", - "KeySchema": [ - { - "AttributeName": "string", - "KeyType": "string" - } - ], - "Projection": { - "NonKeyAttributes": [ "string" ], - "ProjectionType": "string" - }, - "ProvisionedThroughput": { - "ReadCapacityUnits": number, - "WriteCapacityUnits": number - } - }'] - - id: aws.dynamodb.local_secondary_indexes - type: string[] - stability: experimental - brief: "The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field." - examples: - - ['{ - "IndexArn": "string", - "IndexName": "string", - "IndexSizeBytes": number, - "ItemCount": number, - "KeySchema": [ - { - "AttributeName": "string", - "KeyType": "string" - } - ], - "Projection": { - "NonKeyAttributes": [ "string" ], - "ProjectionType": "string" - } - }'] - - id: aws.dynamodb.exclusive_start_table - type: string - stability: experimental - brief: "The value of the `ExclusiveStartTableName` request parameter." - examples: [Users, CatsTable] - - id: aws.dynamodb.table_count - type: int - stability: experimental - brief: "The number of items in the `TableNames` response parameter." - examples: - - 20 - - id: aws.dynamodb.scan_forward - type: boolean - stability: experimental - brief: "The value of the `ScanIndexForward` request parameter." - - id: aws.dynamodb.segment - type: int - stability: experimental - brief: "The value of the `Segment` request parameter." - examples: - - 10 - - id: aws.dynamodb.total_segments - type: int - stability: experimental - brief: "The value of the `TotalSegments` request parameter." - examples: - - 100 - - id: aws.dynamodb.count - type: int - stability: experimental - brief: "The value of the `Count` response parameter." - examples: - - 10 - - id: aws.dynamodb.scanned_count - type: int - stability: experimental - brief: "The value of the `ScannedCount` response parameter." - examples: - - 50 - - id: aws.dynamodb.attribute_definitions - type: string[] - stability: experimental - brief: "The JSON-serialized value of each item in the `AttributeDefinitions` request field." - examples: - - ['{ - "AttributeName": "string", - "AttributeType": "string" - }'] - - id: aws.dynamodb.global_secondary_index_updates - type: string[] - stability: experimental - brief: "The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field." - examples: - - ['{ - "Create": { - "IndexName": "string", - "KeySchema": [ - { - "AttributeName": "string", - "KeyType": "string" - } - ], - "Projection": { - "NonKeyAttributes": [ "string" ], - "ProjectionType": "string" - }, - "ProvisionedThroughput": { - "ReadCapacityUnits": number, - "WriteCapacityUnits": number - } - }'] - - id: registry.aws.ecs - type: attribute_group - display_name: Amazon ECS Attributes - brief: > - This document defines attributes for AWS Elastic Container Service (ECS). - attributes: - - id: aws.ecs.container.arn - type: string - stability: experimental - brief: > - The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html). - examples: - [ - "arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9", - ] - - id: aws.ecs.cluster.arn - type: string - stability: experimental - brief: > - The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html). - examples: ["arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster"] - - id: aws.ecs.launchtype - type: - members: - - id: ec2 - value: "ec2" - stability: experimental - - id: fargate - value: "fargate" - stability: experimental - stability: experimental - brief: > - The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task. - - id: aws.ecs.task.arn - type: string - stability: experimental - brief: > - The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids). - examples: - [ - "arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b", - "arn:aws:ecs:us-west-1:123456789123:task/my-cluster/task-id/23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd" - ] - - id: aws.ecs.task.family - type: string - stability: experimental - brief: > - The family name of the [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) used to create the ECS task. - examples: ["opentelemetry-family"] - - id: aws.ecs.task.id - type: string - stability: experimental - brief: > - The ID of a running ECS task. The ID MUST be extracted from `task.arn`. - requirement_level: - conditionally_required: If and only if `task.arn` is populated. - examples: - [ - "10838bed-421f-43ef-870a-f43feacbbb5b", - "23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd" - ] - - id: aws.ecs.task.revision - type: string - stability: experimental - brief: > - The revision for the task definition used to create the ECS task. - examples: ["8", "26"] - - id: registry.aws.eks - type: attribute_group - display_name: Amazon EKS Attributes - brief: > - This document defines attributes for AWS Elastic Kubernetes Service (EKS). - attributes: - - id: aws.eks.cluster.arn - type: string - stability: experimental - brief: > - The ARN of an EKS cluster. - examples: ["arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster"] - - id: registry.aws.log - type: attribute_group - display_name: Amazon Logs Attributes - brief: > - This document defines attributes for AWS Logs. - attributes: - - id: aws.log.group.names - type: string[] - stability: experimental - brief: > - The name(s) of the AWS log group(s) an application is writing to. - examples: - - ["/aws/lambda/my-function", "opentelemetry-service"] - note: > - Multiple log groups must be supported for cases like multi-container applications, - where a single application has sidecar containers, and each write to their own log - group. - - id: aws.log.group.arns - type: string[] - stability: experimental - brief: > - The Amazon Resource Name(s) (ARN) of the AWS log group(s). - examples: - - ["arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*"] - note: > - See the - [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). - - id: aws.log.stream.names - type: string[] - stability: experimental - brief: > - The name(s) of the AWS log stream(s) an application is writing to. - examples: - - ["logs/main/10838bed-421f-43ef-870a-f43feacbbb5b"] - - id: aws.log.stream.arns - type: string[] - stability: experimental - brief: > - The ARN(s) of the AWS log stream(s). - examples: - - ["arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b"] - note: > - See the - [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). - One log group can contain several log streams, so these ARNs necessarily identify both a log - group and a log stream. - - - id: registry.aws.lambda - type: attribute_group - display_name: Amazon Lambda Attributes - brief: > - This document defines attributes for AWS Lambda. - attributes: - - id: aws.lambda.invoked_arn - type: string - stability: experimental - brief: > - 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). - note: This may be different from `cloud.resource_id` if an alias is involved. - examples: ["arn:aws:lambda:us-east-1:123456:function:myfunction:myalias"] - - id: registry.aws.s3 - type: attribute_group - display_name: Amazon S3 Attributes - brief: > - This document defines attributes for AWS S3. - attributes: - - id: aws.s3.bucket - type: string - stability: experimental - brief: "The S3 bucket name the request refers to. Corresponds to the `--bucket` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations." - examples: - - some-bucket-name - note: | - The `bucket` attribute is applicable to all S3 operations that reference a bucket, i.e. that require the bucket name as a mandatory parameter. - This applies to almost all S3 operations except `list-buckets`. - - id: aws.s3.key - type: string - stability: experimental - brief: "The S3 object key the request refers to. Corresponds to the `--key` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations." - examples: - - someFile.yml - note: | - The `key` attribute is applicable to all object-related S3 operations, i.e. that require the object key as a mandatory parameter. - This applies in particular to the following operations: - - - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html) - - [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) - - [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html) - - [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html) - - [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html) - - [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html) - - [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html) - - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html) - - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html) - - [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html) - - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html) - - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html) - - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) - - id: aws.s3.copy_source - type: string - stability: experimental - brief: "The source object (in the form `bucket`/`key`) for the copy operation." - examples: - - someFile.yml - note: | - The `copy_source` attribute applies to S3 copy operations and corresponds to the `--copy-source` parameter - of the [copy-object operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html). - This applies in particular to the following operations: - - - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html) - - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) - - id: aws.s3.upload_id - type: string - stability: experimental - brief: "Upload ID that identifies the multipart upload." - examples: - - "dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ" - note: | - The `upload_id` attribute applies to S3 multipart-upload operations and corresponds to the `--upload-id` parameter - of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) multipart operations. - This applies in particular to the following operations: - - - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html) - - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html) - - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html) - - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html) - - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) - - id: aws.s3.delete - type: string - stability: experimental - brief: "The delete request container that specifies the objects to be deleted." - examples: - - "Objects=[{Key=string,VersionId=string},{Key=string,VersionId=string}],Quiet=boolean" - note: | - The `delete` attribute is only applicable to the [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) operation. - The `delete` attribute corresponds to the `--delete` parameter of the - [delete-objects operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html). - - id: aws.s3.part_number - type: int - stability: experimental - brief: "The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000." - examples: - - 3456 - note: | - The `part_number` attribute is only applicable to the [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html) - and [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) operations. - The `part_number` attribute corresponds to the `--part-number` parameter of the - [upload-part operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html). diff --git a/model/aws/aws-sdk-spans.yml b/model/aws/aws-sdk-spans.yml deleted file mode 100644 index 6dbe1d3211..0000000000 --- a/model/aws/aws-sdk-spans.yml +++ /dev/null @@ -1,299 +0,0 @@ -groups: - - id: aws - type: span - brief: > - The `aws` conventions apply to operations using the AWS SDK. They map request or response parameters - in AWS SDK API calls to attributes on a Span. The conventions have been collected over time based - on feedback from AWS users of tracing and will continue to evolve as new interesting conventions - are found. - - Some descriptions are also provided for populating general OpenTelemetry semantic conventions based on - these APIs. - attributes: - - ref: rpc.system - brief: "The value `aws-api`." - requirement_level: required - examples: - - aws-api - - ref: rpc.service - brief: "The name of the service to which a request is made, as returned by the AWS SDK." - examples: - - DynamoDB - - S3 - - ref: rpc.method - brief: "The name of the operation corresponding to the request, as returned by the AWS SDK" - examples: - - GetItem - - PutItem - - ref: aws.request_id - requirement_level: recommended - - - id: dynamodb.shared - extends: aws - type: span - brief: "Attributes that exist for multiple DynamoDB request types." - attributes: - - ref: db.operation.name - brief: "The same value as `rpc.method`." - examples: - - GetItem - - PutItem - - ref: aws.dynamodb.table_names - requirement_level: recommended - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.item_collection_metrics - requirement_level: recommended - - ref: aws.dynamodb.provisioned_read_capacity - requirement_level: recommended - - ref: aws.dynamodb.provisioned_write_capacity - requirement_level: recommended - - ref: aws.dynamodb.consistent_read - requirement_level: recommended - - ref: aws.dynamodb.projection - requirement_level: recommended - - ref: aws.dynamodb.limit - requirement_level: recommended - - ref: aws.dynamodb.attributes_to_get - requirement_level: recommended - - ref: aws.dynamodb.index_name - requirement_level: recommended - - ref: aws.dynamodb.select - requirement_level: recommended - - - id: dynamodb.batchgetitem - brief: DynamoDB.BatchGetItem - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - - id: dynamodb.batchwriteitem - brief: DynamoDB.BatchWriteItem - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.item_collection_metrics - requirement_level: recommended - - - id: dynamodb.createtable - brief: DynamoDB.CreateTable - extends: aws - type: span - attributes: - - ref: aws.dynamodb.global_secondary_indexes - requirement_level: recommended - - ref: aws.dynamodb.local_secondary_indexes - requirement_level: recommended - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.item_collection_metrics - requirement_level: recommended - - ref: aws.dynamodb.provisioned_read_capacity - requirement_level: recommended - - ref: aws.dynamodb.provisioned_write_capacity - requirement_level: recommended - - - id: dynamodb.deleteitem - brief: DynamoDB.DeleteItem - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.item_collection_metrics - requirement_level: recommended - - - id: dynamodb.deletetable - brief: DynamoDB.DeleteTable - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - - id: dynamodb.describetable - brief: DynamoDB.DescribeTable - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - - id: dynamodb.getitem - brief: DynamoDB.GetItem - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.consistent_read - requirement_level: recommended - - ref: aws.dynamodb.projection - requirement_level: recommended - - - id: dynamodb.listtables - brief: DynamoDB.ListTables - extends: aws - type: span - attributes: - - ref: aws.dynamodb.exclusive_start_table - requirement_level: recommended - - ref: aws.dynamodb.table_count - requirement_level: recommended - - ref: aws.dynamodb.limit - requirement_level: recommended - - - id: dynamodb.putitem - brief: DynamoDB.PutItem - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.item_collection_metrics - requirement_level: recommended - - - id: dynamodb.query - brief: DynamoDB.Query - extends: aws - type: span - attributes: - - ref: aws.dynamodb.scan_forward - requirement_level: recommended - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.consistent_read - requirement_level: recommended - - ref: aws.dynamodb.limit - requirement_level: recommended - - ref: aws.dynamodb.projection - requirement_level: recommended - - ref: aws.dynamodb.attributes_to_get - requirement_level: recommended - - ref: aws.dynamodb.index_name - requirement_level: recommended - - ref: aws.dynamodb.select - requirement_level: recommended - - - id: dynamodb.scan - brief: DynamoDB.Scan - extends: aws - type: span - attributes: - - ref: aws.dynamodb.segment - requirement_level: recommended - - ref: aws.dynamodb.total_segments - requirement_level: recommended - - ref: aws.dynamodb.count - requirement_level: recommended - - ref: aws.dynamodb.scanned_count - requirement_level: recommended - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.consistent_read - requirement_level: recommended - - ref: aws.dynamodb.limit - requirement_level: recommended - - ref: aws.dynamodb.projection - requirement_level: recommended - - ref: aws.dynamodb.attributes_to_get - requirement_level: recommended - - ref: aws.dynamodb.index_name - requirement_level: recommended - - ref: aws.dynamodb.select - requirement_level: recommended - - - id: dynamodb.updateitem - brief: DynamoDB.UpdateItem - extends: aws - type: span - attributes: - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.item_collection_metrics - requirement_level: recommended - - - id: dynamodb.updatetable - brief: DynamoDB.UpdateTable - extends: aws - type: span - attributes: - - ref: aws.dynamodb.attribute_definitions - requirement_level: recommended - - ref: aws.dynamodb.global_secondary_index_updates - requirement_level: recommended - - ref: aws.dynamodb.table_names - requirement_level: recommended - brief: "A single-element array with the value of the TableName request parameter." - examples: - - Users - - ref: aws.dynamodb.consumed_capacity - requirement_level: recommended - - ref: aws.dynamodb.provisioned_read_capacity - requirement_level: recommended - - ref: aws.dynamodb.provisioned_write_capacity - requirement_level: recommended - - - id: aws.s3 - extends: aws - type: span - brief: "Attributes that exist for S3 request types." - attributes: - - ref: aws.s3.bucket - requirement_level: recommended - - ref: aws.s3.key - requirement_level: recommended - - ref: aws.s3.copy_source - requirement_level: recommended - - ref: aws.s3.upload_id - requirement_level: recommended - - ref: aws.s3.delete - requirement_level: recommended - - ref: aws.s3.part_number - requirement_level: recommended diff --git a/model/azure/azure-logs.yaml b/model/azure/azure-logs.yaml deleted file mode 100644 index da061e5f31..0000000000 --- a/model/azure/azure-logs.yaml +++ /dev/null @@ -1,102 +0,0 @@ -groups: - - id: az.resource.log - stability: experimental - type: event - name: az.resource.log - brief: > - Describes Azure Resource Log event, see - [Azure Resource Log Top-level Schema](https://learn.microsoft.com/azure/azure-monitor/essentials/resource-logs-schema#top-level-common-schema) - for more details. - attributes: - - ref: az.service_request_id - - ref: cloud.resource_id - brief: The [Fully Qualified Azure Resource ID](https://docs.microsoft.com/rest/api/resources/resources/get-by-id) the log is emitted for. - note: "" - - ref: event.name - # Future Note: When the build tools support this definition please uncomment and validate the details - # included here and what has been added to the manual markdown table - # body: - # fields: - # - id: category - # type: string - # stability: experimental - # brief: "The Azure category of the log entry." - # examples: - # - AuditEvent - # - GatewayLogs - # - ApplicationGatewayAccessLog - # - id: correlation.id - # type: string - # stability: experimental - # brief: "The correlation ID of the log entry." - # examples: - # - 607964b6-41a5-4e24-a5db-db7aab3b9b34 - # - id: duration - # type: int - # stability: experimental - # brief: "The duration of the operations in milliseconds." - # examples: - # - 1000 - # - id: identity - # type: string - # stability: experimental - # brief: > - # "A JSON blob that describes the identity of the user or application that performed the operation." - # note: > - # Typically, this field includes the authorization and claims or JWT token from Active Directory. - # > Warning: - # > this field contains sensitive (PII) information." - # requirement_level: opt-in - # examples: - # - "someone" - # - id: operation.name - # type: string - # stability: experimental - # brief: "The name of the operation." - # examples: - # - SecretGet - # - Microsoft.ApiManagement/GatewayLogs - # - ApplicationGatewayAccess - # - id: operation.version - # type: string - # stability: experimental - # brief: "The version of the operation." - # examples: - # - "1.0" - # - id: properties - # type: KeyValueList # note: this is not a supported type in the current build tools - # stability: experimental - # brief: "The properties provided in the Azure Resource Log." - # examples: {
  "statusCode": "Created",
  "serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
}
- # - id: result.type - # type: string - # stability: experimental - # brief: "The status associated with the logged event." - # examples: - # - "Started" - # - "In Progress" - # - "Succeeded" - # - "Failed" - # - "Active" - # - "Resolved" - # - id: result.signature - # type: string - # stability: experimental - # brief: "The substatus of associated with the logged event. " - # examples: - # - "OK" - # - id: result.description - # type: string - # stability: experimental - # brief: "The description of the result." - # examples: - # - "The operation was successful" - # - "The operation failed" - # - id: tenant.id - # type: string - # stability: experimental - # brief: "The tenant ID of the Active Directory tenant that this event is tied to." - # requirement_level: - # conditionally_required: "if the event is tied to an Active Directory tenant." - # examples: - # - "00000000-0000-0000-0000-000000000000" diff --git a/model/azure/azure-registry.yaml b/model/azure/azure-registry.yaml deleted file mode 100644 index 2fdd5c9501..0000000000 --- a/model/azure/azure-registry.yaml +++ /dev/null @@ -1,19 +0,0 @@ -groups: - - id: registry.azure.sdk - type: attribute_group - brief: > - This document defines generic attributes for Azure SDK. - attributes: - - id: az.service_request_id - type: string - stability: experimental - brief: "The unique identifier of the service request. It's generated by the Azure service and returned with the response." - examples: - - "00000000-0000-0000-0000-000000000000" - - id: az.namespace - type: string - stability: experimental - brief: > - [Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) - as recognized by the client. - examples: ["Microsoft.Storage", "Microsoft.KeyVault", "Microsoft.ServiceBus"] diff --git a/model/browser/browser-registry.yaml b/model/browser/browser-registry.yaml deleted file mode 100644 index ce545d1e1d..0000000000 --- a/model/browser/browser-registry.yaml +++ /dev/null @@ -1,52 +0,0 @@ -groups: - - id: registry.browser - type: attribute_group - display_name: Browser Attributes - brief: > - The web browser attributes - attributes: - - id: browser.brands - type: string[] - stability: experimental - brief: 'Array of brand name and version separated by a space' - note: > - This value is intended to be taken from the - [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) - (`navigator.userAgentData.brands`). - examples: - - [ ' Not A;Brand 99', 'Chromium 99', 'Chrome 99' ] - - id: browser.platform - type: string - stability: experimental - brief: 'The platform on which the browser is running' - note: > - This value is intended to be taken from the - [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) - (`navigator.userAgentData.platform`). If unavailable, the legacy - `navigator.platform` API SHOULD NOT be used instead and this attribute - SHOULD be left unset in order for the values to be consistent. - - The list of possible values is defined in the - [W3C User-Agent Client Hints specification](https://wicg.github.io/ua-client-hints/#sec-ch-ua-platform). - Note that some (but not all) of these values can overlap with values - in the [`os.type` and `os.name` attributes](./os.md). - However, for consistency, the values in the `browser.platform` attribute - should capture the exact value that the user agent provides. - examples: ['Windows', 'macOS', 'Android'] - - id: browser.mobile - type: boolean - stability: experimental - brief: 'A boolean that is true if the browser is running on a mobile device' - note: > - This value is intended to be taken from the - [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) - (`navigator.userAgentData.mobile`). If unavailable, this attribute - SHOULD be left unset. - - id: browser.language - type: string - stability: experimental - brief: 'Preferred language of the user using the browser' - note: > - This value is intended to be taken from the Navigator API - `navigator.language`. - examples: ["en", "en-US", "fr", "fr-FR"] diff --git a/model/browser/browser-resources.yaml b/model/browser/browser-resources.yaml deleted file mode 100644 index df8492cd60..0000000000 --- a/model/browser/browser-resources.yaml +++ /dev/null @@ -1,20 +0,0 @@ -groups: - - id: browser - type: resource - name: browser - brief: > - The web browser in which the application represented by the resource is running. - The `browser.*` attributes MUST be used only for resources that represent applications - running in a web browser (regardless of whether running on a mobile or desktop device). - attributes: - - ref: browser.brands - - ref: browser.platform - - ref: browser.mobile - - ref: browser.language - - ref: user_agent.original - brief: 'Full user-agent string provided by the browser' - note: > - The user-agent value SHOULD be provided only from browsers that do not have a mechanism - to retrieve brands and platform individually from the User-Agent Client Hints API. - To retrieve the value, the legacy `navigator.userAgent` API can be used. - examples: ['Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'] diff --git a/model/cicd/cicd-registry.yaml b/model/cicd/cicd-registry.yaml deleted file mode 100644 index a57b8c7b4b..0000000000 --- a/model/cicd/cicd-registry.yaml +++ /dev/null @@ -1,76 +0,0 @@ -groups: - - id: registry.cicd.pipeline - type: attribute_group - brief: > - This group describes attributes specific to pipelines within a Continuous - Integration and Continuous Deployment (CI/CD) system. A - [pipeline](https://en.wikipedia.org/wiki/Pipeline_(computing)) in this - case is a series of steps that are performed in order to deliver a new - version of software. This aligns with the - [Britannica](https://www.britannica.com/dictionary/pipeline) definition - of a pipeline where a **pipeline** is the system for developing and - producing something. In the context of CI/CD, a pipeline produces or - delivers software. - attributes: - - id: cicd.pipeline.name - type: string - stability: experimental - brief: > - The human readable name of the pipeline within a CI/CD system. - examples: - [ - "Build and Test", - "Lint", - "Deploy Go Project", - "deploy_to_environment", - ] - - id: cicd.pipeline.run.id - type: string - stability: experimental - brief: > - The unique identifier of a pipeline run within a CI/CD system. - examples: ["120912"] - - id: cicd.pipeline.task.name - type: string - stability: experimental - brief: > - The human readable name of a task within a pipeline. Task here most - closely aligns with a [computing process](https://en.wikipedia.org/wiki/Pipeline_(computing)) - in a pipeline. Other terms for tasks include commands, steps, and - procedures. - examples: ["Run GoLang Linter", "Go Build", "go-test", "deploy_binary"] - - id: cicd.pipeline.task.run.id - type: string - stability: experimental - brief: > - The unique identifier of a task run within a pipeline. - examples: ["12097"] - - id: cicd.pipeline.task.run.url.full - type: string - stability: experimental - brief: > - The [URL](https://en.wikipedia.org/wiki/URL) of the pipeline run - providing the complete address in order to locate and identify the pipeline run. - examples: - [ - "https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763/job/26920038674?pr=1075", - ] - - id: cicd.pipeline.task.type - type: - members: - - id: build - value: build - brief: build - stability: experimental - - id: test - value: test - brief: test - stability: experimental - - id: deploy - value: deploy - brief: deploy - stability: experimental - stability: experimental - brief: > - The type of the task within a pipeline. - examples: ["build", "test", "deploy"] diff --git a/model/client/client-common.yaml b/model/client/client-common.yaml deleted file mode 100644 index 02ef815ede..0000000000 --- a/model/client/client-common.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: client - type: attribute_group - brief: > - General client attributes. - attributes: - - ref: client.address - - ref: client.port diff --git a/model/client/client-registry.yaml b/model/client/client-registry.yaml deleted file mode 100644 index 58061c12f1..0000000000 --- a/model/client/client-registry.yaml +++ /dev/null @@ -1,28 +0,0 @@ -groups: - - id: registry.client - type: attribute_group - display_name: Client Attributes - brief: > - These attributes may be used to describe the client in a connection-based network interaction - where there is one side that initiates the connection (the client is the side that initiates the connection). - This covers all TCP network interactions since TCP is connection-based and one side initiates the - connection (an exception is made for peer-to-peer communication over TCP where the "user-facing" surface of the - protocol / API doesn't expose a clear notion of client and server). - This also covers UDP network interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS. - attributes: - - id: client.address - stability: stable - type: string - brief: "Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name." - note: > - When observed from the server side, and when communicating through an intermediary, `client.address` SHOULD represent - the client address behind any intermediaries, for example proxies, if it's available. - examples: ['client.example.com', '10.1.2.80', '/tmp/my.sock'] - - id: client.port - stability: stable - type: int - brief: Client port number. - examples: [65123] - note: > - When observed from the server side, and when communicating through an intermediary, `client.port` SHOULD represent - the client port behind any intermediaries, for example proxies, if it's available. diff --git a/model/cloud/cloud-registry.yaml b/model/cloud/cloud-registry.yaml deleted file mode 100644 index 4390eebc4e..0000000000 --- a/model/cloud/cloud-registry.yaml +++ /dev/null @@ -1,220 +0,0 @@ -groups: - - id: registry.cloud - type: attribute_group - display_name: Cloud Attributes - brief: > - A cloud environment (e.g. GCP, Azure, AWS). - attributes: - - id: cloud.provider - type: - members: - - id: 'alibaba_cloud' - value: 'alibaba_cloud' - brief: 'Alibaba Cloud' - stability: experimental - - id: 'aws' - value: 'aws' - brief: 'Amazon Web Services' - stability: experimental - - id: 'azure' - value: 'azure' - brief: 'Microsoft Azure' - stability: experimental - - id: 'gcp' - value: 'gcp' - brief: 'Google Cloud Platform' - stability: experimental - - id: 'heroku' - value: 'heroku' - brief: 'Heroku Platform as a Service' - stability: experimental - - id: 'ibm_cloud' - value: 'ibm_cloud' - brief: 'IBM Cloud' - stability: experimental - - id: 'tencent_cloud' - value: 'tencent_cloud' - brief: 'Tencent Cloud' - stability: experimental - stability: experimental - brief: > - Name of the cloud provider. - - id: cloud.account.id - type: string - stability: experimental - brief: > - The cloud account ID the resource is assigned to. - examples: ['111111111111', 'opentelemetry'] - - id: cloud.region - type: string - stability: experimental - brief: > - The geographical region the resource is running. - note: > - Refer to your provider's docs to see the available regions, for example - [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), - [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), - [Azure regions](https://azure.microsoft.com/global-infrastructure/geographies/), - [Google Cloud regions](https://cloud.google.com/about/locations), - or [Tencent Cloud regions](https://www.tencentcloud.com/document/product/213/6091). - examples: ['us-central1', 'us-east-1'] - - id: cloud.resource_id - type: string - stability: experimental - brief: > - Cloud provider-specific native identifier of the monitored cloud resource - (e.g. an [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) on AWS, - a [fully qualified resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on Azure, - a [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) on GCP) - note: | - On some cloud providers, it may not be possible to determine the full ID at startup, - so it may be necessary to set `cloud.resource_id` as a span attribute instead. - - The exact value to use for `cloud.resource_id` depends on the cloud provider. - The following well-known definitions MUST be used if you set this attribute and they apply: - - * **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). - Take care not to use the "invoked ARN" directly but replace any - [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) - with the resolved function version, as the same runtime instance may be invocable with - multiple different aliases. - * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names) - * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/rest/api/resources/resources/get-by-id) of the invoked function, - *not* the function app, having the form - `/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/`. - This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share - a TracerProvider. - examples: - - 'arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function' - - '//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID' - - '/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/' - - id: cloud.availability_zone - type: string - stability: experimental - brief: > - Cloud regions often have multiple, isolated locations known as zones - to increase availability. Availability zone represents the - zone where the resource is running. - note: > - Availability zones are called "zones" on Alibaba Cloud and Google Cloud. - examples: ['us-east-1c'] - - id: cloud.platform - type: - members: - - id: alibaba_cloud_ecs - value: 'alibaba_cloud_ecs' - brief: Alibaba Cloud Elastic Compute Service - stability: experimental - - id: alibaba_cloud_fc - value: 'alibaba_cloud_fc' - brief: Alibaba Cloud Function Compute - stability: experimental - - id: alibaba_cloud_openshift - value: 'alibaba_cloud_openshift' - brief: Red Hat OpenShift on Alibaba Cloud - stability: experimental - - id: aws_ec2 - value: 'aws_ec2' - brief: AWS Elastic Compute Cloud - stability: experimental - - id: aws_ecs - value: 'aws_ecs' - brief: AWS Elastic Container Service - stability: experimental - - id: aws_eks - value: 'aws_eks' - brief: AWS Elastic Kubernetes Service - stability: experimental - - id: aws_lambda - value: 'aws_lambda' - brief: AWS Lambda - stability: experimental - - id: aws_elastic_beanstalk - value: 'aws_elastic_beanstalk' - brief: AWS Elastic Beanstalk - stability: experimental - - id: aws_app_runner - value: 'aws_app_runner' - brief: AWS App Runner - stability: experimental - - id: aws_openshift - value: 'aws_openshift' - brief: Red Hat OpenShift on AWS (ROSA) - stability: experimental - - id: azure_vm - value: 'azure_vm' - brief: Azure Virtual Machines - stability: experimental - - id: azure_container_apps - value: 'azure_container_apps' - brief: Azure Container Apps - stability: experimental - - id: azure_container_instances - value: 'azure_container_instances' - brief: Azure Container Instances - stability: experimental - - id: azure_aks - value: 'azure_aks' - brief: Azure Kubernetes Service - stability: experimental - - id: azure_functions - value: 'azure_functions' - brief: Azure Functions - stability: experimental - - id: azure_app_service - value: 'azure_app_service' - brief: Azure App Service - stability: experimental - - id: azure_openshift - value: 'azure_openshift' - brief: Azure Red Hat OpenShift - stability: experimental - - id: gcp_bare_metal_solution - value: 'gcp_bare_metal_solution' - brief: Google Bare Metal Solution (BMS) - stability: experimental - - id: gcp_compute_engine - value: 'gcp_compute_engine' - brief: Google Cloud Compute Engine (GCE) - stability: experimental - - id: gcp_cloud_run - value: 'gcp_cloud_run' - brief: Google Cloud Run - stability: experimental - - id: gcp_kubernetes_engine - value: 'gcp_kubernetes_engine' - brief: Google Cloud Kubernetes Engine (GKE) - stability: experimental - - id: gcp_cloud_functions - value: 'gcp_cloud_functions' - brief: Google Cloud Functions (GCF) - stability: experimental - - id: gcp_app_engine - value: 'gcp_app_engine' - brief: Google Cloud App Engine (GAE) - stability: experimental - - id: gcp_openshift - value: 'gcp_openshift' - brief: Red Hat OpenShift on Google Cloud - stability: experimental - - id: ibm_cloud_openshift - value: 'ibm_cloud_openshift' - brief: Red Hat OpenShift on IBM Cloud - stability: experimental - - id: tencent_cloud_cvm - value: 'tencent_cloud_cvm' - brief: Tencent Cloud Cloud Virtual Machine (CVM) - stability: experimental - - id: tencent_cloud_eks - value: 'tencent_cloud_eks' - brief: Tencent Cloud Elastic Kubernetes Service (EKS) - stability: experimental - - id: tencent_cloud_scf - value: 'tencent_cloud_scf' - brief: Tencent Cloud Serverless Cloud Function (SCF) - stability: experimental - stability: experimental - brief: > - The cloud platform in use. - note: > - The prefix of the service SHOULD match the one specified in `cloud.provider`. diff --git a/model/cloud/cloud-resources.yaml b/model/cloud/cloud-resources.yaml deleted file mode 100644 index 954ff0ad1b..0000000000 --- a/model/cloud/cloud-resources.yaml +++ /dev/null @@ -1,13 +0,0 @@ -groups: - - id: cloud - type: resource - name: cloud - brief: > - A cloud environment (e.g. GCP, Azure, AWS) - attributes: - - ref: cloud.provider - - ref: cloud.account.id - - ref: cloud.region - - ref: cloud.resource_id - - ref: cloud.availability_zone - - ref: cloud.platform diff --git a/model/cloudevents/cloudevents-registry.yaml b/model/cloudevents/cloudevents-registry.yaml deleted file mode 100644 index f933451853..0000000000 --- a/model/cloudevents/cloudevents-registry.yaml +++ /dev/null @@ -1,37 +0,0 @@ -groups: - - id: registry.cloudevents - type: attribute_group - display_name: CloudEvents Attributes - brief: > - This document defines attributes for CloudEvents. - attributes: - - id: cloudevents.event_id - type: string - stability: experimental - brief: > - The [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) uniquely identifies the event. - examples: ['123e4567-e89b-12d3-a456-426614174000', '0001'] - - id: cloudevents.event_source - type: string - stability: experimental - brief: > - The [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) identifies the context in which an event happened. - examples: ['https://github.com/cloudevents', '/cloudevents/spec/pull/123', 'my-service' ] - - id: cloudevents.event_spec_version - type: string - stability: experimental - brief: > - The [version of the CloudEvents specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) which the event uses. - examples: '1.0' - - id: cloudevents.event_type - type: string - stability: experimental - brief: > - The [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type) contains a value describing the type of event related to the originating occurrence. - examples: ['com.github.pull_request.opened', 'com.example.object.deleted.v2'] - - id: cloudevents.event_subject - type: string - stability: experimental - brief: > - The [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject) of the event in the context of the event producer (identified by source). - examples: 'mynewfile.jpg' diff --git a/model/cloudevents/cloudevents-spans.yaml b/model/cloudevents/cloudevents-spans.yaml deleted file mode 100644 index 604d101c17..0000000000 --- a/model/cloudevents/cloudevents-spans.yaml +++ /dev/null @@ -1,18 +0,0 @@ -groups: - - id: cloudevents - type: span - brief: > - This document defines attributes for CloudEvents. - CloudEvents is a specification on how to define event data in a standard way. - These attributes can be attached to spans when performing operations with CloudEvents, regardless of the protocol being used. - attributes: - - ref: cloudevents.event_id - requirement_level: required - - ref: cloudevents.event_source - requirement_level: required - - ref: cloudevents.event_spec_version - requirement_level: recommended - - ref: cloudevents.event_type - requirement_level: recommended - - ref: cloudevents.event_subject - requirement_level: recommended diff --git a/model/code/code-common.yaml b/model/code/code-common.yaml deleted file mode 100644 index b90efeec96..0000000000 --- a/model/code/code-common.yaml +++ /dev/null @@ -1,13 +0,0 @@ -groups: - - id: code - type: attribute_group - brief: > - These attributes allow to report this unit of code and therefore to provide more context about the span. - attributes: - - ref: code.function - - ref: code.namespace - - ref: code.filepath - - ref: code.lineno - - ref: code.column - - ref: code.stacktrace - requirement_level: opt_in diff --git a/model/code/code-registry.yaml b/model/code/code-registry.yaml deleted file mode 100644 index 15621a94df..0000000000 --- a/model/code/code-registry.yaml +++ /dev/null @@ -1,48 +0,0 @@ -groups: - - id: registry.code - type: attribute_group - display_name: Code Attributes - brief: > - These attributes allow to report this unit of code and therefore to provide more context about the span. - attributes: - - id: code.function - type: string - stability: experimental - brief: > - The method or function name, or equivalent (usually rightmost part of the code unit's name). - examples: serveRequest - - id: code.namespace - type: string - stability: experimental - brief: > - 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. - examples: com.example.MyHttpService - - id: code.filepath - type: string - stability: experimental - brief: > - The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). - examples: /usr/local/MyApplication/content_root/app/index.php - - id: code.lineno - type: int - stability: experimental - brief: > - The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`. - examples: 42 - - id: code.column - type: int - stability: experimental - brief: > - The column number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`. - examples: 16 - - id: code.stacktrace - type: string - stability: experimental - brief: > - A stacktrace as a string in the natural representation for the language runtime. - The representation is to be determined and documented by each language SIG. - examples: > - at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n - at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n - at com.example.GenerateTrace.main(GenerateTrace.java:5) diff --git a/model/container/container-metrics.yaml b/model/container/container-metrics.yaml deleted file mode 100644 index 7db120f528..0000000000 --- a/model/container/container-metrics.yaml +++ /dev/null @@ -1,75 +0,0 @@ -groups: - # container.cpu.* metrics and attribute group - - id: metric.container.cpu.time - type: metric - metric_name: container.cpu.time - stability: experimental - brief: "Total CPU time consumed" - note: > - Total CPU time consumed by the specific container on all available CPU cores - instrument: counter - unit: "s" - attributes: - - ref: cpu.mode - brief: "The CPU mode for this data point. A container's CPU metric SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels." - note: "Following states SHOULD be used: `user`, `system`, `kernel`" - requirement_level: - conditionally_required: Required if mode is available, i.e. metrics coming from the Docker Stats API. - - - id: metric.container.cpu.usage - type: metric - metric_name: container.cpu.usage - stability: experimental - brief: "Container's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs" - note: > - CPU usage of the specific container on all available CPU cores, averaged over the sample window - instrument: gauge - unit: "{cpu}" - attributes: - - ref: cpu.mode - brief: "The CPU mode for this data point. A container's CPU metric SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels." - note: "Following states SHOULD be used: `user`, `system`, `kernel`" - requirement_level: - conditionally_required: Required if mode is available, i.e. metrics coming from the Docker Stats API. - - # container.memory.* metrics and attribute group - - id: metric.container.memory.usage - type: metric - metric_name: container.memory.usage - stability: experimental - brief: "Memory usage of the container." - note: > - Memory usage of the container. - instrument: counter - unit: "By" - - # container.disk.io.* metrics and attribute group - - id: metric.container.disk.io - type: metric - metric_name: container.disk.io - stability: experimental - brief: "Disk bytes for the container." - note: > - The total number of bytes read/written - successfully (aggregated from all disks). - instrument: counter - unit: "By" - attributes: - - ref: disk.io.direction - - ref: system.device - - # container.network.io.* metrics and attribute group - - id: metric.container.network.io - type: metric - metric_name: container.network.io - stability: experimental - brief: "Network bytes for the container." - note: > - The number of bytes sent/received - on all network interfaces - by the container. - instrument: counter - unit: "By" - attributes: - - ref: network.io.direction - - ref: system.device diff --git a/model/container/container-registry.yaml b/model/container/container-registry.yaml deleted file mode 100644 index 090c7bddff..0000000000 --- a/model/container/container-registry.yaml +++ /dev/null @@ -1,101 +0,0 @@ -groups: - - id: registry.container - type: attribute_group - display_name: Container Attributes - brief: > - A container instance. - attributes: - - id: container.name - type: string - stability: experimental - brief: > - Container name used by container runtime. - examples: ['opentelemetry-autoconf'] - - id: container.id - type: string - stability: experimental - brief: > - Container ID. Usually a UUID, as for example used to - [identify Docker containers](https://docs.docker.com/engine/containers/run/#container-identification). - The UUID might be abbreviated. - examples: ['a3bf90e006b2'] - - id: container.runtime - type: string - stability: experimental - brief: > - The container runtime managing this container. - examples: ['docker', 'containerd', 'rkt'] - - id: container.image.name - type: string - stability: experimental - brief: > - Name of the image the container was built on. - examples: ['gcr.io/opentelemetry/operator'] - - id: container.image.tags - type: string[] - stability: experimental - brief: > - Container image tags. An example can be found in - [Docker Image Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect). - Should be only the `` section of the full name for example - from `registry.example.com/my-org/my-image:`. - examples: - - ['v1.27.1', '3.5.7-0'] - - id: container.image.id - type: string - stability: experimental - brief: > - Runtime specific image identifier. Usually a hash algorithm followed by a UUID. - note: > - Docker defines a sha256 of the image id; `container.image.id` corresponds to the `Image` field from the Docker - container inspect [API](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect) - endpoint. - - K8s defines a link to the container registry repository with digest `"imageID": "registry.azurecr.io - /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`. - - The ID is assigned by the container runtime and can vary in different environments. - Consider using `oci.manifest.digest` if it is important to identify the same - image in different environments/runtimes. - examples: ['sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f'] - - id: container.image.repo_digests - type: string[] - stability: experimental - brief: > - Repo digests of the container image as provided by the container runtime. - note: > - [Docker](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect) and - [CRI](https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238) - report those under the `RepoDigests` field. - examples: - - [ - 'example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb', - 'internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578' - ] - - id: container.command - type: string - stability: experimental - note: > - If using embedded credentials or sensitive data, it is recommended to remove them to prevent potential leakage. - brief: > - The command used to run the container (i.e. the command name). - examples: [ 'otelcontribcol' ] - - id: container.command_line - type: string - stability: experimental - brief: > - The full command run by the container as a single string representing the full command. [2] - examples: [ 'otelcontribcol --config config.yaml' ] - - id: container.command_args - type: string[] - stability: experimental - brief: > - All the command arguments (including the command/executable itself) run by the container. [2] - examples: - - [ 'otelcontribcol', '--config', 'config.yaml' ] - - id: container.label - type: template[string] - stability: experimental - brief: > - Container labels, `` being the label name, the value being the label value. - examples: [ 'container.label.app=nginx' ] diff --git a/model/container/container-resources.yaml b/model/container/container-resources.yaml deleted file mode 100644 index 039faa8616..0000000000 --- a/model/container/container-resources.yaml +++ /dev/null @@ -1,22 +0,0 @@ -groups: - - id: container - type: resource - name: container - brief: > - A container instance. - attributes: - - ref: container.name - - ref: container.id - - ref: container.runtime - - ref: container.image.name - - ref: container.image.tags - - ref: container.image.id - - ref: container.image.repo_digests - - ref: container.command - requirement_level: opt_in - - ref: container.command_line - requirement_level: opt_in - - ref: container.command_args - requirement_level: opt_in - - ref: container.label - - ref: oci.manifest.digest diff --git a/model/container/deprecated/container-registry-deprecated.yaml b/model/container/deprecated/container-registry-deprecated.yaml deleted file mode 100644 index b99b0f43b3..0000000000 --- a/model/container/deprecated/container-registry-deprecated.yaml +++ /dev/null @@ -1,31 +0,0 @@ -groups: - - id: registry.container.deprecated - type: attribute_group - display_name: Deprecated Container Attributes - brief: "Describes deprecated container attributes." - attributes: - - id: container.labels - type: template[string] - examples: [ 'container.label.app=nginx' ] - brief: "Deprecated, use `container.label` instead." - stability: experimental - deprecated: "Replaced by `container.label`." - - id: container.cpu.state - brief: "Deprecated, use `cpu.mode` instead." - type: - members: - - id: user - value: 'user' - brief: "When tasks of the cgroup are in user mode (Linux). When all container processes are in user mode (Windows)." - stability: experimental - - id: system - value: 'system' - brief: "When CPU is used by the system (host OS)" - stability: experimental - - id: kernel - value: 'kernel' - brief: "When tasks of the cgroup are in kernel mode (Linux). When all container processes are in kernel mode (Windows)." - stability: experimental - stability: experimental - deprecated: 'Replaced by `cpu.mode`' - examples: [ "user", "kernel" ] diff --git a/model/cpu/cpu-registry.yaml b/model/cpu/cpu-registry.yaml deleted file mode 100644 index 0ff9e4d226..0000000000 --- a/model/cpu/cpu-registry.yaml +++ /dev/null @@ -1,37 +0,0 @@ -groups: - - id: registry.cpu - type: attribute_group - brief: Attributes specific to a cpu instance. - display_name: CPU Attributes - attributes: - - id: cpu.mode - brief: "The mode of the CPU" - type: - # TODO: Fix how enum members are used in semantic conventions after https://github.com/open-telemetry/build-tools/issues/192 is merged - members: - - id: user - value: 'user' - stability: experimental - - id: system - value: 'system' - stability: experimental - - id: nice - value: 'nice' - stability: experimental - - id: idle - value: 'idle' - stability: experimental - - id: iowait - value: 'iowait' - stability: experimental - - id: interrupt - value: 'interrupt' - stability: experimental - - id: steal - value: 'steal' - stability: experimental - - id: kernel - value: 'kernel' - stability: experimental - stability: experimental - examples: [ "user", "system" ] diff --git a/model/database/database-common.yaml b/model/database/database-common.yaml deleted file mode 100644 index 3dfc31af14..0000000000 --- a/model/database/database-common.yaml +++ /dev/null @@ -1,23 +0,0 @@ -groups: - - id: attributes.db.client.minimal - type: attribute_group - brief: 'Database Client attributes' - attributes: - - ref: db.operation.name - requirement_level: - conditionally_required: > - If readily available. The operation name MAY be parsed from the query text, - in which case it SHOULD be the first operation name found in the query. - - ref: server.address - brief: > - Name of the database host. - - ref: server.port - requirement_level: - conditionally_required: If using a port other than the default port for this DBMS and if `server.address` is set. - - ref: error.type - requirement_level: - conditionally_required: If and only if the operation failed. - note: > - The `error.type` SHOULD match the error code returned by the database or the client library, - the canonical name of exception that occurred, or another low-cardinality error identifier. - Instrumentations SHOULD document the list of errors they report. diff --git a/model/database/database-metrics.yaml b/model/database/database-metrics.yaml deleted file mode 100644 index 716776b3cf..0000000000 --- a/model/database/database-metrics.yaml +++ /dev/null @@ -1,135 +0,0 @@ -groups: - - id: metric.db.client.operation.duration - type: metric - metric_name: db.client.operation.duration - brief: "Duration of database client operations." - note: > - Batch operations SHOULD be recorded as a single operation. - instrument: histogram - unit: "s" - stability: experimental - extends: attributes.db.client.minimal - attributes: - - ref: db.collection.name - requirement_level: - conditionally_required: > - If readily available. The collection name MAY be parsed from the query text, - in which case it SHOULD be the first collection name in the query. - - ref: db.system - # TODO: Not adding to the minimal because of https://github.com/open-telemetry/build-tools/issues/192 - requirement_level: required - - ref: network.peer.address - brief: Peer address of the database node where the operation was performed. - requirement_level: - recommended: If applicable for this database system. - note: > - Semantic conventions for individual database systems SHOULD document whether `network.peer.*` attributes are applicable. - Network peer address and port are useful when the application interacts with individual database nodes directly. - - If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. - - ref: network.peer.port - requirement_level: - recommended: If and only if `network.peer.address` is set. - - ref: db.namespace - requirement_level: - conditionally_required: If available. - - id: metric.db.client.connection.count - type: metric - metric_name: db.client.connection.count - stability: experimental - brief: "The number of connections that are currently in state described by the `state` attribute" - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connection.state - requirement_level: required - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.idle.max - type: metric - metric_name: db.client.connection.idle.max - stability: experimental - brief: "The maximum number of idle open connections allowed" - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.idle.min - type: metric - metric_name: db.client.connection.idle.min - stability: experimental - brief: "The minimum number of idle open connections allowed" - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.max - type: metric - metric_name: db.client.connection.max - stability: experimental - brief: "The maximum number of open connections allowed" - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.pending_requests - type: metric - metric_name: db.client.connection.pending_requests - stability: experimental - brief: "The number of current pending requests for an open connection" - instrument: updowncounter - unit: "{request}" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.timeouts - type: metric - metric_name: db.client.connection.timeouts - stability: experimental - brief: "The number of connection timeouts that have occurred trying to obtain a connection from the pool" - instrument: counter - unit: "{timeout}" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.create_time - type: metric - metric_name: db.client.connection.create_time - stability: experimental - brief: "The time it took to create a new connection" - instrument: histogram - unit: "s" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.wait_time - type: metric - metric_name: db.client.connection.wait_time - stability: experimental - brief: "The time it took to obtain an open connection from the pool" - instrument: histogram - unit: "s" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required - - - id: metric.db.client.connection.use_time - type: metric - metric_name: db.client.connection.use_time - stability: experimental - brief: "The time between borrowing a connection and returning it to the pool" - instrument: histogram - unit: "s" - attributes: - - ref: db.client.connection.pool.name - requirement_level: required diff --git a/model/database/database-registry.yaml b/model/database/database-registry.yaml deleted file mode 100644 index 081e140f20..0000000000 --- a/model/database/database-registry.yaml +++ /dev/null @@ -1,538 +0,0 @@ -groups: - - id: registry.db - type: attribute_group - display_name: General Database Attributes - brief: > - This group defines the attributes used to describe telemetry in the context of databases. - attributes: - - id: db.collection.name - type: string - stability: experimental - brief: The name of a collection (table, container) within the database. - note: > - It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization. - - If the collection name is parsed from the query text, it SHOULD be the first collection name found in the query - and it SHOULD match the value provided in the query text including any schema and database name prefix. - - For batch operations, if the individual operations are known to have the same collection name - then that collection name SHOULD be used, otherwise `db.collection.name` SHOULD NOT be captured. - examples: ["public.users", "customers"] - - id: db.namespace - type: string - stability: experimental - brief: > - The name of the database, fully qualified within the server address and port. - note: > - 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. - examples: ["customers", "test.users"] - - id: db.operation.name - type: string - stability: experimental - brief: > - The name of the operation or command being executed. - note: > - It is RECOMMENDED to capture the value as provided by the application without attempting 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 `BATCH `, - otherwise `db.operation.name` SHOULD be `BATCH` or some other database system specific term if more applicable. - examples: ["findAndModify", "HMSET", "SELECT"] - - id: db.query.text - type: string - stability: experimental - brief: > - The database query being executed. - note: > - 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. - examples: - [ - "SELECT * FROM wuser_table where username = ?", - 'SET mykey "WuValue"', - ] - - id: db.query.parameter - type: template[string] - stability: experimental - brief: > - A query parameter used in `db.query.text`, with `` being the parameter name, - and the attribute value being a string representation of the parameter value. - note: > - Query parameters should only be captured when `db.query.text` is parameterized with placeholders. - - If a parameter has no name and instead is referenced only by index, - then `` SHOULD be the 0-based index. - examples: ["someval", "55"] - - id: db.operation.batch.size - type: int - stability: experimental - brief: The number of queries included in a batch operation. - note: > - Operations are only considered batches when they contain two or more operations, - and so `db.operation.batch.size` SHOULD never be `1`. - examples: [2, 3, 4] - - id: db.system - brief: The database management system (DBMS) product as identified by the client instrumentation. - note: > - 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. - type: - members: - - id: other_sql - value: "other_sql" - brief: "Some other SQL database. Fallback only. See notes." - stability: experimental - - id: adabas - value: "adabas" - brief: "Adabas (Adaptable Database System)" - stability: experimental - - id: cache - value: "cache" - deprecated: "Replaced by `intersystems_cache`." - brief: "Deprecated, use `intersystems_cache` instead." - stability: experimental - - id: intersystems_cache - value: "intersystems_cache" - brief: "InterSystems Caché" - stability: experimental - - id: cassandra - value: "cassandra" - brief: "Apache Cassandra" - stability: experimental - - id: clickhouse - value: "clickhouse" - brief: "ClickHouse" - stability: experimental - - id: cloudscape - value: "cloudscape" - deprecated: "Replaced by `other_sql`." - brief: "Deprecated, use `other_sql` instead." - stability: experimental - - id: cockroachdb - value: "cockroachdb" - brief: "CockroachDB" - stability: experimental - - id: coldfusion - value: "coldfusion" - deprecated: "Removed." - brief: "Deprecated, no replacement at this time." - stability: experimental - - id: cosmosdb - value: "cosmosdb" - brief: "Microsoft Azure Cosmos DB" - stability: experimental - - id: couchbase - value: "couchbase" - brief: "Couchbase" - stability: experimental - - id: couchdb - value: "couchdb" - brief: "CouchDB" - stability: experimental - - id: db2 - value: "db2" - brief: "IBM Db2" - stability: experimental - - id: derby - value: "derby" - brief: "Apache Derby" - stability: experimental - - id: dynamodb - value: "dynamodb" - brief: "Amazon DynamoDB" - stability: experimental - - id: edb - value: "edb" - brief: "EnterpriseDB" - stability: experimental - - id: elasticsearch - value: "elasticsearch" - brief: "Elasticsearch" - stability: experimental - - id: filemaker - value: "filemaker" - brief: "FileMaker" - stability: experimental - - id: firebird - value: "firebird" - brief: "Firebird" - stability: experimental - - id: firstsql - value: "firstsql" - deprecated: "Replaced by `other_sql`." - brief: "Deprecated, use `other_sql` instead." - stability: experimental - - id: geode - value: "geode" - brief: "Apache Geode" - stability: experimental - - id: h2 - value: "h2" - brief: "H2" - stability: experimental - - id: hanadb - value: "hanadb" - brief: "SAP HANA" - stability: experimental - - id: hbase - value: "hbase" - brief: "Apache HBase" - stability: experimental - - id: hive - value: "hive" - brief: "Apache Hive" - stability: experimental - - id: hsqldb - value: "hsqldb" - brief: "HyperSQL DataBase" - stability: experimental - - id: influxdb - value: "influxdb" - brief: "InfluxDB" - stability: experimental - - id: informix - value: "informix" - brief: "Informix" - stability: experimental - - id: ingres - value: "ingres" - brief: "Ingres" - stability: experimental - - id: instantdb - value: "instantdb" - brief: "InstantDB" - stability: experimental - - id: interbase - value: "interbase" - brief: "InterBase" - stability: experimental - - id: mariadb - value: "mariadb" - brief: "MariaDB" - stability: experimental - - id: maxdb - value: "maxdb" - brief: "SAP MaxDB" - stability: experimental - - id: memcached - value: "memcached" - brief: "Memcached" - stability: experimental - - id: mongodb - value: "mongodb" - brief: "MongoDB" - stability: experimental - - id: mssql - value: "mssql" - brief: "Microsoft SQL Server" - stability: experimental - - id: mssqlcompact - value: "mssqlcompact" - deprecated: "Removed, use `other_sql` instead." - brief: "Deprecated, Microsoft SQL Server Compact is discontinued." - stability: experimental - - id: mysql - value: "mysql" - brief: "MySQL" - stability: experimental - - id: neo4j - value: "neo4j" - brief: "Neo4j" - stability: experimental - - id: netezza - value: "netezza" - brief: "Netezza" - stability: experimental - - id: opensearch - value: "opensearch" - brief: "OpenSearch" - stability: experimental - - id: oracle - value: "oracle" - brief: "Oracle Database" - stability: experimental - - id: pervasive - value: "pervasive" - brief: "Pervasive PSQL" - stability: experimental - - id: pointbase - value: "pointbase" - brief: "PointBase" - stability: experimental - - id: postgresql - value: "postgresql" - brief: "PostgreSQL" - stability: experimental - - id: progress - value: "progress" - brief: "Progress Database" - stability: experimental - - id: redis - value: "redis" - brief: "Redis" - stability: experimental - - id: redshift - value: "redshift" - brief: "Amazon Redshift" - stability: experimental - - id: spanner - value: "spanner" - brief: "Cloud Spanner" - stability: experimental - - id: sqlite - value: "sqlite" - brief: "SQLite" - stability: experimental - - id: sybase - value: "sybase" - brief: "Sybase" - stability: experimental - - id: teradata - value: "teradata" - brief: "Teradata" - stability: experimental - - id: trino - value: "trino" - brief: "Trino" - stability: experimental - - id: vertica - value: "vertica" - brief: "Vertica" - stability: experimental - stability: experimental - - id: db.client.connection.state - stability: experimental - type: - members: - - id: idle - value: "idle" - stability: experimental - - id: used - value: "used" - stability: experimental - brief: "The state of a connection in the pool" - examples: ["idle"] - - id: db.client.connection.pool.name - type: string - stability: experimental - brief: > - 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 parameters that would make the name - unique, for example, combining attributes `server.address`, `server.port`, - and `db.namespace`, formatted as `server.address:server.port/db.namespace`. - Instrumentations that generate connection pool name following different patterns - SHOULD document it. - examples: ["myDataSource"] - - id: registry.db.cassandra - type: attribute_group - display_name: Cassandra Attributes - brief: > - This group defines attributes for Cassandra. - attributes: - - id: db.cassandra.coordinator.dc - type: string - stability: experimental - brief: > - The data center of the coordinating node for a query. - examples: "us-west-2" - - id: db.cassandra.coordinator.id - type: string - stability: experimental - brief: > - The ID of the coordinating node for a query. - examples: "be13faa2-8574-4d71-926d-27f16cf8a7af" - - id: db.cassandra.consistency_level - brief: > - 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). - type: - members: - - id: all - value: "all" - stability: experimental - - id: each_quorum - value: "each_quorum" - stability: experimental - - id: quorum - value: "quorum" - stability: experimental - - id: local_quorum - value: "local_quorum" - stability: experimental - - id: one - value: "one" - stability: experimental - - id: two - value: "two" - stability: experimental - - id: three - value: "three" - stability: experimental - - id: local_one - value: "local_one" - stability: experimental - - id: any - value: "any" - stability: experimental - - id: serial - value: "serial" - stability: experimental - - id: local_serial - value: "local_serial" - stability: experimental - stability: experimental - - id: db.cassandra.idempotence - type: boolean - stability: experimental - brief: > - Whether or not the query is idempotent. - - id: db.cassandra.page_size - type: int - stability: experimental - brief: > - The fetch size used for paging, i.e. how many rows will be returned at once. - examples: [5000] - - id: db.cassandra.speculative_execution_count - type: int - stability: experimental - brief: > - The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively. - examples: [0, 2] - - id: registry.db.cosmosdb - type: attribute_group - display_name: Azure Cosmos DB Attributes - brief: > - This group defines attributes for Azure Cosmos DB. - attributes: - - id: db.cosmosdb.client_id - type: string - stability: experimental - brief: Unique Cosmos client instance id. - examples: "3ba4827d-4422-483f-b59f-85b74211c11d" - - id: db.cosmosdb.connection_mode - type: - members: - - id: gateway - value: "gateway" - brief: Gateway (HTTP) connections mode - stability: experimental - - id: direct - value: "direct" - brief: Direct connection. - stability: experimental - stability: experimental - brief: Cosmos client connection mode. - - id: db.cosmosdb.operation_type - type: - members: - - id: batch - value: "batch" - stability: experimental - - id: create - value: "create" - stability: experimental - - id: delete - value: "delete" - stability: experimental - - id: execute - value: "execute" - stability: experimental - - id: execute_javascript - value: "execute_javascript" - stability: experimental - - id: invalid - value: "invalid" - stability: experimental - - id: head - value: "head" - stability: experimental - - id: head_feed - value: "head_feed" - stability: experimental - - id: patch - value: "patch" - stability: experimental - - id: query - value: "query" - stability: experimental - - id: query_plan - value: "query_plan" - stability: experimental - - id: read - value: "read" - stability: experimental - - id: read_feed - value: "read_feed" - stability: experimental - - id: replace - value: "replace" - stability: experimental - - id: upsert - value: "upsert" - stability: experimental - stability: experimental - brief: Cosmos DB Operation Type. - - id: db.cosmosdb.request_charge - type: double - stability: experimental - brief: RU consumed for that operation - examples: [46.18, 1.0] - - id: db.cosmosdb.request_content_length - type: int - stability: experimental - brief: Request payload size in bytes - - id: db.cosmosdb.status_code - type: int - stability: experimental - brief: Cosmos DB status code. - examples: [200, 201] - - id: db.cosmosdb.sub_status_code - type: int - stability: experimental - brief: Cosmos DB sub status code. - examples: [1000, 1002] - - id: registry.db.elasticsearch - type: attribute_group - display_name: Elasticsearch Attributes - brief: > - This group defines attributes for Elasticsearch. - attributes: - - id: db.elasticsearch.node.name - type: string - stability: experimental - brief: > - Represents the human-readable identifier of the node/instance to which a request was routed. - examples: ["instance-0000000001"] - - id: db.elasticsearch.path_parts - type: template[string] - stability: experimental - brief: > - A dynamic value in the url path. - note: > - Many Elasticsearch url paths allow dynamic values. These SHOULD be recorded in span attributes in the format - `db.elasticsearch.path_parts.`, where `` 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", - ] diff --git a/model/database/database-spans.yaml b/model/database/database-spans.yaml deleted file mode 100644 index 6e507c7fb6..0000000000 --- a/model/database/database-spans.yaml +++ /dev/null @@ -1,518 +0,0 @@ -groups: - - id: trace.db.common.minimal - extends: attributes.db.client.minimal - type: attribute_group - brief: This group defines the attributes used to perform database client calls. - attributes: - # TODO: add db.system once https://github.com/open-telemetry/build-tools/issues/192 is possible - # - ref: db.system - # sampling_relevant: true - - ref: db.operation.name - sampling_relevant: true - - ref: server.address - sampling_relevant: true - - ref: server.port - sampling_relevant: true - - - id: trace.db.common.query - extends: trace.db.common.minimal - type: attribute_group - brief: This group defines the attributes used to perform database client calls. - attributes: - - ref: db.query.text - sampling_relevant: true - requirement_level: - recommended: > - Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes - sensitive data, e.g. by redacting all literal values present in the query text. - - Parameterized query text SHOULD be collected by default - (the query parameter values themselves are opt-in, - see [`db.query.parameter.`](../../docs/attributes-registry/db.md)). - - ref: db.query.parameter - requirement_level: opt_in - - - id: trace.db.common.query_and_collection - extends: trace.db.common.minimal - type: attribute_group - brief: This group defines the attributes used to perform database client calls. - attributes: - - ref: db.query.text - sampling_relevant: true - requirement_level: - recommended: > - SHOULD be collected by default only if there is sanitization that excludes sensitive information. - See [Sanitization of `db.query.text`](../../docs/database/database-spans.md#sanitization-of-dbquerytext). - - ref: db.query.parameter - requirement_level: opt_in - - ref: db.collection.name - sampling_relevant: true - requirement_level: - conditionally_required: > - If readily available. The collection name MAY be parsed from the query text, - in which case it SHOULD be the first collection name found in the query. - - - id: trace.db.common.full - type: attribute_group - brief: This group documents attributes that describe database call along with network information. - extends: trace.db.common.query_and_collection - attributes: - - ref: network.peer.address - brief: Peer address of the database node where the operation was performed. - requirement_level: - recommended: If applicable for this database system. - note: > - Semantic conventions for individual database systems SHOULD document whether `network.peer.*` attributes are applicable. - Network peer address and port are useful when the application interacts with individual database nodes directly. - - If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. - - ref: network.peer.port - requirement_level: - recommended: if and only if `network.peer.address` is set. - - ref: db.system - sampling_relevant: true - # TODO: Not adding to the minimal because of https://github.com/open-telemetry/build-tools/issues/192 - requirement_level: required - - ref: db.namespace - sampling_relevant: true - requirement_level: - conditionally_required: If available. - - - - id: db - type: span - brief: This span defines the attributes used to perform database client calls. - span_kind: client - extends: trace.db.common.full - - - id: db.mssql - type: span - extends: db.sql - brief: > - Attributes for Microsoft SQL Server - attributes: - - ref: db.namespace - sampling_relevant: true - brief: The name of the database, fully qualified within the server address and port. - note: - When connecting to a default instance, `db.namespace` SHOULD be set to the name of - the database. When connecting to a [named instance](https://learn.microsoft.com/sql/connect/jdbc/building-the-connection-url#named-and-multiple-sql-server-instances), - `db.namespace` SHOULD be set to the combination of instance and database name following the `{instance_name}.{database_name}` pattern. - - For commands that switch the database, this SHOULD be set to the target database (even if the command fails). - examples: ["instance1.products", "customers"] - - - id: db.cassandra - type: span - extends: trace.db.common.query_and_collection - brief: > - Attributes for Cassandra - attributes: - - ref: db.namespace - sampling_relevant: true - brief: The Cassandra keyspace name. - note: For commands that switch the keyspace, this SHOULD be set to the target keyspace (even if the command fails). - examples: ["mykeyspace"] - requirement_level: - conditionally_required: If available. - - ref: db.cassandra.page_size - - ref: db.cassandra.consistency_level - - ref: db.collection.name - brief: The name of the Cassandra table that the operation is acting upon. - - ref: db.cassandra.idempotence - - ref: db.cassandra.speculative_execution_count - - ref: db.cassandra.coordinator.id - - ref: db.cassandra.coordinator.dc - - ref: network.peer.address - brief: Peer address of the database node where the operation was performed. - requirement_level: - recommended - note: > - If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. - - ref: network.peer.port - requirement_level: - recommended: if and only if `network.peer.address` is set. - - id: db.hbase - type: span - extends: trace.db.common.minimal - brief: > - Attributes for HBase - attributes: - - ref: db.namespace - sampling_relevant: true - brief: The HBase namespace. - requirement_level: - conditionally_required: If applicable. - note: > - When performing table-related operations, the instrumentations SHOULD extract the namespace from the table name according to - the [HBase table naming conventions](https://hbase.apache.org/book.html#namespace_creation). If namespace is not provided, - instrumentation SHOULD set `db.namespace` value to `default`. - examples: ['mynamespace'] - - ref: db.collection.name - sampling_relevant: true - brief: The HBase table name. - requirement_level: - conditionally_required: If applicable. - note: > - If table name includes the namespace, the `db.collection.name` SHOULD be set to the full table name. - examples: ['mytable', 'ns:table'] - - - id: db.couchdb - type: span - extends: trace.db.common.minimal - brief: > - Attributes for CouchDB - attributes: - - ref: db.operation.name - sampling_relevant: true - brief: > - The HTTP method + the target REST route. - examples: ['GET /{db}/{docid}'] - note: > - In **CouchDB**, `db.operation.name` should be set to the HTTP method + - the target REST route according to the API reference documentation. - For example, when retrieving a document, `db.operation.name` would be set to - (literally, i.e., without replacing the placeholders with concrete values): - [`GET /{db}/{docid}`](https://docs.couchdb.org/en/stable/api/document/common.html#get--db-docid). - - ref: db.namespace - sampling_relevant: true - requirement_level: - conditionally_required: If available. - note: "" # overriding the base note - - - id: db.redis - type: span - extends: trace.db.common.query - brief: > - Attributes for Redis - attributes: - - ref: db.namespace - sampling_relevant: true - brief: > - The index of the database being accessed as used in the [`SELECT` command](https://redis.io/commands/select) - (captured as a string). - requirement_level: - conditionally_required: If and only if it can be captured reliably. - note: > - The database index for current connection can be changed by the application dynamically. Instrumentations MAY use - the initial database index provided in the connection string and keep track of the currently selected - database to capture the `db.namespace`. - - Instrumentations SHOULD NOT set this attribute if capturing it would require additional network calls to Redis. - - For commands that switch the database, this SHOULD be set to the target database (even if the command fails). - examples: ["0", "1", "15"] - - ref: db.query.text - sampling_relevant: true - brief: > - The full syntax of the Redis CLI command. - examples: ["HMSET myhash field1 'Hello' field2 'World'"] - note: > - For **Redis**, the value provided for `db.query.text` SHOULD correspond to the syntax of the Redis CLI. - If, for example, the [`HMSET` command](https://redis.io/commands/hmset) is invoked, `"HMSET myhash field1 'Hello' field2 'World'"` would be a suitable value for `db.query.text`. - - ref: network.peer.address - brief: Peer address of the database node where the operation was performed. - requirement_level: - recommended - note: > - If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. - - ref: network.peer.port - requirement_level: - recommended: if and only if `network.peer.address` is set. - - - id: db.mongodb - type: span - extends: trace.db.common.minimal - brief: > - Attributes for MongoDB - attributes: - - ref: db.operation.name - sampling_relevant: true - brief: > - The name of the command being executed. - note: > - See [MongoDB database commands](https://www.mongodb.com/docs/manual/reference/command/). - examples: ['findAndModify', 'getMore', 'update'] - - ref: db.collection.name - sampling_relevant: true - brief: - The MongoDB collection being accessed within the database stated in `db.namespace`. - requirement_level: required - - ref: db.namespace - sampling_relevant: true - brief: The MongoDB database name. - requirement_level: - conditionally_required: If available. - note: "" # overriding the base note - - - id: db.elasticsearch - type: span - extends: trace.db.common.minimal - brief: > - Attributes for Elasticsearch - attributes: - - ref: http.request.method - sampling_relevant: true - requirement_level: required - - ref: db.operation.name - requirement_level: required - note: > - The `db.operation.name` SHOULD match the endpoint identifier provided in the request - (see the [Elasticsearch schema](https://raw.githubusercontent.com/elastic/elasticsearch-specification/main/output/schema/schema.json)). - examples: [ 'search', 'ml.close_job', 'cat.aliases' ] - - ref: url.full - sampling_relevant: true - requirement_level: required - examples: [ 'https://localhost:9200/index/_search?q=user.id:kimchy' ] - - ref: db.query.text - sampling_relevant: true - requirement_level: - recommended: > - Should be collected by default for search-type queries and only if there is sanitization that excludes - sensitive information. - brief: The request body for a [search-type query](https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html), as a json string. - examples: [ '"{\"query\":{\"term\":{\"user.id\":\"kimchy\"}}}"' ] - - ref: db.collection.name - sampling_relevant: true - requirement_level: recommended - brief: The index or data stream against which the query is executed. - note: > - The query may target multiple indices or data streams, in which case it SHOULD be a comma separated list of those. - If the query doesn't target a specific index, this field MUST NOT be set. - examples: [ 'my_index', 'index1, index2' ] - - ref: db.namespace - sampling_relevant: true - note: > - When communicating with an Elastic Cloud deployment, this should be collected from the "X-Found-Handling-Cluster" HTTP response header. - brief: The name of the Elasticsearch cluster which the client connects to. - requirement_level: recommended - - ref: db.elasticsearch.node.name - note: > - When communicating with an Elastic Cloud deployment, this should be collected from the "X-Found-Handling-Instance" HTTP response header. - requirement_level: recommended - - ref: db.elasticsearch.path_parts - requirement_level: - conditionally_required: when the url has dynamic values - - - id: db.sql - type: span - extends: trace.db.common.query_and_collection - brief: > - Attributes for SQL databases - attributes: - - ref: db.operation.name - note: > - This SHOULD be the SQL command such as `SELECT`, `INSERT`, `UPDATE`, `CREATE`, `DROP`. - - In the case of `EXEC`, this SHOULD be the stored procedure name that is being executed. - examples: ['SELECT', 'INSERT', 'UPDATE', 'DELETE', 'CREATE', 'mystoredproc'] - - ref: db.collection.name - brief: The name of the SQL table that the operation is acting upon. - examples: ['users', 'dbo.products'] - - ref: db.namespace - requirement_level: - conditionally_required: If available. - note: | - 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. - - Unless specified by the system-specific semantic convention, the `db.namespace` attribute matches - the name of the database being accessed. - - The database name can usually be obtained with database driver API such as - [JDBC `Connection.getCatalog()`](https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html#getCatalog--) - or [.NET `SqlConnection.Database`](https://learn.microsoft.com/dotnet/api/system.data.sqlclient.sqlconnection.database). - - Some database drivers don't detect when the current database is changed (for example, with SQL `USE database` statement). - Instrumentations that parse SQL statements MAY use the database name provided - in the connection string and keep track of the currently selected database name. - - For commands that switch the database, this SHOULD be set to the target database (even if the command fails). - - If instrumentation cannot reliably determine the current database name, it SHOULD NOT set `db.namespace`. - - id: db.cosmosdb - type: span - extends: trace.db.common.query_and_collection - brief: > - Attributes for Cosmos DB. - attributes: - - ref: db.cosmosdb.client_id - - ref: db.cosmosdb.operation_type - requirement_level: - conditionally_required: when performing one of the operations in this list - - ref: user_agent.original - brief: 'Full user-agent string is generated by Cosmos DB SDK' - note: > - The user-agent value is generated by SDK which is a combination of
- `sdk_version` : Current version of SDK. e.g. 'cosmos-netstandard-sdk/3.23.0'
- `direct_pkg_version` : Direct package version used by Cosmos DB SDK. e.g. '3.23.1'
- `number_of_client_instances` : Number of cosmos client instances created by the application. e.g. '1'
- `type_of_machine_architecture` : Machine architecture. e.g. 'X64'
- `operating_system` : Operating System. e.g. 'Linux 5.4.0-1098-azure 104 18'
- `runtime_framework` : Runtime Framework. e.g. '.NET Core 3.1.32'
- `failover_information` : Generated key to determine if region failover enabled. - Format Reg-{D (Disabled discovery)}-S(application region)|L(List of preferred regions)|N(None, user did not configure it). - Default value is "NS". - examples: ['cosmos-netstandard-sdk/3.23.0\|3.23.1\|1\|X64\|Linux 5.4.0-1098-azure 104 18\|.NET Core 3.1.32\|S\|'] - - ref: db.cosmosdb.connection_mode - requirement_level: - conditionally_required: if not `gateway` (the default value is assumed to be `gateway`). - - ref: db.collection.name - brief: > - Cosmos DB container name. - note: > - It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization. - requirement_level: - conditionally_required: if available - - ref: db.cosmosdb.request_content_length - - ref: db.cosmosdb.status_code - requirement_level: - conditionally_required: if response was received - - ref: db.cosmosdb.sub_status_code - requirement_level: - conditionally_required: when response was received and contained sub-code. - - ref: db.cosmosdb.request_charge - requirement_level: - conditionally_required: when available - - ref: db.namespace - sampling_relevant: true - requirement_level: - conditionally_required: If available. - note: "" # overriding the base note - - ref: az.namespace - note: > - When `az.namespace` attribute is populated, it MUST be set to `Microsoft.DocumentDB` for all - operations performed by Cosmos DB client. - examples: ["Microsoft.DocumentDB"] - - ref: db.operation.name - note: | - The `db.operation.name` has the following list of well-known values. - If one of them applies, then the respective value MUST be used. - - Batch operations: - - - `execute_batch` - - Bulk operations: - - - `execute_bulk` SHOULD be used on spans reported for methods like - [`executeBulkOperations`](https://javadoc.io/doc/com.azure/azure-cosmos/latest/com/azure/cosmos/CosmosAsyncContainer.html#executeBulkOperations)). - which represents a bulk execution of multiple operations. - - `bulk_{operation name}` (`bulk_create_item`, `bulk_upsert_item`, etc) SHOULD be used on spans describing individual operations (when they are reported) - within the bulk. This pattern SHOULD be used when instrumentation creates span per each operation, but operations are buffered and then performed in bulk. - For example, this applies when [`AllowBulkExecution`](https://learn.microsoft.com/dotnet/api/microsoft.azure.cosmos.cosmosclientoptions.allowbulkexecution) - property is configured on the `Microsoft.Azure.Cosmos` client. - - Change feed operations: - - - `query_change_feed` - - Conflicts operations: - - - `delete_conflict` - - `query_conflicts` - - `read_all_conflicts` - - `read_conflict` - - Container operations: - - - `create_container` - - `create_container_if_not_exists` - - `delete_container` - - `query_containers` - - `read_all_containers` - - `read_container` - - `read_container_throughput` - - `replace_container` - - `replace_container_throughput` - - Database operations: - - - `create_database` - - `create_database_if_not_exists` - - `delete_database` - - `query_databases` - - `read_all_databases` - - `read_database` - - `read_database_throughput` - - `replace_database_throughput` - - Encryption key operations: - - - `create_client_encryption_key` - - `query_client_encryption_keys` - - `read_all_client_encryption_keys` - - `read_client_encryption_key` - - `replace_client_encryption_key` - - Item operations: - - - `create_item` - - `delete_all_items_by_partition_key` - - `delete_item` - - `patch_item` - - `query_items` - - `read_all_items` - - `read_all_items_of_logical_partition` - - `read_many_items` - - `read_item` - - `replace_item` - - `upsert_item` - - Permission operations: - - - `create_permission` - - `delete_permission` - - `query_permissions` - - `read_all_permissions` - - `read_permission` - - `replace_permission` - - `upsert_permission` - - Stored procedure operations: - - - `create_stored_procedure` - - `delete_stored_procedure` - - `execute_stored_procedure` - - `query_stored_procedures` - - `read_all_stored_procedures` - - `read_stored_procedure` - - `replace_stored_procedure` - - Trigger operations: - - - `create_trigger` - - `delete_trigger` - - `query_triggers` - - `read_all_triggers` - - `read_trigger` - - `replace_trigger` - - User operations: - - - `create_user` - - `delete_user` - - `query_users` - - `read_all_users` - - `read_user` - - `replace_user` - - `upsert_user` - - User-defined function operations: - - - `create_user_defined_function` - - `delete_user_defined_function` - - `query_user_defined_functions` - - `read_all_user_defined_functions` - - `read_user_defined_function` - - If none of them applies, it's RECOMMENDED to use language-agnostic representation of - client method name in snake_case. Instrumentations SHOULD document - additional values when introducing new operations. - - examples: ['create_item', 'query_items', 'read_item'] - - ref: server.port - requirement_level: - conditionally_required: If not default (443). diff --git a/model/database/deprecated/database-metrics-deprecated.yaml b/model/database/deprecated/database-metrics-deprecated.yaml deleted file mode 100644 index 5e6332294f..0000000000 --- a/model/database/deprecated/database-metrics-deprecated.yaml +++ /dev/null @@ -1,110 +0,0 @@ -groups: - - id: metric.db.client.connections.count.deprecated - type: metric - metric_name: db.client.connections.usage - stability: experimental - deprecated: "Replaced by `db.client.connection.count`." - brief: "Deprecated, use `db.client.connection.count` instead." - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connections.state - requirement_level: required - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.idle.max.deprecated - type: metric - metric_name: db.client.connections.idle.max - stability: experimental - deprecated: "Replaced by `db.client.connection.idle.max`." - brief: "Deprecated, use `db.client.connection.idle.max` instead." - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.idle.min.deprecated - type: metric - metric_name: db.client.connections.idle.min - stability: experimental - deprecated: "Replaced by `db.client.connection.idle.min`." - brief: "Deprecated, use `db.client.connection.idle.min` instead." - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.max.deprecated - type: metric - metric_name: db.client.connections.max - stability: experimental - deprecated: "Replaced by `db.client.connection.max`." - brief: "Deprecated, use `db.client.connection.max` instead." - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.pending_requests.deprecated - type: metric - metric_name: db.client.connections.pending_requests - stability: experimental - deprecated: "Replaced by `db.client.connection.pending_requests`." - brief: "Deprecated, use `db.client.connection.pending_requests` instead." - instrument: updowncounter - unit: "{request}" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.timeouts.deprecated - type: metric - metric_name: db.client.connections.timeouts - stability: experimental - deprecated: "Replaced by `db.client.connection.timeouts`." - brief: "Deprecated, use `db.client.connection.timeouts` instead." - instrument: counter - unit: "{timeout}" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.create_time.deprecated - type: metric - metric_name: db.client.connections.create_time - stability: experimental - deprecated: "Replaced by `db.client.connection.create_time`. Note: the unit also changed from `ms` to `s`." - brief: "Deprecated, use `db.client.connection.create_time` instead. Note: the unit also changed from `ms` to `s`." - instrument: histogram - unit: "ms" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.wait_time.deprecated - type: metric - metric_name: db.client.connections.wait_time - stability: experimental - deprecated: "Replaced by `db.client.connection.wait_time`. Note: the unit also changed from `ms` to `s`." - brief: "Deprecated, use `db.client.connection.wait_time` instead. Note: the unit also changed from `ms` to `s`." - instrument: histogram - unit: "ms" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required - - - id: metric.db.client.connections.use_time.deprecated - type: metric - metric_name: db.client.connections.use_time - stability: experimental - deprecated: "Replaced by `db.client.connection.use_time`. Note: the unit also changed from `ms` to `s`." - brief: "Deprecated, use `db.client.connection.use_time` instead. Note: the unit also changed from `ms` to `s`." - instrument: histogram - unit: "ms" - attributes: - - ref: db.client.connections.pool.name - requirement_level: required diff --git a/model/database/deprecated/database-registry-deprecated.yaml b/model/database/deprecated/database-registry-deprecated.yaml deleted file mode 100644 index e8fdf5d667..0000000000 --- a/model/database/deprecated/database-registry-deprecated.yaml +++ /dev/null @@ -1,137 +0,0 @@ -groups: - - id: registry.db.deprecated - type: attribute_group - display_name: Deprecated Database Attributes - brief: > - "Describes deprecated db attributes." - attributes: - - id: db.connection_string - type: string - brief: 'Deprecated, use `server.address`, `server.port` attributes instead.' - stability: experimental - deprecated: "Replaced by `server.address` and `server.port`." - examples: Server=(localdb)\v11.0;Integrated Security=true; - - id: db.jdbc.driver_classname - type: string - brief: 'Removed, no replacement at this time.' - stability: experimental - deprecated: 'Removed as not used.' - examples: ['org.postgresql.Driver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver'] - - id: db.operation - type: string - brief: 'Deprecated, use `db.operation.name` instead.' - stability: experimental - deprecated: "Replaced by `db.operation.name`." - examples: ['findAndModify', 'HMSET', 'SELECT'] - - id: db.user - type: string - brief: 'Deprecated, no replacement at this time.' - deprecated: "No replacement at this time." - stability: experimental - examples: ['readonly_user', 'reporting_user'] - - id: db.statement - type: string - brief: The database statement being executed. - deprecated: "Replaced by `db.query.text`." - stability: experimental - examples: ['SELECT * FROM wuser_table', 'SET mykey "WuValue"'] - - id: db.cassandra.table - type: string - stability: experimental - brief: 'Deprecated, use `db.collection.name` instead.' - deprecated: "Replaced by `db.collection.name`." - examples: 'mytable' - - id: db.cosmosdb.container - type: string - stability: experimental - brief: 'Deprecated, use `db.collection.name` instead.' - deprecated: "Replaced by `db.collection.name`." - examples: 'mytable' - - id: db.mongodb.collection - type: string - stability: experimental - brief: 'Deprecated, use `db.collection.name` instead.' - deprecated: "Replaced by `db.collection.name`." - examples: 'mytable' - - id: db.sql.table - type: string - stability: experimental - brief: 'Deprecated, use `db.collection.name` instead.' - deprecated: "Replaced by `db.collection.name`." - examples: 'mytable' - - id: db.redis.database_index - type: int - stability: experimental - brief: 'Deprecated, use `db.namespace` instead.' - deprecated: "Replaced by `db.namespace`." - examples: [0, 1, 15] - - id: db.name - type: string - stability: experimental - brief: 'Deprecated, use `db.namespace` instead.' - deprecated: "Replaced by `db.namespace`." - examples: [ 'customers', 'main' ] - - id: db.mssql.instance_name - type: string - stability: experimental - brief: 'Deprecated, SQL Server instance is now populated as a part of `db.namespace` attribute.' - deprecated: 'Deprecated, no replacement at this time.' - examples: 'MSSQLSERVER' - - id: db.instance.id - type: string - stability: experimental - brief: 'Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.' - deprecated: 'Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.' - examples: 'mysql-e26b99z.example.com' - - id: db.elasticsearch.cluster.name - type: string - stability: experimental - deprecated: Replaced by `db.namespace`. - brief: > - Deprecated, use `db.namespace` instead. - examples: ["e9106fc68e3044f0b1475b04bf4ffd5f"] - - - id: registry.db.metrics.deprecated - type: attribute_group - display_name: Deprecated Database Metrics - brief: > - "Describes deprecated db metrics attributes." - attributes: - - id: state - stability: experimental - type: - members: - - id: idle - value: 'idle' - stability: experimental - - id: used - value: 'used' - stability: experimental - brief: "Deprecated, use `db.client.connection.state` instead." - deprecated: "Replaced by `db.client.connection.state`." - examples: ["idle"] - - id: pool.name - type: string - stability: experimental - brief: "Deprecated, use `db.client.connection.pool.name` instead." - deprecated: "Replaced by `db.client.connection.pool.name`." - examples: ["myDataSource"] - - id: db.client.connections.state - stability: experimental - type: - members: - - id: idle - value: 'idle' - stability: experimental - - id: used - value: 'used' - stability: experimental - brief: "Deprecated, use `db.client.connection.state` instead." - deprecated: "Replaced by `db.client.connection.state`." - examples: ["idle"] - - id: db.client.connections.pool.name - type: string - stability: experimental - brief: "Deprecated, use `db.client.connection.pool.name` instead." - deprecated: "Replaced by `db.client.connection.pool.name`." - examples: ["myDataSource"] diff --git a/model/deployment/deployment-registry.yaml b/model/deployment/deployment-registry.yaml deleted file mode 100644 index 38d35300a4..0000000000 --- a/model/deployment/deployment-registry.yaml +++ /dev/null @@ -1,48 +0,0 @@ -groups: - - id: registry.deployment - type: attribute_group - display_name: Deployment Attributes - brief: > - This document defines attributes for software deployments. - attributes: - - id: deployment.name - type: string - stability: experimental - brief: > - The name of the deployment. - examples: ["deploy my app", "deploy-frontend"] - - id: deployment.id - type: string - stability: experimental - brief: > - The id of the deployment. - examples: ["1208"] - - id: deployment.status - type: - members: - - id: failed - value: failed - brief: failed - stability: experimental - - id: succeeded - value: succeeded - brief: succeeded - stability: experimental - brief: > - The status of the deployment. - stability: experimental - - id: deployment.environment.name - type: string - stability: experimental - brief: > - Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) - (aka deployment tier). - note: | - `deployment.environment.name` does not affect the uniqueness constraints defined through - the `service.namespace`, `service.name` and `service.instance.id` resource attributes. - This implies that resources carrying the following attribute combinations MUST be - considered to be identifying the same service: - - * `service.name=frontend`, `deployment.environment.name=production` - * `service.name=frontend`, `deployment.environment.name=staging`. - examples: ["staging", "production"] diff --git a/model/deployment/deployment-resources.yaml b/model/deployment/deployment-resources.yaml deleted file mode 100644 index 5e40253d2d..0000000000 --- a/model/deployment/deployment-resources.yaml +++ /dev/null @@ -1,9 +0,0 @@ -groups: - - id: deployment - type: resource - name: deployment - brief: > - The software deployment. - attributes: - - ref: deployment.environment.name - requirement_level: recommended diff --git a/model/deployment/deprecated/deployment-registry-deprecated.yaml b/model/deployment/deprecated/deployment-registry-deprecated.yaml deleted file mode 100644 index 5ac9727db0..0000000000 --- a/model/deployment/deprecated/deployment-registry-deprecated.yaml +++ /dev/null @@ -1,13 +0,0 @@ -groups: - - id: registry.deployment.deprecated - type: attribute_group - brief: > - "Describes deprecated deployment attributes." - attributes: - - id: deployment.environment - type: string - stability: experimental - deprecated: 'Deprecated, use `deployment.environment.name` instead.' - brief: > - 'Deprecated, use `deployment.environment.name` instead.' - examples: ['staging', 'production'] diff --git a/model/destination/destination-common.yaml b/model/destination/destination-common.yaml deleted file mode 100644 index e45dd4e365..0000000000 --- a/model/destination/destination-common.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: destination - type: attribute_group - brief: > - General destination attributes. - attributes: - - ref: destination.address - - ref: destination.port diff --git a/model/destination/destination-registry.yaml b/model/destination/destination-registry.yaml deleted file mode 100644 index f0dc4fba43..0000000000 --- a/model/destination/destination-registry.yaml +++ /dev/null @@ -1,25 +0,0 @@ -groups: - - id: registry.destination - type: attribute_group - display_name: Destination Attributes - brief: > - These attributes may be used to describe the receiver of a network exchange/packet. These should be used - when there is no client/server relationship between the two sides, or when that relationship is unknown. - This covers low-level network interactions (e.g. packet tracing) where you don't know if - there was a connection or which side initiated it. - This also covers unidirectional UDP flows and peer-to-peer communication where the - "user-facing" surface of the protocol / API doesn't expose a clear notion of client and server. - attributes: - - id: destination.address - type: string - stability: experimental - brief: "Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name." - note: > - When observed from the source side, and when communicating through an intermediary, `destination.address` SHOULD represent - the destination address behind any intermediaries, for example proxies, if it's available. - examples: ['destination.example.com', '10.1.2.80', '/tmp/my.sock'] - - id: destination.port - type: int - stability: experimental - brief: 'Destination port number' - examples: [3389, 2888] diff --git a/model/device/device-events.yaml b/model/device/device-events.yaml deleted file mode 100644 index dbf3abceeb..0000000000 --- a/model/device/device-events.yaml +++ /dev/null @@ -1,74 +0,0 @@ -groups: - - id: device.app.lifecycle - stability: experimental - type: event - name: device.app.lifecycle - brief: > - This event represents an occurrence of a lifecycle transition on Android or iOS platform. - note: > - This event identifies the fields that are common to all lifecycle events for android and iOS using - the `android.state` and `ios.state` fields. The `android.state` and `ios.state` attributes are - mutually exclusive. - # Future Note: When the build tools support this definition please uncomment and validate the details - # included here and what has been added to the manual markdown table - # body: - # fields: - # - id: ios.state - # stability: experimental - # requirement_level: - # conditional_required: if and only if `os.name` is `ios` - # note: > - # The iOS lifecycle states are defined in the [UIApplicationDelegate documentation](https://developer.apple.com/documentation/uikit/uiapplicationdelegate#1656902), - # and from which the `OS terminology` column values are derived. - # brief: > - # This attribute represents the state the application has transitioned into at the occurrence of the event. - # type: - # members: - # - id: active - # value: 'active' - # brief: > - # The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`. - # - id: inactive - # value: 'inactive' - # brief: > - # The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`. - # - id: background - # value: 'background' - # brief: > - # The app is now in the background. - # This value is associated with UIKit notification `applicationDidEnterBackground`. - # - id: foreground - # value: 'foreground' - # brief: > - # The app is now in the foreground. - # This value is associated with UIKit notification `applicationWillEnterForeground`. - # - id: terminate - # value: 'terminate' - # brief: > - # The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`. - # - id: android.state - # stability: experimental - # requirement_level: - # conditional_required: if and only if `os.name` is `android` - # brief: > - # This attribute represents the state the application has transitioned into at the occurrence of the event. - # note: > - # The Android lifecycle states are defined in [Activity lifecycle callbacks](https://developer.android.com/guide/components/activities/activity-lifecycle#lc), - # and from which the `OS identifiers` are derived. - # type: - # members: - # - id: created - # value: 'created' - # brief: > - # Any time before Activity.onResume() or, if the app has no Activity, Context.startService() - # has been called in the app for the first time. - # - id: background - # value: 'background' - # brief: > - # Any time after Activity.onPause() or, if the app has no Activity, - # Context.stopService() has been called when the app was in the foreground state. - # - id: foreground - # value: 'foreground' - # brief: > - # Any time after Activity.onResume() or, if the app has no Activity, - # Context.startService() has been called when the app was in either the created or background states. diff --git a/model/device/device-registry.yaml b/model/device/device-registry.yaml deleted file mode 100644 index 6fc25d8f6f..0000000000 --- a/model/device/device-registry.yaml +++ /dev/null @@ -1,50 +0,0 @@ -groups: - - id: registry.device - type: attribute_group - display_name: Device Attributes - brief: > - Describes device attributes. - attributes: - - id: device.id - type: string - stability: experimental - brief: > - A unique identifier representing the device - note: > - The device identifier MUST only be defined using the values outlined below. This value is not an advertising - identifier and MUST NOT be used as such. - On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). - On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique - UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) - on best practices and exact implementation details. - Caution should be taken when storing personal data or anything which can identify a user. GDPR and - data protection laws may apply, ensure you do your own due diligence. - examples: ['2ab2916d-a51f-4ac8-80ee-45ac31a28092'] - - id: device.manufacturer - type: string - stability: experimental - brief: > - The name of the device manufacturer - note: > - The Android OS provides this field via [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER). - iOS apps SHOULD hardcode the value `Apple`. - examples: ['Apple', 'Samsung'] - - id: device.model.identifier - type: string - stability: experimental - brief: > - The model identifier for the device - note: > - It's recommended this value represents a machine-readable version of - the model identifier rather than the market or consumer-friendly name - of the device. - examples: ['iPhone3,4', 'SM-G920F'] - - id: device.model.name - type: string - stability: experimental - brief: > - The marketing name for the device model - note: > - It's recommended this value represents a human-readable version of the - device model rather than a machine-readable alternative. - examples: ['iPhone 6s Plus', 'Samsung Galaxy S6'] diff --git a/model/device/device-resources.yaml b/model/device/device-resources.yaml deleted file mode 100644 index 45b1cd7a49..0000000000 --- a/model/device/device-resources.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: device - type: resource - name: device - brief: > - The device on which the process represented by this resource is running. - attributes: - - ref: device.id - - ref: device.manufacturer - - ref: device.model.identifier - - ref: device.model.name diff --git a/model/disk/disk-registry.yaml b/model/disk/disk-registry.yaml deleted file mode 100644 index ecaffd1f05..0000000000 --- a/model/disk/disk-registry.yaml +++ /dev/null @@ -1,19 +0,0 @@ -groups: - - id: registry.disk - type: attribute_group - display_name: Disk Attributes - brief: > - These attributes may be used for any disk related operation. - attributes: - - id: disk.io.direction - type: - members: - - id: read - value: 'read' - stability: experimental - - id: write - value: 'write' - stability: experimental - stability: experimental - brief: "The disk IO operation direction." - examples: ["read"] diff --git a/model/dns/dns-metrics.yaml b/model/dns/dns-metrics.yaml deleted file mode 100644 index 627213d90f..0000000000 --- a/model/dns/dns-metrics.yaml +++ /dev/null @@ -1,23 +0,0 @@ -groups: - - id: metric.dns.lookup.duration - type: metric - metric_name: dns.lookup.duration - stability: experimental - brief: Measures the time taken to perform a DNS lookup. - instrument: histogram - unit: "s" - attributes: - - ref: dns.question.name - requirement_level: required - examples: ["www.example.com", "dot.net"] - - ref: error.type - requirement_level: - conditionally_required: if and only if an error has occurred. - brief: Describes the error the DNS lookup failed with. - note: > - Instrumentations SHOULD use error code such as one of errors reported by - `getaddrinfo`([Linux or other POSIX systems](https://man7.org/linux/man-pages/man3/getaddrinfo.3.html) / - [Windows](https://learn.microsoft.com/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfo)) or one reported by the - runtime or client library. - If error code is not available, the full name of exception type SHOULD be used. - examples: ["host_not_found", "no_recovery", "java.net.UnknownHostException"] diff --git a/model/dns/dns-registry.yaml b/model/dns/dns-registry.yaml deleted file mode 100644 index 78310e93d1..0000000000 --- a/model/dns/dns-registry.yaml +++ /dev/null @@ -1,18 +0,0 @@ -groups: - - id: registry.dns - type: attribute_group - display_name: DNS Attributes - brief: > - This document defines the shared attributes used to report a DNS query. - attributes: - - id: dns.question.name - type: string - stability: experimental - brief: The name being queried. - examples: ["www.example.com", "opentelemetry.io"] - note: > - If the name field contains non-printable - characters (below 32 or above 126), those characters should be represented - as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. - Tabs, carriage returns, and line feeds should be converted to \t, \r, and - \n respectively. diff --git a/model/dotnet/dotnet-registry.yaml b/model/dotnet/dotnet-registry.yaml deleted file mode 100644 index 2024718f4f..0000000000 --- a/model/dotnet/dotnet-registry.yaml +++ /dev/null @@ -1,33 +0,0 @@ -groups: - - id: registry.dotnet - type: attribute_group - display_name: .NET Attributes - brief: > - This document defines .NET related attributes. - attributes: - - id: dotnet.gc.heap.generation - stability: experimental - type: - members: - - id: gen0 - value: 'gen0' - brief: "Generation 0" - stability: experimental - - id: gen1 - value: 'gen1' - brief: "Generation 1" - stability: experimental - - id: gen2 - value: 'gen2' - brief: "Generation 2" - stability: experimental - - id: loh - value: 'loh' - brief: "Large Object Heap" - stability: experimental - - id: poh - value: 'poh' - brief: "Pinned Object Heap" - stability: experimental - brief: Name of the garbage collector managed heap generation. - examples: ["gen0", "gen1", "gen2"] diff --git a/model/dotnet/dotnet-runtime-metrics.yaml b/model/dotnet/dotnet-runtime-metrics.yaml deleted file mode 100644 index 313ee3b574..0000000000 --- a/model/dotnet/dotnet-runtime-metrics.yaml +++ /dev/null @@ -1,279 +0,0 @@ -groups: - - id: metric.dotnet.process.cpu.count - type: metric - metric_name: dotnet.process.cpu.count - brief: "The number of processors available to the process." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as accessing [`Environment.ProcessorCount`](https://learn.microsoft.com/dotnet/api/system.environment.processorcount). - instrument: updowncounter - unit: "{cpu}" - stability: experimental - - - id: metric.dotnet.process.cpu.time - type: metric - metric_name: dotnet.process.cpu.time - brief: "CPU time used by the process." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as accessing the corresponding - processor time properties on [`System.Diagnostics.Process`](https://learn.microsoft.com/dotnet/api/system.diagnostics.process). - instrument: counter - unit: "s" - stability: experimental - attributes: - - ref: cpu.mode - requirement_level: required - - - id: metric.dotnet.process.memory.working_set - type: metric - metric_name: dotnet.process.memory.working_set - brief: "The number of bytes of physical memory mapped to the process context." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling [`Environment.WorkingSet`](https://learn.microsoft.com/dotnet/api/system.environment.workingset). - instrument: updowncounter - unit: "By" - stability: experimental - - - id: metric.dotnet.gc.collections - type: metric - metric_name: dotnet.gc.collections - brief: "The number of garbage collections that have occurred since the process has started." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric uses the [`GC.CollectionCount(int generation)`](https://learn.microsoft.com/dotnet/api/system.gc.collectioncount) - API to calculate exclusive collections per generation. - instrument: counter - unit: "{collection}" - stability: experimental - attributes: - - ref: dotnet.gc.heap.generation - requirement_level: required - - - id: metric.dotnet.gc.heap.total_allocated - type: metric - metric_name: dotnet.gc.heap.total_allocated - brief: > - The *approximate* number of bytes allocated on the managed GC heap since the process has - started. The returned value does not include any native allocations. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling [`GC.GetTotalAllocatedBytes()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalallocatedbytes). - instrument: counter - unit: "By" - stability: experimental - - - id: metric.dotnet.gc.last_collection.memory.committed_size - type: metric - metric_name: dotnet.gc.last_collection.memory.committed_size - brief: > - The amount of committed virtual memory in use by the .NET GC, as - observed during the latest garbage collection. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`GC.GetGCMemoryInfo().TotalCommittedBytes`](https://learn.microsoft.com/dotnet/api/system.gcmemoryinfo.totalcommittedbytes). - Committed virtual memory may be larger than the heap size because it - includes both memory for storing existing objects (the heap size) and some - extra memory that is ready to handle newly allocated objects in the - future. - instrument: updowncounter - unit: "By" - stability: experimental - - - id: metric.dotnet.gc.last_collection.heap.size - type: metric - metric_name: dotnet.gc.last_collection.heap.size - brief: > - The managed GC heap size (including fragmentation), as observed during the - latest garbage collection. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`GC.GetGCMemoryInfo().GenerationInfo.SizeAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.sizeafterbytes). - instrument: updowncounter - unit: "By" - stability: experimental - attributes: - - ref: dotnet.gc.heap.generation - requirement_level: required - - - id: metric.dotnet.gc.last_collection.heap.fragmentation.size - type: metric - metric_name: dotnet.gc.last_collection.heap.fragmentation.size - brief: > - The heap fragmentation, as observed during the latest garbage collection. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`GC.GetGCMemoryInfo().GenerationInfo.FragmentationAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.fragmentationafterbytes). - instrument: updowncounter - unit: "By" - stability: experimental - attributes: - - ref: dotnet.gc.heap.generation - requirement_level: required - - - id: metric.dotnet.gc.pause.time - type: metric - metric_name: dotnet.gc.pause.time - brief: "The total amount of time paused in GC since the process has started." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling [`GC.GetTotalPauseDuration()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalpauseduration). - instrument: counter - unit: "s" - stability: experimental - - - id: metric.dotnet.jit.compiled_il.size - type: metric - metric_name: dotnet.jit.compiled_il.size - brief: "Count of bytes of intermediate language that have been compiled since the process has started." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`JitInfo.GetCompiledILBytes()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledilbytes). - instrument: counter - unit: "By" - stability: experimental - - - id: metric.dotnet.jit.compiled_methods - type: metric - metric_name: dotnet.jit.compiled_methods - brief: > - The number of times the JIT compiler (re)compiled methods since the - process has started. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`JitInfo.GetCompiledMethodCount()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledmethodcount). - instrument: counter - unit: "{method}" - stability: experimental - - - id: metric.dotnet.jit.compilation.time - type: metric - metric_name: dotnet.jit.compilation.time - brief: > - The amount of time the JIT compiler has spent compiling methods since the - process has started. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`JitInfo.GetCompilationTime()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompilationtime). - instrument: counter - unit: "s" - stability: experimental - - - id: metric.dotnet.monitor.lock_contentions - type: metric - metric_name: dotnet.monitor.lock_contentions - brief: > - The number of times there was contention when trying to acquire a monitor - lock since the process has started. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`Monitor.LockContentionCount`](https://learn.microsoft.com/dotnet/api/system.threading.monitor.lockcontentioncount). - instrument: counter - unit: "{contention}" - stability: experimental - - - id: metric.dotnet.thread_pool.thread.count - type: metric - metric_name: dotnet.thread_pool.thread.count - brief: "The number of thread pool threads that currently exist." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling [`ThreadPool.ThreadCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.threadcount). - instrument: updowncounter - unit: "{thread}" - stability: experimental - - - id: metric.dotnet.thread_pool.work_item.count - type: metric - metric_name: dotnet.thread_pool.work_item.count - brief: > - The number of work items that the thread pool has completed since - the process has started. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`ThreadPool.CompletedWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.completedworkitemcount). - instrument: counter - unit: "{work_item}" - stability: experimental - - - id: metric.dotnet.thread_pool.queue.length - type: metric - metric_name: dotnet.thread_pool.queue.length - brief: > - The number of work items that are currently queued to be processed by the - thread pool. - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`ThreadPool.PendingWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.pendingworkitemcount). - instrument: updowncounter - unit: "{work_item}" - stability: experimental - - - id: metric.dotnet.timer.count - type: metric - metric_name: dotnet.timer.count - brief: "The number of timer instances that are currently active." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling [`Timer.ActiveCount`](https://learn.microsoft.com/dotnet/api/system.threading.timer.activecount). - instrument: updowncounter - unit: "{timer}" - stability: experimental - - - id: metric.dotnet.assembly.count - type: metric - metric_name: dotnet.assembly.count - brief: "The number of .NET assemblies that are currently loaded." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as calling - [`AppDomain.CurrentDomain.GetAssemblies().Length`](https://learn.microsoft.com/dotnet/api/system.appdomain.getassemblies). - instrument: updowncounter - unit: "{assembly}" - stability: experimental - - - id: metric.dotnet.exceptions - type: metric - metric_name: dotnet.exceptions - brief: "The number of exceptions that have been thrown in managed code." - note: > - Meter name: `System.Runtime`; Added in: .NET 9.0. - - This metric reports the same values as counting calls to - [`AppDomain.CurrentDomain.FirstChanceException`](https://learn.microsoft.com/dotnet/api/system.appdomain.firstchanceexception). - instrument: counter - unit: "{exception}" - stability: experimental - attributes: - - ref: error.type - note: "" - examples: ['System.OperationCanceledException', 'Contoso.MyException'] - requirement_level: required diff --git a/model/enduser/deprecated/enduser-common.yaml b/model/enduser/deprecated/enduser-common.yaml deleted file mode 100644 index e17dde1bec..0000000000 --- a/model/enduser/deprecated/enduser-common.yaml +++ /dev/null @@ -1,12 +0,0 @@ -groups: - - id: identity - type: attribute_group - brief: > - These attributes may be used for any operation with an authenticated and/or authorized enduser. - attributes: - - ref: enduser.id - requirement_level: recommended - - ref: enduser.role - requirement_level: recommended - - ref: enduser.scope - requirement_level: recommended diff --git a/model/enduser/deprecated/enduser-registry-deprecated.yaml b/model/enduser/deprecated/enduser-registry-deprecated.yaml deleted file mode 100644 index 0f5723e19a..0000000000 --- a/model/enduser/deprecated/enduser-registry-deprecated.yaml +++ /dev/null @@ -1,24 +0,0 @@ -groups: - - id: registry.enduser.deprecated - type: attribute_group - display_name: Deprecated End User Attributes - brief: Describes deprecated enduser attributes. Complete enduser namespace has been deprecated - attributes: - - id: enduser.id - type: string - stability: experimental - deprecated: Replaced by `user.id` attribute. - brief: "Deprecated, use `user.id` instead." - examples: 'username' - - id: enduser.role - type: string - stability: experimental - deprecated: Replaced by `user.roles` attribute. - brief: "Deprecated, use `user.roles` instead." - examples: 'admin' - - id: enduser.scope - type: string - stability: experimental - deprecated: Removed. - brief: "Deprecated, no replacement at this time." - examples: 'read:message, write:files' diff --git a/model/error/error-registry.yaml b/model/error/error-registry.yaml deleted file mode 100644 index 35f8b57222..0000000000 --- a/model/error/error-registry.yaml +++ /dev/null @@ -1,39 +0,0 @@ -groups: - - id: registry.error - type: attribute_group - display_name: Error Attributes - brief: > - This document defines the shared attributes used to report an error. - attributes: - - id: error.type - stability: stable - brief: > - Describes a class of error the operation ended with. - type: - members: - - id: other - value: "_OTHER" - stability: stable - brief: > - A fallback error value to be used when the instrumentation doesn't define a custom value. - examples: ['timeout', 'java.net.UnknownHostException', 'server_certificate_invalid', '500'] - note: | - The `error.type` SHOULD be predictable, and SHOULD have low cardinality. - - When `error.type` is set to a type (e.g., an exception type), its - canonical class name identifying the type within the artifact SHOULD be used. - - Instrumentations SHOULD document the list of errors they report. - - The cardinality of `error.type` within one instrumentation library SHOULD be low. - Telemetry consumers that aggregate data from multiple instrumentation libraries and applications - should be prepared for `error.type` to have high cardinality at query time when no - additional filters are applied. - - If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`. - - If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes), - it's RECOMMENDED to: - - * Use a domain-specific attribute - * Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not. diff --git a/model/event/event-common.yaml b/model/event/event-common.yaml deleted file mode 100644 index b07e25a8df..0000000000 --- a/model/event/event-common.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: event - type: attribute_group - brief: > - This document defines attributes for Events represented using Log Records. - attributes: - - ref: event.name - requirement_level: required diff --git a/model/event/event-registry.yaml b/model/event/event-registry.yaml deleted file mode 100644 index c8c540e052..0000000000 --- a/model/event/event-registry.yaml +++ /dev/null @@ -1,18 +0,0 @@ -groups: - - id: registry.event - type: attribute_group - display_name: Event Attributes - brief: > - Attributes for Events represented using Log Records. - attributes: - - id: event.name - type: string - stability: experimental - brief: > - Identifies the class / type of event. - note: > - 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"] diff --git a/model/exceptions/exception-events.yaml b/model/exceptions/exception-events.yaml deleted file mode 100644 index 4078f07155..0000000000 --- a/model/exceptions/exception-events.yaml +++ /dev/null @@ -1,16 +0,0 @@ -groups: - - id: trace-exception - name: exception - type: event - brief: > - This document defines the attributes used to - report a single exception associated with a span. - attributes: - - ref: exception.type - requirement_level: - conditionally_required: Required if `exception.message` is not set, recommended otherwise. - - ref: exception.message - requirement_level: - conditionally_required: Required if `exception.type` is not set, recommended otherwise. - - ref: exception.stacktrace - - ref: exception.escaped diff --git a/model/exceptions/exception-logs.yaml b/model/exceptions/exception-logs.yaml deleted file mode 100644 index c8b664c0bf..0000000000 --- a/model/exceptions/exception-logs.yaml +++ /dev/null @@ -1,14 +0,0 @@ -groups: - - id: log-exception - type: attribute_group - brief: > - This document defines attributes for exceptions represented using Log - Records. - attributes: - - ref: exception.type - requirement_level: - conditionally_required: Required if `exception.message` is not set, recommended otherwise. - - ref: exception.message - requirement_level: - conditionally_required: Required if `exception.type` is not set, recommended otherwise. - - ref: exception.stacktrace diff --git a/model/exceptions/exception-registry.yaml b/model/exceptions/exception-registry.yaml deleted file mode 100644 index 1ebc90d854..0000000000 --- a/model/exceptions/exception-registry.yaml +++ /dev/null @@ -1,56 +0,0 @@ -groups: - - id: registry.exception - type: attribute_group - display_name: Exception Attributes - brief: > - This document defines the shared attributes used to - report a single exception associated with a span or log. - attributes: - - id: exception.type - type: string - stability: stable - brief: > - The type of the exception (its fully-qualified class name, if applicable). - The dynamic type of the exception should be preferred over the static type - in languages that support it. - examples: ["java.net.ConnectException", "OSError"] - - id: exception.message - type: string - stability: stable - brief: The exception message. - examples: - ["Division by zero", "Can't convert 'int' object to str implicitly"] - - id: exception.stacktrace - type: string - stability: stable - brief: > - A stacktrace as a string in the natural representation for the language runtime. - The representation is to be determined and documented by each language SIG. - examples: > - Exception in thread "main" java.lang.RuntimeException: Test exception\n - at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n - at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n - at com.example.GenerateTrace.main(GenerateTrace.java:5) - - id: exception.escaped - type: boolean - stability: stable - brief: > - 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. - note: |- - 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. diff --git a/model/faas/faas-common.yaml b/model/faas/faas-common.yaml deleted file mode 100644 index 94e60f2b96..0000000000 --- a/model/faas/faas-common.yaml +++ /dev/null @@ -1,20 +0,0 @@ -groups: - - id: attributes.faas.common - type: attribute_group - brief: "Describes FaaS attributes." - attributes: - - ref: faas.trigger - - ref: faas.invoked_name - requirement_level: required - - ref: faas.invoked_provider - requirement_level: required - - ref: faas.invoked_region - requirement_level: - conditionally_required: > - For some cloud providers, like AWS or GCP, the region in which a - function is hosted is essential to uniquely identify the function - and also part of its endpoint. Since it's part of the endpoint - being called, the region is always known to clients. In these cases, - `faas.invoked_region` MUST be set accordingly. If the region is - unknown to the client or not required for identifying the invoked - function, setting `faas.invoked_region` is optional. diff --git a/model/faas/faas-metrics.yaml b/model/faas/faas-metrics.yaml deleted file mode 100644 index 238e49df77..0000000000 --- a/model/faas/faas-metrics.yaml +++ /dev/null @@ -1,90 +0,0 @@ -groups: - - id: metric.faas.invoke_duration - type: metric - metric_name: faas.invoke_duration - stability: experimental - brief: "Measures the duration of the function's logic execution" - instrument: histogram - unit: "s" - attributes: - - ref: faas.trigger - - - id: metric.faas.init_duration - type: metric - metric_name: faas.init_duration - stability: experimental - brief: "Measures the duration of the function's initialization, such as a cold start" - instrument: histogram - unit: "s" - attributes: - - ref: faas.trigger - - - id: metric.faas.coldstarts - type: metric - metric_name: faas.coldstarts - stability: experimental - brief: "Number of invocation cold starts" - instrument: counter - unit: "{coldstart}" - attributes: - - ref: faas.trigger - - - id: metric.faas.errors - type: metric - metric_name: faas.errors - stability: experimental - brief: "Number of invocation errors" - instrument: counter - unit: "{error}" - attributes: - - ref: faas.trigger - - - id: metric.faas.invocations - type: metric - metric_name: faas.invocations - stability: experimental - brief: "Number of successful invocations" - instrument: counter - unit: "{invocation}" - attributes: - - ref: faas.trigger - - - id: metric.faas.timeouts - type: metric - metric_name: faas.timeouts - stability: experimental - brief: "Number of invocation timeouts" - instrument: counter - unit: "{timeout}" - attributes: - - ref: faas.trigger - - - id: metric.faas.mem_usage - type: metric - metric_name: faas.mem_usage - stability: experimental - brief: "Distribution of max memory usage per invocation" - instrument: histogram - unit: "By" - attributes: - - ref: faas.trigger - - - id: metric.faas.cpu_usage - type: metric - metric_name: faas.cpu_usage - stability: experimental - brief: "Distribution of CPU usage per invocation" - instrument: histogram - unit: "s" - attributes: - - ref: faas.trigger - - - id: metric.faas.net_io - type: metric - metric_name: faas.net_io - stability: experimental - brief: "Distribution of net I/O usage per invocation" - instrument: histogram - unit: "By" - attributes: - - ref: faas.trigger diff --git a/model/faas/faas-registry.yaml b/model/faas/faas-registry.yaml deleted file mode 100644 index 4d3e4d0eb1..0000000000 --- a/model/faas/faas-registry.yaml +++ /dev/null @@ -1,205 +0,0 @@ -groups: - - id: registry.faas - brief: FaaS attributes - type: attribute_group - display_name: Function as a Service Attributes - attributes: - - id: faas.name - type: string - stability: experimental - brief: > - The name of the single function that this runtime instance executes. - note: | - 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) - span attributes). - - For some cloud providers, the above definition is ambiguous. The following - definition of function name MUST be used for this attribute - (and consequently the span name) for the listed cloud providers/products: - - * **Azure:** The full name `/`, i.e., function app name - followed by a forward slash followed by the function name (this form - can also be seen in the resource JSON for the function). - This means that a span attribute MUST be used, as an Azure function - app can host multiple functions that would usually share - a TracerProvider (see also the `cloud.resource_id` attribute). - examples: ['my-function', 'myazurefunctionapp/some-function-name'] - - id: faas.version - type: string - stability: experimental - brief: The immutable version of the function being executed. - note: | - Depending on the cloud provider and platform, use: - - * **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) - (an integer represented as a decimal string). - * **Google Cloud Run (Services):** The [revision](https://cloud.google.com/run/docs/managing/revisions) - (i.e., the function name plus the revision suffix). - * **Google Cloud Functions:** The value of the - [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). - * **Azure Functions:** Not applicable. Do not set this attribute. - examples: ['26', 'pinkfroid-00002'] - - id: faas.instance - type: string - stability: experimental - brief: > - The execution environment ID as a string, that will be potentially reused - for other invocations to the same function/function version. - note: > - * **AWS Lambda:** Use the (full) log stream name. - examples: ['2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de'] - - id: faas.max_memory - type: int - stability: experimental - brief: > - The amount of memory available to the serverless function converted to Bytes. - note: > - It's recommended to set this attribute since e.g. too little memory can easily - stop a Java AWS Lambda function from working correctly. - On AWS Lambda, the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` - provides this information (which must be multiplied by 1,048,576). - examples: 134217728 - - id: faas.trigger - stability: experimental - brief: > - Type of the trigger which caused this function invocation. - type: - members: - - id: datasource - value: 'datasource' - brief: 'A response to some data source operation such as a database or filesystem read/write' - stability: experimental - - id: http - value: 'http' - brief: 'To provide an answer to an inbound HTTP request' - stability: experimental - - id: pubsub - value: 'pubsub' - brief: 'A function is set to be executed when messages are sent to a messaging system' - stability: experimental - - id: timer - value: 'timer' - brief: 'A function is scheduled to be executed regularly' - stability: experimental - - id: other - value: 'other' - brief: 'If none of the others apply' - stability: experimental - - id: faas.invoked_name - type: string - stability: experimental - brief: > - The name of the invoked function. - note: > - SHOULD be equal to the `faas.name` resource attribute of the - invoked function. - examples: 'my-function' - - id: faas.invoked_provider - stability: experimental - type: - members: - - id: 'alibaba_cloud' - value: 'alibaba_cloud' - brief: 'Alibaba Cloud' - stability: experimental - - id: 'aws' - value: 'aws' - brief: 'Amazon Web Services' - stability: experimental - - id: 'azure' - value: 'azure' - brief: 'Microsoft Azure' - stability: experimental - - id: 'gcp' - value: 'gcp' - brief: 'Google Cloud Platform' - stability: experimental - - id: 'tencent_cloud' - value: 'tencent_cloud' - brief: 'Tencent Cloud' - stability: experimental - brief: > - The cloud provider of the invoked function. - note: > - SHOULD be equal to the `cloud.provider` resource attribute of the - invoked function. - - id: faas.invoked_region - type: string - stability: experimental - brief: > - The cloud region of the invoked function. - note: > - SHOULD be equal to the `cloud.region` resource attribute of the - invoked function. - examples: 'eu-central-1' - - id: faas.invocation_id - type: string - stability: experimental - brief: > - The invocation ID of the current function invocation. - examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28' - - id: faas.time - type: string - stability: experimental - brief: > - A string containing the function invocation time in the - [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) - format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime). - examples: "2020-01-23T13:47:06Z" - - id: faas.cron - type: string - stability: experimental - brief: > - A string containing the schedule period as - [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm). - examples: "0/5 * * * ? *" - - id: faas.coldstart - type: boolean - stability: experimental - brief: > - A boolean that is true if the serverless function is executed for the - first time (aka cold-start). - - id: faas.document.collection - type: string - stability: experimental - brief: > - The name of the source on which the triggering operation was performed. - For example, in Cloud Storage or S3 corresponds to the bucket name, - and in Cosmos DB to the database name. - examples: ['myBucketName', 'myDbName'] - - id: faas.document.operation - stability: experimental - type: - members: - - id: insert - value: 'insert' - brief: 'When a new object is created.' - stability: experimental - - id: edit - value: 'edit' - brief: 'When an object is modified.' - stability: experimental - - id: delete - value: 'delete' - brief: 'When an object is deleted.' - stability: experimental - brief: 'Describes the type of the operation that was performed on the data.' - - id: faas.document.time - type: string - stability: experimental - brief: > - A string containing the time when the data was accessed in the - [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) - format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime). - examples: "2020-01-23T13:47:06Z" - - id: faas.document.name - type: string - stability: experimental - brief: > - The document name/table subjected to the operation. - For example, in Cloud Storage or S3 is the name of - the file, and in Cosmos DB the table name. - examples: ["myFile.txt", "myTableName"] diff --git a/model/faas/faas-resources.yaml b/model/faas/faas-resources.yaml deleted file mode 100644 index 5f9325ebb1..0000000000 --- a/model/faas/faas-resources.yaml +++ /dev/null @@ -1,13 +0,0 @@ -groups: - - id: faas_resource - type: resource - name: faas - brief: > - A serverless instance. - attributes: - - ref: faas.name - requirement_level: required - - ref: faas.version - - ref: faas.instance - - ref: faas.max_memory - - ref: cloud.resource_id diff --git a/model/faas/faas-spans.yaml b/model/faas/faas-spans.yaml deleted file mode 100644 index 2531347bff..0000000000 --- a/model/faas/faas-spans.yaml +++ /dev/null @@ -1,83 +0,0 @@ -groups: - - id: faas_span - type: span - brief: > - This semantic convention describes an instance of a function that - runs without provisioning or managing of servers (also known as - serverless functions or Function as a Service (FaaS)) with spans. - attributes: - - ref: faas.trigger - note: | - For the server/consumer span on the incoming side, - `faas.trigger` MUST be set. - - Clients invoking FaaS instances usually cannot set `faas.trigger`, - since they would typically need to look in the payload to determine - the event type. If clients set it, it should be the same as the - trigger that corresponding incoming would have (i.e., this has - nothing to do with the underlying transport used to make the API - call to invoke the lambda, which is often HTTP). - - ref: faas.invocation_id - - ref: cloud.resource_id - - - id: faas_span.datasource - type: span - brief: > - Semantic Convention for FaaS triggered as a response to some data - source operation such as a database or filesystem read/write. - attributes: - - ref: faas.document.collection - requirement_level: required - - ref: faas.document.operation - requirement_level: required - - ref: faas.document.time - - ref: faas.document.name - - - id: faas_span.timer - type: span - brief: > - Semantic Convention for FaaS scheduled to be executed regularly. - attributes: - - ref: faas.time - - ref: faas.cron - - - id: faas_span.in - span_kind: server - type: span - brief: > - Contains additional attributes for incoming FaaS spans. - attributes: - - ref: faas.coldstart - - ref: faas.trigger - requirement_level: required - note: | - For the server/consumer span on the incoming side, - `faas.trigger` MUST be set. - - Clients invoking FaaS instances usually cannot set `faas.trigger`, - since they would typically need to look in the payload to determine - the event type. If clients set it, it should be the same as the - trigger that corresponding incoming would have (i.e., this has - nothing to do with the underlying transport used to make the API - call to invoke the lambda, which is often HTTP). - - - id: faas_span.out - span_kind: client - type: span - brief: > - Contains additional attributes for outgoing FaaS spans. - attributes: - - ref: faas.invoked_name - requirement_level: required - - ref: faas.invoked_provider - requirement_level: required - - ref: faas.invoked_region - requirement_level: - conditionally_required: > - For some cloud providers, like AWS or GCP, the region in which a - function is hosted is essential to uniquely identify the function - and also part of its endpoint. Since it's part of the endpoint - being called, the region is always known to clients. In these cases, - `faas.invoked_region` MUST be set accordingly. If the region is - unknown to the client or not required for identifying the invoked - function, setting `faas.invoked_region` is optional. diff --git a/model/feature-flag/feature-flag-events.yaml b/model/feature-flag/feature-flag-events.yaml deleted file mode 100644 index 8aae493385..0000000000 --- a/model/feature-flag/feature-flag-events.yaml +++ /dev/null @@ -1,14 +0,0 @@ -groups: - - id: feature_flag - type: event - name: feature_flag - brief: > - This semantic convention defines the attributes used to represent a - feature flag evaluation as an event. - attributes: - - ref: feature_flag.key - requirement_level: required - - ref: feature_flag.provider_name - requirement_level: recommended - - ref: feature_flag.variant - requirement_level: recommended diff --git a/model/feature-flag/feature-flag-logs.yaml b/model/feature-flag/feature-flag-logs.yaml deleted file mode 100644 index 4530096de7..0000000000 --- a/model/feature-flag/feature-flag-logs.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: log-feature_flag - type: event - name: feature_flag - brief: > - This document defines attributes for feature flag evaluations - represented using Log Records. - attributes: - - ref: feature_flag.key - - ref: feature_flag.provider_name - - ref: feature_flag.variant diff --git a/model/feature-flag/feature-flag-registry.yaml b/model/feature-flag/feature-flag-registry.yaml deleted file mode 100644 index 1533d685ec..0000000000 --- a/model/feature-flag/feature-flag-registry.yaml +++ /dev/null @@ -1,33 +0,0 @@ -groups: - - id: registry.feature_flag - type: attribute_group - display_name: Feature Flag Attributes - brief: > - This document defines attributes for Feature Flags. - attributes: - - id: feature_flag.key - type: string - stability: experimental - brief: The unique identifier of the feature flag. - examples: ["logo-color"] - - id: feature_flag.provider_name - type: string - stability: experimental - brief: The name of the service provider that performs the flag evaluation. - examples: ["Flag Manager"] - - id: feature_flag.variant - type: string - stability: experimental - examples: ["red", "true", "on"] - brief: > - SHOULD be a semantic identifier for a value. If one is unavailable, a - stringified version of the value can be used. - note: |- - A semantic identifier, commonly referred to as a variant, provides a means - for referring to a value without including the value itself. This can - provide additional context for understanding the meaning behind a value. - For example, the variant `red` maybe be used for the value `#c05543`. - - A stringified version of the value can be used in situations where a - semantic identifier is unavailable. String representation of the value - should be determined by the implementer. diff --git a/model/file/file-registry.yaml b/model/file/file-registry.yaml deleted file mode 100644 index 742f95afee..0000000000 --- a/model/file/file-registry.yaml +++ /dev/null @@ -1,38 +0,0 @@ -groups: - - id: registry.file - type: attribute_group - display_name: File Attributes - brief: "Describes file attributes." - attributes: - - id: file.directory - type: string - brief: > - Directory where the file is located. It should include the drive letter, when appropriate. - stability: experimental - examples: ['/home/user', 'C:\Program Files\MyApp'] - - id: file.extension - type: string - brief: > - File extension, excluding the leading dot. - stability: experimental - examples: ['png', 'gz'] - note: > - When the file name has multiple extensions (example.tar.gz), only the last one should - be captured ("gz", not "tar.gz"). - - id: file.name - type: string - brief: > - Name of the file including the extension, without the directory. - stability: experimental - examples: ['example.png'] - - id: file.path - type: string - brief: > - Full path to the file, including the file name. It should include the drive letter, when appropriate. - stability: experimental - examples: ['/home/alice/example.png', 'C:\Program Files\MyApp\myapp.exe'] - - id: file.size - type: int - brief: > - File size in bytes. - stability: experimental diff --git a/model/gcp/gcp-client-common.yml b/model/gcp/gcp-client-common.yml deleted file mode 100644 index b89c2ba844..0000000000 --- a/model/gcp/gcp-client-common.yml +++ /dev/null @@ -1,11 +0,0 @@ -groups: -- id: gcp.client.attributes - type: attribute_group - brief: Conventions for official Google Cloud client libraries. - stability: experimental - attributes: - - ref: gcp.client.service - requirement_level: - conditionally_required: - Required if and only if the instrumentation library is an official, - Google-provided GCP and/or Firebase client library. diff --git a/model/gcp/gcp-cloud-run-resources.yaml b/model/gcp/gcp-cloud-run-resources.yaml deleted file mode 100644 index 0fe12bf28d..0000000000 --- a/model/gcp/gcp-cloud-run-resources.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: gcp.cloud_run - type: resource - name: gcp.cloud_run - brief: > - Resource used by Google Cloud Run. - attributes: - - ref: gcp.cloud_run.job.execution - requirement_level: recommended - - ref: gcp.cloud_run.job.task_index - requirement_level: recommended diff --git a/model/gcp/gcp-gce-resources.yaml b/model/gcp/gcp-gce-resources.yaml deleted file mode 100644 index 05cb24e21c..0000000000 --- a/model/gcp/gcp-gce-resources.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: gcp.gce - type: resource - name: gcp.gce - brief: > - Resources used by Google Compute Engine (GCE). - attributes: - - ref: gcp.gce.instance.name - requirement_level: recommended - - ref: gcp.gce.instance.hostname - requirement_level: recommended diff --git a/model/gcp/gcp-registry.yaml b/model/gcp/gcp-registry.yaml deleted file mode 100644 index df2dcbbd36..0000000000 --- a/model/gcp/gcp-registry.yaml +++ /dev/null @@ -1,64 +0,0 @@ -groups: - - id: registry.gcp.client - type: attribute_group - display_name: GCP Client Attributes - brief: > - Attributes for Google Cloud client libraries. - attributes: - - id: gcp.client.service - type: string - stability: experimental - brief: Identifies the Google Cloud service for which the official client library is intended. - note: > - Intended to be a stable identifier for Google Cloud client libraries - that is uniform across implementation languages. The value should be - derived from the canonical service domain for the service; for - example, 'foo.googleapis.com' should result in a value of 'foo'. - examples: ['appengine', 'run', 'firestore', 'alloydb', 'spanner'] - - id: registry.gcp.cloud_run - type: attribute_group - display_name: GCP - Google Cloud Run Attributes - brief: > - This document defines attributes for Google Cloud Run. - attributes: - - id: gcp.cloud_run.job.execution - type: string - stability: experimental - brief: > - The name of the Cloud Run - [execution](https://cloud.google.com/run/docs/managing/job-executions) - being run for the Job, as set by the - [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) - environment variable. - examples: ['job-name-xxxx', 'sample-job-mdw84'] - - id: gcp.cloud_run.job.task_index - type: int - stability: experimental - brief: > - The index for a task within an execution as provided by the - [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) - environment variable. - examples: [0, 1] - - id: registry.gcp.gce - type: attribute_group - display_name: GCP - Google Compute Engine (GCE) Attributes - brief: > - This document defines attributes for Google Compute Engine (GCE). - attributes: - - id: gcp.gce.instance.name - type: string - stability: experimental - brief: > - The instance name of a GCE instance. This is the value - provided by `host.name`, the visible name of the instance in - the Cloud Console UI, and the prefix for the default - hostname of the instance as defined by the [default internal - DNS - name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names). - examples: ['instance-1', 'my-vm-name'] - - id: gcp.gce.instance.hostname - type: string - stability: experimental - brief: > - The hostname of a GCE instance. This is the full value of the default or [custom hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm). - examples: ['my-host1234.example.com', 'sample-vm.us-west1-b.c.my-project.internal'] diff --git a/model/gen-ai/deprecated/gen-ai-registry-deprecated.yaml b/model/gen-ai/deprecated/gen-ai-registry-deprecated.yaml deleted file mode 100644 index 04a2968a74..0000000000 --- a/model/gen-ai/deprecated/gen-ai-registry-deprecated.yaml +++ /dev/null @@ -1,18 +0,0 @@ -groups: - - id: registry.gen_ai.deprecated - type: attribute_group - brief: Describes deprecated `gen_ai` attributes. - display_name: Deprecated GenAI Attributes - attributes: - - id: gen_ai.usage.prompt_tokens - type: int - stability: experimental - deprecated: Replaced by `gen_ai.usage.input_tokens` attribute. - brief: "Deprecated, use `gen_ai.usage.input_tokens` instead." - examples: [42] - - id: gen_ai.usage.completion_tokens - type: int - stability: experimental - deprecated: Replaced by `gen_ai.usage.output_tokens` attribute. - brief: "Deprecated, use `gen_ai.usage.output_tokens` instead." - examples: [42] diff --git a/model/gen-ai/gen-ai-metrics.yaml b/model/gen-ai/gen-ai-metrics.yaml deleted file mode 100644 index 2c7035876c..0000000000 --- a/model/gen-ai/gen-ai-metrics.yaml +++ /dev/null @@ -1,83 +0,0 @@ -groups: - - id: metric_attributes.gen_ai - type: attribute_group - brief: 'This group describes GenAI metrics attributes' - attributes: - - ref: server.address - brief: GenAI server address. - requirement_level: recommended - - ref: server.port - brief: GenAI server port. - requirement_level: - conditionally_required: If `server.address` is set. - - ref: gen_ai.response.model - requirement_level: recommended - - ref: gen_ai.request.model - requirement_level: required - - ref: gen_ai.system - requirement_level: required - - ref: gen_ai.operation.name - requirement_level: required - - id: metric_attributes.gen_ai.server - type: attribute_group - brief: 'This group describes GenAI server metrics attributes' - extends: metric_attributes.gen_ai - attributes: - - ref: error.type - requirement_level: - conditionally_required: "if the operation ended in an error" - note: | - The `error.type` SHOULD match the error code returned by the Generative AI service, - the canonical name of exception that occurred, or another low-cardinality error identifier. - Instrumentations SHOULD document the list of errors they report. - - id: metric.gen_ai.client.token.usage - type: metric - metric_name: gen_ai.client.token.usage - brief: 'Measures number of input and output tokens used' - instrument: histogram - unit: "{token}" - stability: experimental - extends: metric_attributes.gen_ai - attributes: - - ref: gen_ai.token.type - requirement_level: required - - id: metric.gen_ai.client.operation.duration - type: metric - metric_name: gen_ai.client.operation.duration - brief: 'GenAI operation duration' - instrument: histogram - unit: "s" - stability: experimental - extends: metric_attributes.gen_ai - attributes: - - ref: error.type - requirement_level: - conditionally_required: "if the operation ended in an error" - note: | - The `error.type` SHOULD match the error code returned by the Generative AI provider or the client library, - the canonical name of exception that occurred, or another low-cardinality error identifier. - Instrumentations SHOULD document the list of errors they report. - - id: metric.gen_ai.server.request.duration - type: metric - metric_name: gen_ai.server.request.duration - brief: 'Generative AI server request duration such as time-to-last byte or last output token' - instrument: histogram - unit: "s" - stability: experimental - extends: metric_attributes.gen_ai.server - - id: metric.gen_ai.server.time_per_output_token - type: metric - metric_name: gen_ai.server.time_per_output_token - brief: 'Time per output token generated after the first token for successful responses' - instrument: histogram - unit: "s" - stability: experimental - extends: metric_attributes.gen_ai - - id: metric.gen_ai.server.time_to_first_token - type: metric - metric_name: gen_ai.server.time_to_first_token - brief: 'Time to generate first token for successful responses' - instrument: histogram - unit: "s" - stability: experimental - extends: metric_attributes.gen_ai diff --git a/model/gen-ai/gen-ai-registry.yaml b/model/gen-ai/gen-ai-registry.yaml deleted file mode 100644 index 1470ca1cb3..0000000000 --- a/model/gen-ai/gen-ai-registry.yaml +++ /dev/null @@ -1,150 +0,0 @@ -groups: - - id: registry.gen_ai - type: attribute_group - display_name: GenAI Attributes - brief: > - This document defines the attributes used to describe telemetry in the context of Generative Artificial Intelligence (GenAI) Models requests and responses. - attributes: - - id: gen_ai.system - stability: experimental - type: - members: - - id: openai - stability: experimental - value: "openai" - brief: 'OpenAI' - - id: vertex_ai - stability: experimental - value: "vertex_ai" - brief: 'Vertex AI' - - id: anthropic - stability: experimental - value: "anthropic" - brief: 'Anthropic' - - id: cohere - stability: experimental - value: "cohere" - brief: 'Cohere' - brief: The Generative AI product as identified by the client or server instrumentation. - note: | - The `gen_ai.system` describes a family of GenAI models with specific model identified - 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. - - 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`. - examples: 'openai' - - id: gen_ai.request.model - stability: experimental - type: string - brief: The name of the GenAI model a request is being made to. - examples: 'gpt-4' - - id: gen_ai.request.max_tokens - stability: experimental - type: int - brief: The maximum number of tokens the model generates for a request. - examples: [100] - - id: gen_ai.request.temperature - stability: experimental - type: double - brief: The temperature setting for the GenAI request. - examples: [0.0] - - id: gen_ai.request.top_p - stability: experimental - type: double - brief: The top_p sampling setting for the GenAI request. - examples: [1.0] - - id: gen_ai.request.top_k - stability: experimental - type: double - brief: The top_k sampling setting for the GenAI request. - examples: [1.0] - - id: gen_ai.request.stop_sequences - stability: experimental - type: string[] - brief: List of sequences that the model will use to stop generating further tokens. - examples: - - [forest, lived] - - id: gen_ai.request.frequency_penalty - stability: experimental - type: double - brief: The frequency penalty setting for the GenAI request. - examples: [0.1] - - id: gen_ai.request.presence_penalty - stability: experimental - type: double - brief: The presence penalty setting for the GenAI request. - examples: [0.1] - - id: gen_ai.response.id - stability: experimental - type: string - brief: The unique identifier for the completion. - examples: ['chatcmpl-123'] - - id: gen_ai.response.model - stability: experimental - type: string - brief: The name of the model that generated the response. - examples: ['gpt-4-0613'] - - id: gen_ai.response.finish_reasons - stability: experimental - type: string[] - brief: Array of reasons the model stopped generating tokens, corresponding to each generation received. - examples: - - [stop] - - [stop, length] - - id: gen_ai.usage.input_tokens - stability: experimental - type: int - brief: The number of tokens used in the GenAI input (prompt). - examples: [100] - - id: gen_ai.usage.output_tokens - stability: experimental - type: int - brief: The number of tokens used in the GenAI response (completion). - examples: [180] - - id: gen_ai.token.type - stability: experimental - type: - members: - - id: input - stability: experimental - value: "input" - brief: 'Input tokens (prompt, input, etc.)' - - id: completion - stability: experimental - value: "output" - brief: 'Output tokens (completion, response, etc.)' - brief: The type of token being counted. - examples: ['input', 'output'] - - id: gen_ai.prompt - stability: experimental - type: string - brief: The full prompt sent to the GenAI model. - note: It's RECOMMENDED to format prompts as JSON string matching [OpenAI messages format](https://platform.openai.com/docs/guides/text-generation) - examples: ["[{'role': 'user', 'content': 'What is the capital of France?'}]"] - - id: gen_ai.completion - stability: experimental - type: string - brief: The full response received from the GenAI model. - note: It's RECOMMENDED to format completions as JSON string matching [OpenAI messages format](https://platform.openai.com/docs/guides/text-generation) - examples: ["[{'role': 'assistant', 'content': 'The capital of France is Paris.'}]"] - - id: gen_ai.operation.name - stability: experimental - type: - members: - - id: chat - value: "chat" - brief: 'Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat)' - stability: experimental - - id: text_completion - value: "text_completion" - brief: 'Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions)' - stability: experimental - brief: The name of the operation being performed. - note: > - If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic - conventions for specific GenAI system and use system-specific name in the instrumentation. - If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value. diff --git a/model/gen-ai/gen-ai-spans.yaml b/model/gen-ai/gen-ai-spans.yaml deleted file mode 100644 index 9345f4f249..0000000000 --- a/model/gen-ai/gen-ai-spans.yaml +++ /dev/null @@ -1,87 +0,0 @@ -groups: - - id: trace.gen_ai.client - type: span - brief: > - Describes GenAI operation span. - attributes: - - ref: gen_ai.system - requirement_level: required - - ref: gen_ai.request.model - requirement_level: required - note: > - The name of the GenAI model a request is being made to. If the model is supplied by a vendor, - then the value must be the exact name of the model requested. If the model is a fine-tuned - custom model, the value should have a more specific name than the base model that's been fine-tuned. - - ref: gen_ai.operation.name - requirement_level: required - - ref: gen_ai.request.max_tokens - requirement_level: recommended - - ref: gen_ai.request.temperature - requirement_level: recommended - - ref: gen_ai.request.top_p - requirement_level: recommended - - ref: gen_ai.request.top_k - requirement_level: recommended - - ref: gen_ai.request.stop_sequences - requirement_level: recommended - - ref: gen_ai.request.frequency_penalty - requirement_level: recommended - - ref: gen_ai.request.presence_penalty - requirement_level: recommended - - ref: gen_ai.response.id - requirement_level: recommended - - ref: gen_ai.response.model - requirement_level: recommended - note: > - If available. The name of the GenAI model that provided the response. If the model is supplied by a vendor, - then the value must be the exact name of the model actually used. If the model is a - fine-tuned custom model, the value should have a more specific name than the base model that's been fine-tuned. - - ref: gen_ai.response.finish_reasons - requirement_level: recommended - - ref: gen_ai.usage.input_tokens - requirement_level: recommended - - ref: gen_ai.usage.output_tokens - requirement_level: recommended - - ref: server.address - brief: GenAI server address. - requirement_level: recommended - - ref: server.port - brief: GenAI server port. - requirement_level: - conditionally_required: If `server.address` is set. - - ref: error.type - requirement_level: - conditionally_required: "if the operation ended in an error" - note: | - The `error.type` SHOULD match the error code returned by the Generative AI provider or the client library, - the canonical name of exception that occurred, or another low-cardinality error identifier. - Instrumentations SHOULD document the list of errors they report. - events: - - gen_ai.content.prompt - - gen_ai.content.completion - - - id: gen_ai.content.prompt - name: gen_ai.content.prompt - type: event - brief: > - In the lifetime of an GenAI span, events for prompts sent and completions received - may be created, depending on the configuration of the instrumentation. - attributes: - - ref: gen_ai.prompt - requirement_level: - conditionally_required: if and only if corresponding event is enabled - note: > - It's RECOMMENDED to format prompts as JSON string matching [OpenAI messages format](https://platform.openai.com/docs/guides/text-generation) - - - id: gen_ai.content.completion - name: gen_ai.content.completion - type: event - brief: > - In the lifetime of an GenAI span, events for prompts sent and completions received - may be created, depending on the configuration of the instrumentation. - attributes: - - ref: gen_ai.completion - requirement_level: - conditionally_required: if and only if corresponding event is enabled - note: > - It's RECOMMENDED to format completions as JSON string matching [OpenAI messages format](https://platform.openai.com/docs/guides/text-generation) diff --git a/model/go/go-metrics.yaml b/model/go/go-metrics.yaml deleted file mode 100644 index f52a12b4c8..0000000000 --- a/model/go/go-metrics.yaml +++ /dev/null @@ -1,96 +0,0 @@ -groups: - - id: metric.go.memory.used - type: metric - metric_name: go.memory.used - brief: "Memory used by the Go runtime." - note: > - Computed from `(/memory/classes/total:bytes - /memory/classes/heap/released:bytes)`. - instrument: updowncounter - unit: "By" - attributes: - - ref: go.memory.type - requirement_level: recommended - stability: experimental - - - id: metric.go.memory.limit - type: metric - metric_name: go.memory.limit - brief: "Go runtime memory limit configured by the user, if a limit exists." - note: > - Computed from `/gc/gomemlimit:bytes`. - This metric is excluded if the limit obtained from the Go runtime is math.MaxInt64. - instrument: updowncounter - unit: "By" - stability: experimental - - - id: metric.go.memory.allocated - type: metric - metric_name: go.memory.allocated - brief: "Memory allocated to the heap by the application." - note: > - Computed from `/gc/heap/allocs:bytes`. - instrument: counter - unit: "By" - stability: experimental - - - id: metric.go.memory.allocations - type: metric - metric_name: go.memory.allocations - brief: "Count of allocations to the heap by the application." - note: > - Computed from `/gc/heap/allocs:objects`. - instrument: counter - unit: "{allocation}" - stability: experimental - - - id: metric.go.memory.gc.goal - type: metric - metric_name: go.memory.gc.goal - brief: "Heap size target for the end of the GC cycle." - note: > - Computed from `/gc/heap/goal:bytes`. - instrument: updowncounter - unit: "By" - stability: experimental - - - id: metric.go.goroutine.count - type: metric - metric_name: go.goroutine.count - brief: "Count of live goroutines." - note: > - Computed from `/sched/goroutines:goroutines`. - instrument: updowncounter - unit: "{goroutine}" - stability: experimental - - - id: metric.go.processor.limit - type: metric - metric_name: go.processor.limit - brief: "The number of OS threads that can execute user-level Go code simultaneously." - note: > - Computed from `/sched/gomaxprocs:threads`. - instrument: updowncounter - unit: "{thread}" - stability: experimental - - - id: metric.go.schedule.duration - type: metric - metric_name: go.schedule.duration - brief: "The time goroutines have spent in the scheduler in a runnable state before actually running." - note: > - Computed from `/sched/latencies:seconds`. - Bucket boundaries are provided by the runtime, and are subject to change. - instrument: histogram - unit: "s" - stability: experimental - - - id: metric.go.config.gogc - type: metric - metric_name: go.config.gogc - brief: "Heap size target percentage configured by the user, otherwise 100." - note: > - The value range is [0.0,100.0]. - Computed from `/gc/gogc:percent`. - instrument: updowncounter - unit: "%" - stability: experimental diff --git a/model/go/go-registry.yaml b/model/go/go-registry.yaml deleted file mode 100644 index 5814394ca6..0000000000 --- a/model/go/go-registry.yaml +++ /dev/null @@ -1,24 +0,0 @@ -groups: - - id: registry.go - type: attribute_group - display_name: Go Attributes - brief: > - This document defines Go related attributes. - attributes: - - id: go.memory.type - stability: experimental - type: - members: - - id: stack - value: 'stack' - brief: 'Memory allocated from the heap that is reserved for stack space, whether or not it is currently in-use.' - note: > - Computed from `/memory/classes/heap/stacks:bytes`. - stability: experimental - - id: other - value: 'other' - brief: 'Memory used by the Go runtime, excluding other categories of memory usage described in this enumeration.' - stability: experimental - requirement_level: recommended - brief: The type of memory. - examples: ["other", "stack"] diff --git a/model/graphgl/graphql-registry.yaml b/model/graphgl/graphql-registry.yaml deleted file mode 100644 index acb5e312e7..0000000000 --- a/model/graphgl/graphql-registry.yaml +++ /dev/null @@ -1,35 +0,0 @@ -groups: - - id: registry.graphql - type: attribute_group - display_name: GraphQL Attributes - brief: 'This document defines attributes for GraphQL.' - attributes: - - id: graphql.operation.name - brief: "The name of the operation being executed." - type: string - stability: experimental - examples: 'findBookById' - - id: graphql.operation.type - brief: "The type of the operation being executed." - stability: experimental - type: - members: - - id: query - value: "query" - brief: "GraphQL query" - stability: experimental - - id: mutation - value: "mutation" - brief: "GraphQL mutation" - stability: experimental - - id: subscription - value: "subscription" - brief: "GraphQL subscription" - stability: experimental - examples: ['query', 'mutation', 'subscription'] - - id: graphql.document - brief: "The GraphQL document being executed." - type: string - stability: experimental - note: The value may be sanitized to exclude sensitive information. - examples: 'query findBookById { bookById(id: ?) { name } }' diff --git a/model/graphgl/graphql-spans.yml b/model/graphgl/graphql-spans.yml deleted file mode 100644 index a14948da0a..0000000000 --- a/model/graphgl/graphql-spans.yml +++ /dev/null @@ -1,13 +0,0 @@ -groups: - - id: graphql - type: span - brief: > - This document defines semantic conventions to apply when instrumenting the GraphQL implementation. They map - GraphQL operations to attributes on a Span. - attributes: - - ref: graphql.operation.name - requirement_level: recommended - - ref: graphql.operation.type - requirement_level: recommended - - ref: graphql.document - requirement_level: recommended diff --git a/model/hardware/hardware-common-metrics.yaml b/model/hardware/hardware-common-metrics.yaml deleted file mode 100644 index b975f53e18..0000000000 --- a/model/hardware/hardware-common-metrics.yaml +++ /dev/null @@ -1,65 +0,0 @@ -groups: - # COMMON METRICS - - id: metric.hardware.attributes - type: attribute_group - brief: "Attributes for hardware metrics" - extends: hardware.attributes.common - attributes: - - ref: hw.type - requirement_level: required - - - id: metric.hardware.energy - type: metric - metric_name: hw.energy - stability: experimental - brief: "Energy consumed by the component" - instrument: counter - unit: "J" - extends: metric.hardware.attributes - - - id: metric.hardware.errors - type: metric - metric_name: hw.errors - stability: experimental - brief: "Number of errors encountered by the component" - instrument: counter - unit: "{error}" - extends: metric.hardware.attributes - attributes: - - ref: error.type - brief: "The type of error encountered by the component" - examples: ['uncorrected', 'zero_buffer_credit', 'crc', 'bad_sector'] - requirement_level: - conditionally_required: if and only if an error has occurred - note: > - The `error.type` SHOULD match the error code reported by the component, the canonical name of the error, - or another low-cardinality error identifier. Instrumentations SHOULD document the list of errors they report. - - - id: metric.hardware.power - type: metric - metric_name: hw.power - stability: experimental - brief: "Instantaneous power consumed by the component" - note: > - It is recommended to report `hw.energy` instead of `hw.power` when possible. - instrument: gauge - unit: "W" - extends: metric.hardware.attributes - - - id: metric.hardware.status - type: metric - metric_name: hw.status - stability: experimental - brief: "Operational status: `1` (true) or `0` (false) for each of the possible states" - instrument: updowncounter - unit: "1" - extends: metric.hardware.attributes - note: > - `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. - attributes: - - ref: hw.state - requirement_level: required diff --git a/model/hardware/hardware-common.yaml b/model/hardware/hardware-common.yaml deleted file mode 100644 index 6abf99809a..0000000000 --- a/model/hardware/hardware-common.yaml +++ /dev/null @@ -1,12 +0,0 @@ -groups: - - id: hardware.attributes.common - type: attribute_group - stability: experimental - brief: 'Common hardware attributes' - attributes: - - ref: hw.id - requirement_level: required - - ref: hw.name - requirement_level: recommended - - ref: hw.parent - requirement_level: recommended diff --git a/model/hardware/hardware-registry.yaml b/model/hardware/hardware-registry.yaml deleted file mode 100644 index 248484b193..0000000000 --- a/model/hardware/hardware-registry.yaml +++ /dev/null @@ -1,108 +0,0 @@ -groups: - - id: registry.hardware - type: attribute_group - brief: > - Attributes for hardware. - attributes: - - id: hw.id - type: string - stability: experimental - brief: > - An identifier for the hardware component, unique within the monitored host - examples: ['win32battery_battery_testsysa33_1'] - - id: hw.name - type: string - stability: experimental - brief: > - An easily-recognizable name for the hardware component - examples: ['eth0'] - - id: hw.parent - type: string - stability: experimental - brief: > - Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller) - examples: ['dellStorage_perc_0'] - - id: hw.type - type: - members: - - id: battery - value: 'battery' - brief: "Battery" - stability: experimental - - id: cpu - value: 'cpu' - brief: 'CPU' - stability: experimental - - id: disk_controller - value: 'disk_controller' - brief: 'Disk controller' - stability: experimental - - id: enclosure - value: 'enclosure' - brief: 'Enclosure' - stability: experimental - - id: fan - value: 'fan' - brief: 'Fan' - stability: experimental - - id: gpu - value: 'gpu' - brief: 'GPU' - stability: experimental - - id: logical_disk - value: 'logical_disk' - brief: 'Logical disk' - stability: experimental - - id: memory - value: 'memory' - brief: 'Memory' - stability: experimental - - id: network - value: 'network' - brief: 'Network' - stability: experimental - - id: physical_disk - value: 'physical_disk' - brief: 'Physical disk' - stability: experimental - - id: power_supply - value: 'power_supply' - brief: 'Power supply' - stability: experimental - - id: tape_drive - value: 'tape_drive' - brief: 'Tape drive' - stability: experimental - - id: temperature - value: 'temperature' - brief: 'Temperature' - stability: experimental - - id: voltage - value: 'voltage' - brief: 'Voltage' - stability: experimental - stability: experimental - brief: > - Type of the component - note: > - Describes the category of the hardware component for which `hw.state` is being reported. For example, - `hw.type=temperature` along with `hw.state=degraded` would indicate that the temperature of the hardware - component has been reported as `degraded`. - - id: hw.state - type: - members: - - id: ok - value: 'ok' - brief: "Ok" - stability: experimental - - id: degraded - value: 'degraded' - brief: 'Degraded' - stability: experimental - - id: failed - value: 'failed' - brief: 'Failed' - stability: experimental - stability: experimental - brief: > - The current state of the component diff --git a/model/heroku/heroku-registry.yaml b/model/heroku/heroku-registry.yaml deleted file mode 100644 index 8ec5f9e1a2..0000000000 --- a/model/heroku/heroku-registry.yaml +++ /dev/null @@ -1,25 +0,0 @@ -groups: - - id: registry.heroku - type: attribute_group - display_name: Heroku Attributes - brief: > - This document defines attributes for the Android platform on which the Android application is running. - attributes: - - id: heroku.release.creation_timestamp - type: string - stability: experimental - brief: > - Time and date the release was created - examples: [ '2022-10-23T18:00:42Z' ] - - id: heroku.release.commit - type: string - stability: experimental - brief: > - Commit hash for the current release - examples: [ 'e6134959463efd8966b20e75b913cafe3f5ec' ] - - id: heroku.app.id - type: string - stability: experimental - brief: > - Unique identifier for the application - examples: [ '2daa2797-e42b-4624-9322-ec3f968df4da' ] diff --git a/model/heroku/heroku-resources.yaml b/model/heroku/heroku-resources.yaml deleted file mode 100644 index cf2e66c233..0000000000 --- a/model/heroku/heroku-resources.yaml +++ /dev/null @@ -1,13 +0,0 @@ -groups: - - id: heroku - type: resource - name: heroku - brief: > - Heroku dyno metadata - attributes: - - ref: heroku.release.creation_timestamp - requirement_level: opt_in - - ref: heroku.release.commit - requirement_level: opt_in - - ref: heroku.app.id - requirement_level: opt_in diff --git a/model/host/host-registry.yaml b/model/host/host-registry.yaml deleted file mode 100644 index 5f7336f05d..0000000000 --- a/model/host/host-registry.yaml +++ /dev/null @@ -1,146 +0,0 @@ -groups: - - id: registry.host - type: attribute_group - display_name: Host Attributes - brief: > - A host is defined as a computing instance. For example, physical servers, virtual machines, switches or disk array. - attributes: - - id: host.id - type: string - stability: experimental - brief: > - Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. - For non-containerized systems, this should be the `machine-id`. See the table below for - the sources to use to determine the `machine-id` based on operating system. - examples: ['fdbf79e8af94cb7f9e8df36789187052'] - - id: host.name - type: string - stability: experimental - brief: > - Name of the host. On Unix systems, it may contain what the hostname - command returns, or the fully qualified hostname, or another name - specified by the user. - examples: ['opentelemetry-test'] - - id: host.type - type: string - stability: experimental - brief: > - Type of host. For Cloud, this must be the machine type. - examples: ['n1-standard-1'] - - id: host.arch - type: - members: - - id: amd64 - value: 'amd64' - brief: "AMD64" - stability: experimental - - id: arm32 - value: 'arm32' - brief: "ARM32" - stability: experimental - - id: arm64 - value: 'arm64' - brief: "ARM64" - stability: experimental - - id: ia64 - value: 'ia64' - brief: "Itanium" - stability: experimental - - id: ppc32 - value: 'ppc32' - brief: "32-bit PowerPC" - stability: experimental - - id: ppc64 - value: 'ppc64' - brief: "64-bit PowerPC" - stability: experimental - - id: s390x - value: 's390x' - brief: "IBM z/Architecture" - stability: experimental - - id: x86 - value: 'x86' - brief: "32-bit x86" - stability: experimental - stability: experimental - brief: > - The CPU architecture the host system is running on. - - id: host.image.name - type: string - stability: experimental - brief: > - Name of the VM image or OS install the host was instantiated from. - examples: ['infra-ami-eks-worker-node-7d4ec78312', 'CentOS-8-x86_64-1905'] - - id: host.image.id - stability: experimental - type: string - brief: > - VM image ID or host OS image ID. For Cloud, this value is from the provider. - examples: ['ami-07b06b442921831e5'] - - id: host.image.version - stability: experimental - type: string - brief: > - The version string of the VM image or host OS as defined in - [Version Attributes](/docs/resource/README.md#version-attributes). - examples: ['0.1'] - - id: host.ip - stability: experimental - type: string[] - brief: > - Available IP addresses of the host, excluding loopback interfaces. - note: > - IPv4 Addresses MUST be specified in dotted-quad notation. IPv6 addresses - MUST be specified in the [RFC 5952](https://www.rfc-editor.org/rfc/rfc5952.html) format. - examples: - - ["192.168.1.140", "fe80::abc2:4a28:737a:609e"] - - id: host.mac - stability: experimental - type: string[] - brief: > - Available MAC addresses of the host, excluding loopback interfaces. - note: > - MAC Addresses MUST be represented in [IEEE RA hexadecimal form](https://standards.ieee.org/wp-content/uploads/import/documents/tutorials/eui.pdf): - as hyphen-separated octets in uppercase hexadecimal form from most to least significant. - examples: - - ['AC-DE-48-23-45-67', 'AC-DE-48-23-45-67-01-9F'] - - id: host.cpu.vendor.id - stability: experimental - type: string - brief: > - Processor manufacturer identifier. A maximum 12-character string. - note: > - [CPUID](https://wiki.osdev.org/CPUID) command returns the vendor ID string in EBX, EDX and ECX registers. - Writing these to memory in this order results in a 12-character string. - examples: [ 'GenuineIntel' ] - - id: host.cpu.family - stability: experimental - type: string - brief: > - Family or generation of the CPU. - examples: [ '6', 'PA-RISC 1.1e' ] - - id: host.cpu.model.id - stability: experimental - type: string - brief: > - Model identifier. It provides more granular information about the CPU, distinguishing it from - other CPUs within the same family. - examples: [ '6', '9000/778/B180L' ] - - id: host.cpu.model.name - stability: experimental - type: string - brief: > - Model designation of the processor. - examples: [ '11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz' ] - - id: host.cpu.stepping - stability: experimental - type: string - brief: > - Stepping or core revisions. - examples: ["1", "r1p1"] - - id: host.cpu.cache.l2.size - stability: experimental - type: int - brief: > - The amount of level 2 memory cache available to the processor (in Bytes). - examples: [ 12288000 ] diff --git a/model/host/host-resources.yaml b/model/host/host-resources.yaml deleted file mode 100644 index 2954172cd9..0000000000 --- a/model/host/host-resources.yaml +++ /dev/null @@ -1,63 +0,0 @@ -groups: - - id: host - type: resource - name: host - brief: > - A host is defined as a computing instance. For example, physical servers, virtual machines, switches or disk array. - attributes: - - ref: host.id - note: | - Collecting `host.id` from non-containerized systems - - **Non-privileged Machine ID Lookup** - - When collecting `host.id` for non-containerized systems non-privileged lookups - of the machine id are preferred. SDK detector implementations MUST use the - sources listed below to obtain the machine id. - - | OS | Primary | Fallback | - |---------|---------|---------| - | Linux | contents of `/etc/machine-id` | contents of `/var/lib/dbus/machine-id` | - | BSD | contents of `/etc/hostid` | output of `kenv -q smbios.system.uuid` | - | MacOS | `IOPlatformUUID` line from the output of `ioreg -rd1 -c "IOPlatformExpertDevice"` | - | - | Windows | `MachineGuid` from registry `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography` | - | - - **Privileged Machine ID Lookup** - - The `host.id` can be looked up using privileged sources. For example, Linux - systems can use the output of `dmidecode -t system`, `dmidecode -t baseboard`, - `dmidecode -t chassis`, or read the corresponding data from the filesystem - (e.g. `cat /sys/devices/virtual/dmi/id/product_id`, - `cat /sys/devices/virtual/dmi/id/product_uuid`, etc), however, SDK resource - detector implementations MUST not collect `host.id` from privileged sources. If - privileged lookup of `host.id` is required, the value should be injected via the - `OTEL_RESOURCE_ATTRIBUTES` environment variable. - - ref: host.name - - ref: host.type - - ref: host.arch - - ref: host.image.name - - ref: host.image.id - - ref: host.image.version - - ref: host.ip - requirement_level: opt_in - - ref: host.mac - requirement_level: opt_in - - - id: host.cpu - type: resource - name: host.cpu - brief: > - A host's CPU information - attributes: - - ref: host.cpu.vendor.id - requirement_level: opt_in - - ref: host.cpu.family - requirement_level: opt_in - - ref: host.cpu.model.id - requirement_level: opt_in - - ref: host.cpu.model.name - requirement_level: opt_in - - ref: host.cpu.stepping - requirement_level: opt_in - - ref: host.cpu.cache.l2.size - requirement_level: opt_in diff --git a/model/http/deprecated/http-registry-deprecated.yaml b/model/http/deprecated/http-registry-deprecated.yaml deleted file mode 100644 index 1a1a0f3bbe..0000000000 --- a/model/http/deprecated/http-registry-deprecated.yaml +++ /dev/null @@ -1,115 +0,0 @@ -groups: - - id: registry.http.deprecated - type: attribute_group - display_name: Deprecated HTTP Attributes - brief: "Describes deprecated HTTP attributes." - attributes: - - id: http.method - type: string - brief: 'Deprecated, use `http.request.method` instead.' - stability: experimental - deprecated: "Replaced by `http.request.method`." - examples: ["GET", "POST", "HEAD"] - - id: http.status_code - type: int - brief: 'Deprecated, use `http.response.status_code` instead.' - stability: experimental - deprecated: "Replaced by `http.response.status_code`." - examples: [200] - - id: http.scheme - type: string - brief: 'Deprecated, use `url.scheme` instead.' - stability: experimental - deprecated: "Replaced by `url.scheme` instead." - examples: ['http', 'https'] - - id: http.url - type: string - brief: 'Deprecated, use `url.full` instead.' - stability: experimental - deprecated: "Replaced by `url.full`." - examples: ['https://www.foo.bar/search?q=OpenTelemetry#SemConv'] - - id: http.target - type: string - brief: 'Deprecated, use `url.path` and `url.query` instead.' - stability: experimental - deprecated: "Split to `url.path` and `url.query." - examples: ['/search?q=OpenTelemetry#SemConv'] - - id: http.request_content_length - type: int - brief: 'Deprecated, use `http.request.header.content-length` instead.' - stability: experimental - deprecated: "Replaced by `http.request.header.content-length`." - examples: 3495 - - id: http.response_content_length - type: int - brief: 'Deprecated, use `http.response.header.content-length` instead.' - stability: experimental - deprecated: "Replaced by `http.response.header.content-length`." - examples: 3495 - - id: http.client_ip - type: string - stability: experimental - deprecated: "Replaced by `client.address`." - brief: "Deprecated, use `client.address` instead." - examples: '83.164.160.102' - - id: http.host - type: string - stability: experimental - deprecated: "Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage." - brief: "Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage." - examples: ['www.example.org'] - - id: http.request_content_length_uncompressed - stability: experimental - deprecated: "Replaced by `http.request.body.size`." - type: int - brief: "Deprecated, use `http.request.body.size` instead." - examples: 5493 - - id: http.response_content_length_uncompressed - stability: experimental - deprecated: "Replace by `http.response.body.size`." - type: int - brief: "Deprecated, use `http.response.body.size` instead." - examples: 5493 - - id: http.server_name - type: string - stability: experimental - deprecated: "Replaced by `server.address`." - brief: "Deprecated, use `server.address` instead." - examples: ['example.com'] - - id: http.flavor - type: - members: - - id: http_1_0 - value: '1.0' - brief: 'HTTP/1.0' - stability: experimental - - id: http_1_1 - value: '1.1' - brief: 'HTTP/1.1' - stability: experimental - - id: http_2_0 - value: '2.0' - brief: 'HTTP/2' - stability: experimental - - id: http_3_0 - value: '3.0' - brief: 'HTTP/3' - stability: experimental - - id: spdy - value: 'SPDY' - brief: 'SPDY protocol.' - stability: experimental - - id: quic - value: 'QUIC' - brief: 'QUIC protocol.' - stability: experimental - brief: 'Deprecated, use `network.protocol.name` instead.' - deprecated: "Replaced by `network.protocol.name`." - stability: experimental - - id: http.user_agent - type: string - brief: 'Deprecated, use `user_agent.original` instead.' - examples: ['CERN-LineMode/2.15 libwww/2.17b3', - 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1'] - deprecated: "Replaced by `user_agent.original`." - stability: experimental diff --git a/model/http/http-common.yaml b/model/http/http-common.yaml deleted file mode 100644 index 8624dd4ce4..0000000000 --- a/model/http/http-common.yaml +++ /dev/null @@ -1,96 +0,0 @@ -groups: - - id: attributes.http.common - type: attribute_group - brief: "Describes HTTP attributes." - attributes: - - ref: http.request.method - requirement_level: required - - ref: http.response.status_code - requirement_level: - conditionally_required: If and only if one was received/sent. - - ref: error.type - requirement_level: - conditionally_required: If request has ended with an error. - examples: ['timeout', 'java.net.UnknownHostException', 'server_certificate_invalid', '500'] - note: | - If the request fails with an error before response status code was sent or received, - `error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable) - or a component-specific low cardinality error identifier. - - If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md), - `error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier. - - The `error.type` value SHOULD be predictable and SHOULD have low cardinality. - Instrumentations SHOULD document the list of errors they report. - - The cardinality of `error.type` within one instrumentation library SHOULD be low, but - telemetry consumers that aggregate data from multiple instrumentation libraries and applications - should be prepared for `error.type` to have high cardinality at query time, when no - additional filters are applied. - - If the request has completed successfully, instrumentations SHOULD NOT set `error.type`. - - ref: network.protocol.name - examples: ['http', 'spdy'] - requirement_level: - conditionally_required: If not `http` and `network.protocol.version` is set. - - ref: network.protocol.version - examples: ['1.0', '1.1', '2', '3'] - - - id: attributes.http.client - type: attribute_group - brief: 'HTTP Client attributes' - extends: attributes.http.common - attributes: - - ref: server.address - requirement_level: required - brief: > - Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. - note: > - If an HTTP client request is explicitly made to an IP address, e.g. `http://x.x.x.x:8080`, then - `server.address` SHOULD be the IP address `x.x.x.x`. A DNS lookup SHOULD NOT be used. - - ref: server.port - requirement_level: required - brief: > - Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. - - ref: url.scheme - requirement_level: opt_in - examples: ["http", "https"] - - - id: attributes.http.client.experimental - type: attribute_group - brief: "Experimental HTTP attributes." - attributes: - - ref: url.template - requirement_level: opt_in - note: > - The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation. - - - id: attributes.http.server - type: attribute_group - brief: 'HTTP Server attributes' - extends: attributes.http.common - attributes: - - ref: http.route - requirement_level: - conditionally_required: If and only if it's available - - ref: server.address - brief: > - Name of the local HTTP server that received the request. - note: > - See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes). - - ref: server.port - brief: > - Port of the local HTTP server that received the request. - note: > - See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes). - requirement_level: - conditionally_required: If `server.address` is set. - - ref: url.scheme - requirement_level: required - examples: ["http", "https"] - note: > - The scheme of the original client request, if known - (e.g. from [Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto), - [X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto), - or a similar header). - Otherwise, the scheme of the immediate peer request. diff --git a/model/http/http-metrics.yaml b/model/http/http-metrics.yaml deleted file mode 100644 index 78283fdf75..0000000000 --- a/model/http/http-metrics.yaml +++ /dev/null @@ -1,208 +0,0 @@ -groups: - - id: metric_attributes.http.server - type: attribute_group - brief: 'HTTP server attributes' - extends: attributes.http.server - attributes: - - ref: server.address - requirement_level: opt_in - note: | - See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes). - > **Warning** - > Since this attribute is based on HTTP headers, opting in to it may allow an attacker - > to trigger cardinality limits, degrading the usefulness of the metric. - - ref: server.port - requirement_level: opt_in - note: | - See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes). - > **Warning** - > Since this attribute is based on HTTP headers, opting in to it may allow an attacker - > to trigger cardinality limits, degrading the usefulness of the metric. - - id: metric_attributes.http.client - type: attribute_group - brief: 'HTTP client attributes' - extends: attributes.http.client - - - id: metric_attributes.http.client.experimental - type: attribute_group - brief: 'HTTP client experimental attributes' - extends: metric_attributes.http.client - attributes: - - ref: url.template - requirement_level: - conditionally_required: If available. - note: > - The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation. - - - id: metric.http.server.request.duration - type: metric - metric_name: http.server.request.duration - brief: "Duration of HTTP server requests." - instrument: histogram - unit: "s" - stability: stable - extends: metric_attributes.http.server - - - id: metric.http.server.active_requests - type: metric - metric_name: http.server.active_requests - stability: experimental - brief: "Number of active HTTP server requests." - instrument: updowncounter - unit: "{request}" - attributes: - - ref: http.request.method - requirement_level: required - - ref: url.scheme - requirement_level: required - examples: ["http", "https"] - - ref: server.address - requirement_level: opt_in - brief: > - Name of the local HTTP server that received the request. - note: | - See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes). - > **Warning** - > Since this attribute is based on HTTP headers, opting in to it may allow an attacker - > to trigger cardinality limits, degrading the usefulness of the metric. - - ref: server.port - requirement_level: opt_in - brief: > - Port of the local HTTP server that received the request. - note: | - See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes). - > **Warning** - > Since this attribute is based on HTTP headers, opting in to it may allow an attacker - > to trigger cardinality limits, degrading the usefulness of the metric. - - - id: metric.http.server.request.body.size - type: metric - metric_name: http.server.request.body.size - stability: experimental - brief: "Size of HTTP server request bodies." - instrument: histogram - unit: "By" - note: > - The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and - is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - header. For requests using transport encoding, this should be the compressed size. - extends: metric_attributes.http.server - - - id: metric.http.server.response.body.size - type: metric - metric_name: http.server.response.body.size - stability: experimental - brief: "Size of HTTP server response bodies." - instrument: histogram - unit: "By" - note: > - The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and - is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - header. For requests using transport encoding, this should be the compressed size. - extends: metric_attributes.http.server - - - id: metric.http.client.request.duration - type: metric - metric_name: http.client.request.duration - brief: "Duration of HTTP client requests." - instrument: histogram - unit: "s" - stability: stable - extends: metric_attributes.http.client - - - id: metric.http.client.request.body.size - type: metric - metric_name: http.client.request.body.size - stability: experimental - brief: "Size of HTTP client request bodies." - instrument: histogram - unit: "By" - note: > - The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and - is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - header. For requests using transport encoding, this should be the compressed size. - extends: metric_attributes.http.client.experimental - - - id: metric.http.client.response.body.size - type: metric - metric_name: http.client.response.body.size - stability: experimental - brief: "Size of HTTP client response bodies." - instrument: histogram - unit: "By" - note: > - The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and - is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - header. For requests using transport encoding, this should be the compressed size. - extends: metric_attributes.http.client.experimental - - - id: metric.http.client.open_connections - type: metric - metric_name: http.client.open_connections - stability: experimental - brief: "Number of outbound HTTP connections that are currently active or idle on the client." - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: http.connection.state - requirement_level: required - - ref: network.peer.address - requirement_level: recommended - - ref: network.protocol.version - requirement_level: recommended - - ref: server.address - requirement_level: required - - ref: server.port - requirement_level: required - brief: > - Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. - - ref: url.scheme - requirement_level: opt_in - examples: ["http", "https"] - - - id: metric.http.client.connection.duration - type: metric - metric_name: http.client.connection.duration - stability: experimental - brief: "The duration of the successfully established outbound HTTP connections." - instrument: histogram - unit: "s" - attributes: - - ref: network.peer.address - requirement_level: recommended - - ref: network.protocol.version - requirement_level: recommended - - ref: server.address - requirement_level: required - - ref: server.port - requirement_level: required - brief: > - Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. - - ref: url.scheme - requirement_level: opt_in - examples: ["http", "https"] - - - id: metric.http.client.active_requests - type: metric - metric_name: http.client.active_requests - stability: experimental - brief: "Number of active HTTP requests." - instrument: updowncounter - unit: "{request}" - attributes: - - ref: http.request.method - requirement_level: recommended - - ref: server.address - requirement_level: required - - ref: server.port - requirement_level: required - brief: > - Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. - - ref: url.scheme - requirement_level: opt_in - examples: ["http", "https"] - - ref: url.template - requirement_level: - conditionally_required: If available. - note: > - The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation. diff --git a/model/http/http-registry.yaml b/model/http/http-registry.yaml deleted file mode 100644 index ff0a002d39..0000000000 --- a/model/http/http-registry.yaml +++ /dev/null @@ -1,172 +0,0 @@ -groups: - - id: registry.http - type: attribute_group - display_name: HTTP Attributes - brief: 'This document defines semantic convention attributes in the HTTP namespace.' - attributes: - - id: http.request.body.size - type: int - brief: > - The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and - is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - header. For requests using transport encoding, this should be the compressed size. - examples: 3495 - stability: experimental # this should not be marked stable with other HTTP attributes - - id: http.request.header - stability: stable - type: template[string[]] - brief: > - HTTP request headers, `` being the normalized HTTP Header name (lowercase), the value being the header values. - note: > - Instrumentations SHOULD require an explicit configuration of which headers are to be captured. - Including all request headers can be a security risk - explicit configuration helps avoid leaking sensitive information. - - The `User-Agent` header is already captured in the `user_agent.original` attribute. - Users MAY explicitly configure instrumentations to capture them even though it is not recommended. - - The attribute value MUST consist of either multiple header values as an array of strings - or a single-item array containing a possibly comma-concatenated string, depending on the way - the HTTP library provides access to headers. - examples: ['http.request.header.content-type=["application/json"]', 'http.request.header.x-forwarded-for=["1.2.3.4", "1.2.3.5"]'] - - id: http.request.method - stability: stable - type: - members: - - id: connect - value: "CONNECT" - brief: 'CONNECT method.' - stability: stable - - id: delete - value: "DELETE" - brief: 'DELETE method.' - stability: stable - - id: get - value: "GET" - brief: 'GET method.' - stability: stable - - id: head - value: "HEAD" - brief: 'HEAD method.' - stability: stable - - id: options - value: "OPTIONS" - brief: 'OPTIONS method.' - stability: stable - - id: patch - value: "PATCH" - brief: 'PATCH method.' - stability: stable - - id: post - value: "POST" - brief: 'POST method.' - stability: stable - - id: put - value: "PUT" - brief: 'PUT method.' - stability: stable - - id: trace - value: "TRACE" - brief: 'TRACE method.' - stability: stable - - id: other - value: "_OTHER" - brief: 'Any HTTP method that the instrumentation has no prior knowledge of.' - stability: stable - brief: 'HTTP request method.' - examples: ["GET", "POST", "HEAD"] - note: | - HTTP request method value SHOULD be "known" to the instrumentation. - By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods) - and the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html). - - If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`. - - If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override - the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named - OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods - (this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults). - - HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly. - Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent. - Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value. - - id: http.request.method_original - stability: stable - type: string - brief: Original HTTP method sent by the client in the request line. - examples: ["GeT", "ACL", "foo"] - - id: http.request.resend_count - stability: stable - type: int - brief: > - The ordinal number of request resending attempt (for any reason, including redirects). - note: > - The resend count SHOULD be updated each time an HTTP request gets resent by the client, regardless of what - was the cause of the resending (e.g. redirection, authorization failure, 503 Server Unavailable, network issues, - or any other). - examples: 3 - - id: http.request.size - type: int - brief: > - The total size of the request in bytes. This should be the total number of bytes sent over the wire, including the request line (HTTP/1.1), - framing (HTTP/2 and HTTP/3), headers, and request body if any. - examples: 1437 - stability: experimental - - id: http.response.body.size - type: int - brief: > - The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and - is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - header. For requests using transport encoding, this should be the compressed size. - examples: 3495 - stability: experimental # this should not be marked stable with other HTTP attributes - - id: http.response.header - stability: stable - type: template[string[]] - brief: > - HTTP response headers, `` being the normalized HTTP Header name (lowercase), the value being the header values. - note: > - Instrumentations SHOULD require an explicit configuration of which headers are to be captured. - Including all response headers can be a security risk - explicit configuration helps avoid leaking sensitive information. - - Users MAY explicitly configure instrumentations to capture them even though it is not recommended. - - The attribute value MUST consist of either multiple header values as an array of strings - or a single-item array containing a possibly comma-concatenated string, depending on the way - the HTTP library provides access to headers. - examples: ['http.response.header.content-type=["application/json"]', 'http.response.header.my-custom-header=["abc", "def"]'] - - id: http.response.size - type: int - brief: > - The total size of the response in bytes. This should be the total number of bytes sent over the wire, including the status line (HTTP/1.1), - framing (HTTP/2 and HTTP/3), headers, and response body and trailers if any. - examples: 1437 - stability: experimental - - id: http.response.status_code - stability: stable - type: int - brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).' - examples: [200] - - id: http.route - stability: stable - type: string - brief: > - The matched route, that is, the path template in the format used by the respective server framework. - examples: ['/users/:userID?', '{controller}/{action}/{id?}'] - note: > - MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it. - - SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one. - - id: http.connection.state - type: - members: - - id: active - value: "active" - brief: 'active state.' - stability: experimental - - id: idle - value: "idle" - brief: 'idle state.' - stability: experimental - brief: State of the HTTP connection in the HTTP connection pool. - stability: experimental - examples: ["active", "idle"] diff --git a/model/http/http-spans.yaml b/model/http/http-spans.yaml deleted file mode 100644 index 23509a2814..0000000000 --- a/model/http/http-spans.yaml +++ /dev/null @@ -1,128 +0,0 @@ -groups: - - id: trace.http.client - type: span - extends: attributes.http.client - span_kind: client - brief: 'Semantic Convention for HTTP Client' - stability: stable - attributes: - - ref: http.request.method - sampling_relevant: true - - ref: http.request.method_original - requirement_level: - conditionally_required: If and only if it's different than `http.request.method`. - - ref: http.request.resend_count - requirement_level: - recommended: if and only if request was retried. - - ref: http.request.header - requirement_level: opt_in - - ref: http.response.header - requirement_level: opt_in - - ref: server.address - sampling_relevant: true - - ref: server.port - sampling_relevant: true - - ref: url.full - sampling_relevant: true - requirement_level: required - - ref: user_agent.original - requirement_level: opt_in - - ref: url.scheme - - ref: network.peer.address - - ref: network.peer.port - requirement_level: - recommended: If `network.peer.address` is set. - - ref: network.transport - requirement_level: opt_in - note: > - Generally `tcp` for `HTTP/1.0`, `HTTP/1.1`, and `HTTP/2`. Generally `udp` for `HTTP/3`. - Other obscure implementations are possible. - - - id: trace.http.client.experimental - type: attribute_group - brief: 'Experimental attributes for HTTP Client spans' - stability: experimental - extends: attributes.http.client.experimental - attributes: - - ref: http.request.size - requirement_level: opt_in - - ref: http.response.size - requirement_level: opt_in - - ref: http.request.body.size - requirement_level: opt_in - - ref: http.response.body.size - requirement_level: opt_in - - - id: trace.http.server - type: span - extends: attributes.http.server - span_kind: server - brief: 'Semantic Convention for HTTP Server' - stability: stable - attributes: - - ref: http.request.method - sampling_relevant: true - - ref: http.request.method_original - requirement_level: - conditionally_required: If and only if it's different than `http.request.method`. - - ref: http.route - - ref: http.request.header - sampling_relevant: true - requirement_level: opt_in - - ref: http.response.header - requirement_level: opt_in - - ref: server.address - sampling_relevant: true - - ref: server.port - sampling_relevant: true - - ref: network.local.address - requirement_level: opt_in - brief: Local socket address. Useful in case of a multi-IP host. - - ref: network.local.port - requirement_level: opt_in - brief: Local socket port. Useful in case of a multi-port host. - - ref: client.address - sampling_relevant: true - note: > - The IP address of the original client behind all proxies, if - known (e.g. from [Forwarded#for](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#for), - [X-Forwarded-For](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-For), or a similar header). - Otherwise, the immediate client peer address. - examples: ['83.164.160.102'] - - ref: client.port - requirement_level: opt_in - brief: The port of whichever client was captured in `client.address`. - - ref: url.path - requirement_level: required - sampling_relevant: true - - ref: url.query - requirement_level: - conditionally_required: If and only if one was received/sent. - sampling_relevant: true - - ref: url.scheme - sampling_relevant: true - - ref: user_agent.original - sampling_relevant: true - - ref: network.peer.address - - ref: network.peer.port - requirement_level: - recommended: If `network.peer.address` is set. - - ref: network.transport - requirement_level: opt_in - note: > - Generally `tcp` for `HTTP/1.0`, `HTTP/1.1`, and `HTTP/2`. Generally `udp` for `HTTP/3`. - Other obscure implementations are possible. - - - id: trace.http.server.experimental - type: attribute_group - brief: 'Experimental attributes for HTTP Server spans' - stability: experimental - attributes: - - ref: http.request.size - requirement_level: opt_in - - ref: http.response.size - requirement_level: opt_in - - ref: http.request.body.size - requirement_level: opt_in - - ref: http.response.body.size - requirement_level: opt_in diff --git a/model/ios/deprecated/ios-registry-deprecated.yaml b/model/ios/deprecated/ios-registry-deprecated.yaml deleted file mode 100644 index 14d4ba313d..0000000000 --- a/model/ios/deprecated/ios-registry-deprecated.yaml +++ /dev/null @@ -1,45 +0,0 @@ -groups: - - id: registry.ios.deprecated - type: attribute_group - display_name: Deprecated iOS Attributes - brief: > - The iOS platform on which the iOS application is running. - attributes: - - id: ios.state - stability: experimental - deprecated: "Moved to a payload field of `device.app.lifecycle`." - note: > - The iOS lifecycle states are defined in the [UIApplicationDelegate documentation](https://developer.apple.com/documentation/uikit/uiapplicationdelegate#1656902), - and from which the `OS terminology` column values are derived. - brief: > - Deprecated use the `device.app.lifecycle` event definition including - `ios.state` as a payload field instead. - type: - members: - - id: active - value: 'active' - brief: > - The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`. - stability: experimental - - id: inactive - value: 'inactive' - brief: > - The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`. - stability: experimental - - id: background - value: 'background' - brief: > - The app is now in the background. - This value is associated with UIKit notification `applicationDidEnterBackground`. - stability: experimental - - id: foreground - value: 'foreground' - brief: > - The app is now in the foreground. - This value is associated with UIKit notification `applicationWillEnterForeground`. - stability: experimental - - id: terminate - value: 'terminate' - brief: > - The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`. - stability: experimental diff --git a/model/jvm/deprecated/jvm-metrics-deprecated.yaml b/model/jvm/deprecated/jvm-metrics-deprecated.yaml deleted file mode 100644 index 2641fc1a5c..0000000000 --- a/model/jvm/deprecated/jvm-metrics-deprecated.yaml +++ /dev/null @@ -1,10 +0,0 @@ -groups: - - id: metric.jvm.buffer.memory.usage.deprecated - type: metric - metric_name: jvm.buffer.memory.usage - stability: experimental - deprecated: "Replaced by `jvm.buffer.memory.used`." - brief: "Deprecated, use `jvm.buffer.memory.used` instead." - extends: attributes.jvm.buffer - instrument: updowncounter - unit: "By" diff --git a/model/jvm/jvm-metrics-experimental.yaml b/model/jvm/jvm-metrics-experimental.yaml deleted file mode 100644 index 80e3a99041..0000000000 --- a/model/jvm/jvm-metrics-experimental.yaml +++ /dev/null @@ -1,69 +0,0 @@ -groups: - - id: metric.jvm.memory.init - type: metric - metric_name: jvm.memory.init - stability: experimental - extends: attributes.jvm.memory - brief: "Measure of initial memory requested." - instrument: updowncounter - unit: "By" - - - id: metric.jvm.system.cpu.utilization - type: metric - metric_name: jvm.system.cpu.utilization - stability: experimental - brief: "Recent CPU utilization for the whole system as reported by the JVM." - note: > - The value range is [0.0,1.0]. - This utilization is not defined as being for the specific interval since last measurement - (unlike `system.cpu.utilization`). - [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getCpuLoad()). - instrument: gauge - unit: "1" - - - id: metric.jvm.system.cpu.load_1m - type: metric - metric_name: jvm.system.cpu.load_1m - stability: experimental - brief: "Average CPU load of the whole system for the last minute as reported by the JVM." - note: > - The value range is [0,n], where n is the number of CPU cores - or a negative number if the value is not available. - This utilization is not defined as being for the specific interval since last measurement - (unlike `system.cpu.utilization`). - [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/java.management/java/lang/management/OperatingSystemMXBean.html#getSystemLoadAverage()). - instrument: gauge - unit: "{run_queue_item}" - - - id: attributes.jvm.buffer - type: attribute_group - brief: "Describes JVM buffer metric attributes." - attributes: - - ref: jvm.buffer.pool.name - requirement_level: recommended - - - id: metric.jvm.buffer.memory.used - type: metric - metric_name: jvm.buffer.memory.used - stability: experimental - extends: attributes.jvm.buffer - brief: "Measure of memory used by buffers." - instrument: updowncounter - unit: "By" - - - id: metric.jvm.buffer.memory.limit - type: metric - metric_name: jvm.buffer.memory.limit - stability: experimental - extends: attributes.jvm.buffer - brief: "Measure of total memory capacity of buffers." - instrument: updowncounter - unit: "By" - - - id: metric.jvm.buffer.count - type: metric - metric_name: jvm.buffer.count - stability: experimental - extends: attributes.jvm.buffer - brief: "Number of buffers in the pool." - instrument: updowncounter - unit: "{buffer}" diff --git a/model/jvm/jvm-metrics.yaml b/model/jvm/jvm-metrics.yaml deleted file mode 100644 index 1930e83659..0000000000 --- a/model/jvm/jvm-metrics.yaml +++ /dev/null @@ -1,125 +0,0 @@ -groups: - - id: attributes.jvm.memory - type: attribute_group - brief: "Describes JVM memory metric attributes." - attributes: - - ref: jvm.memory.type - requirement_level: recommended - - ref: jvm.memory.pool.name - requirement_level: recommended - brief: Name of the memory pool. - - - id: metric.jvm.memory.used - type: metric - metric_name: jvm.memory.used - extends: attributes.jvm.memory - brief: "Measure of memory used." - instrument: updowncounter - unit: "By" - stability: stable - - - id: metric.jvm.memory.committed - type: metric - metric_name: jvm.memory.committed - extends: attributes.jvm.memory - brief: "Measure of memory committed." - instrument: updowncounter - unit: "By" - stability: stable - - - id: metric.jvm.memory.limit - type: metric - metric_name: jvm.memory.limit - extends: attributes.jvm.memory - brief: "Measure of max obtainable memory." - instrument: updowncounter - unit: "By" - stability: stable - - - id: metric.jvm.memory.used_after_last_gc - type: metric - metric_name: jvm.memory.used_after_last_gc - extends: attributes.jvm.memory - brief: "Measure of memory used, as measured after the most recent garbage collection event on this pool." - instrument: updowncounter - unit: "By" - stability: stable - - - id: metric.jvm.gc.duration - type: metric - metric_name: jvm.gc.duration - brief: "Duration of JVM garbage collection actions." - instrument: histogram - unit: "s" - attributes: - - ref: jvm.gc.name - requirement_level: recommended - - ref: jvm.gc.action - requirement_level: recommended - stability: stable - - - id: metric.jvm.thread.count - type: metric - metric_name: jvm.thread.count - brief: "Number of executing platform threads." - instrument: updowncounter - unit: "{thread}" - attributes: - - ref: jvm.thread.daemon - requirement_level: recommended - - ref: jvm.thread.state - requirement_level: recommended - stability: stable - - - id: metric.jvm.class.loaded - type: metric - metric_name: jvm.class.loaded - brief: "Number of classes loaded since JVM start." - instrument: counter - unit: "{class}" - stability: stable - - - id: metric.jvm.class.unloaded - type: metric - metric_name: jvm.class.unloaded - brief: "Number of classes unloaded since JVM start." - instrument: counter - unit: "{class}" - stability: stable - - - id: metric.jvm.class.count - type: metric - metric_name: jvm.class.count - brief: "Number of classes currently loaded." - instrument: updowncounter - unit: "{class}" - stability: stable - - - id: metric.jvm.cpu.count - type: metric - metric_name: jvm.cpu.count - brief: "Number of processors available to the Java virtual machine." - instrument: updowncounter - unit: "{cpu}" - stability: stable - - - id: metric.jvm.cpu.time - type: metric - metric_name: jvm.cpu.time - brief: "CPU time used by the process as reported by the JVM." - instrument: counter - unit: "s" - stability: stable - - - id: metric.jvm.cpu.recent_utilization - type: metric - metric_name: jvm.cpu.recent_utilization - brief: "Recent CPU utilization for the process as reported by the JVM." - note: > - The value range is [0.0,1.0]. - This utilization is not defined as being for the specific interval since last measurement - (unlike `system.cpu.utilization`). - [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getProcessCpuLoad()). - instrument: gauge - unit: "1" - stability: stable diff --git a/model/jvm/jvm-registry.yaml b/model/jvm/jvm-registry.yaml deleted file mode 100644 index 4a515d9714..0000000000 --- a/model/jvm/jvm-registry.yaml +++ /dev/null @@ -1,87 +0,0 @@ -groups: - - id: registry.jvm - type: attribute_group - display_name: Java Virtual Machine (JVM) Attributes - brief: > - This document defines Java Virtual machine related attributes. - attributes: - - id: jvm.gc.action - stability: stable - type: string - brief: Name of the garbage collector action. - examples: ["end of minor GC", "end of major GC"] - note: > - Garbage collector action is generally obtained via - [GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()). - - id: jvm.gc.name - stability: stable - type: string - brief: Name of the garbage collector. - examples: ["G1 Young Generation", "G1 Old Generation"] - note: > - Garbage collector name is generally obtained via - [GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()). - - id: jvm.memory.type - stability: stable - type: - members: - - id: heap - value: 'heap' - brief: 'Heap memory.' - stability: stable - - id: non_heap - value: 'non_heap' - brief: 'Non-heap memory' - stability: stable - brief: The type of memory. - examples: ["heap", "non_heap"] - - id: jvm.memory.pool.name - stability: stable - type: string - brief: Name of the memory pool. - examples: ["G1 Old Gen", "G1 Eden space", "G1 Survivor Space"] - note: > - Pool names are generally obtained via - [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()). - - id: jvm.thread.daemon - stability: stable - type: boolean - brief: "Whether the thread is daemon or not." - - id: jvm.thread.state - stability: stable - brief: "State of the thread." - examples: ["runnable", "blocked"] - type: - members: - - id: new - value: 'new' - brief: 'A thread that has not yet started is in this state.' - stability: stable - - id: runnable - value: 'runnable' - brief: 'A thread executing in the Java virtual machine is in this state.' - stability: stable - - id: blocked - value: 'blocked' - brief: 'A thread that is blocked waiting for a monitor lock is in this state.' - stability: stable - - id: waiting - value: 'waiting' - brief: 'A thread that is waiting indefinitely for another thread to perform a particular action is in this state.' - stability: stable - - id: timed_waiting - value: 'timed_waiting' - brief: 'A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.' - stability: stable - - id: terminated - value: 'terminated' - brief: 'A thread that has exited is in this state.' - stability: stable - - id: jvm.buffer.pool.name - type: string - stability: experimental - brief: Name of the buffer pool. - examples: [ "mapped", "direct" ] - note: > - Pool names are generally obtained via - [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()). diff --git a/model/k8s/deprecated/k8s-registry-deprecated.yaml b/model/k8s/deprecated/k8s-registry-deprecated.yaml deleted file mode 100644 index a928d2d31e..0000000000 --- a/model/k8s/deprecated/k8s-registry-deprecated.yaml +++ /dev/null @@ -1,12 +0,0 @@ -groups: - - id: registry.k8s.deprecated - type: attribute_group - display_name: Deprecated Kubernetes Attributes - brief: "Describes deprecated k8s attributes." - attributes: - - id: k8s.pod.labels - type: template[string] - examples: ['k8s.pod.label.app=my-app'] - brief: "Deprecated, use `k8s.pod.label` instead." - stability: experimental - deprecated: "Replaced by `k8s.pod.label`." diff --git a/model/k8s/k8s-metrics.yaml b/model/k8s/k8s-metrics.yaml deleted file mode 100644 index b11a6f68d4..0000000000 --- a/model/k8s/k8s-metrics.yaml +++ /dev/null @@ -1,40 +0,0 @@ -groups: - # k8s.pod.cpu.* metrics - - id: metric.k8s.pod.cpu.time - type: metric - metric_name: k8s.pod.cpu.time - stability: experimental - brief: "Total CPU time consumed" - note: > - Total CPU time consumed by the specific Pod on all available CPU cores - instrument: counter - unit: "s" - - id: metric.k8s.pod.cpu.usage - type: metric - metric_name: k8s.pod.cpu.usage - stability: experimental - brief: "Pod's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs" - note: > - CPU usage of the specific Pod on all available CPU cores, averaged over the sample window - instrument: gauge - unit: "{cpu}" - - # k8s.node.cpu.* metrics - - id: metric.k8s.node.cpu.time - type: metric - metric_name: k8s.node.cpu.time - stability: experimental - brief: "Total CPU time consumed" - note: > - Total CPU time consumed by the specific Node on all available CPU cores - instrument: counter - unit: "s" - - id: metric.k8s.node.cpu.usage - type: metric - metric_name: k8s.node.cpu.usage - stability: experimental - brief: "Node's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs" - note: > - CPU usage of the specific Node on all available CPU cores, averaged over the sample window - instrument: gauge - unit: "{cpu}" diff --git a/model/k8s/k8s-registry.yaml b/model/k8s/k8s-registry.yaml deleted file mode 100644 index 6767f3575e..0000000000 --- a/model/k8s/k8s-registry.yaml +++ /dev/null @@ -1,216 +0,0 @@ -groups: - - id: registry.k8s - type: attribute_group - display_name: Kubernetes Attributes - brief: > - Kubernetes resource attributes. - attributes: - - id: k8s.cluster.name - type: string - stability: experimental - brief: > - The name of the cluster. - examples: ['opentelemetry-cluster'] - - id: k8s.cluster.uid - type: string - stability: experimental - brief: > - A pseudo-ID for the cluster, set to the UID of the `kube-system` - namespace. - note: | - K8s doesn't have support for obtaining a cluster ID. If this is ever - added, we will recommend collecting the `k8s.cluster.uid` through the - official APIs. In the meantime, we are able to use the `uid` of the - `kube-system` namespace as a proxy for cluster ID. Read on for the - rationale. - - Every object created in a K8s cluster is assigned a distinct UID. The - `kube-system` namespace is used by Kubernetes itself and will exist - for the lifetime of the cluster. Using the `uid` of the `kube-system` - namespace is a reasonable proxy for the K8s ClusterID as it will only - change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are - UUIDs as standardized by - [ISO/IEC 9834-8 and ITU-T X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html). - Which states: - - > If generated according to one of the mechanisms defined in Rec. - ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be - different from all other UUIDs generated before 3603 A.D., or is - extremely likely to be different (depending on the mechanism chosen). - - Therefore, UIDs between clusters should be extremely unlikely to - conflict. - examples: ['218fc5a9-a5f1-4b54-aa05-46717d0ab26d'] - - id: k8s.node.name - type: string - stability: experimental - brief: > - The name of the Node. - examples: ['node-1'] - - id: k8s.node.uid - type: string - stability: experimental - brief: > - The UID of the Node. - examples: ['1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2'] - - id: k8s.namespace.name - type: string - stability: experimental - brief: > - The name of the namespace that the pod is running in. - examples: ['default'] - - id: k8s.pod.uid - type: string - stability: experimental - brief: > - The UID of the Pod. - examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'] - - id: k8s.pod.name - type: string - stability: experimental - brief: > - The name of the Pod. - examples: ['opentelemetry-pod-autoconf'] - - id: k8s.pod.label - type: template[string] - stability: experimental - brief: > - The label key-value pairs placed on the Pod, the `` being the label name, the value being the label value. - examples: ['k8s.pod.label.app=my-app', 'k8s.pod.label.mycompany.io/arch=x64', 'k8s.pod.label.data='] - - id: k8s.pod.annotation - type: template[string] - stability: experimental - brief: > - The annotation key-value pairs placed on the Pod, the `` being the annotation name, the value being the annotation value. - examples: [ 'k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets=true', 'k8s.pod.annotation.mycompany.io/arch=x64', 'k8s.pod.annotation.data=' ] - - id: k8s.container.name - type: string - stability: experimental - brief: > - The name of the Container from Pod specification, must be unique - within a Pod. Container runtime usually uses different globally unique - name (`container.name`). - examples: ['redis'] - - id: k8s.container.restart_count - type: int - stability: experimental - brief: > - Number of times the container was restarted. This attribute can be - used to identify a particular container (running or stopped) within a - container spec. - - id: k8s.container.status.last_terminated_reason - type: string - stability: experimental - brief: > - Last terminated reason of the Container. - examples: ["Evicted", "Error"] - - - id: k8s.replicaset.uid - type: string - stability: experimental - brief: > - The UID of the ReplicaSet. - examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'] - - id: k8s.replicaset.name - type: string - stability: experimental - brief: > - The name of the ReplicaSet. - examples: ['opentelemetry'] - - id: k8s.deployment.uid - type: string - stability: experimental - brief: > - The UID of the Deployment. - examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'] - - id: k8s.deployment.name - type: string - stability: experimental - brief: > - The name of the Deployment. - examples: ['opentelemetry'] - - id: k8s.statefulset.uid - type: string - stability: experimental - brief: > - The UID of the StatefulSet. - examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'] - - id: k8s.statefulset.name - type: string - stability: experimental - brief: > - The name of the StatefulSet. - examples: ['opentelemetry'] - - id: k8s.daemonset.uid - type: string - stability: experimental - brief: > - The UID of the DaemonSet. - examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'] - - id: k8s.daemonset.name - type: string - stability: experimental - brief: > - The name of the DaemonSet. - examples: ['opentelemetry'] - - id: k8s.job.uid - type: string - stability: experimental - brief: > - The UID of the Job. - examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'] - - id: k8s.job.name - type: string - stability: experimental - brief: > - The name of the Job. - examples: ['opentelemetry'] - - id: k8s.cronjob.uid - type: string - stability: experimental - brief: > - The UID of the CronJob. - examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'] - - id: k8s.cronjob.name - type: string - stability: experimental - brief: > - The name of the CronJob. - examples: ['opentelemetry'] - - id: k8s.volume.name - type: string - stability: experimental - brief: > - The name of the K8s volume. - examples: [ 'volume0' ] - - id: k8s.volume.type - stability: experimental - brief: > - The type of the K8s volume. - examples: [ "emptyDir", "persistentVolumeClaim" ] - type: - members: - - id: persistent_volume_claim - value: 'persistentVolumeClaim' - brief: "A [persistentVolumeClaim](https://v1-29.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume" - stability: experimental - - id: config_map - value: 'configMap' - brief: "A [configMap](https://v1-29.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume" - stability: experimental - - id: downward_api - value: 'downwardAPI' - brief: "A [downwardAPI](https://v1-29.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume" - stability: experimental - - id: empty_dir - value: 'emptyDir' - brief: "An [emptyDir](https://v1-29.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume" - stability: experimental - - id: secret - value: 'secret' - brief: "A [secret](https://v1-29.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume" - stability: experimental - - id: local - value: 'local' - brief: "A [local](https://v1-29.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume" - stability: experimental diff --git a/model/k8s/k8s-resources.yaml b/model/k8s/k8s-resources.yaml deleted file mode 100644 index 50d2e8c254..0000000000 --- a/model/k8s/k8s-resources.yaml +++ /dev/null @@ -1,102 +0,0 @@ -groups: - - id: k8s.cluster - type: resource - name: k8s.cluster - brief: > - A Kubernetes Cluster. - attributes: - - ref: k8s.cluster.name - - ref: k8s.cluster.uid - - - id: k8s.node - type: resource - name: k8s.node - brief: > - A Kubernetes Node object. - attributes: - - ref: k8s.node.name - - ref: k8s.node.uid - - - id: k8s.namespace - type: resource - name: k8s.namespace - brief: > - A Kubernetes Namespace. - attributes: - - ref: k8s.namespace.name - - - id: k8s.pod - type: resource - name: k8s.pod - brief: > - A Kubernetes Pod object. - attributes: - - ref: k8s.pod.uid - - ref: k8s.pod.name - - ref: k8s.pod.label - - ref: k8s.pod.annotation - requirement_level: opt_in - - - id: k8s.container - type: resource - name: k8s.container - brief: > - A container in a [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates). - attributes: - - ref: k8s.container.name - - ref: k8s.container.restart_count - - ref: k8s.container.status.last_terminated_reason - - - id: k8s.replicaset - type: resource - name: k8s.replicaset - brief: > - A Kubernetes ReplicaSet object. - attributes: - - ref: k8s.replicaset.uid - - ref: k8s.replicaset.name - - - id: k8s.deployment - type: resource - name: k8s.deployment - brief: > - A Kubernetes Deployment object. - attributes: - - ref: k8s.deployment.uid - - ref: k8s.deployment.name - - - id: k8s.statefulset - type: resource - name: k8s.statefulset - brief: > - A Kubernetes StatefulSet object. - attributes: - - ref: k8s.statefulset.uid - - ref: k8s.statefulset.name - - - id: k8s.daemonset - type: resource - name: k8s.daemonset - brief: > - A Kubernetes DaemonSet object. - attributes: - - ref: k8s.daemonset.uid - - ref: k8s.daemonset.name - - - id: k8s.job - type: resource - name: k8s.job - brief: > - A Kubernetes Job object. - attributes: - - ref: k8s.job.uid - - ref: k8s.job.name - - - id: k8s.cronjob - type: resource - name: k8s.cronjob - brief: > - A Kubernetes CronJob object. - attributes: - - ref: k8s.cronjob.uid - - ref: k8s.cronjob.name diff --git a/model/kestrel/kestrel-metrics.yaml b/model/kestrel/kestrel-metrics.yaml deleted file mode 100644 index 0d1499a34c..0000000000 --- a/model/kestrel/kestrel-metrics.yaml +++ /dev/null @@ -1,128 +0,0 @@ -groups: - - id: common.kestrel.attributes - type: attribute_group - brief: 'Common kestrel attributes' - attributes: - - ref: server.address - - ref: server.port - - ref: network.type - requirement_level: - recommended: if the transport is `tcp` or `udp` - - ref: network.transport - examples: ['tcp', 'unix'] - - - id: metric.kestrel.active_connections - type: metric - metric_name: kestrel.active_connections - stability: stable - brief: Number of connections that are currently active on the server. - instrument: updowncounter - unit: "{connection}" - note: | - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes - - - id: metric.kestrel.connection.duration - type: metric - metric_name: kestrel.connection.duration - stability: stable - brief: The duration of connections on the server. - instrument: histogram - unit: "s" - note: | - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes - attributes: - - ref: network.protocol.name - examples: ['http', 'web_sockets'] - - ref: network.protocol.version - examples: ["1.1", "2"] - - ref: tls.protocol.version - - ref: error.type - brief: The full name of exception type. - requirement_level: - conditionally_required: if and only if an error has occurred. - note: "Captures the exception type when a connection fails." - examples: ['System.OperationCanceledException', 'Contoso.MyException'] - - - id: metric.kestrel.rejected_connections - type: metric - metric_name: kestrel.rejected_connections - stability: stable - brief: Number of connections rejected by the server. - instrument: counter - unit: "{connection}" - note: | - Connections are rejected when the currently active count exceeds the value configured with `MaxConcurrentConnections`. - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes - - - id: metric.kestrel.queued_connections - type: metric - metric_name: kestrel.queued_connections - stability: stable - brief: Number of connections that are currently queued and are waiting to start. - instrument: updowncounter - unit: "{connection}" - note: | - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes - - - id: metric.kestrel.queued_requests - type: metric - metric_name: kestrel.queued_requests - stability: stable - brief: Number of HTTP requests on multiplexed connections (HTTP/2 and HTTP/3) that are currently queued and are waiting to start. - instrument: updowncounter - unit: "{request}" - note: | - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes - attributes: - - ref: network.protocol.name - examples: ['http', 'web_sockets'] - - ref: network.protocol.version - examples: ["1.1", "2"] - - - id: metric.kestrel.upgraded_connections - type: metric - metric_name: kestrel.upgraded_connections - stability: stable - brief: Number of connections that are currently upgraded (WebSockets). . - instrument: updowncounter - unit: "{connection}" - note: | - The counter only tracks HTTP/1.1 connections. - - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes - - - id: metric.kestrel.tls_handshake.duration - type: metric - metric_name: kestrel.tls_handshake.duration - stability: stable - brief: The duration of TLS handshakes on the server. - instrument: histogram - unit: "s" - note: | - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes - attributes: - - ref: tls.protocol.version - - ref: error.type - brief: The full name of exception type. - note: "Captures the exception type when a TLS handshake fails." - requirement_level: - conditionally_required: if and only if an error has occurred. - examples: ['System.OperationCanceledException', 'Contoso.MyException'] - - - id: metric.kestrel.active_tls_handshakes - type: metric - metric_name: kestrel.active_tls_handshakes - stability: stable - brief: Number of TLS handshakes that are currently in progress on the server. - instrument: updowncounter - unit: "{handshake}" - note: | - Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0 - extends: common.kestrel.attributes diff --git a/model/linux/linux-registry.yaml b/model/linux/linux-registry.yaml deleted file mode 100644 index a3bf3f1554..0000000000 --- a/model/linux/linux-registry.yaml +++ /dev/null @@ -1,18 +0,0 @@ -groups: - # linux.memory.* attribute group - - id: registry.linux.memory - type: attribute_group - brief: "Describes Linux Memory attributes" - attributes: - - id: linux.memory.slab.state - type: - members: - - id: reclaimable - value: 'reclaimable' - stability: experimental - - id: unreclaimable - value: 'unreclaimable' - stability: experimental - stability: experimental - brief: "The Linux Slab memory state" - examples: ["reclaimable", "unreclaimable"] diff --git a/model/log/log-common.yaml b/model/log/log-common.yaml deleted file mode 100644 index 47b7af71f5..0000000000 --- a/model/log/log-common.yaml +++ /dev/null @@ -1,31 +0,0 @@ -groups: - - id: log.record - type: attribute_group - brief: > - The attributes described in this section are rather generic. They may be used in any Log Record they apply to. - attributes: - - ref: log.record.uid - requirement_level: opt_in - - ref: log.record.original - requirement_level: opt_in - - - id: attributes.log - type: attribute_group - brief: "Describes Log attributes" - attributes: - - ref: log.iostream - requirement_level: opt_in - - - id: attributes.log.file - type: attribute_group - brief: > - A file to which log was emitted. - attributes: - - ref: log.file.name - requirement_level: recommended - - ref: log.file.path - requirement_level: opt_in - - ref: log.file.name_resolved - requirement_level: opt_in - - ref: log.file.path_resolved - requirement_level: opt_in diff --git a/model/log/log-registry.yaml b/model/log/log-registry.yaml deleted file mode 100644 index 7775f2bc61..0000000000 --- a/model/log/log-registry.yaml +++ /dev/null @@ -1,82 +0,0 @@ -groups: - - id: registry.log - type: attribute_group - display_name: General Log Attributes - brief: > - This document defines log attributes - attributes: - - id: log.iostream - stability: experimental - brief: > - The stream associated with the log. See below for a list of well-known values. - type: - members: - - id: stdout - value: 'stdout' - brief: 'Logs from stdout stream' - stability: experimental - - id: stderr - value: 'stderr' - brief: 'Events from stderr stream' - stability: experimental - - - id: registry.log.file # TODO: should we move it to the file model? - type: attribute_group - display_name: Log File Attributes - brief: > - Attributes for a file to which log was emitted. - attributes: - - id: log.file.name - type: string - stability: experimental - brief: > - The basename of the file. - examples: [ "audit.log" ] - - id: log.file.path - type: string - stability: experimental - brief: > - The full path to the file. - examples: [ "/var/log/mysql/audit.log" ] - - id: log.file.name_resolved - type: string - stability: experimental - brief: > - The basename of the file, with symlinks resolved. - examples: [ "uuid.log" ] - - id: log.file.path_resolved - type: string - stability: experimental - brief: > - The full path to the file, with symlinks resolved. - examples: [ "/var/lib/docker/uuid.log" ] - - - id: registry.log.record - type: attribute_group - display_name: Log Record Attributes - brief: > - This document defines the generic attributes that may be used in any Log Record. - attributes: - - id: log.record.uid - type: string - stability: experimental - brief: > - A unique identifier for the Log Record. - note: > - If an id is provided, other log records with the same id will be considered duplicates and can be removed safely. - This means, that two distinguishable log records MUST have different values. - - The id MAY be an [Universally Unique Lexicographically Sortable Identifier (ULID)](https://github.com/ulid/spec), - but other identifiers (e.g. UUID) may be used as needed. - examples: ["01ARZ3NDEKTSV4RRFFQ69G5FAV"] - - id: log.record.original - type: string - stability: experimental - brief: > - The complete original Log Record. - note: > - This value MAY be added when processing a Log Record which was originally transmitted as a string or equivalent data type AND - the Body field of the Log Record does not contain the same value. (e.g. a syslog or a log record read from a file.) - examples: - - "77 <86>1 2015-08-06T21:58:59.694Z 192.168.2.133 inactive - - - Something happened" - - "[INFO] 8/3/24 12:34:56 Something happened" diff --git a/model/messaging/deprecated/messaging-metrics-deprecated.yaml b/model/messaging/deprecated/messaging-metrics-deprecated.yaml deleted file mode 100644 index c0746d70ab..0000000000 --- a/model/messaging/deprecated/messaging-metrics-deprecated.yaml +++ /dev/null @@ -1,50 +0,0 @@ -groups: - - id: metric.messaging.publish.duration - type: metric - metric_name: messaging.publish.duration - brief: "Deprecated. Use `messaging.client.operation.duration` instead." - deprecated: "Replaced by `messaging.client.operation.duration`." - stability: experimental - instrument: histogram - unit: "s" - extends: attributes.messaging.common.minimal - - - id: metric.messaging.receive.duration - type: metric - metric_name: messaging.receive.duration - brief: "Deprecated. Use `messaging.client.operation.duration` instead." - deprecated: "Replaced by `messaging.client.operation.duration`." - stability: experimental - instrument: histogram - unit: "s" - extends: attributes.messaging.common.minimal - - - id: metric.messaging.process.messages - type: metric - metric_name: messaging.process.messages - brief: "Deprecated. Use `messaging.client.consumed.messages` instead." - deprecated: "Replaced by `messaging.client.consumed.messages`." - stability: experimental - instrument: counter - unit: "{message}" - extends: attributes.messaging.common.minimal - - - id: metric.messaging.publish.messages - type: metric - metric_name: messaging.publish.messages - brief: "Deprecated. Use `messaging.client.produced.messages` instead." - deprecated: "Replaced by `messaging.client.produced.messages`." - stability: experimental - instrument: counter - unit: "{message}" - extends: attributes.messaging.common.minimal - - - id: metric.messaging.receive.messages - type: metric - metric_name: messaging.receive.messages - brief: "Deprecated. Use `messaging.client.consumed.messages` instead." - deprecated: "Replaced by `messaging.client.consumed.messages`." - stability: experimental - instrument: counter - unit: "{message}" - extends: attributes.messaging.common.minimal diff --git a/model/messaging/deprecated/messaging-registry-deprecated.yaml b/model/messaging/deprecated/messaging-registry-deprecated.yaml deleted file mode 100644 index 02c145f2ce..0000000000 --- a/model/messaging/deprecated/messaging-registry-deprecated.yaml +++ /dev/null @@ -1,73 +0,0 @@ -groups: - - id: registry.messaging.deprecated - type: attribute_group - display_name: Deprecated Messaging Attributes - brief: "Describes deprecated messaging attributes." - attributes: - - id: messaging.kafka.destination.partition - type: int - brief: > - Deprecated, use `messaging.destination.partition.id` instead. - examples: 2 - deprecated: "Replaced by `messaging.destination.partition.id`." - stability: experimental - - id: messaging.operation - type: string - stability: experimental - brief: > - Deprecated, use `messaging.operation.type` instead. - examples: ["publish", "create", "process"] - deprecated: "Replaced by `messaging.operation.type`." - - id: messaging.client_id - type: string - stability: experimental - brief: > - Deprecated, use `messaging.client.id` instead. - examples: ['client-5', 'myhost@8742@s8083jm'] - deprecated: "Replaced by `messaging.client.id`." - - id: messaging.kafka.consumer.group - type: string - brief: > - Deprecated, use `messaging.consumer.group.name` instead. - deprecated: "Replaced by `messaging.consumer.group.name`." - stability: experimental - examples: 'my-group' - - id: messaging.rocketmq.client_group - type: string - brief: > - Deprecated, use `messaging.consumer.group.name` instead. - stability: experimental - examples: 'myConsumerGroup' - deprecated: "Replaced by `messaging.consumer.group.name` on the consumer spans. No replacement for producer spans." - - id: messaging.eventhubs.consumer.group - type: string - brief: > - Deprecated, use `messaging.consumer.group.name` instead. - stability: experimental - examples: '$Default' - deprecated: "Replaced by `messaging.consumer.group.name`." - - id: messaging.servicebus.destination.subscription_name - type: string - brief: > - Deprecated, use `messaging.servicebus.destination.subscription_name` instead. - stability: experimental - examples: 'subscription-a' - deprecated: "Replaced by `messaging.servicebus.destination.subscription_name`." - - id: messaging.kafka.message.offset - type: int - stability: experimental - brief: > - Deprecated, use `messaging.kafka.offset` instead. - examples: 42 - deprecated: "Replaced by `messaging.kafka.offset`." - - id: messaging.destination_publish.anonymous - type: boolean - stability: experimental - brief: 'Deprecated, no replacement at this time.' - deprecated: "No replacement at this time." - - id: messaging.destination_publish.name - type: string - stability: experimental - brief: 'Deprecated, no replacement at this time.' - deprecated: "No replacement at this time." - examples: ['MyQueue', 'MyTopic'] diff --git a/model/messaging/messaging-common.yaml b/model/messaging/messaging-common.yaml deleted file mode 100644 index 8bca1a2d5a..0000000000 --- a/model/messaging/messaging-common.yaml +++ /dev/null @@ -1,19 +0,0 @@ -groups: - - id: attributes.messaging.common.minimal - type: attribute_group - brief: "Common cross-signal messaging attributes." - stability: experimental - attributes: - # TODO: Not adding `messaging.system` to the minimal because of https://github.com/open-telemetry/build-tools/issues/192 - - ref: error.type - examples: ["amqp:decode-error", "KAFKA_STORAGE_ERROR", "channel-error"] - requirement_level: - conditionally_required: If and only if the messaging operation has failed. - - ref: server.address - note: > - Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. - requirement_level: - conditionally_required: If available. - - ref: server.port - - ref: messaging.operation.name - requirement_level: required diff --git a/model/messaging/messaging-metrics.yaml b/model/messaging/messaging-metrics.yaml deleted file mode 100644 index 5dd4891fb9..0000000000 --- a/model/messaging/messaging-metrics.yaml +++ /dev/null @@ -1,94 +0,0 @@ -groups: - - id: metric.messaging.attributes - type: attribute_group - stability: experimental - brief: "Common messaging metrics attributes." - extends: attributes.messaging.common.minimal - attributes: - - ref: messaging.system - requirement_level: required - - ref: messaging.destination.partition.id - - ref: messaging.destination.name - requirement_level: - conditionally_required: if and only if `messaging.destination.name` is known to have low cardinality. Otherwise, `messaging.destination.template` MAY be populated. - - ref: messaging.destination.template - requirement_level: - conditionally_required: if available. - - - id: metric.messaging.consumer.attributes - type: attribute_group - stability: experimental - brief: "Messaging consumer metrics attributes." - extends: metric.messaging.attributes - attributes: - - ref: messaging.consumer.group.name - requirement_level: - conditionally_required: if applicable. - - ref: messaging.destination.subscription.name - requirement_level: - conditionally_required: if applicable. - - # durations - - id: metric.messaging.client.operation.duration - type: metric - metric_name: messaging.client.operation.duration - brief: "Duration of messaging operation initiated by a producer or consumer client." - note: > - This metric SHOULD NOT be used to report processing duration - processing duration is reported in `messaging.process.duration` metric. - stability: experimental - instrument: histogram - unit: "s" - extends: metric.messaging.consumer.attributes - attributes: - - ref: messaging.operation.type - requirement_level: - conditionally_required: If applicable. - - ref: messaging.operation.name - examples: ["send", "receive", "ack"] - - - id: metric.messaging.process.duration - type: metric - metric_name: messaging.process.duration - brief: "Duration of processing operation." - note: > - This metric MUST be reported for operations with `messaging.operation.type` that matches `process`. - stability: experimental - instrument: histogram - unit: "s" - extends: metric.messaging.consumer.attributes - attributes: - - ref: messaging.operation.name - examples: ["process", "consume", "handle"] - - # counters - - id: metric.messaging.client.published.messages - type: metric - metric_name: messaging.client.published.messages - brief: "Number of messages producer attempted to publish to the broker." - note: > - This metric MUST NOT count messages that were created haven't yet been attempted to be published. - stability: experimental - instrument: counter - unit: "{message}" - extends: metric.messaging.attributes - attributes: - - ref: messaging.operation.name - examples: ["send", "schedule", "enqueue"] - - - id: metric.messaging.client.consumed.messages - type: metric - metric_name: messaging.client.consumed.messages - brief: "Number of messages that were delivered to the application." - note: > - Records the number of messages pulled from the broker or number of messages dispatched to the application in push-based scenarios. - - The metric SHOULD be reported once per message delivery. For example, if receiving and - processing operations are both instrumented for a single message delivery, this counter - is incremented when the message is received and not reported when it is processed. - stability: experimental - instrument: counter - unit: "{message}" - extends: metric.messaging.consumer.attributes - attributes: - - ref: messaging.operation.name - examples: ["receive", "peek", "poll", "consume"] diff --git a/model/messaging/messaging-registry.yaml b/model/messaging/messaging-registry.yaml deleted file mode 100644 index 7adbba2bc9..0000000000 --- a/model/messaging/messaging-registry.yaml +++ /dev/null @@ -1,407 +0,0 @@ -groups: - - id: registry.messaging - type: attribute_group - display_name: General Messaging Attributes - brief: 'Attributes describing telemetry around messaging systems and messaging activities.' - attributes: - - id: messaging.batch.message_count - type: int - stability: experimental - brief: The number of messages sent, received, or processed in the scope of the batching operation. - note: > - Instrumentations SHOULD NOT set `messaging.batch.message_count` on spans that operate with a single message. - When a messaging client library supports both batch and single-message API for the same operation, instrumentations SHOULD - use `messaging.batch.message_count` for batching APIs and SHOULD NOT use it for single-message APIs. - examples: [0, 1, 2] - - id: messaging.client.id - type: string - stability: experimental - brief: > - A unique identifier for the client that consumes or produces a message. - examples: ['client-5', 'myhost@8742@s8083jm'] - - id: messaging.consumer.group.name - type: string - stability: experimental - brief: > - The name of the consumer group with which a consumer is associated. - note: > - Semantic conventions for individual messaging systems SHOULD document whether `messaging.consumer.group.name` - is applicable and what it means in the context of that system. - examples: ['my-group', 'indexer'] - - id: messaging.destination.name - type: string - stability: experimental - brief: 'The message destination name' - note: | - Destination name SHOULD uniquely identify a specific queue, topic or other entity within the broker. If - the broker doesn't have such notion, the destination name SHOULD uniquely identify the broker. - examples: ['MyQueue', 'MyTopic'] - - id: messaging.destination.subscription.name - type: string - stability: experimental - brief: 'The name of the destination subscription from which a message is consumed.' - note: > - Semantic conventions for individual messaging systems SHOULD document whether `messaging.destination.subscription.name` - is applicable and what it means in the context of that system. - examples: ['subscription-a'] - - id: messaging.destination.template - type: string - stability: experimental - brief: Low cardinality representation of the messaging destination name - note: > - Destination names could be constructed from templates. - An example would be a destination name involving a user name or product id. - Although the destination name in this case is of high cardinality, - the underlying template is of low cardinality and can be effectively - used for grouping and aggregation. - examples: ['/customers/{customerId}'] - - id: messaging.destination.anonymous - type: boolean - stability: experimental - brief: 'A boolean that is true if the message destination is anonymous (could be unnamed or have auto-generated name).' - - id: messaging.destination.temporary - type: boolean - stability: experimental - brief: 'A boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.' - - id: messaging.destination.partition.id - type: string - stability: experimental - brief: > - The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. - examples: '1' - - id: messaging.message.conversation_id - type: string - stability: experimental - brief: > - The conversation ID identifying the conversation to which the message belongs, - represented as a string. Sometimes called "Correlation ID". - examples: 'MyConversationId' - - id: messaging.message.envelope.size - type: int - stability: experimental - brief: > - The size of the message body and metadata in bytes. - note: | - This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed - size should be used. - examples: 2738 - - id: messaging.message.id - type: string - stability: experimental - brief: 'A value used by the messaging system as an identifier for the message, represented as a string.' - examples: '452a7c7c7c7048c2f887f61572b18fc2' - - id: messaging.message.body.size - type: int - stability: experimental - brief: > - The size of the message body in bytes. - note: | - This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed - body size should be used. - examples: 1439 - - id: messaging.operation.type - type: - members: - - id: publish - value: "publish" - brief: > - One or more messages are provided for publishing to an intermediary. - If a single message is published, the context of the "Publish" span can be used as the creation context and no "Create" span needs to be created. - stability: experimental - - id: create - value: "create" - brief: > - A message is created. - "Create" spans always refer to a single message and are used to provide a unique creation context for messages in batch publishing scenarios. - stability: experimental - - id: receive - value: "receive" - brief: > - One or more messages are requested by a consumer. - This operation refers to pull-based scenarios, where consumers explicitly call methods of messaging SDKs to receive messages. - stability: experimental - - id: process - value: "process" - brief: > - One or more messages are processed by a consumer. - stability: experimental - - id: settle - value: "settle" - brief: > - One or more messages are settled. - stability: experimental - - id: deliver - value: "deliver" - brief: "Deprecated. Use `process` instead." - deprecated: "Replaced by `process`." - stability: experimental - - stability: experimental - brief: > - A string identifying the type of the messaging operation. - note: If a custom value is used, it MUST be of low cardinality. - - id: messaging.operation.name - type: string - stability: experimental - brief: > - The system-specific name of the messaging operation. - examples: [ "ack", "nack", "send" ] - - id: messaging.system - brief: The messaging system as identified by the client instrumentation. - note: > - The actual messaging system may differ from the one known by the client. - For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` - is set to `kafka` based on the instrumentation's best knowledge. - type: - members: - - id: activemq - value: 'activemq' - brief: 'Apache ActiveMQ' - stability: experimental - - id: aws_sqs - value: 'aws_sqs' - brief: 'Amazon Simple Queue Service (SQS)' - stability: experimental - - id: eventgrid - value: 'eventgrid' - brief: 'Azure Event Grid' - stability: experimental - - id: eventhubs - value: 'eventhubs' - brief: 'Azure Event Hubs' - stability: experimental - - id: servicebus - value: 'servicebus' - brief: 'Azure Service Bus' - stability: experimental - - id: gcp_pubsub - value: 'gcp_pubsub' - brief: 'Google Cloud Pub/Sub' - stability: experimental - - id: jms - value: 'jms' - brief: 'Java Message Service' - stability: experimental - - id: kafka - value: 'kafka' - brief: 'Apache Kafka' - stability: experimental - - id: rabbitmq - value: 'rabbitmq' - brief: 'RabbitMQ' - stability: experimental - - id: rocketmq - value: 'rocketmq' - brief: 'Apache RocketMQ' - stability: experimental - - id: pulsar - value: 'pulsar' - brief: 'Apache Pulsar' - stability: experimental - stability: experimental - - id: registry.messaging.kafka - type: attribute_group - display_name: Kafka Attributes - brief: > - This group describes attributes specific to Apache Kafka. - attributes: - - id: messaging.kafka.message.key - type: string - stability: experimental - brief: > - Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. - They differ from `messaging.message.id` in that they're not unique. - If the key is `null`, the attribute MUST NOT be set. - note: > - If the key type is not string, it's string representation has to be supplied for the attribute. - If the key has no unambiguous, canonical string form, don't include its value. - examples: 'myKey' - - id: messaging.kafka.offset - type: int - stability: experimental - brief: > - The offset of a record in the corresponding Kafka partition. - examples: 42 - - id: messaging.kafka.message.tombstone - type: boolean - stability: experimental - brief: 'A boolean that is true if the message is a tombstone.' - - id: registry.messaging.rabbitmq - type: attribute_group - display_name: RabbitMQ Attributes - brief: > - This group describes attributes specific to RabbitMQ. - attributes: - - id: messaging.rabbitmq.destination.routing_key - type: string - stability: experimental - brief: > - RabbitMQ message routing key. - examples: 'myKey' - - id: messaging.rabbitmq.message.delivery_tag - type: int - stability: experimental - brief: > - RabbitMQ message delivery tag - examples: 123 - - id: registry.messaging.rocketmq - type: attribute_group - display_name: RocketMQ Attributes - brief: > - This group describes attributes specific to RocketMQ. - attributes: - - id: messaging.rocketmq.consumption_model - type: - members: - - id: clustering - value: 'clustering' - brief: 'Clustering consumption model' - stability: experimental - - id: broadcasting - value: 'broadcasting' - brief: 'Broadcasting consumption model' - stability: experimental - stability: experimental - brief: > - Model of message consumption. This only applies to consumer spans. - - id: messaging.rocketmq.message.delay_time_level - type: int - stability: experimental - brief: > - The delay time level for delay message, which determines the message delay time. - examples: 3 - - id: messaging.rocketmq.message.delivery_timestamp - type: int - stability: experimental - brief: > - The timestamp in milliseconds that the delay message is expected to be delivered to consumer. - examples: 1665987217045 - - id: messaging.rocketmq.message.group - type: string - stability: experimental - brief: > - It is essential for FIFO message. Messages that belong to the same message group are always processed one by one within the same consumer group. - examples: 'myMessageGroup' - - id: messaging.rocketmq.message.keys - type: string[] - stability: experimental - brief: > - Key(s) of message, another way to mark message besides message id. - examples: - - [keyA, keyB] - - id: messaging.rocketmq.message.tag - type: string - stability: experimental - brief: > - The secondary classifier of message besides topic. - examples: tagA - - id: messaging.rocketmq.message.type - type: - members: - - id: normal - value: 'normal' - brief: "Normal message" - stability: experimental - - id: fifo - value: 'fifo' - brief: 'FIFO message' - stability: experimental - - id: delay - value: 'delay' - brief: 'Delay message' - stability: experimental - - id: transaction - value: 'transaction' - brief: 'Transaction message' - stability: experimental - stability: experimental - brief: > - Type of message. - - id: messaging.rocketmq.namespace - type: string - stability: experimental - brief: > - Namespace of RocketMQ resources, resources in different namespaces are individual. - examples: 'myNamespace' - - id: registry.messaging.gcp_pubsub - type: attribute_group - display_name: GCP Pub/Sub Attributes - brief: > - This group describes attributes specific to GCP Pub/Sub. - attributes: - - id: messaging.gcp_pubsub.message.ordering_key - type: string - stability: experimental - brief: > - The ordering key for a given message. If the attribute is not present, the message does not have an ordering key. - examples: 'ordering_key' - - id: messaging.gcp_pubsub.message.ack_id - type: string - stability: experimental - brief: > - The ack id for a given message. - examples: 'ack_id' - - id: messaging.gcp_pubsub.message.ack_deadline - type: int - stability: experimental - brief: > - The ack deadline in seconds set for the modify ack deadline request. - examples: 10 - - id: messaging.gcp_pubsub.message.delivery_attempt - type: int - stability: experimental - brief: > - The delivery attempt for a given message. - examples: 2 - - id: registry.messaging.servicebus - type: attribute_group - display_name: Azure Service Bus Attributes - brief: > - This group describes attributes specific to Azure Service Bus. - attributes: - - id: messaging.servicebus.message.delivery_count - type: int - stability: experimental - brief: > - Number of deliveries that have been attempted for this message. - examples: 2 - - id: messaging.servicebus.message.enqueued_time - type: int - stability: experimental - brief: > - The UTC epoch seconds at which the message has been accepted and stored in the entity. - examples: 1701393730 - - id: messaging.servicebus.disposition_status - brief: > - Describes the [settlement type](https://learn.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock). - type: - members: - - id: complete - value: 'complete' - brief: 'Message is completed' - stability: experimental - - id: abandon - value: 'abandon' - brief: 'Message is abandoned' - stability: experimental - - id: dead_letter - value: 'dead_letter' - brief: 'Message is sent to dead letter queue' - stability: experimental - - id: defer - value: 'defer' - brief: 'Message is deferred' - stability: experimental - stability: experimental - - id: registry.messaging.eventhubs - type: attribute_group - display_name: Azure Event Hubs Attributes - brief: > - This group describes attributes specific to Azure Event Hubs. - attributes: - - id: messaging.eventhubs.message.enqueued_time - type: int - stability: experimental - brief: > - The UTC epoch seconds at which the message has been accepted and stored in the entity. - examples: 1701393730 diff --git a/model/messaging/messaging-spans.yaml b/model/messaging/messaging-spans.yaml deleted file mode 100644 index cc10819f8a..0000000000 --- a/model/messaging/messaging-spans.yaml +++ /dev/null @@ -1,285 +0,0 @@ -groups: - - id: attributes.messaging.trace.minimal - type: attribute_group - brief: > - Defines minimal set of attributes used by all messaging systems. - extends: attributes.messaging.common.minimal - attributes: - - ref: messaging.operation.name - requirement_level: required - sampling_relevant: true - - ref: messaging.operation.type - requirement_level: - conditionally_required: If applicable. - sampling_relevant: true - - ref: messaging.destination.name - requirement_level: - conditionally_required: If span describes operation on a single message or if the value applies to all messages in the batch. - sampling_relevant: true - - ref: messaging.message.id - requirement_level: - recommended: If span describes operation on a single message. - - ref: server.address - sampling_relevant: true - - ref: server.port - sampling_relevant: true - # TODO: add messaging.system once https://github.com/open-telemetry/build-tools/issues/192 is implemented - # - ref: messaging.system - # sampling_relevant: true - - - id: messaging - type: span - brief: > - Defines a full set of attributes used in messaging systems. - extends: attributes.messaging.trace.minimal - attributes: - - ref: messaging.system - requirement_level: required - sampling_relevant: true - - ref: messaging.client.id - requirement_level: recommended - - ref: messaging.destination.partition.id - requirement_level: - recommended: When applicable. - sampling_relevant: true - - ref: messaging.destination.template - requirement_level: - conditionally_required: > - If available. Instrumentations MUST NOT use `messaging.destination.name` as template - unless low-cardinality of destination name is guaranteed. - sampling_relevant: true - - ref: messaging.destination.temporary - requirement_level: - conditionally_required: If value is `true`. When missing, the value is assumed to be `false`. - - ref: messaging.destination.anonymous - requirement_level: - conditionally_required: If value is `true`. When missing, the value is assumed to be `false`. - - ref: messaging.consumer.group.name - requirement_level: - conditionally_required: If applicable. - sampling_relevant: true - - ref: messaging.destination.subscription.name - requirement_level: - conditionally_required: If applicable. - sampling_relevant: true - - ref: messaging.message.conversation_id - - ref: messaging.message.envelope.size - - ref: messaging.message.body.size - - ref: messaging.batch.message_count - requirement_level: - conditionally_required: If the span describes an operation on a batch of messages. - - ref: network.peer.address - brief: Peer address of the messaging intermediary node where the operation was performed. - requirement_level: - recommended: If applicable for this messaging system. - note: > - Semantic conventions for individual messaging systems SHOULD document whether `network.peer.*` attributes are applicable. - - Network peer address and port are important when the application interacts with individual intermediary nodes directly, - - If a messaging operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. - - ref: network.peer.port - brief: Peer port of the messaging intermediary node where the operation was performed. - requirement_level: - recommended: if and only if `network.peer.address` is set. - - - id: messaging.network.attributes - type: attribute_group - brief: Attributes that describe messaging operation along with network information. - extends: attributes.messaging.trace.minimal - attributes: - - ref: network.peer.address - requirement_level: recommended - note: > - If an operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. - - ref: network.peer.port - requirement_level: recommended - - - id: messaging.rabbitmq - type: attribute_group - extends: messaging.network.attributes - brief: > - Attributes for RabbitMQ - attributes: - - ref: messaging.rabbitmq.destination.routing_key - requirement_level: - conditionally_required: If not empty. - - ref: messaging.rabbitmq.message.delivery_tag - requirement_level: - conditionally_required: When available. - - ref: messaging.message.conversation_id - brief: > - Message [correlation Id](https://www.rabbitmq.com/tutorials/tutorial-six-java#correlation-id) property. - - ref: messaging.message.body.size - - - id: messaging.kafka - type: attribute_group - extends: attributes.messaging.trace.minimal - brief: > - Attributes for Apache Kafka - attributes: - - ref: messaging.consumer.group.name - brief: "Kafka [consumer group id](https://docs.confluent.io/platform/current/clients/consumer.html)." - note: "" - sampling_relevant: true - - ref: messaging.destination.partition.id - brief: > - String representation of the partition id the message (or batch) is sent to or received from. - requirement_level: recommended - sampling_relevant: true - - ref: messaging.kafka.message.key - requirement_level: - recommended: If span describes operation on a single message. - - ref: messaging.kafka.offset - requirement_level: - recommended: If span describes operation on a single message. - - ref: messaging.kafka.message.tombstone - requirement_level: - conditionally_required: If value is `true`. When missing, the value is assumed to be `false`. - - ref: messaging.batch.message_count - requirement_level: - conditionally_required: If the span describes an operation on a batch of messages. - - ref: messaging.client.id - - ref: messaging.message.body.size - requirement_level: - recommended: If span describes operation on a single message. - - - id: messaging.rocketmq - type: attribute_group - extends: attributes.messaging.trace.minimal - brief: > - Attributes for Apache RocketMQ - attributes: - - ref: messaging.consumer.group.name - brief: "RocketMQ [consumer group name](https://rocketmq.apache.org/docs/domainModel/07consumergroup)." - note: "" - sampling_relevant: true - requirement_level: required - - ref: messaging.rocketmq.namespace - requirement_level: required - - ref: messaging.rocketmq.message.delivery_timestamp - requirement_level: - conditionally_required: If the message type is delay and delay time level is not specified. - - ref: messaging.rocketmq.message.delay_time_level - requirement_level: - conditionally_required: If the message type is delay and delivery timestamp is not specified. - - ref: messaging.rocketmq.message.group - requirement_level: - conditionally_required: If the message type is FIFO. - - ref: messaging.rocketmq.message.type - - ref: messaging.rocketmq.message.tag - - ref: messaging.rocketmq.message.keys - - ref: messaging.rocketmq.consumption_model - - ref: messaging.client.id - - ref: messaging.message.body.size - - ref: messaging.batch.message_count - requirement_level: - conditionally_required: If the span describes an operation on a batch of messages. - - - id: messaging.gcp_pubsub - type: attribute_group - stability: experimental - extends: attributes.messaging.trace.minimal - brief: > - Attributes for Google Cloud Pub/Sub - attributes: - - ref: messaging.destination.subscription.name - brief: "Google Pub/Sub [subscription name](https://cloud.google.com/pubsub/docs/subscription-overview)." - note: "" - sampling_relevant: true - - ref: messaging.gcp_pubsub.message.ordering_key - requirement_level: - conditionally_required: If the message type has an ordering key set. - - ref: messaging.gcp_pubsub.message.delivery_attempt - - ref: messaging.gcp_pubsub.message.ack_deadline - - ref: messaging.gcp_pubsub.message.ack_id - - ref: messaging.batch.message_count - requirement_level: - conditionally_required: If the span describes an operation on a batch of messages. - - ref: messaging.operation.name - note: | - The `messaging.operation.name` has the following list of well-known values in the context of Google Pub/Sub. - If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - - - `ack` and `nack` for settlement operations - - `send` for publishing operations - - `modack` for extending the lease for a single message or batch of messages - - `subscribe` for operations that represent the time from after the message was received to when the message is acknowledged, negatively acknowledged, or expired. - - `create` and `receive` for [common messaging operations](/docs/messaging/messaging-spans.md#operation-types) - - id: messaging.servicebus - type: attribute_group - extends: attributes.messaging.trace.minimal - brief: > - Attributes for Azure Service Bus - attributes: - - ref: messaging.destination.subscription.name - brief: "Azure Service Bus [subscription name](https://learn.microsoft.com/azure/service-bus-messaging/service-bus-queues-topics-subscriptions#topics-and-subscriptions)." - note: "" - sampling_relevant: true - requirement_level: - conditionally_required: If messages are received from the subscription. - - ref: messaging.servicebus.message.delivery_count - requirement_level: - conditionally_required: If delivery count is available and is bigger than 0. - - ref: messaging.servicebus.message.enqueued_time - - ref: messaging.servicebus.disposition_status - requirement_level: - conditionally_required: if and only if `messaging.operation` is `settle`. - - ref: messaging.message.conversation_id - brief: Message [correlation Id](https://learn.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads#message-routing-and-correlation) property. - - ref: messaging.batch.message_count - requirement_level: - conditionally_required: If the span describes an operation on a batch of messages. - - ref: messaging.operation.name - brief: Azure Service Bus operation name. - note: | - The operation name SHOULD match one of the following values: - - - sender operations: `send`, `schedule`, `cancel_scheduled` - - transaction operations: `create_transaction`, `commit_transaction`, `rollback_transaction` - - receiver operation: `receive`, `peek`, `receive_deferred`, `renew_message_lock` - - settlement operations: `abandon`, `complete`, `defer`, `dead_letter`, `delete` - - session operations: `accept_session`, `get_session_state`, `set_session_state`, `renew_session_lock` - - If none of the above operation names apply, the attribute SHOULD be set - to the name of the client method in snake_case. - - examples: ['send', 'receive', 'complete', 'process', 'peek'] - - - id: messaging.eventhubs - type: attribute_group - extends: attributes.messaging.trace.minimal - brief: > - Attributes for Azure Event Hubs - attributes: - - ref: messaging.consumer.group.name - brief: "Azure Event Hubs [consumer group name](https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-features#consumer-groups)." - note: "" - requirement_level: - conditionally_required: On consumer spans. - sampling_relevant: true - - ref: messaging.destination.partition.id - brief: > - String representation of the partition id messages are sent to or received from, unique within the Event Hub. - requirement_level: - conditionally_required: If available. - sampling_relevant: true - - ref: messaging.eventhubs.message.enqueued_time - - ref: messaging.batch.message_count - requirement_level: - conditionally_required: If the span describes an operation on a batch of messages. - - ref: messaging.operation.name - brief: Azure Event Hubs operation name. - examples: ['send', 'receive', 'checkpoint'] - note: | - The operation name SHOULD match one of the following values: - - - `send` - - `receive` - - `process` - - `checkpoint` - - `get_partition_properties` - - `get_event_hub_properties` - - If none of the above operation names apply, the attribute SHOULD be set - to the name of the client method in snake_case. diff --git a/model/network/deprecated/network-registry-deprecated.yaml b/model/network/deprecated/network-registry-deprecated.yaml deleted file mode 100644 index b27f51bcc1..0000000000 --- a/model/network/deprecated/network-registry-deprecated.yaml +++ /dev/null @@ -1,131 +0,0 @@ -groups: - - id: registry.network.deprecated - type: attribute_group - display_name: Deprecated Network Attributes - brief: > - These attributes may be used for any network related operation. - attributes: - - id: net.sock.peer.name - type: string - deprecated: "Removed." - stability: experimental - brief: Deprecated, no replacement at this time. - examples: ['/var/my.sock'] - - id: net.sock.peer.addr - type: string - deprecated: "Replaced by `network.peer.address`." - stability: experimental - brief: Deprecated, use `network.peer.address`. - examples: ['192.168.0.1'] - - id: net.sock.peer.port - type: int - deprecated: "Replaced by `network.peer.port`." - stability: experimental - examples: [65531] - brief: Deprecated, use `network.peer.port`. - - id: net.peer.name - type: string - deprecated: "Replaced by `server.address` on client spans and `client.address` on server spans." - stability: experimental - brief: Deprecated, use `server.address` on client spans and `client.address` on server spans. - examples: ['example.com'] - - id: net.peer.port - type: int - deprecated: "Replaced by `server.port` on client spans and `client.port` on server spans." - stability: experimental - brief: Deprecated, use `server.port` on client spans and `client.port` on server spans. - examples: [8080] - - id: net.peer.ip - type: string - deprecated: "Replaced by `network.peer.address`." - stability: experimental - brief: Deprecated, use `network.peer.address`. - examples: '127.0.0.1' - - id: net.host.name - type: string - deprecated: "Replaced by `server.address`." - stability: experimental - brief: Deprecated, use `server.address`. - examples: ['example.com'] - - id: net.host.ip - type: string - deprecated: "Replaced by `network.local.address`." - stability: experimental - brief: Deprecated, use `network.local.address`. - examples: '192.168.0.1' - - id: net.host.port - type: int - deprecated: "Replaced by `server.port`." - stability: experimental - brief: Deprecated, use `server.port`. - examples: [8080] - - id: net.sock.host.addr - type: string - deprecated: "Replaced by `network.local.address`." - stability: experimental - brief: Deprecated, use `network.local.address`. - examples: ['/var/my.sock'] - - id: net.sock.host.port - type: int - deprecated: "Replaced by `network.local.port`." - stability: experimental - brief: Deprecated, use `network.local.port`. - examples: [8080] - - id: net.transport - type: - members: - - id: ip_tcp - value: "ip_tcp" - stability: experimental - - id: ip_udp - value: "ip_udp" - stability: experimental - - id: pipe - value: "pipe" - brief: 'Named or anonymous pipe.' - stability: experimental - - id: inproc - value: "inproc" - brief: 'In-process communication.' - stability: experimental - note: > - Signals that there is only in-process communication not using a "real" network protocol - in cases where network attributes would normally be expected. Usually all other network - attributes can be left out in that case. - - id: other - value: "other" - stability: experimental - brief: 'Something else (non IP-based).' - deprecated: "Replaced by `network.transport`." - stability: experimental - brief: Deprecated, use `network.transport`. - - id: net.protocol.name - type: string - deprecated: "Replaced by `network.protocol.name`." - stability: experimental - brief: Deprecated, use `network.protocol.name`. - examples: ['amqp', 'http', 'mqtt'] - - id: net.protocol.version - type: string - deprecated: "Replaced by `network.protocol.version`." - stability: experimental - brief: Deprecated, use `network.protocol.version`. - examples: '3.1.1' - - id: net.sock.family - type: - members: - - id: inet - value: 'inet' - brief: "IPv4 address" - stability: experimental - - id: inet6 - value: 'inet6' - brief: "IPv6 address" - stability: experimental - - id: unix - value: 'unix' - brief: "Unix domain socket path" - stability: experimental - deprecated: "Split to `network.transport` and `network.type`." - stability: experimental - brief: Deprecated, use `network.transport` and `network.type`. diff --git a/model/network/network-common.yaml b/model/network/network-common.yaml deleted file mode 100644 index d346131cf3..0000000000 --- a/model/network/network-common.yaml +++ /dev/null @@ -1,26 +0,0 @@ -groups: - - id: network-core - type: attribute_group - brief: > - These attributes may be used for any network related operation. - attributes: - - ref: network.transport - - ref: network.type - - ref: network.protocol.name - - ref: network.protocol.version - - ref: network.peer.address - - ref: network.peer.port - - ref: network.local.address - - ref: network.local.port - - - id: network-connection-and-carrier - type: attribute_group - brief: > - These attributes may be used for any network related operation. - attributes: - - ref: network.connection.type - - ref: network.connection.subtype - - ref: network.carrier.name - - ref: network.carrier.mcc - - ref: network.carrier.mnc - - ref: network.carrier.icc diff --git a/model/network/network-registry.yaml b/model/network/network-registry.yaml deleted file mode 100644 index 8470277023..0000000000 --- a/model/network/network-registry.yaml +++ /dev/null @@ -1,234 +0,0 @@ -groups: - - id: registry.network - type: attribute_group - display_name: Network Attributes - brief: > - These attributes may be used for any network related operation. - attributes: - - id: network.carrier.icc - type: string - stability: experimental - brief: "The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network." - examples: "DE" - - id: network.carrier.mcc - type: string - stability: experimental - brief: "The mobile carrier country code." - examples: "310" - - id: network.carrier.mnc - type: string - stability: experimental - brief: "The mobile carrier network code." - examples: "001" - - id: network.carrier.name - type: string - stability: experimental - brief: "The name of the mobile carrier." - examples: "sprint" - - id: network.connection.subtype - type: - members: - - id: gprs - brief: GPRS - value: "gprs" - stability: experimental - - id: edge - brief: EDGE - value: "edge" - stability: experimental - - id: umts - brief: UMTS - value: "umts" - stability: experimental - - id: cdma - brief: CDMA - value: "cdma" - stability: experimental - - id: evdo_0 - brief: EVDO Rel. 0 - value: "evdo_0" - stability: experimental - - id: evdo_a - brief: "EVDO Rev. A" - value: "evdo_a" - stability: experimental - - id: cdma2000_1xrtt - brief: CDMA2000 1XRTT - value: "cdma2000_1xrtt" - stability: experimental - - id: hsdpa - brief: HSDPA - value: "hsdpa" - stability: experimental - - id: hsupa - brief: HSUPA - value: "hsupa" - stability: experimental - - id: hspa - brief: HSPA - value: "hspa" - stability: experimental - - id: iden - brief: IDEN - value: "iden" - stability: experimental - - id: evdo_b - brief: "EVDO Rev. B" - value: "evdo_b" - stability: experimental - - id: lte - brief: LTE - value: "lte" - stability: experimental - - id: ehrpd - brief: EHRPD - value: "ehrpd" - stability: experimental - - id: hspap - brief: HSPAP - value: "hspap" - stability: experimental - - id: gsm - brief: GSM - value: "gsm" - stability: experimental - - id: td_scdma - brief: TD-SCDMA - value: "td_scdma" - stability: experimental - - id: iwlan - brief: IWLAN - value: "iwlan" - stability: experimental - - id: nr - brief: "5G NR (New Radio)" - value: "nr" - stability: experimental - - id: nrnsa - brief: "5G NRNSA (New Radio Non-Standalone)" - value: "nrnsa" - stability: experimental - - id: lte_ca - brief: LTE CA - value: "lte_ca" - stability: experimental - stability: experimental - brief: '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.' - examples: 'LTE' - - id: network.connection.type - type: - members: - - id: wifi - value: "wifi" - stability: experimental - - id: wired - value: "wired" - stability: experimental - - id: cell - value: "cell" - stability: experimental - - id: unavailable - value: "unavailable" - stability: experimental - - id: unknown - value: "unknown" - stability: experimental - stability: experimental - brief: 'The internet connection type.' - examples: 'wifi' - - id: network.local.address - stability: stable - type: string - brief: Local address of the network connection - IP address or Unix domain socket name. - examples: ['10.1.2.80', '/tmp/my.sock'] - - id: network.local.port - stability: stable - type: int - brief: Local port number of the network connection. - examples: [65123] - - id: network.peer.address - stability: stable - type: string - brief: Peer address of the network connection - IP address or Unix domain socket name. - examples: ['10.1.2.80', '/tmp/my.sock'] - - id: network.peer.port - stability: stable - type: int - brief: Peer port number of the network connection. - examples: [65123] - - id: network.protocol.name - stability: stable - type: string - brief: '[OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent.' - note: The value SHOULD be normalized to lowercase. - examples: ['amqp', 'http', 'mqtt'] - - id: network.protocol.version - stability: stable - type: string - brief: The actual version of the protocol used for network communication. - examples: ['1.1', '2'] - note: > - If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), - this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, - this attribute SHOULD NOT be set. - - id: network.transport - stability: stable - type: - members: - - id: tcp - value: 'tcp' - brief: "TCP" - stability: stable - - id: udp - value: 'udp' - brief: "UDP" - stability: stable - - id: pipe - value: "pipe" - brief: 'Named or anonymous pipe.' - stability: stable - - id: unix - value: 'unix' - brief: "Unix domain socket" - stability: stable - - id: quic - value: 'quic' - brief: "QUIC" - stability: experimental - brief: > - [OSI transport layer](https://osi-model.com/transport-layer/) or - [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication). - note: | - The value SHOULD be normalized to lowercase. - - Consider always setting the transport when setting a port number, since - a port number is ambiguous without knowing the transport. For example - different processes could be listening on TCP port 12345 and UDP port 12345. - examples: ['tcp', 'udp'] - - id: network.type - stability: stable - type: - members: - - id: ipv4 - value: 'ipv4' - brief: "IPv4" - stability: stable - - id: ipv6 - value: 'ipv6' - brief: "IPv6" - stability: stable - brief: '[OSI network layer](https://osi-model.com/network-layer/) or non-OSI equivalent.' - note: The value SHOULD be normalized to lowercase. - examples: ['ipv4', 'ipv6'] - - id: network.io.direction - type: - members: - - id: transmit - value: 'transmit' - stability: experimental - - id: receive - value: 'receive' - stability: experimental - stability: experimental - brief: "The network IO operation direction." - examples: ["transmit"] diff --git a/model/nodejs/nodejs-metrics.yaml b/model/nodejs/nodejs-metrics.yaml deleted file mode 100644 index fb6662310b..0000000000 --- a/model/nodejs/nodejs-metrics.yaml +++ /dev/null @@ -1,95 +0,0 @@ -groups: - - id: metric.nodejs.eventloop.delay.min - type: metric - metric_name: nodejs.eventloop.delay.min - brief: "Event loop minimum delay." - instrument: gauge - unit: "s" - stability: experimental - note: > - Value can be retrieved from value `histogram.min` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions) - - - id: metric.nodejs.eventloop.delay.max - type: metric - metric_name: nodejs.eventloop.delay.max - brief: "Event loop maximum delay." - instrument: gauge - unit: "s" - stability: experimental - note: > - Value can be retrieved from value `histogram.max` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions) - - - id: metric.nodejs.eventloop.delay.mean - type: metric - metric_name: nodejs.eventloop.delay.mean - brief: "Event loop mean delay." - instrument: gauge - unit: "s" - stability: experimental - note: > - Value can be retrieved from value `histogram.mean` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions) - - - id: metric.nodejs.eventloop.delay.stddev - type: metric - metric_name: nodejs.eventloop.delay.stddev - brief: "Event loop standard deviation delay." - instrument: gauge - unit: "s" - stability: experimental - note: > - Value can be retrieved from value `histogram.stddev` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions) - - - id: metric.nodejs.eventloop.delay.p50 - type: metric - metric_name: nodejs.eventloop.delay.p50 - brief: "Event loop 50 percentile delay." - instrument: gauge - unit: "s" - stability: experimental - note: > - Value can be retrieved from value `histogram.percentile(50)` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions) - - - id: metric.nodejs.eventloop.delay.p90 - type: metric - metric_name: nodejs.eventloop.delay.p90 - brief: "Event loop 90 percentile delay." - instrument: gauge - unit: "s" - stability: experimental - note: > - Value can be retrieved from value `histogram.percentile(90)` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions) - - - id: metric.nodejs.eventloop.delay.p99 - type: metric - metric_name: nodejs.eventloop.delay.p99 - brief: "Event loop 99 percentile delay." - instrument: gauge - unit: "s" - stability: experimental - note: > - Value can be retrieved from value `histogram.percentile(99)` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions) - - - id: metric.nodejs.eventloop.utilization - type: metric - metric_name: nodejs.eventloop.utilization - brief: "Event loop utilization." - instrument: gauge - unit: "1" - stability: experimental - note: > - The value range is [0.0, 1.0] and can be retrieved from - [`performance.eventLoopUtilization([utilization1[, utilization2]])`](https://nodejs.org/api/perf_hooks.html#performanceeventlooputilizationutilization1-utilization2) - - - id: metric.nodejs.eventloop.time - type: metric - metric_name: nodejs.eventloop.time - brief: "Cumulative duration of time the event loop has been in each state." - instrument: counter - unit: "s" - stability: experimental - attributes: - - ref: nodejs.eventloop.state - requirement_level: required - note: > - Value can be retrieved from - [`performance.eventLoopUtilization([utilization1[, utilization2]])`](https://nodejs.org/api/perf_hooks.html#performanceeventlooputilizationutilization1-utilization2) diff --git a/model/nodejs/nodejs-registry.yaml b/model/nodejs/nodejs-registry.yaml deleted file mode 100644 index 2f5ded1bdc..0000000000 --- a/model/nodejs/nodejs-registry.yaml +++ /dev/null @@ -1,19 +0,0 @@ -groups: - - id: registry.nodejs - type: attribute_group - brief: Describes Node.js related attributes. - display_name: Node.js Attributes - attributes: - - id: nodejs.eventloop.state - stability: experimental - brief: The state of event loop time. - type: - members: - - id: active - value: 'active' - brief: 'Active time.' - stability: experimental - - id: idle - value: 'idle' - brief: 'Idle time.' - stability: experimental diff --git a/model/oci/oci-registry.yaml b/model/oci/oci-registry.yaml deleted file mode 100644 index aa5092a983..0000000000 --- a/model/oci/oci-registry.yaml +++ /dev/null @@ -1,22 +0,0 @@ -groups: - - id: registry.oci.manifest - type: attribute_group - display_name: Open Container Initiative (OCI) Attributes - brief: > - An OCI image manifest. - attributes: - - id: oci.manifest.digest - type: string - stability: experimental - brief: > - The digest of the OCI image manifest. For container images specifically is the - digest by which the container image is known. - note: > - Follows - [OCI Image Manifest Specification](https://github.com/opencontainers/image-spec/blob/main/manifest.md), - and specifically the - [Digest property](https://github.com/opencontainers/image-spec/blob/main/descriptor.md#digests). - - An example can be found in - [Example Image Manifest](https://docs.docker.com/registry/spec/manifest-v2-2/#example-image-manifest). - examples: [ 'sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4' ] diff --git a/model/opentracing/opentracing-common.yaml b/model/opentracing/opentracing-common.yaml deleted file mode 100644 index 001ba4042e..0000000000 --- a/model/opentracing/opentracing-common.yaml +++ /dev/null @@ -1,9 +0,0 @@ -groups: - - id: opentracing - type: attribute_group - brief: 'This document defines semantic conventions for the OpenTracing Shim' - note: > - These conventions are used by the OpenTracing Shim layer. - attributes: - - ref: opentracing.ref_type - requirement_level: recommended diff --git a/model/opentracing/opentracing-registry.yaml b/model/opentracing/opentracing-registry.yaml deleted file mode 100644 index 49d20dcb44..0000000000 --- a/model/opentracing/opentracing-registry.yaml +++ /dev/null @@ -1,21 +0,0 @@ -groups: - - id: registry.opentracing - type: attribute_group - display_name: OpenTracing Attributes - brief: Attributes used by the OpenTracing Shim layer. - attributes: - - id: opentracing.ref_type - brief: 'Parent-child Reference type' - stability: experimental - note: > - The causal relationship between a child Span and a parent Span. - type: - members: - - id: child_of - value: 'child_of' - brief: "The parent Span depends on the child Span in some capacity" - stability: experimental - - id: follows_from - value: 'follows_from' - brief: "The parent Span doesn't depend in any way on the result of the child Span" - stability: experimental diff --git a/model/os/os-registry.yaml b/model/os/os-registry.yaml deleted file mode 100644 index b9e4f24c2e..0000000000 --- a/model/os/os-registry.yaml +++ /dev/null @@ -1,84 +0,0 @@ -groups: - - id: registry.os - type: attribute_group - display_name: Operating System Attributes - brief: > - The operating system (OS) on which the process represented by this resource is running. - note: > - In case of virtualized environments, this is the operating system as it is observed by - the process, i.e., the virtualized guest rather than the underlying host. - attributes: - - id: os.type - type: - members: - - id: windows - value: 'windows' - brief: "Microsoft Windows" - stability: experimental - - id: linux - value: 'linux' - brief: "Linux" - stability: experimental - - id: darwin - value: 'darwin' - brief: "Apple Darwin" - stability: experimental - - id: freebsd - value: 'freebsd' - brief: "FreeBSD" - stability: experimental - - id: netbsd - value: 'netbsd' - brief: "NetBSD" - stability: experimental - - id: openbsd - value: 'openbsd' - brief: "OpenBSD" - stability: experimental - - id: dragonflybsd - value: 'dragonflybsd' - brief: "DragonFly BSD" - stability: experimental - - id: hpux - value: 'hpux' - brief: "HP-UX (Hewlett Packard Unix)" - stability: experimental - - id: aix - value: 'aix' - brief: "AIX (Advanced Interactive eXecutive)" - stability: experimental - - id: solaris - value: 'solaris' - brief: "SunOS, Oracle Solaris" - stability: experimental - - id: z_os - value: 'z_os' - brief: "IBM z/OS" - stability: experimental - brief: > - The operating system type. - stability: experimental - - id: os.description - type: string - stability: experimental - brief: > - Human readable (not intended to be parsed) OS version information, - like e.g. reported by `ver` or `lsb_release -a` commands. - examples: ['Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 LTS'] - - id: os.name - type: string - stability: experimental - brief: 'Human readable operating system name.' - examples: ['iOS', 'Android', 'Ubuntu'] - - id: os.version - type: string - stability: experimental - brief: > - The version string of the operating system as defined in - [Version Attributes](/docs/resource/README.md#version-attributes). - examples: ['14.2.1', '18.04.1'] - - id: os.build_id - type: string - stability: experimental - brief: 'Unique identifier for a particular build or compilation of the operating system.' - examples: ['TQ3C.230805.001.B2', '20E247', '22621'] diff --git a/model/os/os-resources.yaml b/model/os/os-resources.yaml deleted file mode 100644 index da3d241046..0000000000 --- a/model/os/os-resources.yaml +++ /dev/null @@ -1,29 +0,0 @@ -groups: - - id: os - type: resource - name: os - brief: > - The operating system (OS) on which the process represented by this resource is running. - note: > - In case of virtualized environments, this is the operating system as it is observed by - the process, i.e., the virtualized guest rather than the underlying host. - attributes: - - ref: os.type - requirement_level: required - - ref: os.description - - ref: os.name - - ref: os.version - - ref: os.build_id - note: > - `build_id` values SHOULD be obtained from the following sources: - - - | OS | Primary | Fallback | - - | ------- | ------- | ------- | - - | Windows | `CurrentBuildNumber` from registry `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion` | - | - - | MacOS | `ProductBuildVersion` from `/System/Library/CoreServices/SystemVersion.plist` | `ProductBuildVersion` from `/System/Library/CoreServices/ServerVersion.plist` | - - | Linux | `BUILD_ID` from `/etc/os-release` | `BUILD_ID` from `/usr/lib/os-release`;
contents of `/proc/sys/kernel/osrelease`| diff --git a/model/otel/deprecated/otel-registry-deprecated.yaml b/model/otel/deprecated/otel-registry-deprecated.yaml deleted file mode 100644 index 165fbe043e..0000000000 --- a/model/otel/deprecated/otel-registry-deprecated.yaml +++ /dev/null @@ -1,18 +0,0 @@ -groups: - - id: registry.otel.library.deprecated - type: attribute_group - display_name: Deprecated OTel Library Attributes - brief: "Describes deprecated otel.library attributes." - attributes: - - id: otel.library.name - type: string - deprecated: "Use the `otel.scope.name` attribute." - stability: experimental - brief: "Deprecated. Use the `otel.scope.name` attribute" - examples: ['io.opentelemetry.contrib.mongodb'] - - id: otel.library.version - type: string - deprecated: "Use the `otel.scope.version` attribute." - stability: experimental - brief: "Deprecated. Use the `otel.scope.version` attribute." - examples: ['1.0.0'] diff --git a/model/otel/otel-registry.yaml b/model/otel/otel-registry.yaml deleted file mode 100644 index 01b1a19a8c..0000000000 --- a/model/otel/otel-registry.yaml +++ /dev/null @@ -1,39 +0,0 @@ -groups: - - id: registry.otel - type: attribute_group - display_name: OTel Attributes - brief: Attributes reserved for OpenTelemetry - attributes: - - id: otel.status_code - type: - members: - - id: ok - value: OK - brief: 'The operation has been validated by an Application developer or Operator to have completed successfully.' - stability: stable - - id: error - value: ERROR - brief: 'The operation contains an error.' - stability: stable - brief: Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code is UNSET. - stability: stable - - id: otel.status_description - type: string - brief: "Description of the Status if it has a value, otherwise not set." - examples: ['resource not found'] - stability: stable - - id: registry.otel.scope - type: attribute_group - display_name: OTel Scope Attributes - brief: Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's concepts. - attributes: - - id: otel.scope.name - type: string - brief: The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP). - examples: ['io.opentelemetry.contrib.mongodb'] - stability: stable - - id: otel.scope.version - type: string - brief: The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP). - examples: ['1.0.0'] - stability: stable diff --git a/model/otel/otel-resources.yaml b/model/otel/otel-resources.yaml deleted file mode 100644 index 2accfa3faf..0000000000 --- a/model/otel/otel-resources.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: otel.scope - # This should not be a resource, but an attribute group. - type: resource - name: otel.scope - brief: Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's concepts. - attributes: - - ref: otel.scope.name - requirement_level: recommended - - ref: otel.scope.version - requirement_level: recommended diff --git a/model/otel/otel-status-common.yaml b/model/otel/otel-status-common.yaml deleted file mode 100644 index ddb8dd1e22..0000000000 --- a/model/otel/otel-status-common.yaml +++ /dev/null @@ -1,9 +0,0 @@ -groups: - - id: otel_span - type: attribute_group - brief: Span attributes used by non-OTLP exporters to represent OpenTelemetry Span's concepts. - attributes: - - ref: otel.status_code - requirement_level: recommended - - ref: otel.status_description - requirement_level: recommended diff --git a/model/peer/peer-common.yaml b/model/peer/peer-common.yaml deleted file mode 100644 index 53807af234..0000000000 --- a/model/peer/peer-common.yaml +++ /dev/null @@ -1,7 +0,0 @@ -groups: - - id: peer - type: attribute_group - brief: "Operations that access some remote service." - attributes: - - ref: peer.service - requirement_level: recommended diff --git a/model/peer/peer-registry.yaml b/model/peer/peer-registry.yaml deleted file mode 100644 index 62568e8512..0000000000 --- a/model/peer/peer-registry.yaml +++ /dev/null @@ -1,15 +0,0 @@ -groups: - - id: registry.peer - type: attribute_group - display_name: Peer Attributes - brief: > - Operations that access some remote service. - attributes: - - id: peer.service - type: string - stability: experimental - brief: > - The [`service.name`](/docs/resource/README.md#service) - of the remote service. SHOULD be equal to the actual `service.name` - resource attribute of the remote service if any. - examples: "AuthTokenCache" diff --git a/model/process/deprecated/process-registry-deprecated.yaml b/model/process/deprecated/process-registry-deprecated.yaml deleted file mode 100644 index 7941674529..0000000000 --- a/model/process/deprecated/process-registry-deprecated.yaml +++ /dev/null @@ -1,21 +0,0 @@ -groups: - - id: registry.process.deprecated - type: attribute_group - brief: "Deprecated process attributes." - display_name: Deprecated Process Attributes - attributes: - - id: process.cpu.state - brief: "Deprecated, use `cpu.mode` instead." - deprecated: 'Replaced by `cpu.mode`' - type: - members: - - id: system - value: 'system' - stability: experimental - - id: user - value: 'user' - stability: experimental - - id: wait - value: 'wait' - stability: experimental - stability: experimental diff --git a/model/process/process-metrics.yaml b/model/process/process-metrics.yaml deleted file mode 100644 index 9df5139e51..0000000000 --- a/model/process/process-metrics.yaml +++ /dev/null @@ -1,113 +0,0 @@ -groups: - - id: metric.process.cpu.time - type: metric - metric_name: process.cpu.time - stability: experimental - brief: "Total CPU seconds broken down by different states." - instrument: counter - unit: "s" - attributes: - - ref: cpu.mode - brief: > - A process SHOULD be characterized _either_ by data points with no `mode` - labels, _or only_ data points with `mode` labels. - note: "Following states SHOULD be used: `user`, `system`, `wait`" - - - id: metric.process.cpu.utilization - type: metric - metric_name: process.cpu.utilization - stability: experimental - brief: - Difference in process.cpu.time since the last measurement, divided by the elapsed time and number of CPUs - available to the process. - instrument: gauge - unit: "1" - attributes: - - ref: cpu.mode - brief: > - A process SHOULD be characterized _either_ by data points with no `mode` - labels, _or only_ data points with `mode` labels. - note: "Following states SHOULD be used: `user`, `system`, `wait`" - - - id: metric.process.memory.usage - type: metric - metric_name: process.memory.usage - stability: experimental - brief: "The amount of physical memory in use." - instrument: updowncounter - unit: "By" - attributes: [] - - - id: metric.process.memory.virtual - type: metric - metric_name: process.memory.virtual - stability: experimental - brief: "The amount of committed virtual memory." - instrument: updowncounter - unit: "By" - attributes: [] - - - id: metric.process.disk.io - type: metric - metric_name: process.disk.io - stability: experimental - brief: "Disk bytes transferred." - instrument: counter - unit: "By" - attributes: - - ref: disk.io.direction - - - id: metric.process.network.io - type: metric - metric_name: process.network.io - stability: experimental - brief: "Network bytes transferred." - instrument: counter - unit: "By" - attributes: - - ref: network.io.direction - - - id: metric.process.thread.count - type: metric - metric_name: process.thread.count - stability: experimental - brief: "Process threads count." - instrument: updowncounter - unit: "{thread}" - - - id: metric.process.open_file_descriptor.count - type: metric - metric_name: process.open_file_descriptor.count - stability: experimental - brief: "Number of file descriptors in use by the process." - instrument: updowncounter - unit: "{count}" - - - id: metric.process.context_switches - type: metric - metric_name: process.context_switches - stability: experimental - brief: "Number of times the process has been context switched." - instrument: counter - unit: "{count}" - attributes: - - ref: process.context_switch_type - - - id: metric.process.paging.faults - type: metric - metric_name: process.paging.faults - stability: experimental - brief: "Number of page faults the process has made." - instrument: counter - unit: "{fault}" - attributes: - - ref: process.paging.fault_type - - - id: metric.process.uptime - type: metric - metric_name: process.uptime - stability: experimental - brief: "The time the process has been running." - instrument: counter - unit: "s" - note: "Instrumentations SHOULD use counter with type `double` and measure uptime with at least millisecond precision" diff --git a/model/process/process-registry.yaml b/model/process/process-registry.yaml deleted file mode 100644 index 7b549d7bf7..0000000000 --- a/model/process/process-registry.yaml +++ /dev/null @@ -1,243 +0,0 @@ -groups: - - id: registry.process - type: attribute_group - display_name: Process Attributes - brief: > - An operating system process. - attributes: - - id: process.pid - type: int - stability: experimental - brief: > - Process identifier (PID). - examples: [1234] - - id: process.parent_pid - type: int - stability: experimental - brief: > - Parent Process identifier (PPID). - examples: [111] - - id: process.vpid - type: int - stability: experimental - brief: > - Virtual process identifier. - note: > - The process ID within a PID namespace. This is not necessarily unique - across all processes on the host but it is unique within the process - namespace that the process exists within. - examples: [12] - - id: process.session_leader.pid - type: int - stability: experimental - brief: > - The PID of the process's session leader. This is also the session ID - (SID) of the process. - examples: [14] - - id: process.group_leader.pid - type: int - stability: experimental - brief: > - The PID of the process's group leader. This is also the process group - ID (PGID) of the process. - examples: [23] - - id: process.executable.build_id.gnu - stability: experimental - type: string - brief: > - The GNU build ID as found in the `.note.gnu.build-id` ELF section (hex string). - examples: ['c89b11207f6479603b0d49bf291c092c2b719293'] - - id: process.executable.build_id.go - stability: experimental - type: string - brief: > - The Go build ID as retrieved by `go tool buildid `. - examples: ['foh3mEXu7BLZjsN9pOwG/kATcXlYVCDEFouRMQed_/WwRFB1hPo9LBkekthSPG/x8hMC8emW2cCjXD0_1aY'] - - id: process.executable.build_id.profiling - stability: experimental - type: string - brief: > - Profiling specific build ID for executables. See the OTel specification - for Profiles for more information. - examples: ['600DCAFE4A110000F2BF38C493F5FB92'] - - id: process.executable.name - type: string - stability: experimental - brief: > - The name of the process executable. On Linux based systems, can be set - to the `Name` in `proc/[pid]/status`. On Windows, can be set to the - base name of `GetProcessImageFileNameW`. - examples: ['otelcol'] - - id: process.executable.path - type: string - stability: experimental - brief: > - The full path to the process executable. On Linux based systems, can - be set to the target of `proc/[pid]/exe`. On Windows, can be set to the - result of `GetProcessImageFileNameW`. - examples: ['/usr/bin/cmd/otelcol'] - - id: process.command - type: string - stability: experimental - brief: > - The command used to launch the process (i.e. the command name). On Linux - based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. - On Windows, can be set to the first parameter extracted from `GetCommandLineW`. - examples: ['cmd/otelcol'] - - id: process.command_line - type: string - stability: experimental - brief: > - The full command used to launch the process as a single string representing - the full command. On Windows, can be set to the result of `GetCommandLineW`. - Do not set this if you have to assemble it just for monitoring; use - `process.command_args` instead. - examples: ['C:\cmd\otecol --config="my directory\config.yaml"'] - - id: process.command_args - type: string[] - stability: experimental - brief: > - All the command arguments (including the command/executable itself) as - received by the process. On Linux-based systems (and some other Unixoid - systems supporting procfs), can be set according to the list of - null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based - executables, this would be the full argv vector passed to `main`. - examples: - - ['cmd/otecol', '--config=config.yaml'] - - id: process.args_count - type: int - stability: experimental - brief: > - Length of the process.command_args array - note: > - This field can be useful for querying or performing bucket analysis on how many - arguments were provided to start a process. More arguments may be an indication - of suspicious activity. - requirement_level: - recommended: if `process.command_args` is populated. - examples: [4] - - id: process.owner - type: string - stability: experimental - brief: > - The username of the user that owns the process. - examples: ['root'] - - id: process.user.id - type: int - stability: experimental - brief: > - The effective user ID (EUID) of the process. - examples: [1001] - - id: process.user.name - type: string - stability: experimental - brief: > - The username of the effective user of the process. - examples: ['root'] - - id: process.real_user.id - type: int - stability: experimental - brief: > - The real user ID (RUID) of the process. - examples: [1000] - - id: process.real_user.name - type: string - stability: experimental - brief: > - The username of the real user of the process. - examples: ['operator'] - - id: process.saved_user.id - type: int - stability: experimental - brief: > - The saved user ID (SUID) of the process. - examples: [1002] - - id: process.saved_user.name - type: string - stability: experimental - brief: > - The username of the saved user. - examples: ['operator'] - - id: process.runtime.name - type: string - stability: experimental - brief: > - The name of the runtime of this process. - examples: ['OpenJDK Runtime Environment'] - - id: process.runtime.version - type: string - stability: experimental - brief: > - The version of the runtime of this process, as returned by the runtime - without modification. - examples: '14.0.2' - - id: process.runtime.description - type: string - stability: experimental - brief: > - An additional description about the runtime of the process, for example - a specific vendor customization of the runtime environment. - examples: 'Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0' - - id: process.title - type: string - stability: experimental - brief: > - Process title (proctitle) - note: > - In many Unix-like systems, process title (proctitle), is the string - that represents the name or command line of a running process, - displayed by system monitoring tools like ps, top, and htop. - examples: ["cat /etc/hostname", "xfce4-session", "bash"] - - id: process.creation.time - type: string - stability: experimental - brief: > - The date and time the process was created, in ISO 8601 format. - examples: ['2023-11-21T09:25:34.853Z'] - - id: process.exit.time - type: string - stability: experimental - brief: > - The date and time the process exited, in ISO 8601 format. - examples: ['2023-11-21T09:26:12.315Z'] - - id: process.exit.code - type: int - stability: experimental - brief: > - The exit code of the process. - examples: [127] - - id: process.interactive - type: boolean - stability: experimental - brief: > - Whether the process is connected to an interactive shell. - - id: process.working_directory - type: string - stability: experimental - brief: > - The working directory of the process. - examples: ["/root"] - - id: process.context_switch_type - brief: "Specifies whether the context switches for this data point were voluntary or involuntary." - type: - members: - - id: voluntary - value: 'voluntary' - stability: experimental - - id: involuntary - value: 'involuntary' - stability: experimental - stability: experimental - - id: process.paging.fault_type - brief: > - The type of page fault for this data point. Type `major` is for major/hard page faults, and `minor` - is for minor/soft page faults. - type: - members: - - id: major - value: 'major' - stability: experimental - - id: minor - value: 'minor' - stability: experimental - stability: experimental diff --git a/model/process/process-resources.yaml b/model/process/process-resources.yaml deleted file mode 100644 index f33965fb9b..0000000000 --- a/model/process/process-resources.yaml +++ /dev/null @@ -1,35 +0,0 @@ -groups: - - id: process - type: resource - name: process - brief: > - An operating system process. - attributes: - - ref: process.pid - - ref: process.parent_pid - - ref: process.executable.name - requirement_level: - conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details. - - ref: process.executable.path - requirement_level: - conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details. - - ref: process.command - requirement_level: - conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details. - - ref: process.command_line - requirement_level: - conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details. - - ref: process.command_args - requirement_level: - conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details. - - ref: process.owner - - - id: process.runtime - type: resource - name: process.runtime - brief: > - The single (language) runtime instance which is monitored. - attributes: - - ref: process.runtime.name - - ref: process.runtime.version - - ref: process.runtime.description diff --git a/model/profile/profile-common.yaml b/model/profile/profile-common.yaml deleted file mode 100644 index 2c7994adfc..0000000000 --- a/model/profile/profile-common.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: profile.frame - type: attribute_group - brief: > - Describes the origin of a single frame in a Profile. - attributes: - - ref: profile.frame.type - requirement_level: recommended diff --git a/model/profile/profile-registry.yaml b/model/profile/profile-registry.yaml deleted file mode 100644 index 8bbac2ef51..0000000000 --- a/model/profile/profile-registry.yaml +++ /dev/null @@ -1,63 +0,0 @@ -groups: - - - id: registry.profile.frame - type: attribute_group - brief: > - Describes the origin of a single frame in a Profile. - attributes: - - id: profile.frame.type - stability: experimental - brief: > - Describes the interpreter or compiler of a single frame. - examples: ['cpython'] - type: - allow_custom_values: true - members: - - id: dotnet - brief: > - [.NET](https://wikipedia.org/wiki/.NET) - value: "dotnet" - stability: experimental - - id: jvm - brief: > - [JVM](https://wikipedia.org/wiki/Java_virtual_machine) - value: "jvm" - stability: experimental - - id: kernel - brief: > - [Kernel](https://wikipedia.org/wiki/Kernel_(operating_system)) - value: "kernel" - stability: experimental - - id: native - brief: > - [C](https://wikipedia.org/wiki/C_(programming_language)), - [C++](https://wikipedia.org/wiki/C%2B%2B), - [Go](https://wikipedia.org/wiki/Go_(programming_language)), - [Rust](https://wikipedia.org/wiki/Rust_(programming_language)) - value: "native" - stability: experimental - - id: perl - brief: > - [Perl](https://wikipedia.org/wiki/Perl) - value: "perl" - stability: experimental - - id: php - brief: > - [PHP](https://wikipedia.org/wiki/PHP) - value: "php" - stability: experimental - - id: cpython - brief: > - [Python](https://wikipedia.org/wiki/Python_(programming_language)) - value: "cpython" - stability: experimental - - id: ruby - brief: > - [Ruby](https://wikipedia.org/wiki/Ruby_(programming_language)) - value: "ruby" - stability: experimental - - id: v8js - brief: > - [V8JS](https://wikipedia.org/wiki/V8_(JavaScript_engine)) - value: "v8js" - stability: experimental diff --git a/model/rpc/deprecated/rpc-registry-deprecated.yaml b/model/rpc/deprecated/rpc-registry-deprecated.yaml deleted file mode 100644 index e4b37f5d2b..0000000000 --- a/model/rpc/deprecated/rpc-registry-deprecated.yaml +++ /dev/null @@ -1,33 +0,0 @@ -groups: - - id: registry.rpc.deprecated - type: attribute_group - display_name: Deprecated RPC Attributes - brief: 'Deprecated rpc message attributes.' - attributes: - - id: message.type - type: - members: - - id: sent - value: "SENT" - stability: experimental - - id: received - value: "RECEIVED" - stability: experimental - stability: experimental - brief: "Deprecated, use `rpc.message.type` instead." - deprecated: "Replaced by `rpc.message.type`." - - id: message.id - type: int - stability: experimental - brief: "Deprecated, use `rpc.message.id` instead." - deprecated: "Replaced by `rpc.message.id`." - - id: message.compressed_size - type: int - stability: experimental - brief: "Deprecated, use `rpc.message.compressed_size` instead." - deprecated: "Replaced by `rpc.message.compressed_size`." - - id: message.uncompressed_size - type: int - stability: experimental - brief: "Deprecated, use `rpc.message.uncompressed_size` instead." - deprecated: "Replaced by `rpc.message.uncompressed_size`." diff --git a/model/rpc/rpc-metrics.yaml b/model/rpc/rpc-metrics.yaml deleted file mode 100644 index aa47588d41..0000000000 --- a/model/rpc/rpc-metrics.yaml +++ /dev/null @@ -1,132 +0,0 @@ -groups: - # TODO: Should we list the attributes on each metric - # OR leave a single table like it is today? Since all attributes are applied - # to all metrics, the repetition of them bloats the page - - id: attributes.metrics.rpc - type: attribute_group - brief: "Describes RPC metric attributes." - attributes: - - ref: rpc.system - requirement_level: required - - ref: rpc.service - - ref: rpc.method - - ref: network.transport - - ref: network.type - - ref: server.address - - ref: server.port - - # RPC Server metrics - - id: metric.rpc.server.duration - type: metric - metric_name: rpc.server.duration - stability: experimental - brief: Measures the duration of inbound RPC. - instrument: histogram - unit: "ms" - note: | - While streaming RPCs may record this metric as start-of-batch - to end-of-batch, it's hard to interpret in practice. - - **Streaming**: N/A. - - - id: metric.rpc.server.request.size - type: metric - metric_name: rpc.server.request.size - stability: experimental - brief: Measures the size of RPC request messages (uncompressed). - instrument: histogram - unit: "By" - note: | - **Streaming**: Recorded per message in a streaming batch - - - id: metric.rpc.server.response.size - type: metric - metric_name: rpc.server.response.size - stability: experimental - brief: Measures the size of RPC response messages (uncompressed). - instrument: histogram - unit: "By" - note: | - **Streaming**: Recorded per response in a streaming batch - - - id: metric.rpc.server.requests_per_rpc - type: metric - metric_name: rpc.server.requests_per_rpc - stability: experimental - brief: Measures the number of messages received per RPC. - instrument: histogram - unit: "{count}" - note: | - Should be 1 for all non-streaming RPCs. - - **Streaming** : This metric is required for server and client streaming RPCs - - - id: metric.rpc.server.responses_per_rpc - type: metric - metric_name: rpc.server.responses_per_rpc - stability: experimental - brief: Measures the number of messages sent per RPC. - instrument: histogram - unit: "{count}" - note: | - Should be 1 for all non-streaming RPCs. - - **Streaming**: This metric is required for server and client streaming RPCs - - # RPC Client metrics - - id: metric.rpc.client.duration - type: metric - metric_name: rpc.client.duration - stability: experimental - brief: Measures the duration of outbound RPC. - instrument: histogram - unit: "ms" - note: | - While streaming RPCs may record this metric as start-of-batch - to end-of-batch, it's hard to interpret in practice. - - **Streaming**: N/A. - - - id: metric.rpc.client.request.size - type: metric - metric_name: rpc.client.request.size - stability: experimental - brief: Measures the size of RPC request messages (uncompressed). - instrument: histogram - unit: "By" - note: | - **Streaming**: Recorded per message in a streaming batch - - - id: metric.rpc.client.response.size - type: metric - metric_name: rpc.client.response.size - stability: experimental - brief: Measures the size of RPC response messages (uncompressed). - instrument: histogram - unit: "By" - note: | - **Streaming**: Recorded per response in a streaming batch - - - id: metric.rpc.client.requests_per_rpc - type: metric - metric_name: rpc.client.requests_per_rpc - stability: experimental - brief: Measures the number of messages received per RPC. - instrument: histogram - unit: "{count}" - note: | - Should be 1 for all non-streaming RPCs. - - **Streaming**: This metric is required for server and client streaming RPCs - - - id: metric.rpc.client.responses_per_rpc - type: metric - metric_name: rpc.client.responses_per_rpc - stability: experimental - brief: Measures the number of messages sent per RPC. - instrument: histogram - unit: "{count}" - note: | - Should be 1 for all non-streaming RPCs. - - **Streaming**: This metric is required for server and client streaming RPCs diff --git a/model/rpc/rpc-registry.yaml b/model/rpc/rpc-registry.yaml deleted file mode 100644 index a94c3b2534..0000000000 --- a/model/rpc/rpc-registry.yaml +++ /dev/null @@ -1,264 +0,0 @@ -groups: - - id: registry.rpc - type: attribute_group - display_name: Remote Procedure Call (RPC) Attributes - brief: 'This document defines attributes for remote procedure calls.' - attributes: - - id: rpc.connect_rpc.error_code - type: - members: - - id: cancelled - value: cancelled - stability: experimental - - id: unknown - value: unknown - stability: experimental - - id: invalid_argument - value: invalid_argument - stability: experimental - - id: deadline_exceeded - value: deadline_exceeded - stability: experimental - - id: not_found - value: not_found - stability: experimental - - id: already_exists - value: already_exists - stability: experimental - - id: permission_denied - value: permission_denied - stability: experimental - - id: resource_exhausted - value: resource_exhausted - stability: experimental - - id: failed_precondition - value: failed_precondition - stability: experimental - - id: aborted - value: aborted - stability: experimental - - id: out_of_range - value: out_of_range - stability: experimental - - id: unimplemented - value: unimplemented - stability: experimental - - id: internal - value: internal - stability: experimental - - id: unavailable - value: unavailable - stability: experimental - - id: data_loss - value: data_loss - stability: experimental - - id: unauthenticated - value: unauthenticated - stability: experimental - stability: experimental - brief: "The [error codes](https://connect.build/docs/protocol/#error-codes) of the Connect request. Error codes are always string values." - - id: rpc.connect_rpc.request.metadata - type: template[string[]] - stability: experimental - brief: > - Connect request metadata, `` being the normalized Connect Metadata key (lowercase), the value being the metadata values. - note: > - Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. - Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information. - examples: ['rpc.request.metadata.my-custom-metadata-attribute=["1.2.3.4", "1.2.3.5"]'] - - id: rpc.connect_rpc.response.metadata - type: template[string[]] - stability: experimental - brief: > - Connect response metadata, `` being the normalized Connect Metadata key (lowercase), the value being the metadata values. - note: > - Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. - Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information. - examples: ['rpc.response.metadata.my-custom-metadata-attribute=["attribute_value"]'] - - id: rpc.grpc.status_code - type: - members: - - id: ok - brief: OK - stability: experimental - value: 0 - - id: cancelled - brief: CANCELLED - stability: experimental - value: 1 - - id: unknown - brief: UNKNOWN - stability: experimental - value: 2 - - id: invalid_argument - brief: INVALID_ARGUMENT - stability: experimental - value: 3 - - id: deadline_exceeded - brief: DEADLINE_EXCEEDED - stability: experimental - value: 4 - - id: not_found - brief: NOT_FOUND - stability: experimental - value: 5 - - id: already_exists - brief: ALREADY_EXISTS - stability: experimental - value: 6 - - id: permission_denied - brief: PERMISSION_DENIED - stability: experimental - value: 7 - - id: resource_exhausted - brief: RESOURCE_EXHAUSTED - stability: experimental - value: 8 - - id: failed_precondition - brief: FAILED_PRECONDITION - stability: experimental - value: 9 - - id: aborted - brief: ABORTED - stability: experimental - value: 10 - - id: out_of_range - brief: OUT_OF_RANGE - stability: experimental - value: 11 - - id: unimplemented - brief: UNIMPLEMENTED - stability: experimental - value: 12 - - id: internal - brief: INTERNAL - stability: experimental - value: 13 - - id: unavailable - brief: UNAVAILABLE - stability: experimental - value: 14 - - id: data_loss - brief: DATA_LOSS - stability: experimental - value: 15 - - id: unauthenticated - brief: UNAUTHENTICATED - stability: experimental - value: 16 - stability: experimental - brief: "The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request." - - id: rpc.grpc.request.metadata - type: template[string[]] - stability: experimental - brief: > - gRPC request metadata, `` being the normalized gRPC Metadata key (lowercase), the value being the metadata values. - note: > - Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. - Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information. - examples: ['rpc.grpc.request.metadata.my-custom-metadata-attribute=["1.2.3.4", "1.2.3.5"]'] - - id: rpc.grpc.response.metadata - type: template[string[]] - stability: experimental - brief: > - gRPC response metadata, `` being the normalized gRPC Metadata key (lowercase), the value being the metadata values. - note: > - Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. - Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information. - examples: ['rpc.grpc.response.metadata.my-custom-metadata-attribute=["attribute_value"]'] - - id: rpc.jsonrpc.error_code - type: int - stability: experimental - brief: "`error.code` property of response if it is an error response." - examples: [-32700, 100] - - id: rpc.jsonrpc.error_message - type: string - stability: experimental - brief: "`error.message` property of response if it is an error response." - examples: ['Parse error', 'User already exists'] - - id: rpc.jsonrpc.request_id - type: string - stability: experimental - brief: > - `id` property of request or response. - Since protocol allows id to be int, string, `null` or missing (for notifications), - value is expected to be cast to string for simplicity. - Use empty string in case of `null` value. Omit entirely if this is a notification. - examples: ['10', 'request-7', ''] - - id: rpc.jsonrpc.version - type: string - stability: experimental - brief: "Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 doesn't specify this, the value can be omitted." - examples: ['2.0', '1.0'] - - id: rpc.method - type: string - stability: experimental - brief: 'The name of the (logical) method being called, must be equal to the $method part in the span name.' - note: > - 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). - examples: "exampleMethod" - - id: rpc.service - type: string - stability: experimental - brief: 'The full (logical) name of the service being called, including its package name, if applicable.' - note: > - This is the logical name of the service from the RPC interface perspective, - which can be different from the name of any implementing class. - The `code.namespace` attribute may be used to store the latter - (despite the attribute name, it may include a class name; - e.g., class with method actually executing the call on the server side, - RPC client stub class on the client side). - examples: "myservice.EchoService" - - id: rpc.system - brief: 'A string identifying the remoting system. See below for a list of well-known identifiers.' - type: - members: - - id: grpc - value: 'grpc' - brief: 'gRPC' - stability: experimental - - id: java_rmi - value: 'java_rmi' - brief: 'Java RMI' - stability: experimental - - id: dotnet_wcf - value: 'dotnet_wcf' - brief: '.NET WCF' - stability: experimental - - id: apache_dubbo - value: 'apache_dubbo' - brief: 'Apache Dubbo' - stability: experimental - - id: connect_rpc - value: 'connect_rpc' - brief: 'Connect RPC' - stability: experimental - stability: experimental - - id: rpc.message.type - type: - members: - - id: sent - value: "SENT" - stability: experimental - - id: received - value: "RECEIVED" - stability: experimental - stability: experimental - brief: "Whether this is a received or sent message." - - id: rpc.message.id - type: int - stability: experimental - brief: "MUST be calculated as two different counters starting from `1` one for sent messages and one for received message." - note: "This way we guarantee that the values will be consistent between different implementations." - - id: rpc.message.compressed_size - type: int - stability: experimental - brief: "Compressed size of the message in bytes." - - id: rpc.message.uncompressed_size - type: int - stability: experimental - brief: "Uncompressed size of the message in bytes." diff --git a/model/rpc/rpc-spans.yaml b/model/rpc/rpc-spans.yaml deleted file mode 100644 index caf7a2747d..0000000000 --- a/model/rpc/rpc-spans.yaml +++ /dev/null @@ -1,129 +0,0 @@ -groups: - - id: rpc - type: span - brief: 'This document defines semantic conventions for remote procedure calls.' - events: [rpc.message] - attributes: - - ref: rpc.system - requirement_level: required - - ref: rpc.service - requirement_level: recommended - - ref: rpc.method - requirement_level: recommended - - ref: network.transport - requirement_level: recommended - - ref: network.type - requirement_level: recommended - - ref: server.address - requirement_level: required - brief: > - RPC server [host name](https://grpc.github.io/grpc/core/md_doc_naming.html). - note: > - May contain server IP address, DNS name, or local socket name. When host component is an IP address, - instrumentations SHOULD NOT do a reverse proxy lookup to obtain DNS name and SHOULD set - `server.address` to the IP address provided in the host component. - - ref: server.port - requirement_level: - conditionally_required: if the port is supported by the network transport used for communication. - - - id: rpc.client - type: span - brief: 'This document defines semantic conventions for remote procedure call client spans.' - extends: rpc - attributes: - - ref: network.peer.address - requirement_level: recommended - - ref: network.peer.port - requirement_level: - recommended: If `network.peer.address` is set. - - - id: rpc.server - type: span - extends: rpc - span_kind: server - brief: 'Semantic Convention for RPC server spans' - attributes: - - ref: client.address - requirement_level: recommended - - ref: client.port - requirement_level: recommended - - ref: network.peer.address - requirement_level: recommended - - ref: network.peer.port - requirement_level: - recommended: If `network.peer.address` is set. - - ref: network.transport - requirement_level: recommended - - ref: network.type - requirement_level: recommended - - - id: rpc.grpc - type: span - extends: rpc - brief: 'Tech-specific attributes for gRPC.' - attributes: - - ref: rpc.grpc.status_code - tag: grpc-tech-specific - requirement_level: required - - ref: rpc.grpc.request.metadata - tag: grpc-tech-specific - requirement_level: opt_in - - ref: rpc.grpc.response.metadata - tag: grpc-tech-specific - requirement_level: opt_in - - - id: rpc.jsonrpc - type: span - extends: rpc - brief: 'Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).' - attributes: - - ref: rpc.jsonrpc.version - tag: jsonrpc-tech-specific - requirement_level: - conditionally_required: If other than the default version (`1.0`) - - ref: rpc.jsonrpc.request_id - tag: jsonrpc-tech-specific - requirement_level: recommended - - ref: rpc.jsonrpc.error_code - tag: jsonrpc-tech-specific - requirement_level: - conditionally_required: If response is not successful. - - ref: rpc.jsonrpc.error_message - tag: jsonrpc-tech-specific - requirement_level: recommended - - ref: rpc.method - tag: jsonrpc-tech-specific - requirement_level: required - note: > - This is always required for jsonrpc. See the note in the general - RPC conventions for more information. - - - id: rpc.message - type: event - name: rpc.message - brief: "RPC received/sent message." - attributes: - - ref: rpc.message.type - requirement_level: recommended - - ref: rpc.message.id - requirement_level: recommended - - ref: rpc.message.compressed_size - requirement_level: recommended - - ref: rpc.message.uncompressed_size - requirement_level: recommended - - - id: rpc.connect_rpc - type: span - extends: rpc - brief: 'Tech-specific attributes for Connect RPC.' - attributes: - - ref: rpc.connect_rpc.error_code - tag: connect_rpc-tech-specific - requirement_level: - conditionally_required: If response is not successful and if error code available. - - ref: rpc.connect_rpc.request.metadata - tag: connect_rpc-tech-specific - requirement_level: opt_in - - ref: rpc.connect_rpc.response.metadata - tag: connect_rpc-tech-specific - requirement_level: opt_in diff --git a/model/server/server-common.yaml b/model/server/server-common.yaml deleted file mode 100644 index 08806f02b3..0000000000 --- a/model/server/server-common.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: server - type: attribute_group - brief: > - General server attributes. - attributes: - - ref: server.address - - ref: server.port diff --git a/model/server/server-registry.yaml b/model/server/server-registry.yaml deleted file mode 100644 index a522976ac6..0000000000 --- a/model/server/server-registry.yaml +++ /dev/null @@ -1,28 +0,0 @@ -groups: - - id: registry.server - type: attribute_group - display_name: Server Attributes - brief: > - These attributes may be used to describe the server in a connection-based network interaction - where there is one side that initiates the connection (the client is the side that initiates the connection). - This covers all TCP network interactions since TCP is connection-based and one side initiates the - connection (an exception is made for peer-to-peer communication over TCP where the "user-facing" surface of the - protocol / API doesn't expose a clear notion of client and server). - This also covers UDP network interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS. - attributes: - - id: server.address - stability: stable - type: string - brief: "Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name." - note: > - When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent - the server address behind any intermediaries, for example proxies, if it's available. - examples: ['example.com', '10.1.2.80', '/tmp/my.sock'] - - id: server.port - stability: stable - type: int - brief: Server port number. - note: > - When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent - the server port behind any intermediaries, for example proxies, if it's available. - examples: [80, 8080, 443] diff --git a/model/service/service-registry.yaml b/model/service/service-registry.yaml deleted file mode 100644 index b2ee398c26..0000000000 --- a/model/service/service-registry.yaml +++ /dev/null @@ -1,71 +0,0 @@ -groups: - - id: registry.service - type: attribute_group - display_name: Service Attributes - brief: > - A service instance. - attributes: - - id: service.name - type: string - brief: > - Logical name of the service. - note: > - MUST be the same for all instances of horizontally scaled services. - If the value was not specified, SDKs MUST fallback to `unknown_service:` concatenated - with [`process.executable.name`](process.md), e.g. `unknown_service:bash`. - If `process.executable.name` is not available, the value MUST be set to `unknown_service`. - examples: ["shoppingcart"] - stability: stable - - id: service.version - type: string - brief: > - The version string of the service API or implementation. The format is not defined by these conventions. - examples: ["2.0.0", "a01dbef8a"] - stability: stable - - id: service.namespace - type: string - stability: experimental - brief: > - A namespace for `service.name`. - note: > - A string value having a meaning that helps to distinguish a group of services, - for example the team name that owns a group of services. - `service.name` is expected to be unique within the same namespace. - If `service.namespace` is not specified in the Resource then `service.name` - is expected to be unique for all services that have no explicit namespace defined - (so the empty/unspecified namespace is simply one more valid namespace). - Zero-length namespace string is assumed equal to unspecified namespace. - examples: ["Shop"] - - id: service.instance.id - type: string - stability: experimental - brief: > - The string ID of the service instance. - note: | - MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words - `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to - distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled - service). - - Implementations, such as SDKs, are recommended to generate a random Version 1 or Version 4 [RFC - 4122](https://www.ietf.org/rfc/rfc4122.txt) UUID, but are free to use an inherent unique ID as the source of - this value if stability is desirable. In that case, the ID SHOULD be used as source of a UUID Version 5 and - SHOULD use the following UUID as the namespace: `4d63009a-8d0f-11ee-aad7-4c796ed8e320`. - - UUIDs are typically recommended, as only an opaque value for the purposes of identifying a service instance is - needed. Similar to what can be seen in the man page for the - [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/machine-id.html) file, the underlying - data, such as pod name and namespace should be treated as confidential, being the user's choice to expose it - or not via another resource attribute. - - For applications running behind an application server (like unicorn), we do not recommend using one identifier - for all processes participating in the application. Instead, it's recommended each division (e.g. a worker - thread in unicorn) to have its own instance.id. - - It's not recommended for a Collector to set `service.instance.id` if it can't unambiguously determine the - service instance that is generating that telemetry. For instance, creating an UUID based on `pod.name` will - likely be wrong, as the Collector might not know from which container within that pod the telemetry originated. - However, Collectors can set the `service.instance.id` if they can unambiguously determine the service instance - for that telemetry. This is typically the case for scraping receivers, as they know the target address and - port. - examples: ["627cc493-f310-47de-96bd-71410b7dec09"] diff --git a/model/service/service-resources-experimental.yaml b/model/service/service-resources-experimental.yaml deleted file mode 100644 index 861f26862e..0000000000 --- a/model/service/service-resources-experimental.yaml +++ /dev/null @@ -1,9 +0,0 @@ -groups: - - id: service_experimental - type: resource - name: 'service' - brief: > - A service instance. - attributes: - - ref: service.namespace - - ref: service.instance.id diff --git a/model/service/service-resources.yaml b/model/service/service-resources.yaml deleted file mode 100644 index b5a3d27f0a..0000000000 --- a/model/service/service-resources.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: service - type: resource - name: service - brief: > - A service instance. - stability: stable - attributes: - - ref: service.name - requirement_level: required - - ref: service.version diff --git a/model/session/session-common.yaml b/model/session/session-common.yaml deleted file mode 100644 index e01af0acef..0000000000 --- a/model/session/session-common.yaml +++ /dev/null @@ -1,19 +0,0 @@ -groups: - - id: session-id - type: attribute_group - brief: > - Session is defined as the period of time encompassing all activities performed by the application and the actions - executed by the end user. - - Consequently, a Session is represented as a collection of Logs, Events, and Spans emitted by the Client Application - throughout the Session's duration. Each Session is assigned a unique identifier, which is included as an attribute in - the Logs, Events, and Spans generated during the Session's lifecycle. - - When a session reaches end of life, typically due to user inactivity or session timeout, a new session identifier - will be assigned. The previous session identifier may be provided by the instrumentation so that telemetry - backends can link the two sessions. - attributes: - - ref: session.id - requirement_level: opt_in - - ref: session.previous_id - requirement_level: opt_in diff --git a/model/session/session-registry.yaml b/model/session/session-registry.yaml deleted file mode 100644 index 34d6ffb64b..0000000000 --- a/model/session/session-registry.yaml +++ /dev/null @@ -1,26 +0,0 @@ -groups: - - id: registry.session - type: attribute_group - display_name: Session Attributes - brief: > - Session is defined as the period of time encompassing all activities performed by the application and the actions - executed by the end user. - - Consequently, a Session is represented as a collection of Logs, Events, and Spans emitted by the Client Application - throughout the Session's duration. Each Session is assigned a unique identifier, which is included as an attribute in - the Logs, Events, and Spans generated during the Session's lifecycle. - - When a session reaches end of life, typically due to user inactivity or session timeout, a new session identifier - will be assigned. The previous session identifier may be provided by the instrumentation so that telemetry - backends can link the two sessions. - attributes: - - id: session.id - type: string - stability: experimental - brief: "A unique id to identify a session." - examples: "00112233-4455-6677-8899-aabbccddeeff" - - id: session.previous_id - type: string - stability: experimental - brief: "The previous `session.id` for this user, when known." - examples: "00112233-4455-6677-8899-aabbccddeeff" diff --git a/model/signalr/signalr-metrics.yaml b/model/signalr/signalr-metrics.yaml deleted file mode 100644 index f91690e925..0000000000 --- a/model/signalr/signalr-metrics.yaml +++ /dev/null @@ -1,26 +0,0 @@ -groups: - - id: metric.signalr.server.connection.duration - type: metric - metric_name: signalr.server.connection.duration - stability: stable - brief: The duration of connections on the server. - instrument: histogram - unit: "s" - note: | - Meter name: `Microsoft.AspNetCore.Http.Connections`; Added in: ASP.NET Core 8.0 - attributes: - - ref: signalr.connection.status - - ref: signalr.transport - - - id: metric.signalr.server.active_connections - type: metric - metric_name: signalr.server.active_connections - stability: stable - brief: Number of connections that are currently active on the server. - instrument: updowncounter - unit: "{connection}" - note: | - Meter name: `Microsoft.AspNetCore.Http.Connections`; Added in: ASP.NET Core 8.0 - attributes: - - ref: signalr.connection.status - - ref: signalr.transport diff --git a/model/signalr/signalr-registry.yaml b/model/signalr/signalr-registry.yaml deleted file mode 100644 index e228f03a30..0000000000 --- a/model/signalr/signalr-registry.yaml +++ /dev/null @@ -1,42 +0,0 @@ -groups: - - id: registry.signalr - type: attribute_group - display_name: SignalR Attributes - brief: SignalR attributes - attributes: - - id: signalr.connection.status - type: - members: - - id: normal_closure - value: 'normal_closure' - brief: "The connection was closed normally." - stability: stable - - id: timeout - value: 'timeout' - brief: "The connection was closed due to a timeout." - stability: stable - - id: app_shutdown - value: 'app_shutdown' - brief: "The connection was closed because the app is shutting down." - stability: stable - stability: stable - brief: SignalR HTTP connection closure status. - examples: ["app_shutdown", "timeout"] - - id: signalr.transport - brief: "[SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)" - type: - members: - - id: server_sent_events - value: 'server_sent_events' - brief: "ServerSentEvents protocol" - stability: stable - - id: long_polling - value: 'long_polling' - brief: "LongPolling protocol" - stability: stable - - id: web_sockets - value: 'web_sockets' - brief: "WebSockets protocol" - stability: stable - stability: stable - examples: ["web_sockets", "long_polling"] diff --git a/model/source/source-common.yaml b/model/source/source-common.yaml deleted file mode 100644 index 5644041e24..0000000000 --- a/model/source/source-common.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: source - type: attribute_group - brief: > - General source attributes. - attributes: - - ref: source.address - - ref: source.port diff --git a/model/source/source-registry.yaml b/model/source/source-registry.yaml deleted file mode 100644 index 7ca1217233..0000000000 --- a/model/source/source-registry.yaml +++ /dev/null @@ -1,25 +0,0 @@ -groups: - - id: registry.source - type: attribute_group - display_name: Source Attributes - brief: > - These attributes may be used to describe the sender of a network exchange/packet. These should be used - when there is no client/server relationship between the two sides, or when that relationship is unknown. - This covers low-level network interactions (e.g. packet tracing) where you don't know if - there was a connection or which side initiated it. - This also covers unidirectional UDP flows and peer-to-peer communication where the - "user-facing" surface of the protocol / API doesn't expose a clear notion of client and server. - attributes: - - id: source.address - type: string - stability: experimental - brief: "Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name." - note: > - When observed from the destination side, and when communicating through an intermediary, `source.address` SHOULD represent - the source address behind any intermediaries, for example proxies, if it's available. - examples: ['source.example.com', '10.1.2.80', '/tmp/my.sock'] - - id: source.port - type: int - stability: experimental - brief: 'Source port number' - examples: [3389, 2888] diff --git a/model/system/deprecated/system-registry-deprecated.yaml b/model/system/deprecated/system-registry-deprecated.yaml deleted file mode 100644 index 70ea9583ae..0000000000 --- a/model/system/deprecated/system-registry-deprecated.yaml +++ /dev/null @@ -1,53 +0,0 @@ -groups: - - id: registry.system.deprecated - type: attribute_group - display_name: Deprecated System Attributes - brief: "Deprecated system attributes." - attributes: - - id: system.processes.status - type: - members: - - id: running - value: 'running' - stability: experimental - - id: sleeping - value: 'sleeping' - stability: experimental - - id: stopped - value: 'stopped' - stability: experimental - - id: defunct - value: 'defunct' - stability: experimental - brief: "Deprecated, use `system.process.status` instead." - deprecated: "Replaced by `system.process.status`." - stability: experimental - examples: ["running"] - - id: system.cpu.state - type: - members: - - id: user - value: 'user' - stability: experimental - - id: system - value: 'system' - stability: experimental - - id: nice - value: 'nice' - stability: experimental - - id: idle - value: 'idle' - stability: experimental - - id: iowait - value: 'iowait' - stability: experimental - - id: interrupt - value: 'interrupt' - stability: experimental - - id: steal - value: 'steal' - stability: experimental - brief: "Deprecated, use `cpu.mode` instead." - stability: experimental - deprecated: 'Replaced by `cpu.mode`' - examples: [ "idle", "interrupt" ] diff --git a/model/system/system-metrics.yaml b/model/system/system-metrics.yaml deleted file mode 100644 index 583e421def..0000000000 --- a/model/system/system-metrics.yaml +++ /dev/null @@ -1,390 +0,0 @@ -groups: - # system.cpu.* metrics - - id: metric.system.cpu.time - type: metric - metric_name: system.cpu.time - stability: experimental - brief: "Seconds each logical CPU spent on each mode" - instrument: counter - unit: "s" - attributes: - - ref: cpu.mode - brief: "The CPU mode for this data point. A system's CPU SHOULD be characterized *either* by data points with no `mode` labels, *or only* data points with `mode` labels." - note: "Following states SHOULD be used: `user`, `system`, `nice`, `idle`, `iowait`, `interrupt`, `steal`" - - ref: system.cpu.logical_number - - - id: metric.system.cpu.utilization - type: metric - metric_name: system.cpu.utilization - stability: experimental - brief: "Difference in system.cpu.time since the last measurement, divided by the elapsed time and number of logical CPUs" - instrument: gauge - unit: "1" - attributes: - - ref: cpu.mode - brief: "The CPU mode for this data point. A system's CPU SHOULD be characterized *either* by data points with no `mode` labels, *or only* data points with `mode` labels." - note: "Following modes SHOULD be used: `user`, `system`, `nice`, `idle`, `iowait`, `interrupt`, `steal`" - - ref: system.cpu.logical_number - - - id: metric.system.cpu.frequency - type: metric - metric_name: system.cpu.frequency - stability: experimental - brief: "Reports the current frequency of the CPU in Hz" - instrument: gauge - unit: "{Hz}" - attributes: - - ref: system.cpu.logical_number - - - id: metric.system.cpu.physical.count - type: metric - metric_name: system.cpu.physical.count - stability: experimental - brief: "Reports the number of actual physical processor cores on the hardware" - instrument: updowncounter - unit: "{cpu}" - attributes: [] - - - id: metric.system.cpu.logical.count - type: metric - metric_name: system.cpu.logical.count - stability: experimental - brief: "Reports the number of logical (virtual) processor cores created by the operating system to manage multitasking" - instrument: updowncounter - unit: "{cpu}" - attributes: [] - - # system.memory.* metrics - - id: metric.system.memory.usage - type: metric - metric_name: system.memory.usage - stability: experimental - brief: "Reports memory in use by state." - note: | - The sum over all `system.memory.state` values SHOULD equal the total memory - available on the system, that is `system.memory.limit`. - instrument: updowncounter - unit: "By" - attributes: - - ref: system.memory.state - - - id: metric.system.memory.limit - type: metric - metric_name: system.memory.limit - stability: experimental - brief: "Total memory available in the system." - note: | - Its value SHOULD equal the sum of `system.memory.state` over all states. - instrument: updowncounter - unit: "By" - attributes: [] - - - id: metric.system.memory.shared - type: metric - metric_name: system.memory.shared - stability: experimental - brief: "Shared memory used (mostly by tmpfs)." - note: | - Equivalent of `shared` from [`free` command](https://man7.org/linux/man-pages/man1/free.1.html) or - `Shmem` from [`/proc/meminfo`](https://man7.org/linux/man-pages/man5/proc.5.html)" - instrument: updowncounter - unit: "By" - - - id: metric.system.memory.utilization - type: metric - metric_name: system.memory.utilization - stability: experimental - brief: "" - instrument: gauge - unit: "1" - attributes: - - ref: system.memory.state - - # system.paging.* metrics - - id: metric.system.paging.usage - type: metric - metric_name: system.paging.usage - stability: experimental - brief: "Unix swap or windows pagefile usage" - instrument: updowncounter - unit: "By" - attributes: - - ref: system.paging.state - - - id: metric.system.paging.utilization - type: metric - metric_name: system.paging.utilization - stability: experimental - brief: "" - instrument: gauge - unit: "1" - attributes: - - ref: system.paging.state - - - id: metric.system.paging.faults - type: metric - metric_name: system.paging.faults - stability: experimental - brief: "" - instrument: counter - unit: "{fault}" - attributes: - - ref: system.paging.type - - - id: metric.system.paging.operations - type: metric - metric_name: system.paging.operations - stability: experimental - brief: "" - instrument: counter - unit: "{operation}" - attributes: - - ref: system.paging.type - - ref: system.paging.direction - - # system.disk.* metrics - - id: metric.system.disk.io - type: metric - metric_name: system.disk.io - stability: experimental - brief: "" - instrument: counter - unit: "By" - attributes: - - ref: system.device - - ref: disk.io.direction - - - id: metric.system.disk.operations - type: metric - metric_name: system.disk.operations - stability: experimental - brief: "" - instrument: counter - unit: "{operation}" - attributes: - - ref: system.device - - ref: disk.io.direction - - - id: metric.system.disk.io_time - type: metric - metric_name: system.disk.io_time - stability: experimental - brief: "Time disk spent activated" - instrument: counter - unit: "s" - note: | - The real elapsed time ("wall clock") used in the I/O path (time from operations running in parallel are not counted). Measured as: - - - Linux: Field 13 from [procfs-diskstats](https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats) - - Windows: The complement of - ["Disk\% Idle Time"](https://learn.microsoft.com/archive/blogs/askcore/windows-performance-monitor-disk-counters-explained#windows-performance-monitor-disk-counters-explained) - performance counter: `uptime * (100 - "Disk\% Idle Time") / 100` - attributes: - - ref: system.device - - - id: metric.system.disk.operation_time - type: metric - metric_name: system.disk.operation_time - stability: experimental - brief: "Sum of the time each operation took to complete" - instrument: counter - unit: "s" - note: | - Because it is the sum of time each request took, parallel-issued requests each contribute to make the count grow. Measured as: - - - Linux: Fields 7 & 11 from [procfs-diskstats](https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats) - - Windows: "Avg. Disk sec/Read" perf counter multiplied by "Disk Reads/sec" perf counter (similar for Writes) - attributes: - - ref: system.device - - ref: disk.io.direction - - - id: metric.system.disk.merged - type: metric - metric_name: system.disk.merged - stability: experimental - brief: "" - instrument: counter - unit: "{operation}" - attributes: - - ref: system.device - - ref: disk.io.direction - - - id: metric.system.disk.limit - type: metric - metric_name: system.disk.limit - stability: experimental - brief: "The total storage capacity of the disk" - instrument: updowncounter - unit: "By" - attributes: - - ref: system.device - - # system.filesystem.* metrics - - id: metric.system.filesystem.usage - type: metric - metric_name: system.filesystem.usage - stability: experimental - brief: "Reports a filesystem's space usage across different states." - note: | - The sum of all `system.filesystem.usage` values over the different `system.filesystem.state` attributes - SHOULD equal the total storage capacity of the filesystem, that is `system.filesystem.limit`. - instrument: updowncounter - unit: "By" - attributes: - - ref: system.device - brief: Identifier for the device where the filesystem resides. - examples: ["/dev/sda", "\\network-drive"] - - ref: system.filesystem.state - - ref: system.filesystem.type - - ref: system.filesystem.mode - - ref: system.filesystem.mountpoint - - - id: metric.system.filesystem.utilization - type: metric - metric_name: system.filesystem.utilization - stability: experimental - brief: "" - instrument: gauge - unit: "1" - attributes: - - ref: system.device - brief: Identifier for the device where the filesystem resides. - examples: ["/dev/sda", "\\network-drive"] - - ref: system.filesystem.state - - ref: system.filesystem.type - - ref: system.filesystem.mode - - ref: system.filesystem.mountpoint - - - id: metric.system.filesystem.limit - type: metric - metric_name: system.filesystem.limit - stability: experimental - brief: "The total storage capacity of the filesystem" - instrument: updowncounter - unit: "By" - attributes: - - ref: system.device - brief: Identifier for the device where the filesystem resides. - examples: ["/dev/sda", "\\network-drive"] - - ref: system.filesystem.type - - ref: system.filesystem.mode - - ref: system.filesystem.mountpoint - - # system.network.* metrics - - id: metric.system.network.dropped - type: metric - metric_name: system.network.dropped - stability: experimental - brief: "Count of packets that are dropped or discarded even though there was no error" - instrument: counter - unit: "{packet}" - note: | - Measured as: - - - Linux: the `drop` column in `/proc/dev/net` ([source](https://web.archive.org/web/20180321091318/http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html)) - - Windows: [`InDiscards`/`OutDiscards`](https://docs.microsoft.com/windows/win32/api/netioapi/ns-netioapi-mib_if_row2) - from [`GetIfEntry2`](https://docs.microsoft.com/windows/win32/api/netioapi/nf-netioapi-getifentry2) - attributes: - - ref: system.device - - ref: network.io.direction - - - id: metric.system.network.packets - type: metric - metric_name: system.network.packets - stability: experimental - brief: "" - instrument: counter - unit: "{packet}" - attributes: - - ref: system.device - - ref: network.io.direction - - - id: metric.system.network.errors - type: metric - metric_name: system.network.errors - stability: experimental - brief: "Count of network errors detected" - instrument: counter - unit: "{error}" - note: | - Measured as: - - - Linux: the `errs` column in `/proc/dev/net` ([source](https://web.archive.org/web/20180321091318/http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html)). - - Windows: [`InErrors`/`OutErrors`](https://docs.microsoft.com/windows/win32/api/netioapi/ns-netioapi-mib_if_row2) - from [`GetIfEntry2`](https://docs.microsoft.com/windows/win32/api/netioapi/nf-netioapi-getifentry2). - attributes: - - ref: system.device - - ref: network.io.direction - - - id: metric.system.network.io - type: metric - metric_name: system.network.io - stability: experimental - brief: "" - instrument: counter - unit: "By" - attributes: - - ref: system.device - - ref: network.io.direction - - - id: metric.system.network.connections - type: metric - metric_name: system.network.connections - stability: experimental - brief: "" - instrument: updowncounter - unit: "{connection}" - attributes: - - ref: system.device - - ref: system.network.state - - ref: network.transport - - # system.process.* metrics - - id: metric.system.process.count - type: metric - metric_name: system.process.count - stability: experimental - brief: "Total number of processes in each state" - instrument: updowncounter - unit: "{process}" - attributes: - - ref: system.process.status - - - id: metric.system.process.created - type: metric - metric_name: system.process.created - stability: experimental - brief: "Total number of processes created over uptime of the host" - instrument: counter - unit: "{process}" - attributes: [] - - # system.linux.* metrics - - id: metric.system.linux.memory.available - type: metric - metric_name: system.linux.memory.available - stability: experimental - brief: "An estimate of how much memory is available for starting new applications, without causing swapping" - note: | - This is an alternative to `system.memory.usage` metric with `state=free`. - Linux starting from 3.14 exports "available" memory. It takes "free" memory as a baseline, and then factors in kernel-specific values. - This is supposed to be more accurate than just "free" memory. - For reference, see the calculations [here](https://superuser.com/a/980821). - See also `MemAvailable` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html). - instrument: updowncounter - unit: "By" - attributes: [] - - - id: metric.system.linux.memory.slab.usage - type: metric - metric_name: system.linux.memory.slab.usage - stability: experimental - brief: "Reports the memory used by the Linux kernel for managing caches of frequently used objects." - note: | - The sum over the `reclaimable` and `unreclaimable` state values in `linux.memory.slab.usage` SHOULD be equal to the total slab memory available on the system. - Note that the total slab memory is not constant and may vary over time. - See also the [Slab allocator](https://blogs.oracle.com/linux/post/understanding-linux-kernel-memory-statistics) and `Slab` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html). - instrument: updowncounter - unit: "By" - attributes: - - ref: linux.memory.slab.state diff --git a/model/system/system-registry.yaml b/model/system/system-registry.yaml deleted file mode 100644 index db0a9770f5..0000000000 --- a/model/system/system-registry.yaml +++ /dev/null @@ -1,220 +0,0 @@ -groups: - # General system attributes - - id: registry.system - type: attribute_group - display_name: General System Attributes - brief: "Describes System attributes" - attributes: - - id: system.device - type: string - stability: experimental - brief: "The device identifier" - examples: ["(identifier)"] - # system.cpu.* attribute group - - id: registry.system.cpu - type: attribute_group - display_name: System CPU Attributes - brief: "Describes System CPU attributes" - attributes: - - id: system.cpu.logical_number - type: int - stability: experimental - brief: "The logical CPU number [0..n-1]" - examples: [1] - # system.memory.* attribute group - - id: registry.system.memory - type: attribute_group - display_name: System Memory Attributes - brief: "Describes System Memory attributes" - attributes: - - id: system.memory.state - type: - members: - - id: used - value: 'used' - stability: experimental - - id: free - value: 'free' - stability: experimental - - id: shared - value: 'shared' - stability: experimental - deprecated: 'Removed, report shared memory usage with `metric.system.memory.shared` metric' - - id: buffers - value: 'buffers' - stability: experimental - - id: cached - value: 'cached' - stability: experimental - stability: experimental - brief: "The memory state" - examples: ["free", "cached"] - # system.paging.* attribute group - - id: registry.system.paging - type: attribute_group - display_name: System Paging Attributes - brief: "Describes System Memory Paging attributes" - attributes: - - id: system.paging.state - type: - members: - - id: used - value: 'used' - stability: experimental - - id: free - value: 'free' - stability: experimental - stability: experimental - brief: "The memory paging state" - examples: ["free"] - - id: system.paging.type - type: - members: - - id: major - value: 'major' - stability: experimental - - id: minor - value: 'minor' - stability: experimental - stability: experimental - brief: "The memory paging type" - examples: ["minor"] - - id: system.paging.direction - type: - members: - - id: in - value: 'in' - stability: experimental - - id: out - value: 'out' - stability: experimental - stability: experimental - brief: "The paging access direction" - examples: ["in"] - - id: registry.system.filesystem - type: attribute_group - display_name: Filesystem Attributes - brief: "Describes Filesystem attributes" - attributes: - - id: system.filesystem.state - brief: "The filesystem state" - type: - members: - - id: used - value: 'used' - stability: experimental - - id: free - value: 'free' - stability: experimental - - id: reserved - value: 'reserved' - stability: experimental - stability: experimental - examples: ["used"] - - id: system.filesystem.type - type: - members: - - id: fat32 - value: 'fat32' - stability: experimental - - id: exfat - value: 'exfat' - stability: experimental - - id: ntfs - value: 'ntfs' - stability: experimental - - id: refs - value: 'refs' - stability: experimental - - id: hfsplus - value: 'hfsplus' - stability: experimental - - id: ext4 - value: 'ext4' - stability: experimental - stability: experimental - brief: "The filesystem type" - examples: ["ext4"] - - id: system.filesystem.mode - type: string - stability: experimental - brief: "The filesystem mode" - examples: ["rw, ro"] - - id: system.filesystem.mountpoint - type: string - stability: experimental - brief: "The filesystem mount path" - examples: ["/mnt/data"] - # System-specific network attributes - - id: registry.system.network - type: attribute_group - display_name: System Network Attributes - brief: "Describes Network attributes" - attributes: - - id: system.network.state - type: - members: - - id: close - value: 'close' - stability: experimental - - id: close_wait - value: 'close_wait' - stability: experimental - - id: closing - value: 'closing' - stability: experimental - - id: delete - value: 'delete' - stability: experimental - - id: established - value: 'established' - stability: experimental - - id: fin_wait_1 - value: 'fin_wait_1' - stability: experimental - - id: fin_wait_2 - value: 'fin_wait_2' - stability: experimental - - id: last_ack - value: 'last_ack' - stability: experimental - - id: listen - value: 'listen' - stability: experimental - - id: syn_recv - value: 'syn_recv' - stability: experimental - - id: syn_sent - value: 'syn_sent' - stability: experimental - - id: time_wait - value: 'time_wait' - stability: experimental - stability: experimental - brief: "A stateless protocol MUST NOT set this attribute" - examples: ["close_wait"] - # system.process.* attribute group - - id: registry.system.process - type: attribute_group - display_name: System Process Attributes - brief: "Describes System Process attributes" - attributes: - - id: system.process.status - type: - members: - - id: running - value: 'running' - stability: experimental - - id: sleeping - value: 'sleeping' - stability: experimental - - id: stopped - value: 'stopped' - stability: experimental - - id: defunct - value: 'defunct' - stability: experimental - stability: experimental - brief: > - The process state, e.g., [Linux Process State Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES) - examples: ["running"] diff --git a/model/telemetry/telemetry-registry.yaml b/model/telemetry/telemetry-registry.yaml deleted file mode 100644 index f5a4dc88bf..0000000000 --- a/model/telemetry/telemetry-registry.yaml +++ /dev/null @@ -1,86 +0,0 @@ -groups: - - id: registry.telemetry - type: attribute_group - display_name: Telemetry Attributes - brief: > - This document defines attributes for telemetry SDK. - attributes: - - id: telemetry.sdk.name - type: string - stability: stable - requirement_level: required - brief: > - The name of the telemetry SDK as defined above. - note: | - The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute to `opentelemetry`. - If another SDK, like a fork or a vendor-provided implementation, is used, this SDK MUST set the - `telemetry.sdk.name` attribute to the fully-qualified class or module name of this SDK's main entry point - or another suitable identifier depending on the language. - The identifier `opentelemetry` is reserved and MUST NOT be used in this case. - All custom identifiers SHOULD be stable across different versions of an implementation. - examples: ["opentelemetry"] - - id: telemetry.sdk.language - type: - members: - - id: cpp - value: "cpp" - stability: stable - - id: dotnet - value: "dotnet" - stability: stable - - id: erlang - value: "erlang" - stability: stable - - id: go - value: "go" - stability: stable - - id: java - value: "java" - stability: stable - - id: nodejs - value: "nodejs" - stability: stable - - id: php - value: "php" - stability: stable - - id: python - value: "python" - stability: stable - - id: ruby - value: "ruby" - stability: stable - - id: rust - value: "rust" - stability: stable - - id: swift - value: "swift" - stability: stable - - id: webjs - value: "webjs" - stability: stable - stability: stable - requirement_level: required - brief: > - The language of the telemetry SDK. - - id: telemetry.sdk.version - type: string - stability: stable - requirement_level: required - brief: > - The version string of the telemetry SDK. - examples: ["1.2.3"] - - id: telemetry.distro.name - type: string - stability: experimental - brief: > - The name of the auto instrumentation agent or distribution, if used. - note: | - Official auto instrumentation agents and distributions SHOULD set the `telemetry.distro.name` attribute to - a string starting with `opentelemetry-`, e.g. `opentelemetry-java-instrumentation`. - examples: ["parts-unlimited-java"] - - id: telemetry.distro.version - type: string - stability: experimental - brief: > - The version string of the auto instrumentation agent or distribution, if used. - examples: ["1.2.3"] diff --git a/model/telemetry/telemetry-resources-experimental.yaml b/model/telemetry/telemetry-resources-experimental.yaml deleted file mode 100644 index 6a660cc849..0000000000 --- a/model/telemetry/telemetry-resources-experimental.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: telemetry.sdk_experimental - type: resource - name: 'telemetry.sdk' - brief: > - The telemetry SDK used to capture data recorded by the instrumentation libraries. - attributes: - - ref: telemetry.distro.name - requirement_level: recommended - - ref: telemetry.distro.version - requirement_level: recommended diff --git a/model/telemetry/telemetry-resources.yaml b/model/telemetry/telemetry-resources.yaml deleted file mode 100644 index bdd4350b78..0000000000 --- a/model/telemetry/telemetry-resources.yaml +++ /dev/null @@ -1,14 +0,0 @@ -groups: - - id: telemetry.sdk - name: 'telemetry.sdk' - type: resource - stability: stable - brief: > - The telemetry SDK used to capture data recorded by the instrumentation libraries. - attributes: - - ref: telemetry.sdk.name - requirement_level: required - - ref: telemetry.sdk.language - requirement_level: required - - ref: telemetry.sdk.version - requirement_level: required diff --git a/model/test/test-registry.yaml b/model/test/test-registry.yaml deleted file mode 100644 index 9671feb88d..0000000000 --- a/model/test/test-registry.yaml +++ /dev/null @@ -1,78 +0,0 @@ -groups: - - id: registry.test - type: attribute_group - brief: > - This group describes attributes specific to - [software tests](https://en.wikipedia.org/wiki/Software_testing). - attributes: - - id: test.suite.name - type: string - stability: experimental - brief: > - The human readable name of a [test suite](https://en.wikipedia.org/wiki/Test_suite). - examples: ["TestSuite1"] - - id: test.suite.run.status - type: - members: - - id: success - value: success - brief: success - stability: experimental - - id: failure - value: failure - brief: failure - stability: experimental - - id: skipped - value: skipped - brief: skipped - stability: experimental - - id: aborted - value: aborted - brief: aborted - stability: experimental - - id: timed_out - value: timed_out - brief: timed_out - stability: experimental - - id: in_progress - value: in_progress - brief: in_progress - stability: experimental - stability: experimental - brief: > - The status of the test suite run. - examples: - [ - "success", - "failure", - "skipped", - "aborted", - "timed_out", - "in_progress", - ] - - id: test.case.name - type: string - stability: experimental - brief: > - The fully qualified human readable name of the [test case](https://en.wikipedia.org/wiki/Test_case). - examples: - [ - "org.example.TestCase1.test1", - "example/tests/TestCase1.test1", - "ExampleTestCase1_test1", - ] - - id: test.case.result.status - type: - members: - - id: pass - value: pass - brief: pass - stability: experimental - - id: fail - value: fail - brief: fail - stability: experimental - stability: experimental - brief: > - The status of the actual test case result from test execution. - examples: ["pass", "fail"] diff --git a/model/thread/thread-common.yaml b/model/thread/thread-common.yaml deleted file mode 100644 index 572fb26996..0000000000 --- a/model/thread/thread-common.yaml +++ /dev/null @@ -1,8 +0,0 @@ -groups: - - id: thread - type: attribute_group - brief: > - These attributes may be used for any operation to store information about a thread that started a span. - attributes: - - ref: thread.id - - ref: thread.name diff --git a/model/thread/thread-registry.yaml b/model/thread/thread-registry.yaml deleted file mode 100644 index 893644ab0c..0000000000 --- a/model/thread/thread-registry.yaml +++ /dev/null @@ -1,19 +0,0 @@ -groups: - - id: registry.thread - type: attribute_group - display_name: Thread Attributes - brief: > - These attributes may be used for any operation to store information about a thread that started a span. - attributes: - - id: thread.id - type: int - stability: experimental - brief: > - Current "managed" thread ID (as opposed to OS thread ID). - examples: 42 - - id: thread.name - type: string - stability: experimental - brief: > - Current thread name. - examples: main diff --git a/model/tls/deprecated/tls-registry-deprecated.yaml b/model/tls/deprecated/tls-registry-deprecated.yaml deleted file mode 100644 index 38bd62c7b3..0000000000 --- a/model/tls/deprecated/tls-registry-deprecated.yaml +++ /dev/null @@ -1,11 +0,0 @@ -groups: - - id: registry.tls.deprecated - type: attribute_group - brief: Describes deprecated `tls` attributes. - attributes: - - id: tls.client.server_name - type: string - stability: experimental - deprecated: "Replaced by `server.address`." - brief: "Deprecated, use `server.address` instead." - examples: ["opentelemetry.io"] diff --git a/model/tls/tls-registry.yaml b/model/tls/tls-registry.yaml deleted file mode 100644 index 7867b453aa..0000000000 --- a/model/tls/tls-registry.yaml +++ /dev/null @@ -1,190 +0,0 @@ -groups: - - id: registry.tls - type: attribute_group - display_name: TLS Attributes - brief: "This document defines semantic convention attributes in the TLS namespace." - attributes: - - id: tls.cipher - brief: > - String indicating the [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used during the current connection. - type: string - stability: experimental - note: > - The values allowed for `tls.cipher` MUST be one of the `Descriptions` of the - [registered TLS Cipher Suits](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#table-tls-parameters-4). - examples: - [ - "TLS_RSA_WITH_3DES_EDE_CBC_SHA", - "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", - ] - - id: tls.client.certificate - type: string - stability: experimental - brief: > - PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of `client.certificate_chain` since this value also exists in that list. - examples: ["MII..."] - - id: tls.client.certificate_chain - type: string[] - stability: experimental - brief: > - Array of PEM-encoded certificates that make up the certificate chain offered by the client. - This is usually mutually-exclusive of `client.certificate` since that value should be the first certificate in the chain. - examples: - - ['MII...', 'MI...'] - - id: tls.client.hash.md5 - type: string - stability: experimental - brief: > - Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. - For consistency with other hash values, this value should be formatted as an uppercase hash. - examples: ["0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC"] - - id: tls.client.hash.sha1 - type: string - stability: experimental - brief: > - Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. - For consistency with other hash values, this value should be formatted as an uppercase hash. - examples: ["9E393D93138888D288266C2D915214D1D1CCEB2A"] - - id: tls.client.hash.sha256 - type: string - stability: experimental - brief: > - Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. - For consistency with other hash values, this value should be formatted as an uppercase hash. - examples: - ["0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0"] - - id: tls.client.issuer - type: string - stability: experimental - brief: "Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client." - examples: - ["CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com"] - - id: tls.client.ja3 - type: string - stability: experimental - brief: "A hash that identifies clients based on how they perform an SSL/TLS handshake." - examples: ["d4e5b18d6b55c71272893221c96ba240"] - - id: tls.client.not_after - type: string - stability: experimental - brief: "Date/Time indicating when client certificate is no longer considered valid." - examples: ["2021-01-01T00:00:00.000Z"] - - id: tls.client.not_before - type: string - stability: experimental - brief: "Date/Time indicating when client certificate is first considered valid." - examples: ["1970-01-01T00:00:00.000Z"] - - id: tls.client.subject - type: string - stability: experimental - brief: "Distinguished name of subject of the x.509 certificate presented by the client." - examples: ["CN=myclient, OU=Documentation Team, DC=example, DC=com"] - - id: tls.client.supported_ciphers - type: string[] - stability: experimental - brief: Array of ciphers offered by the client during the client hello. - examples: - - [TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384] - - id: tls.curve - brief: "String indicating the curve used for the given cipher, when applicable" - type: string - stability: experimental - examples: ["secp256r1"] - - id: tls.established - brief: "Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel." - type: boolean - stability: experimental - examples: [true] - - id: tls.next_protocol - brief: > - String indicating the protocol being tunneled. - Per the values in the [IANA registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids), - this string should be lower case. - type: string - stability: experimental - examples: ["http/1.1"] - - id: tls.protocol.name - brief: > - Normalized lowercase protocol name parsed from original string of the negotiated [SSL/TLS protocol version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES) - type: - members: - - id: ssl - value: ssl - stability: experimental - - id: tls - value: tls - stability: experimental - stability: experimental - - id: tls.protocol.version - brief: > - Numeric part of the version parsed from the original string of the negotiated [SSL/TLS protocol version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES) - type: string - stability: experimental - examples: ["1.2", "3"] - - id: tls.resumed - brief: "Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation." - type: boolean - stability: experimental - examples: [true] - - id: tls.server.certificate - type: string - stability: experimental - brief: > - PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of `server.certificate_chain` since this value also exists in that list. - examples: ["MII..."] - - id: tls.server.certificate_chain - type: string[] - stability: experimental - brief: > - Array of PEM-encoded certificates that make up the certificate chain offered by the server. - This is usually mutually-exclusive of `server.certificate` since that value should be the first certificate in the chain. - examples: - - ["MII...", "MI..."] - - id: tls.server.hash.md5 - type: string - stability: experimental - brief: > - Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. - For consistency with other hash values, this value should be formatted as an uppercase hash. - examples: ["0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC"] - - id: tls.server.hash.sha1 - type: string - stability: experimental - brief: > - Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. - For consistency with other hash values, this value should be formatted as an uppercase hash. - examples: ["9E393D93138888D288266C2D915214D1D1CCEB2A"] - - id: tls.server.hash.sha256 - type: string - stability: experimental - brief: > - Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. - For consistency with other hash values, this value should be formatted as an uppercase hash. - examples: - ["0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0"] - - id: tls.server.issuer - type: string - stability: experimental - brief: "Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client." - examples: - ["CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com"] - - id: tls.server.ja3s - type: string - stability: experimental - brief: "A hash that identifies servers based on how they perform an SSL/TLS handshake." - examples: ["d4e5b18d6b55c71272893221c96ba240"] - - id: tls.server.not_after - type: string - stability: experimental - brief: "Date/Time indicating when server certificate is no longer considered valid." - examples: ["2021-01-01T00:00:00.000Z"] - - id: tls.server.not_before - type: string - stability: experimental - brief: "Date/Time indicating when server certificate is first considered valid." - examples: ["1970-01-01T00:00:00.000Z"] - - id: tls.server.subject - type: string - stability: experimental - brief: "Distinguished name of subject of the x.509 certificate presented by the server." - examples: ["CN=myserver, OU=Documentation Team, DC=example, DC=com"] diff --git a/model/url/url-common.yaml b/model/url/url-common.yaml deleted file mode 100644 index 73fb91e274..0000000000 --- a/model/url/url-common.yaml +++ /dev/null @@ -1,12 +0,0 @@ -groups: - - id: url - brief: Attributes describing URL. - type: attribute_group - attributes: - - ref: url.scheme - - ref: url.full - tag: sensitive-information - - ref: url.path - - ref: url.query - tag: sensitive-information - - ref: url.fragment diff --git a/model/url/url-registry.yaml b/model/url/url-registry.yaml deleted file mode 100644 index dc06b6b2fe..0000000000 --- a/model/url/url-registry.yaml +++ /dev/null @@ -1,133 +0,0 @@ -groups: - - id: registry.url - brief: Attributes describing URL. - type: attribute_group - display_name: URL Attributes - attributes: - - id: url.domain - type: string - stability: experimental - brief: > - Domain extracted from the `url.full`, such as "opentelemetry.io". - note: > - In some cases a URL may refer to an IP and/or port directly, - without a domain name. In this case, the IP address would go to the domain field. - If the URL contains a [literal IPv6 address](https://www.rfc-editor.org/rfc/rfc2732#section-2) - enclosed by `[` and `]`, the `[` and `]` characters should also be captured in the domain field. - examples: - [ - "www.foo.bar", - "opentelemetry.io", - "3.12.167.2", - "[1080:0:0:0:8:800:200C:417A]", - ] - - id: url.extension - type: string - stability: experimental - brief: > - The file extension extracted from the `url.full`, excluding the leading dot. - note: > - The file extension is only set if it exists, as not every url has a file extension. - When the file name has multiple extensions `example.tar.gz`, only the last one should be captured `gz`, not `tar.gz`. - examples: ["png", "gz"] - - id: url.fragment - stability: stable - type: string - brief: > - The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component - examples: ["SemConv"] - - id: url.full - stability: stable - type: string - brief: Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986) - note: > - For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment - is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless. - - `url.full` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. - In such case username and password SHOULD be redacted and attribute's value SHOULD be `https://REDACTED:REDACTED@www.example.com/`. - - `url.full` SHOULD capture the absolute URL when it is available (or can be reconstructed). - Sensitive content provided in `url.full` SHOULD be scrubbed when instrumentations can identify it. - examples: - ["https://www.foo.bar/search?q=OpenTelemetry#SemConv", "//localhost"] - - id: url.original - type: string - stability: experimental - brief: > - Unmodified original URL as seen in the event source. - note: > - In network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often - just represented as a path. This field is meant to represent the URL as it was observed, complete or not. - - `url.original` might contain credentials passed via URL in form of `https://username:password@www.example.com/`. - In such case password and username SHOULD NOT be redacted and attribute's value SHOULD remain the same. - examples: - [ - "https://www.foo.bar/search?q=OpenTelemetry#SemConv", - "search?q=OpenTelemetry", - ] - - id: url.path - stability: stable - type: string - brief: > - The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component - examples: ["/search"] - note: > - Sensitive content provided in `url.path` SHOULD be scrubbed when instrumentations can identify it. - - id: url.port - type: int - stability: experimental - brief: > - Port extracted from the `url.full` - examples: [443] - - id: url.query - stability: stable - type: string - brief: > - The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component - examples: ["q=OpenTelemetry"] - note: > - Sensitive content provided in `url.query` SHOULD be scrubbed when instrumentations can identify it. - - id: url.registered_domain - type: string - stability: experimental - brief: > - The highest registered url domain, stripped of the subdomain. - examples: ["example.com", "foo.co.uk"] - note: > - This value can be determined precisely with the [public suffix list](http://publicsuffix.org). - For example, the registered domain for `foo.example.com` is `example.com`. - Trying to approximate this by simply taking the last two labels will not work well for TLDs such as `co.uk`. - - id: url.scheme - stability: stable - type: string - brief: > - The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. - examples: ["https", "ftp", "telnet"] - - id: url.subdomain - type: string - stability: experimental - brief: > - The subdomain portion of a fully qualified domain name includes all of the names except the host name - under the registered_domain. In a partially qualified domain, or if the qualification level of the - full name cannot be determined, subdomain contains all of the names below the registered domain. - examples: ["east", "sub2.sub1"] - note: > - The subdomain portion of `www.east.mydomain.co.uk` is `east`. If the domain has multiple levels of subdomain, - such as `sub2.sub1.example.com`, the subdomain field should contain `sub2.sub1`, with no trailing period. - - id: url.template - type: string - stability: experimental - brief: > - The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2). - examples: ["/users/{id}", "/users/:id", "/users?id={id}"] - - id: url.top_level_domain - type: string - stability: experimental - brief: > - The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. - For example, the top level domain for example.com is `com`. - examples: ["com", "co.uk"] - note: > - This value can be determined precisely with the [public suffix list](http://publicsuffix.org). diff --git a/model/user-agent/user-agent-registry.yaml b/model/user-agent/user-agent-registry.yaml deleted file mode 100644 index 2b856ecdf5..0000000000 --- a/model/user-agent/user-agent-registry.yaml +++ /dev/null @@ -1,37 +0,0 @@ -groups: - - id: registry.user_agent - type: attribute_group - display_name: User-agent Attributes - brief: "Describes user-agent attributes." - attributes: - - id: user_agent.original - stability: stable - type: string - brief: > - Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client. - examples: - - "CERN-LineMode/2.15 libwww/2.17b3" - - "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1" - - "YourApp/1.0.0 grpc-java-okhttp/1.27.2" - - id: user_agent.name - type: string - stability: experimental - brief: > - Name of the user-agent extracted from original. Usually refers to the browser's name. - examples: ["Safari", "YourApp"] - note: > - [Example](https://www.whatsmyua.info) of extracting browser's name from original string. In the case of using - a user-agent for non-browser products, such as microservices with multiple names/versions inside the - `user_agent.original`, the most significant name SHOULD be selected. In such a scenario it should align with - `user_agent.version` - - id: user_agent.version - type: string - stability: experimental - brief: > - Version of the user-agent extracted from original. Usually refers to the browser's version - examples: ["14.1.2", "1.0.0"] - note: > - [Example](https://www.whatsmyua.info) of extracting browser's version from original string. In the case of - using a user-agent for non-browser products, such as microservices with multiple names/versions inside the - `user_agent.original`, the most significant version SHOULD be selected. In such a scenario it should align - with `user_agent.name` diff --git a/model/user/user-registry.yaml b/model/user/user-registry.yaml deleted file mode 100644 index 82ef8cf6d4..0000000000 --- a/model/user/user-registry.yaml +++ /dev/null @@ -1,45 +0,0 @@ -groups: - - id: registry.user - type: attribute_group - display_name: User Attributes - brief: "Describes information about the user." - attributes: - - id: user.email - type: string - stability: experimental - brief: > - User email address. - examples: ['a.einstein@example.com'] - - id: user.full_name - type: string - stability: experimental - brief: > - User's full name - examples: ['Albert Einstein'] - - id: user.hash - type: string - stability: experimental - brief: > - Unique user hash to correlate information for a user in anonymized form. - note: > - Useful if `user.id` or `user.name` contain confidential information and cannot be used. - examples: ['364fc68eaf4c8acec74a4e52d7d1feaa'] - - id: user.id - type: string - stability: experimental - brief: > - Unique identifier of the user. - examples: ['S-1-5-21-202424912787-2692429404-2351956786-1000'] - - id: user.name - type: string - stability: experimental - brief: > - Short name or login/username of the user. - examples: ['a.einstein'] - - id: user.roles - type: string[] - stability: experimental - brief: > - Array of user roles at the time of the event. - examples: - - [admin, reporting_user] diff --git a/model/v8js/v8js-metrics.yaml b/model/v8js/v8js-metrics.yaml deleted file mode 100644 index f4f8223d80..0000000000 --- a/model/v8js/v8js-metrics.yaml +++ /dev/null @@ -1,67 +0,0 @@ -groups: - - id: metric.v8js.gc.duration - type: metric - metric_name: v8js.gc.duration - brief: "Garbage collection duration." - instrument: histogram - unit: "s" - stability: experimental - attributes: - - ref: v8js.gc.type - requirement_level: required - note: > - The values can be retrieve from [`perf_hooks.PerformanceObserver(...).observe({ entryTypes: ['gc'] })`](https://nodejs.org/api/perf_hooks.html#performanceobserverobserveoptions) - - - id: metric.v8js.memory.heap.limit - type: metric - metric_name: v8js.memory.heap.limit - brief: "Total heap memory size pre-allocated." - instrument: updowncounter - unit: "By" - stability: experimental - attributes: - - ref: v8js.heap.space.name - requirement_level: required - note: > - The value can be retrieved from value `space_size` of - [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics) - - - id: metric.v8js.memory.heap.used - type: metric - metric_name: v8js.memory.heap.used - brief: "Heap Memory size allocated." - instrument: updowncounter - unit: "By" - stability: experimental - attributes: - - ref: v8js.heap.space.name - requirement_level: required - note: > - The value can be retrieved from value `space_used_size` of - [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics) - - - id: metric.v8js.heap.space.available_size - type: metric - metric_name: v8js.heap.space.available_size - brief: "Heap space available size." - instrument: updowncounter - unit: "By" - stability: experimental - attributes: - - ref: v8js.heap.space.name - requirement_level: required - note: > - Value can be retrieved from value `space_available_size` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics) - - - id: metric.v8js.heap.space.physical_size - type: metric - metric_name: v8js.heap.space.physical_size - brief: "Committed size of a heap space." - instrument: updowncounter - unit: "By" - stability: experimental - attributes: - - ref: v8js.heap.space.name - requirement_level: required - note: > - Value can be retrieved from value `physical_space_size` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics) diff --git a/model/v8js/v8js-registry.yaml b/model/v8js/v8js-registry.yaml deleted file mode 100644 index 8aa99438ba..0000000000 --- a/model/v8js/v8js-registry.yaml +++ /dev/null @@ -1,54 +0,0 @@ -groups: - - id: registry.v8js - type: attribute_group - brief: Describes V8 JS Engine Runtime related attributes. - display_name: V8 JS Attributes - attributes: - - id: v8js.gc.type - stability: experimental - brief: The type of garbage collection. - type: - members: - - id: major - value: 'major' - brief: 'Major (Mark Sweep Compact).' - stability: experimental - - id: minor - value: 'minor' - brief: 'Minor (Scavenge).' - stability: experimental - - id: incremental - value: 'incremental' - brief: 'Incremental (Incremental Marking).' - stability: experimental - - id: weakcb - value: 'weakcb' - brief: 'Weak Callbacks (Process Weak Callbacks).' - stability: experimental - - id: v8js.heap.space.name - stability: experimental - brief: The name of the space type of heap memory. - note: > - Value can be retrieved from value `space_name` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics) - type: - members: - - id: new_space - value: 'new_space' - brief: 'New memory space.' - stability: experimental - - id: old_space - value: 'old_space' - brief: 'Old memory space.' - stability: experimental - - id: code_space - value: 'code_space' - brief: 'Code memory space.' - stability: experimental - - id: map_space - value: 'map_space' - brief: 'Map memory space.' - stability: experimental - - id: large_object_space - value: 'large_object_space' - brief: 'Large object memory space.' - stability: experimental diff --git a/model/vcs/vcs-registry.yaml b/model/vcs/vcs-registry.yaml deleted file mode 100644 index 150bf591ad..0000000000 --- a/model/vcs/vcs-registry.yaml +++ /dev/null @@ -1,85 +0,0 @@ -groups: - - id: registry.vcs.repository - type: attribute_group - brief: > - This group defines the attributes for - [Version Control Systems (VCS)](https://en.wikipedia.org/wiki/Version_control). - attributes: - - id: vcs.repository.url.full - type: string - stability: experimental - brief: > - The [URL](https://en.wikipedia.org/wiki/URL) of the repository - providing the complete address in order to locate and identify the - repository. - examples: - [ - "https://github.com/opentelemetry/open-telemetry-collector-contrib", - "https://gitlab.com/my-org/my-project/my-projects-project/repo", - ] - - id: vcs.repository.ref.name - type: string - stability: experimental - brief: > - The name of the - [reference](https://git-scm.com/docs/gitglossary#def_ref) such as - **branch** or **tag** in the repository. - examples: ["my-feature-branch", "tag-1-test"] - - id: vcs.repository.ref.type - type: - members: - - id: branch - value: branch - brief: "[branch](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbranchabranch)" - stability: experimental - - id: tag - value: tag - brief: "[tag](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddeftagatag)" - stability: experimental - stability: experimental - brief: > - The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository. - examples: ["branch", "tag"] - - id: vcs.repository.ref.revision - type: string - stability: experimental - brief: > - The revision, literally [revised version](https://www.merriam-webster.com/dictionary/revision), - The revision most often refers to a commit object in Git, or a revision number in SVN. - note: | - 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) - which is an integer that is monotonically increasing. In cases where - it is identical to the `ref.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: - [ - "9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc", - "main", - "123", - "HEAD", - ] - - id: vcs.repository.change.title - type: string - stability: experimental - brief: > - The human readable title of the change (pull request/merge request). - This title is often a brief summary of the change and may get merged - in to a ref as the commit summary. - examples: - [ - "Fixes broken thing", - "feat: add my new feature", - "[chore] update dependency", - ] - - id: vcs.repository.change.id - type: string - stability: experimental - brief: > - The ID of the change (pull request/merge request) if applicable. This - is usually a unique (within repository) identifier generated by the VCS system. - examples: ["123"] diff --git a/model/webengine/webengine-registry.yaml b/model/webengine/webengine-registry.yaml deleted file mode 100644 index 726f630b8b..0000000000 --- a/model/webengine/webengine-registry.yaml +++ /dev/null @@ -1,29 +0,0 @@ -groups: - - id: registry.webengine - type: attribute_group - display_name: Web Engine Attributes - stability: experimental - brief: > - This document defines the attributes used to describe the packaged software running the application code. - attributes: - - id: webengine.name - type: string - stability: experimental - brief: > - The name of the web engine. - examples: ["WildFly"] - - id: webengine.version - type: string - stability: experimental - brief: > - The version of the web engine. - examples: ["21.0.0"] - - id: webengine.description - type: string - stability: experimental - brief: > - Additional description of the web engine (e.g. detailed version and edition information). - examples: - [ - "WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final", - ] diff --git a/model/webengine/webengine-resources.yaml b/model/webengine/webengine-resources.yaml deleted file mode 100644 index d9026cf2cf..0000000000 --- a/model/webengine/webengine-resources.yaml +++ /dev/null @@ -1,13 +0,0 @@ -groups: - - id: webengine_resource - type: resource - name: webengine - brief: > - Resource describing the packaged software running the application code. Web engines are typically executed using process.runtime. - attributes: - - ref: webengine.name - requirement_level: required - - ref: webengine.version - requirement_level: recommended - - ref: webengine.description - requirement_level: recommended