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