diff --git a/.chloggen/wip-entity-registry.yaml b/.chloggen/wip-entity-registry.yaml
new file mode 100755
index 0000000000..19fb59efb2
--- /dev/null
+++ b/.chloggen/wip-entity-registry.yaml
@@ -0,0 +1,22 @@
+# Use this changelog template to create an entry for release notes.
+#
+# If your change doesn't affect end users you should instead start
+# your pull request title with [chore] or use the "Skip Changelog" label.
+
+# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
+change_type: enhancement
+
+# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db)
+component: entities
+
+# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
+note: Adds support for Entity registry and Entity stabilization policies.
+
+# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
+# The values here must be integers.
+issues: [2246]
+
+# (Optional) One or more lines of additional information to render under the primary note.
+# These lines will be padded with 2 spaces and then inserted directly into the document.
+# Use pipe (|) for multiline entries.
+subtext:
diff --git a/docs/cicd/cicd-metrics.md b/docs/cicd/cicd-metrics.md
index d2a15e03ba..6b6d5feadf 100644
--- a/docs/cicd/cicd-metrics.md
+++ b/docs/cicd/cicd-metrics.md
@@ -48,7 +48,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `cicd.pipeline.run.duration` | Histogram | `s` | Duration of a pipeline run grouped by pipeline, state and result. |  | `cicd.pipeline` |
+| `cicd.pipeline.run.duration` | Histogram | `s` | Duration of a pipeline run grouped by pipeline, state and result. |  | [`cicd.pipeline`](/docs/registry/entities/cicd.md#cicd-pipeline) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -128,7 +128,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `cicd.pipeline.run.active` | UpDownCounter | `{run}` | The number of pipeline runs currently active in the system by state. |  | `cicd.pipeline` |
+| `cicd.pipeline.run.active` | UpDownCounter | `{run}` | The number of pipeline runs currently active in the system by state. |  | [`cicd.pipeline`](/docs/registry/entities/cicd.md#cicd-pipeline) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -199,7 +199,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `cicd.pipeline.run.errors` | Counter | `{error}` | The number of errors encountered in pipeline runs (eg. compile, test failures). [1] |  | `cicd.pipeline` |
+| `cicd.pipeline.run.errors` | Counter | `{error}` | The number of errors encountered in pipeline runs (eg. compile, test failures). [1] |  | [`cicd.pipeline`](/docs/registry/entities/cicd.md#cicd-pipeline) |
**[1]:** There might be errors in a pipeline run that are non fatal (eg. they are suppressed) or in a parallel stage multiple stages could have a fatal error.
This means that this error count might not be the same as the count of metric `cicd.pipeline.run.duration` with run result `failure`.
@@ -317,7 +317,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.change.count` | UpDownCounter | `{change}` | The number of changes (pull requests/merge requests/changelists) in a repository, categorized by their state (e.g. open or merged) |  | `vcs.repo` |
+| `vcs.change.count` | UpDownCounter | `{change}` | The number of changes (pull requests/merge requests/changelists) in a repository, categorized by their state (e.g. open or merged) |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -374,7 +374,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.change.duration` | Gauge | `s` | The time duration a change (pull request/merge request/changelist) has been in a given state. |  | `vcs.repo` |
+| `vcs.change.duration` | Gauge | `s` | The time duration a change (pull request/merge request/changelist) has been in a given state. |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -435,7 +435,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.change.time_to_approval` | Gauge | `s` | The amount of time since its creation it took a change (pull request/merge request/changelist) to get the first approval. |  | `vcs.repo`; `vcs.ref` |
+| `vcs.change.time_to_approval` | Gauge | `s` | The amount of time since its creation it took a change (pull request/merge request/changelist) to get the first approval. |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo); [`vcs.ref`](/docs/registry/entities/vcs.md#vcs-ref) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -517,7 +517,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.change.time_to_merge` | Gauge | `s` | The amount of time since its creation it took a change (pull request/merge request/changelist) to get merged into the target(base) ref. |  | `vcs.repo`; `vcs.ref` |
+| `vcs.change.time_to_merge` | Gauge | `s` | The amount of time since its creation it took a change (pull request/merge request/changelist) to get merged into the target(base) ref. |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo); [`vcs.ref`](/docs/registry/entities/vcs.md#vcs-ref) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -635,7 +635,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.ref.count` | UpDownCounter | `{ref}` | The number of refs of type branch or tag in a repository. |  | `vcs.repo` |
+| `vcs.ref.count` | UpDownCounter | `{ref}` | The number of refs of type branch or tag in a repository. |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -690,7 +690,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.ref.lines_delta` | Gauge | `{line}` | The number of lines added/removed in a ref (branch) relative to the ref from the `vcs.ref.base.name` attribute. [1] |  | `vcs.repo` |
+| `vcs.ref.lines_delta` | Gauge | `{line}` | The number of lines added/removed in a ref (branch) relative to the ref from the `vcs.ref.base.name` attribute. [1] |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo) |
**[1]:** This metric should be reported for each `vcs.line_change.type` value. For example if a ref added 3 lines and removed 2 lines,
instrumentation SHOULD report two measurements: 3 and 2 (both positive numbers).
@@ -786,7 +786,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.ref.revisions_delta` | Gauge | `{revision}` | The number of revisions (commits) a ref (branch) is ahead/behind the branch from the `vcs.ref.base.name` attribute [1] |  | `vcs.repo` |
+| `vcs.ref.revisions_delta` | Gauge | `{revision}` | The number of revisions (commits) a ref (branch) is ahead/behind the branch from the `vcs.ref.base.name` attribute [1] |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo) |
**[1]:** This metric should be reported for each `vcs.revision_delta.direction` value. For example if branch `a` is 3 commits behind and 2 commits ahead of `trunk`,
instrumentation SHOULD report two measurements: 3 and 2 (both positive numbers) and `vcs.ref.base.name` is set to `trunk`.
@@ -881,7 +881,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.ref.time` | Gauge | `s` | Time a ref (branch) created from the default branch (trunk) has existed. The `ref.type` attribute will always be `branch` |  | `vcs.repo` |
+| `vcs.ref.time` | Gauge | `s` | Time a ref (branch) created from the default branch (trunk) has existed. The `ref.type` attribute will always be `branch` |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -943,7 +943,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `vcs.contributor.count` | Gauge | `{contributor}` | The number of unique contributors to a repository |  | `vcs.repo` |
+| `vcs.contributor.count` | Gauge | `{contributor}` | The number of unique contributors to a repository |  | [`vcs.repo`](/docs/registry/entities/vcs.md#vcs-repo) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
diff --git a/docs/registry/README.md b/docs/registry/README.md
index f4ac7203ee..31b1e729ed 100644
--- a/docs/registry/README.md
+++ b/docs/registry/README.md
@@ -7,3 +7,4 @@ weight: -2
This is an automatically generated registry of available semantic conventions.
- [Attributes](attributes/README.md)
+- [Entities](entities/README.md)
diff --git a/docs/registry/entities/README.md b/docs/registry/entities/README.md
new file mode 100644
index 0000000000..b81e1793a0
--- /dev/null
+++ b/docs/registry/entities/README.md
@@ -0,0 +1,284 @@
+
+
+
+
+
+# Entity registry
+
+The entities registry is the catalog of available Entities.
+
+> [!WARNING]
+>
+> The following registry overview is a work in progress.
+>
+> Relationships and signal associations are a work in progress.
+
+Currently, the following namespaces exist:
+
diff --git a/docs/registry/entities/android.md b/docs/registry/entities/android.md
new file mode 100644
index 0000000000..281054690e
--- /dev/null
+++ b/docs/registry/entities/android.md
@@ -0,0 +1,26 @@
+
+
+
+
+
+# Android
+
+## Android
+
+**Status:** 
+
+**type:** `android`
+
+**Description:** The Android platform on which the Android application is running.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`android.os.api_level`](/docs/registry/attributes/android.md) | string | 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). | `33`; `32` | `Recommended` |  |
+
+
+
diff --git a/docs/registry/entities/app.md b/docs/registry/entities/app.md
new file mode 100644
index 0000000000..e4b9d75f48
--- /dev/null
+++ b/docs/registry/entities/app.md
@@ -0,0 +1,44 @@
+
+
+
+
+
+# App
+
+## App
+
+**Status:** 
+
+**type:** `app`
+
+**Description:** An app used directly by end users — like mobile, web, or desktop.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`app.installation.id`](/docs/registry/attributes/app.md) | string | A unique identifier representing the installation of an application on a specific device [1] | `2ab2916d-a51f-4ac8-80ee-45ac31a28092` | `Recommended` |  |
+
+**[1] `app.installation.id`:** Its value SHOULD persist across launches of the same application installation, including through application upgrades.
+It SHOULD change if the application is uninstalled or if all applications of the vendor are uninstalled.
+Additionally, users might be able to reset this value (e.g. by clearing application data).
+If an app is installed multiple times on the same device (e.g. in different accounts on Android), each `app.installation.id` SHOULD have a different value.
+If multiple OpenTelemetry SDKs are used within the same application, they SHOULD use the same value for `app.installation.id`.
+Hardware IDs (e.g. serial number, IMEI, MAC address) MUST NOT be used as the `app.installation.id`.
+
+For iOS, this value SHOULD be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor).
+
+For Android, examples of `app.installation.id` implementations include:
+
+- [Firebase Installation ID](https://firebase.google.com/docs/projects/manage-installations).
+- A globally unique UUID which is persisted across sessions in your application.
+- [App set ID](https://developer.android.com/identity/app-set-id).
+- [`Settings.getString(Settings.Secure.ANDROID_ID)`](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID).
+
+More information about Android identifier best practices can be found [here](https://developer.android.com/training/articles/user-data-ids).
+
+
+
diff --git a/docs/registry/entities/aws.md b/docs/registry/entities/aws.md
new file mode 100644
index 0000000000..becc21278b
--- /dev/null
+++ b/docs/registry/entities/aws.md
@@ -0,0 +1,84 @@
+
+
+
+
+
+# AWS
+
+## AWS ECS
+
+**Status:** 
+
+**type:** `aws.ecs`
+
+**Description:** Entities used by AWS Elastic Container Service (ECS).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`aws.ecs.task.id`](/docs/registry/attributes/aws.md) | string | The ID of a running ECS task. The ID MUST be extracted from `task.arn`. | `10838bed-421f-43ef-870a-f43feacbbb5b`; `23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd` | `Conditionally Required` If and only if `task.arn` is populated. |  |
+| [`aws.ecs.cluster.arn`](/docs/registry/attributes/aws.md) | string | The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html). | `arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster` | `Recommended` |  |
+| [`aws.ecs.container.arn`](/docs/registry/attributes/aws.md) | string | The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html). | `arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9` | `Recommended` |  |
+| [`aws.ecs.launchtype`](/docs/registry/attributes/aws.md) | string | The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task. | `ec2`; `fargate` | `Recommended` |  |
+| [`aws.ecs.task.arn`](/docs/registry/attributes/aws.md) | string | The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids). | `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` | `Recommended` |  |
+| [`aws.ecs.task.family`](/docs/registry/attributes/aws.md) | string | 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. | `opentelemetry-family` | `Recommended` |  |
+| [`aws.ecs.task.revision`](/docs/registry/attributes/aws.md) | string | The revision for the task definition used to create the ECS task. | `8`; `26` | `Recommended` |  |
+
+---
+
+`aws.ecs.launchtype` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `ec2` | ec2 |  |
+| `fargate` | fargate |  |
+
+## AWS EKS
+
+**Status:** 
+
+**type:** `aws.eks`
+
+**Description:** Entities used by AWS Elastic Kubernetes Service (EKS).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`aws.eks.cluster.arn`](/docs/registry/attributes/aws.md) | string | The ARN of an EKS cluster. | `arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster` | `Recommended` |  |
+
+## AWS Log
+
+**Status:** 
+
+**type:** `aws.log`
+
+**Description:** Entities specific to Amazon Web Services.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`aws.log.group.arns`](/docs/registry/attributes/aws.md) | string[] | The Amazon Resource Name(s) (ARN) of the AWS log group(s). [1] | `["arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*"]` | `Recommended` |  |
+| [`aws.log.group.names`](/docs/registry/attributes/aws.md) | string[] | The name(s) of the AWS log group(s) an application is writing to. [2] | `["/aws/lambda/my-function", "opentelemetry-service"]` | `Recommended` |  |
+| [`aws.log.stream.arns`](/docs/registry/attributes/aws.md) | string[] | The ARN(s) of the AWS log stream(s). [3] | `["arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b"]` | `Recommended` |  |
+| [`aws.log.stream.names`](/docs/registry/attributes/aws.md) | string[] | The name(s) of the AWS log stream(s) an application is writing to. | `["logs/main/10838bed-421f-43ef-870a-f43feacbbb5b"]` | `Recommended` |  |
+
+**[1] `aws.log.group.arns`:** See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
+
+**[2] `aws.log.group.names`:** 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.
+
+**[3] `aws.log.stream.arns`:** 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.
+
+
+
diff --git a/docs/registry/entities/browser.md b/docs/registry/entities/browser.md
new file mode 100644
index 0000000000..fc623d3f51
--- /dev/null
+++ b/docs/registry/entities/browser.md
@@ -0,0 +1,41 @@
+
+
+
+
+
+# Browser
+
+## Browser
+
+**Status:** 
+
+**type:** `browser`
+
+**Description:** 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).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`browser.brands`](/docs/registry/attributes/browser.md) | string[] | Array of brand name and version separated by a space [1] | `[" Not A;Brand 99", "Chromium 99", "Chrome 99"]` | `Recommended` |  |
+| [`browser.language`](/docs/registry/attributes/browser.md) | string | Preferred language of the user using the browser [2] | `en`; `en-US`; `fr`; `fr-FR` | `Recommended` |  |
+| [`browser.mobile`](/docs/registry/attributes/browser.md) | boolean | A boolean that is true if the browser is running on a mobile device [3] | | `Recommended` |  |
+| [`browser.platform`](/docs/registry/attributes/browser.md) | string | The platform on which the browser is running [4] | `Windows`; `macOS`; `Android` | `Recommended` |  |
+| [`user_agent.original`](/docs/registry/attributes/user-agent.md) | string | Full user-agent string provided by the browser [5] | `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` | `Recommended` |  |
+
+**[1] `browser.brands`:** This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).
+
+**[2] `browser.language`:** This value is intended to be taken from the Navigator API `navigator.language`.
+
+**[3] `browser.mobile`:** 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.
+
+**[4] `browser.platform`:** 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.
+
+**[5] `user_agent.original`:** 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.
+
+
+
diff --git a/docs/registry/entities/cicd.md b/docs/registry/entities/cicd.md
new file mode 100644
index 0000000000..da74d73d15
--- /dev/null
+++ b/docs/registry/entities/cicd.md
@@ -0,0 +1,63 @@
+
+
+
+
+
+# CICD
+
+## CICD Pipeline
+
+**Status:** 
+
+**type:** `cicd.pipeline`
+
+**Description:** A pipeline is a series of automated steps that helps software teams deliver code.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cicd.pipeline.name`](/docs/registry/attributes/cicd.md) | string | The human readable name of the pipeline within a CI/CD system. | `Build and Test`; `Lint`; `Deploy Go Project`; `deploy_to_environment` | `Recommended` |  |
+
+## CICD Pipeline Run
+
+**Status:** 
+
+**type:** `cicd.pipeline.run`
+
+**Description:** A pipeline run is a singular execution of a given pipeline's tasks.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cicd.pipeline.run.id`](/docs/registry/attributes/cicd.md) | string | The unique identifier of a pipeline run within a CI/CD system. | `120912` | `Recommended` |  |
+| [`cicd.pipeline.run.url.full`](/docs/registry/attributes/cicd.md) | string | The [URL](https://wikipedia.org/wiki/URL) of the pipeline run, providing the complete address in order to locate and identify the pipeline run. | `https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763?pr=1075` | `Recommended` |  |
+
+## CICD Worker
+
+**Status:** 
+
+**type:** `cicd.worker`
+
+**Description:** A CICD worker is a component of the CICD system that performs work (eg. running pipeline tasks or performing sync).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cicd.worker.id`](/docs/registry/attributes/cicd.md) | string | The unique identifier of a worker within a CICD system. | `abc123`; `10.0.1.2`; `controller` | `Required` |  |
+| [`cicd.worker.name`](/docs/registry/attributes/cicd.md) | string | The name of a worker within a CICD system. | `agent-abc`; `controller`; `Ubuntu LTS` | `Recommended` |  |
+| [`cicd.worker.url.full`](/docs/registry/attributes/cicd.md) | string | The [URL](https://wikipedia.org/wiki/URL) of the worker, providing the complete address in order to locate and identify the worker. | `https://cicd.example.org/worker/abc123` | `Recommended` If available |  |
+
+
+
diff --git a/docs/registry/entities/cloud.md b/docs/registry/entities/cloud.md
new file mode 100644
index 0000000000..c78fe3f681
--- /dev/null
+++ b/docs/registry/entities/cloud.md
@@ -0,0 +1,107 @@
+
+
+
+
+
+# Cloud
+
+## Cloud
+
+**Status:** 
+
+**type:** `cloud`
+
+**Description:** A cloud environment (e.g. GCP, Azure, AWS)
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cloud.account.id`](/docs/registry/attributes/cloud.md) | string | The cloud account ID the resource is assigned to. | `111111111111`; `opentelemetry` | `Recommended` |  |
+| [`cloud.availability_zone`](/docs/registry/attributes/cloud.md) | string | Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running. [1] | `us-east-1c` | `Recommended` |  |
+| [`cloud.platform`](/docs/registry/attributes/cloud.md) | string | The cloud platform in use. [2] | `alibaba_cloud_ecs`; `alibaba_cloud_fc`; `alibaba_cloud_openshift` | `Recommended` |  |
+| [`cloud.provider`](/docs/registry/attributes/cloud.md) | string | Name of the cloud provider. | `alibaba_cloud`; `aws`; `azure` | `Recommended` |  |
+| [`cloud.region`](/docs/registry/attributes/cloud.md) | string | The geographical region within a cloud provider. When associated with a resource, this attribute specifies the region where the resource operates. When calling services or APIs deployed on a cloud, this attribute identifies the region where the called destination is deployed. [3] | `us-central1`; `us-east-1` | `Recommended` |  |
+| [`cloud.resource_id`](/docs/registry/attributes/cloud.md) | string | 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://google.aip.dev/122#full-resource-names) on GCP) [4] | `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/` | `Recommended` |  |
+
+**[1] `cloud.availability_zone`:** Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
+
+**[2] `cloud.platform`:** The prefix of the service SHOULD match the one specified in `cloud.provider`.
+
+**[3] `cloud.region`:** 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).
+
+**[4] `cloud.resource_id`:** 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://learn.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.
+
+---
+
+`cloud.platform` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `alibaba_cloud_ecs` | Alibaba Cloud Elastic Compute Service |  |
+| `alibaba_cloud_fc` | Alibaba Cloud Function Compute |  |
+| `alibaba_cloud_openshift` | Red Hat OpenShift on Alibaba Cloud |  |
+| `aws_app_runner` | AWS App Runner |  |
+| `aws_ec2` | AWS Elastic Compute Cloud |  |
+| `aws_ecs` | AWS Elastic Container Service |  |
+| `aws_eks` | AWS Elastic Kubernetes Service |  |
+| `aws_elastic_beanstalk` | AWS Elastic Beanstalk |  |
+| `aws_lambda` | AWS Lambda |  |
+| `aws_openshift` | Red Hat OpenShift on AWS (ROSA) |  |
+| `azure.aks` | Azure Kubernetes Service |  |
+| `azure.app_service` | Azure App Service |  |
+| `azure.container_apps` | Azure Container Apps |  |
+| `azure.container_instances` | Azure Container Instances |  |
+| `azure.functions` | Azure Functions |  |
+| `azure.openshift` | Azure Red Hat OpenShift |  |
+| `azure.vm` | Azure Virtual Machines |  |
+| `gcp_app_engine` | Google Cloud App Engine (GAE) |  |
+| `gcp_bare_metal_solution` | Google Bare Metal Solution (BMS) |  |
+| `gcp_cloud_functions` | Google Cloud Functions (GCF) |  |
+| `gcp_cloud_run` | Google Cloud Run |  |
+| `gcp_compute_engine` | Google Cloud Compute Engine (GCE) |  |
+| `gcp_kubernetes_engine` | Google Cloud Kubernetes Engine (GKE) |  |
+| `gcp_openshift` | Red Hat OpenShift on Google Cloud |  |
+| `ibm_cloud_openshift` | Red Hat OpenShift on IBM Cloud |  |
+| `oracle_cloud_compute` | Compute on Oracle Cloud Infrastructure (OCI) |  |
+| `oracle_cloud_oke` | Kubernetes Engine (OKE) on Oracle Cloud Infrastructure (OCI) |  |
+| `tencent_cloud_cvm` | Tencent Cloud Cloud Virtual Machine (CVM) |  |
+| `tencent_cloud_eks` | Tencent Cloud Elastic Kubernetes Service (EKS) |  |
+| `tencent_cloud_scf` | Tencent Cloud Serverless Cloud Function (SCF) |  |
+
+---
+
+`cloud.provider` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `alibaba_cloud` | Alibaba Cloud |  |
+| `aws` | Amazon Web Services |  |
+| `azure` | Microsoft Azure |  |
+| `gcp` | Google Cloud Platform |  |
+| `heroku` | Heroku Platform as a Service |  |
+| `ibm_cloud` | IBM Cloud |  |
+| `oracle_cloud` | Oracle Cloud Infrastructure (OCI) |  |
+| `tencent_cloud` | Tencent Cloud |  |
+
+
+
diff --git a/docs/registry/entities/cloudfoundry.md b/docs/registry/entities/cloudfoundry.md
new file mode 100644
index 0000000000..80c337f925
--- /dev/null
+++ b/docs/registry/entities/cloudfoundry.md
@@ -0,0 +1,150 @@
+
+
+
+
+
+# CloudFoundry
+
+## CloudFoundry App
+
+**Status:** 
+
+**type:** `cloudfoundry.app`
+
+**Description:** The application which is monitored.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cloudfoundry.app.id`](/docs/registry/attributes/cloudfoundry.md) | string | The guid of the application. [1] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` | `Recommended` |  |
+| [`cloudfoundry.app.name`](/docs/registry/attributes/cloudfoundry.md) | string | The name of the application. [2] | `my-app-name` | `Recommended` |  |
+
+**[1] `cloudfoundry.app.id`:** Application instrumentation should use the value from environment
+variable `VCAP_APPLICATION.application_id`. This is the same value as
+reported by `cf app --guid`.
+
+**[2] `cloudfoundry.app.name`:** Application instrumentation should use the value from environment
+variable `VCAP_APPLICATION.application_name`. This is the same value
+as reported by `cf apps`.
+
+## CloudFoundry Org
+
+**Status:** 
+
+**type:** `cloudfoundry.org`
+
+**Description:** The organization of the application which is monitored.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cloudfoundry.org.id`](/docs/registry/attributes/cloudfoundry.md) | string | The guid of the CloudFoundry org the application is running in. [3] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` | `Recommended` |  |
+| [`cloudfoundry.org.name`](/docs/registry/attributes/cloudfoundry.md) | string | The name of the CloudFoundry organization the app is running in. [4] | `my-org-name` | `Recommended` |  |
+
+**[3] `cloudfoundry.org.id`:** Application instrumentation should use the value from environment
+variable `VCAP_APPLICATION.org_id`. This is the same value as
+reported by `cf org --guid`.
+
+**[4] `cloudfoundry.org.name`:** Application instrumentation should use the value from environment
+variable `VCAP_APPLICATION.org_name`. This is the same value as
+reported by `cf orgs`.
+
+## CloudFoundry Process
+
+**Status:** 
+
+**type:** `cloudfoundry.process`
+
+**Description:** The process of the application which is monitored.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cloudfoundry.process.id`](/docs/registry/attributes/cloudfoundry.md) | string | The UID identifying the process. [5] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` | `Recommended` |  |
+| [`cloudfoundry.process.type`](/docs/registry/attributes/cloudfoundry.md) | string | The type of process. [6] | `web` | `Recommended` |  |
+
+**[5] `cloudfoundry.process.id`:** Application instrumentation should use the value from environment
+variable `VCAP_APPLICATION.process_id`. It is supposed to be equal to
+`VCAP_APPLICATION.app_id` for applications deployed to the runtime.
+For system components, this could be the actual PID.
+
+**[6] `cloudfoundry.process.type`:** CloudFoundry applications can consist of multiple jobs. Usually the
+main process will be of type `web`. There can be additional background
+tasks or side-cars with different process types.
+
+## CloudFoundry Space
+
+**Status:** 
+
+**type:** `cloudfoundry.space`
+
+**Description:** The space of the application which is monitored.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cloudfoundry.space.id`](/docs/registry/attributes/cloudfoundry.md) | string | The guid of the CloudFoundry space the application is running in. [7] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` | `Recommended` |  |
+| [`cloudfoundry.space.name`](/docs/registry/attributes/cloudfoundry.md) | string | The name of the CloudFoundry space the application is running in. [8] | `my-space-name` | `Recommended` |  |
+
+**[7] `cloudfoundry.space.id`:** Application instrumentation should use the value from environment
+variable `VCAP_APPLICATION.space_id`. This is the same value as
+reported by `cf space --guid`.
+
+**[8] `cloudfoundry.space.name`:** Application instrumentation should use the value from environment
+variable `VCAP_APPLICATION.space_name`. This is the same value as
+reported by `cf spaces`.
+
+## CloudFoundry System
+
+**Status:** 
+
+**type:** `cloudfoundry.system`
+
+**Description:** The system component which is monitored.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`cloudfoundry.system.id`](/docs/registry/attributes/cloudfoundry.md) | string | A guid or another name describing the event source. [9] | `cf/gorouter` | `Recommended` |  |
+| [`cloudfoundry.system.instance.id`](/docs/registry/attributes/cloudfoundry.md) | string | A guid describing the concrete instance of the event source. [10] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` | `Recommended` |  |
+
+**[9] `cloudfoundry.system.id`:** CloudFoundry defines the `source_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
+It is used for logs and metrics emitted by CloudFoundry. It is
+supposed to contain the component name, e.g. "gorouter", for
+CloudFoundry components.
+
+When system components are instrumented, values from the
+[Bosh spec](https://bosh.io/docs/jobs/#properties-spec)
+should be used. The `system.id` should be set to
+`spec.deployment/spec.name`.
+
+**[10] `cloudfoundry.system.instance.id`:** CloudFoundry defines the `instance_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
+It is used for logs and metrics emitted by CloudFoundry. It is
+supposed to contain the vm id for CloudFoundry components.
+
+When system components are instrumented, values from the
+[Bosh spec](https://bosh.io/docs/jobs/#properties-spec)
+should be used. The `system.instance.id` should be set to `spec.id`.
+
+
+
diff --git a/docs/registry/entities/container.md b/docs/registry/entities/container.md
new file mode 100644
index 0000000000..10782e3d4b
--- /dev/null
+++ b/docs/registry/entities/container.md
@@ -0,0 +1,50 @@
+
+
+
+
+
+# Container
+
+## Container
+
+**Status:** 
+
+**type:** `container`
+
+**Description:** A container instance.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`container.id`](/docs/registry/attributes/container.md) | string | 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. | `a3bf90e006b2` | `Recommended` |  |
+| [`container.image.id`](/docs/registry/attributes/container.md) | string | Runtime specific image identifier. Usually a hash algorithm followed by a UUID. [1] | `sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f` | `Recommended` |  |
+| [`container.image.name`](/docs/registry/attributes/container.md) | string | Name of the image the container was built on. | `gcr.io/opentelemetry/operator` | `Recommended` |  |
+| [`container.image.repo_digests`](/docs/registry/attributes/container.md) | string[] | Repo digests of the container image as provided by the container runtime. [2] | `["example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb", "internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578"]` | `Recommended` |  |
+| [`container.image.tags`](/docs/registry/attributes/container.md) | string[] | 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:`. | `["v1.27.1", "3.5.7-0"]` | `Recommended` |  |
+| [`container.label.`](/docs/registry/attributes/container.md) | string | Container labels, `` being the label name, the value being the label value. [3] | `nginx` | `Recommended` |  |
+| [`container.name`](/docs/registry/attributes/container.md) | string | Container name used by container runtime. | `opentelemetry-autoconf` | `Recommended` |  |
+| [`container.runtime`](/docs/registry/attributes/container.md) | string | The container runtime managing this container. | `docker`; `containerd`; `rkt` | `Recommended` |  |
+| [`oci.manifest.digest`](/docs/registry/attributes/oci.md) | string | The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known. [4] | `sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4` | `Recommended` |  |
+| [`container.command`](/docs/registry/attributes/container.md) | string | The command used to run the container (i.e. the command name). [5] | `otelcontribcol` | `Opt-In` |  |
+| [`container.command_args`](/docs/registry/attributes/container.md) | string[] | All the command arguments (including the command/executable itself) run by the container. | `["otelcontribcol", "--config", "config.yaml"]` | `Opt-In` |  |
+| [`container.command_line`](/docs/registry/attributes/container.md) | string | The full command run by the container as a single string representing the full command. | `otelcontribcol --config config.yaml` | `Opt-In` |  |
+
+**[1] `container.image.id`:** 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.
+
+**[2] `container.image.repo_digests`:** [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.
+
+**[3] `container.label.`:** For example, a docker container label `app` with value `nginx` SHOULD be recorded as the `container.label.app` attribute with value `"nginx"`.
+
+**[4] `oci.manifest.digest`:** 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://github.com/opencontainers/image-spec/blob/main/manifest.md#example-image-manifest).
+
+**[5] `container.command`:** If using embedded credentials or sensitive data, it is recommended to remove them to prevent potential leakage.
+
+
+
diff --git a/docs/registry/entities/deployment.md b/docs/registry/entities/deployment.md
new file mode 100644
index 0000000000..cfdda3340b
--- /dev/null
+++ b/docs/registry/entities/deployment.md
@@ -0,0 +1,34 @@
+
+
+
+
+
+# Deployment
+
+## Deployment
+
+**Status:** 
+
+**type:** `deployment`
+
+**Description:** The software deployment.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`deployment.environment.name`](/docs/registry/attributes/deployment.md) | string | Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier). [1] | `staging`; `production` | `Recommended` |  |
+
+**[1] `deployment.environment.name`:** `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`.
+
+
+
diff --git a/docs/registry/entities/device.md b/docs/registry/entities/device.md
new file mode 100644
index 0000000000..0233c829b0
--- /dev/null
+++ b/docs/registry/entities/device.md
@@ -0,0 +1,52 @@
+
+
+
+
+
+# Device
+
+## Device
+
+**Status:** 
+
+**type:** `device`
+
+**Description:** The device on which the process represented by this resource is running.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`device.manufacturer`](/docs/registry/attributes/device.md) | string | The name of the device manufacturer [1] | `Apple`; `Samsung` | `Recommended` |  |
+| [`device.model.identifier`](/docs/registry/attributes/device.md) | string | The model identifier for the device [2] | `iPhone3,4`; `SM-G920F` | `Recommended` |  |
+| [`device.model.name`](/docs/registry/attributes/device.md) | string | The marketing name for the device model [3] | `iPhone 6s Plus`; `Samsung Galaxy S6` | `Recommended` |  |
+| [`device.id`](/docs/registry/attributes/device.md) | string | A unique identifier representing the device [4] | `123456789012345`; `01:23:45:67:89:AB` | `Opt-In` |  |
+
+**[1] `device.manufacturer`:** The Android OS provides this field via [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER). iOS apps SHOULD hardcode the value `Apple`.
+
+**[2] `device.model.identifier`:** 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.
+
+**[3] `device.model.name`:** It's recommended this value represents a human-readable version of the device model rather than a machine-readable alternative.
+
+**[4] `device.id`:** Its value SHOULD be identical for all apps on a device and it SHOULD NOT change if an app is uninstalled and re-installed.
+However, it might be resettable by the user for all apps on a device.
+Hardware IDs (e.g. vendor-specific serial number, IMEI or MAC address) MAY be used as values.
+
+More information about Android identifier best practices can be found [here](https://developer.android.com/training/articles/user-data-ids).
+
+> [!WARNING]
+>
+> This attribute may contain sensitive (PII) information. 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.
+>
+> Due to these reasons, this identifier is not recommended for consumer applications and will likely result in rejection from both Google Play and App Store.
+> However, it may be appropriate for specific enterprise scenarios, such as kiosk devices or enterprise-managed devices, with appropriate compliance clearance.
+> Any instrumentation providing this identifier MUST implement it as an opt-in feature.
+>
+> See [`app.installation.id`](/docs/registry/attributes/app.md#app-installation-id) for a more privacy-preserving alternative.
+
+
+
diff --git a/docs/registry/entities/faas.md b/docs/registry/entities/faas.md
new file mode 100644
index 0000000000..289d024e18
--- /dev/null
+++ b/docs/registry/entities/faas.md
@@ -0,0 +1,79 @@
+
+
+
+
+
+# Faas
+
+## Faas
+
+**Status:** 
+
+**type:** `faas`
+
+**Description:** A serverless instance.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`faas.name`](/docs/registry/attributes/faas.md) | string | The name of the single function that this runtime instance executes. [1] | `my-function`; `myazurefunctionapp/some-function-name` | `Required` |  |
+| [`cloud.resource_id`](/docs/registry/attributes/cloud.md) | string | 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://google.aip.dev/122#full-resource-names) on GCP) [2] | `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/` | `Recommended` |  |
+| [`faas.instance`](/docs/registry/attributes/faas.md) | string | The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version. [3] | `2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de` | `Recommended` |  |
+| [`faas.max_memory`](/docs/registry/attributes/faas.md) | int | The amount of memory available to the serverless function converted to Bytes. [4] | `134217728` | `Recommended` |  |
+| [`faas.version`](/docs/registry/attributes/faas.md) | string | The immutable version of the function being executed. [5] | `26`; `pinkfroid-00002` | `Recommended` |  |
+
+**[1] `faas.name`:** 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.name`](/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).
+
+**[2] `cloud.resource_id`:** 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://learn.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.
+
+**[3] `faas.instance`:** - **AWS Lambda:** Use the (full) log stream name.
+
+**[4] `faas.max_memory`:** 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).
+
+**[5] `faas.version`:** 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.
+
+
+
diff --git a/docs/registry/entities/gcp.md b/docs/registry/entities/gcp.md
new file mode 100644
index 0000000000..511897f11d
--- /dev/null
+++ b/docs/registry/entities/gcp.md
@@ -0,0 +1,154 @@
+
+
+
+
+
+# GCP
+
+## GCP Apphub Application
+
+**Status:** 
+
+**type:** `gcp.apphub.application`
+
+**Description:** Attributes denoting data from an Application in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.apphub.application.container`](/docs/registry/attributes/gcp.md) | string | The container within GCP where the AppHub application is defined. | `projects/my-container-project` | `Required` |  |
+| [`gcp.apphub.application.id`](/docs/registry/attributes/gcp.md) | string | The name of the application as configured in AppHub. | `my-application` | `Required` |  |
+| [`gcp.apphub.application.location`](/docs/registry/attributes/gcp.md) | string | The GCP zone or region where the application is defined. | `us-central1` | `Required` |  |
+
+## GCP Apphub Service
+
+**Status:** 
+
+**type:** `gcp.apphub.service`
+
+**Description:** Attributes denoting data from a Service in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.apphub.service.criticality_type`](/docs/registry/attributes/gcp.md) | string | Criticality of a service indicates its importance to the business. [1] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | `Required` |  |
+| [`gcp.apphub.service.environment_type`](/docs/registry/attributes/gcp.md) | string | Environment of a service is the stage of a software lifecycle. [2] | `PRODUCTION`; `STAGING`; `TEST` | `Required` |  |
+| [`gcp.apphub.service.id`](/docs/registry/attributes/gcp.md) | string | The name of the service as configured in AppHub. | `my-service` | `Required` |  |
+
+**[1] `gcp.apphub.service.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
+
+**[2] `gcp.apphub.service.environment_type`:** [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
+
+---
+
+`gcp.apphub.service.criticality_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `HIGH` | High impact. |  |
+| `LOW` | Low impact. |  |
+| `MEDIUM` | Medium impact. |  |
+| `MISSION_CRITICAL` | Mission critical service. |  |
+
+---
+
+`gcp.apphub.service.environment_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `DEVELOPMENT` | Development environment. |  |
+| `PRODUCTION` | Production environment. |  |
+| `STAGING` | Staging environment. |  |
+| `TEST` | Test environment. |  |
+
+## GCP Apphub Workload
+
+**Status:** 
+
+**type:** `gcp.apphub.workload`
+
+**Description:** Attributes denoting data from a Workload in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.apphub.workload.criticality_type`](/docs/registry/attributes/gcp.md) | string | Criticality of a workload indicates its importance to the business. [3] | `MISSION_CRITICAL`; `HIGH`; `MEDIUM` | `Required` |  |
+| [`gcp.apphub.workload.environment_type`](/docs/registry/attributes/gcp.md) | string | Environment of a workload is the stage of a software lifecycle. [4] | `PRODUCTION`; `STAGING`; `TEST` | `Required` |  |
+| [`gcp.apphub.workload.id`](/docs/registry/attributes/gcp.md) | string | The name of the workload as configured in AppHub. | `my-workload` | `Required` |  |
+
+**[3] `gcp.apphub.workload.criticality_type`:** [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
+
+**[4] `gcp.apphub.workload.environment_type`:** [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
+
+---
+
+`gcp.apphub.workload.criticality_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `HIGH` | High impact. |  |
+| `LOW` | Low impact. |  |
+| `MEDIUM` | Medium impact. |  |
+| `MISSION_CRITICAL` | Mission critical service. |  |
+
+---
+
+`gcp.apphub.workload.environment_type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `DEVELOPMENT` | Development environment. |  |
+| `PRODUCTION` | Production environment. |  |
+| `STAGING` | Staging environment. |  |
+| `TEST` | Test environment. |  |
+
+## GCP Cloud Run
+
+**Status:** 
+
+**type:** `gcp.cloud_run`
+
+**Description:** Resource used by Google Cloud Run.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.cloud_run.job.execution`](/docs/registry/attributes/gcp.md) | string | 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. | `job-name-xxxx`; `sample-job-mdw84` | `Recommended` |  |
+| [`gcp.cloud_run.job.task_index`](/docs/registry/attributes/gcp.md) | int | 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. | `0`; `1` | `Recommended` |  |
+
+## GCP GCE
+
+**Status:** 
+
+**type:** `gcp.gce`
+
+**Description:** Resources used by Google Compute Engine (GCE).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`gcp.gce.instance.hostname`](/docs/registry/attributes/gcp.md) | string | 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). | `my-host1234.example.com`; `sample-vm.us-west1-b.c.my-project.internal` | `Recommended` |  |
+| [`gcp.gce.instance.name`](/docs/registry/attributes/gcp.md) | string | 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). | `instance-1`; `my-vm-name` | `Recommended` |  |
+
+
+
diff --git a/docs/registry/entities/heroku.md b/docs/registry/entities/heroku.md
new file mode 100644
index 0000000000..9627793abf
--- /dev/null
+++ b/docs/registry/entities/heroku.md
@@ -0,0 +1,28 @@
+
+
+
+
+
+# Heroku
+
+## Heroku
+
+**Status:** 
+
+**type:** `heroku`
+
+**Description:** [Heroku dyno metadata](https://devcenter.heroku.com/articles/dyno-metadata)
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`heroku.app.id`](/docs/registry/attributes/heroku.md) | string | Unique identifier for the application | `2daa2797-e42b-4624-9322-ec3f968df4da` | `Opt-In` |  |
+| [`heroku.release.commit`](/docs/registry/attributes/heroku.md) | string | Commit hash for the current release | `e6134959463efd8966b20e75b913cafe3f5ec` | `Opt-In` |  |
+| [`heroku.release.creation_timestamp`](/docs/registry/attributes/heroku.md) | string | Time and date the release was created | `2022-10-23T18:00:42Z` | `Opt-In` |  |
+
+
+
diff --git a/docs/registry/entities/host.md b/docs/registry/entities/host.md
new file mode 100644
index 0000000000..f623758327
--- /dev/null
+++ b/docs/registry/entities/host.md
@@ -0,0 +1,103 @@
+
+
+
+
+
+# Host
+
+## Host
+
+**Status:** 
+
+**type:** `host`
+
+**Description:** A host is defined as a computing instance. For example, physical servers, virtual machines, switches or disk array.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`host.arch`](/docs/registry/attributes/host.md) | string | The CPU architecture the host system is running on. | `amd64`; `arm32`; `arm64` | `Recommended` |  |
+| [`host.id`](/docs/registry/attributes/host.md) | string | 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. [1] | `fdbf79e8af94cb7f9e8df36789187052` | `Recommended` |  |
+| [`host.image.id`](/docs/registry/attributes/host.md) | string | VM image ID or host OS image ID. For Cloud, this value is from the provider. | `ami-07b06b442921831e5` | `Recommended` |  |
+| [`host.image.name`](/docs/registry/attributes/host.md) | string | Name of the VM image or OS install the host was instantiated from. | `infra-ami-eks-worker-node-7d4ec78312`; `CentOS-8-x86_64-1905` | `Recommended` |  |
+| [`host.image.version`](/docs/registry/attributes/host.md) | string | The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes). | `0.1` | `Recommended` |  |
+| [`host.name`](/docs/registry/attributes/host.md) | string | 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. | `opentelemetry-test` | `Recommended` |  |
+| [`host.type`](/docs/registry/attributes/host.md) | string | Type of host. For Cloud, this must be the machine type. | `n1-standard-1` | `Recommended` |  |
+| [`host.ip`](/docs/registry/attributes/host.md) | string[] | Available IP addresses of the host, excluding loopback interfaces. [2] | `["192.168.1.140", "fe80::abc2:4a28:737a:609e"]` | `Opt-In` |  |
+| [`host.mac`](/docs/registry/attributes/host.md) | string[] | Available MAC addresses of the host, excluding loopback interfaces. [3] | `["AC-DE-48-23-45-67", "AC-DE-48-23-45-67-01-9F"]` | `Opt-In` |  |
+
+**[1] `host.id`:** 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.
+
+**[2] `host.ip`:** 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.
+
+**[3] `host.mac`:** 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.
+
+---
+
+`host.arch` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `amd64` | AMD64 |  |
+| `arm32` | ARM32 |  |
+| `arm64` | ARM64 |  |
+| `ia64` | Itanium |  |
+| `ppc32` | 32-bit PowerPC |  |
+| `ppc64` | 64-bit PowerPC |  |
+| `s390x` | IBM z/Architecture |  |
+| `x86` | 32-bit x86 |  |
+
+## Host CPU
+
+**Status:** 
+
+**type:** `host.cpu`
+
+**Description:** A host's CPU information
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`host.cpu.cache.l2.size`](/docs/registry/attributes/host.md) | int | The amount of level 2 memory cache available to the processor (in Bytes). | `12288000` | `Opt-In` |  |
+| [`host.cpu.family`](/docs/registry/attributes/host.md) | string | Family or generation of the CPU. | `6`; `PA-RISC 1.1e` | `Opt-In` |  |
+| [`host.cpu.model.id`](/docs/registry/attributes/host.md) | string | Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family. | `6`; `9000/778/B180L` | `Opt-In` |  |
+| [`host.cpu.model.name`](/docs/registry/attributes/host.md) | string | Model designation of the processor. | `11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz` | `Opt-In` |  |
+| [`host.cpu.stepping`](/docs/registry/attributes/host.md) | string | Stepping or core revisions. | `1`; `r1p1` | `Opt-In` |  |
+| [`host.cpu.vendor.id`](/docs/registry/attributes/host.md) | string | Processor manufacturer identifier. A maximum 12-character string. [4] | `GenuineIntel` | `Opt-In` |  |
+
+**[4] `host.cpu.vendor.id`:** [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.
+
+
+
diff --git a/docs/registry/entities/k8s.md b/docs/registry/entities/k8s.md
new file mode 100644
index 0000000000..ba2bbb7b25
--- /dev/null
+++ b/docs/registry/entities/k8s.md
@@ -0,0 +1,441 @@
+
+
+
+
+
+# K8s
+
+## K8s Cluster
+
+**Status:** 
+
+**type:** `k8s.cluster`
+
+**Description:** A Kubernetes Cluster.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.cluster.name`](/docs/registry/attributes/k8s.md) | string | The name of the cluster. | `opentelemetry-cluster` | `Recommended` |  |
+| [`k8s.cluster.uid`](/docs/registry/attributes/k8s.md) | string | A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace. [1] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` | `Recommended` |  |
+
+**[1] `k8s.cluster.uid`:** 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.
+
+## K8s Container
+
+**Status:** 
+
+**type:** `k8s.container`
+
+**Description:** A container in a [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates).
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.container.name`](/docs/registry/attributes/k8s.md) | string | The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`). | `redis` | `Recommended` |  |
+| [`k8s.container.restart_count`](/docs/registry/attributes/k8s.md) | int | Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec. | | `Recommended` |  |
+| [`k8s.container.status.last_terminated_reason`](/docs/registry/attributes/k8s.md) | string | Last terminated reason of the Container. | `Evicted`; `Error` | `Recommended` |  |
+
+## K8s Cronjob
+
+**Status:** 
+
+**type:** `k8s.cronjob`
+
+**Description:** A Kubernetes CronJob object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.cronjob.name`](/docs/registry/attributes/k8s.md) | string | The name of the CronJob. | `opentelemetry` | `Recommended` |  |
+| [`k8s.cronjob.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the CronJob. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+| [`k8s.cronjob.annotation.`](/docs/registry/attributes/k8s.md) | string | The cronjob annotation placed on the CronJob, the `` being the annotation name, the value being the annotation value. [2] | `4`; `` | `Opt-In` |  |
+| [`k8s.cronjob.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the CronJob, the `` being the label name, the value being the label value. [3] | `weekly`; `` | `Opt-In` |  |
+
+**[2] `k8s.cronjob.annotation.`:** Examples:
+
+- An annotation `retries` with value `4` SHOULD be recorded as the
+ `k8s.cronjob.annotation.retries` attribute with value `"4"`.
+- An annotation `data` with empty string value SHOULD be recorded as
+ the `k8s.cronjob.annotation.data` attribute with value `""`.
+
+**[3] `k8s.cronjob.label.`:** Examples:
+
+- A label `type` with value `weekly` SHOULD be recorded as the
+ `k8s.cronjob.label.type` attribute with value `"weekly"`.
+- A label `automated` with empty string value SHOULD be recorded as
+ the `k8s.cronjob.label.automated` attribute with value `""`.
+
+## K8s Daemonset
+
+**Status:** 
+
+**type:** `k8s.daemonset`
+
+**Description:** A Kubernetes DaemonSet object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.daemonset.name`](/docs/registry/attributes/k8s.md) | string | The name of the DaemonSet. | `opentelemetry` | `Recommended` |  |
+| [`k8s.daemonset.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the DaemonSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+| [`k8s.daemonset.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the DaemonSet, the `` being the annotation name, the value being the annotation value, even if the value is empty. [4] | `1`; `` | `Opt-In` |  |
+| [`k8s.daemonset.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the DaemonSet, the `` being the label name, the value being the label value, even if the value is empty. [5] | `guestbook`; `` | `Opt-In` |  |
+
+**[4] `k8s.daemonset.annotation.`:** Examples:
+
+- A label `replicas` with value `1` SHOULD be recorded
+ as the `k8s.daemonset.annotation.replicas` attribute with value `"1"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.daemonset.annotation.data` attribute with value `""`.
+
+**[5] `k8s.daemonset.label.`:** Examples:
+
+- A label `app` with value `guestbook` SHOULD be recorded
+ as the `k8s.daemonset.label.app` attribute with value `"guestbook"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.daemonset.label.injected` attribute with value `""`.
+
+## K8s Deployment
+
+**Status:** 
+
+**type:** `k8s.deployment`
+
+**Description:** A Kubernetes Deployment object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.deployment.name`](/docs/registry/attributes/k8s.md) | string | The name of the Deployment. | `opentelemetry` | `Recommended` |  |
+| [`k8s.deployment.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Deployment. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+| [`k8s.deployment.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the Deployment, the `` being the annotation name, the value being the annotation value, even if the value is empty. [6] | `1`; `` | `Opt-In` |  |
+| [`k8s.deployment.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the Deployment, the `` being the label name, the value being the label value, even if the value is empty. [7] | `guestbook`; `` | `Opt-In` |  |
+
+**[6] `k8s.deployment.annotation.`:** Examples:
+
+- A label `replicas` with value `1` SHOULD be recorded
+ as the `k8s.deployment.annotation.replicas` attribute with value `"1"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.deployment.annotation.data` attribute with value `""`.
+
+**[7] `k8s.deployment.label.`:** Examples:
+
+- A label `replicas` with value `0` SHOULD be recorded
+ as the `k8s.deployment.label.app` attribute with value `"guestbook"`.
+- A label `injected` with empty string value SHOULD be recorded as
+ the `k8s.deployment.label.injected` attribute with value `""`.
+
+## K8s Hpa
+
+**Status:** 
+
+**type:** `k8s.hpa`
+
+**Description:** A Kubernetes HorizontalPodAutoscaler object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.hpa.name`](/docs/registry/attributes/k8s.md) | string | The name of the horizontal pod autoscaler. | `opentelemetry` | `Recommended` |  |
+| [`k8s.hpa.scaletargetref.api_version`](/docs/registry/attributes/k8s.md) | string | The API version of the target resource to scale for the HorizontalPodAutoscaler. [8] | `apps/v1`; `autoscaling/v2` | `Recommended` |  |
+| [`k8s.hpa.scaletargetref.kind`](/docs/registry/attributes/k8s.md) | string | The kind of the target resource to scale for the HorizontalPodAutoscaler. [9] | `Deployment`; `StatefulSet` | `Recommended` |  |
+| [`k8s.hpa.scaletargetref.name`](/docs/registry/attributes/k8s.md) | string | The name of the target resource to scale for the HorizontalPodAutoscaler. [10] | `my-deployment`; `my-statefulset` | `Recommended` |  |
+| [`k8s.hpa.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the horizontal pod autoscaler. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+
+**[8] `k8s.hpa.scaletargetref.api_version`:** This maps to the `apiVersion` field in the `scaleTargetRef` of the HPA spec.
+
+**[9] `k8s.hpa.scaletargetref.kind`:** This maps to the `kind` field in the `scaleTargetRef` of the HPA spec.
+
+**[10] `k8s.hpa.scaletargetref.name`:** This maps to the `name` field in the `scaleTargetRef` of the HPA spec.
+
+## K8s Job
+
+**Status:** 
+
+**type:** `k8s.job`
+
+**Description:** A Kubernetes Job object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.job.name`](/docs/registry/attributes/k8s.md) | string | The name of the Job. | `opentelemetry` | `Recommended` |  |
+| [`k8s.job.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Job. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+| [`k8s.job.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the Job, the `` being the annotation name, the value being the annotation value, even if the value is empty. [11] | `1`; `` | `Opt-In` |  |
+| [`k8s.job.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the Job, the `` being the label name, the value being the label value, even if the value is empty. [12] | `ci`; `` | `Opt-In` |  |
+
+**[11] `k8s.job.annotation.`:** Examples:
+
+- A label `number` with value `1` SHOULD be recorded
+ as the `k8s.job.annotation.number` attribute with value `"1"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.job.annotation.data` attribute with value `""`.
+
+**[12] `k8s.job.label.`:** Examples:
+
+- A label `jobtype` with value `ci` SHOULD be recorded
+ as the `k8s.job.label.jobtype` attribute with value `"ci"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.job.label.automated` attribute with value `""`.
+
+## K8s Namespace
+
+**Status:** 
+
+**type:** `k8s.namespace`
+
+**Description:** A Kubernetes Namespace.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.namespace.name`](/docs/registry/attributes/k8s.md) | string | The name of the namespace that the pod is running in. | `default` | `Recommended` |  |
+| [`k8s.namespace.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the Namespace, the `` being the annotation name, the value being the annotation value, even if the value is empty. [13] | `0`; `` | `Opt-In` |  |
+| [`k8s.namespace.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the Namespace, the `` being the label name, the value being the label value, even if the value is empty. [14] | `default`; `` | `Opt-In` |  |
+
+**[13] `k8s.namespace.annotation.`:** Examples:
+
+- A label `ttl` with value `0` SHOULD be recorded
+ as the `k8s.namespace.annotation.ttl` attribute with value `"0"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.namespace.annotation.data` attribute with value `""`.
+
+**[14] `k8s.namespace.label.`:** Examples:
+
+- A label `kubernetes.io/metadata.name` with value `default` SHOULD be recorded
+ as the `k8s.namespace.label.kubernetes.io/metadata.name` attribute with value `"default"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.namespace.label.data` attribute with value `""`.
+
+## K8s Node
+
+**Status:** 
+
+**type:** `k8s.node`
+
+**Description:** A Kubernetes Node object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.node.name`](/docs/registry/attributes/k8s.md) | string | The name of the Node. | `node-1` | `Recommended` |  |
+| [`k8s.node.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Node. | `1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2` | `Recommended` |  |
+| [`k8s.node.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the Node, the `` being the annotation name, the value being the annotation value, even if the value is empty. [15] | `0`; `` | `Opt-In` |  |
+| [`k8s.node.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the Node, the `` being the label name, the value being the label value, even if the value is empty. [16] | `arm64`; `` | `Opt-In` |  |
+
+**[15] `k8s.node.annotation.`:** Examples:
+
+- An annotation `node.alpha.kubernetes.io/ttl` with value `0` SHOULD be recorded as
+ the `k8s.node.annotation.node.alpha.kubernetes.io/ttl` attribute with value `"0"`.
+- An annotation `data` with empty string value SHOULD be recorded as
+ the `k8s.node.annotation.data` attribute with value `""`.
+
+**[16] `k8s.node.label.`:** Examples:
+
+- A label `kubernetes.io/arch` with value `arm64` SHOULD be recorded
+ as the `k8s.node.label.kubernetes.io/arch` attribute with value `"arm64"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.node.label.data` attribute with value `""`.
+
+## K8s Pod
+
+**Status:** 
+
+**type:** `k8s.pod`
+
+**Description:** A Kubernetes Pod object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.pod.name`](/docs/registry/attributes/k8s.md) | string | The name of the Pod. | `opentelemetry-pod-autoconf` | `Recommended` |  |
+| [`k8s.pod.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Pod. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+| [`k8s.pod.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the Pod, the `` being the annotation name, the value being the annotation value. [17] | `true`; `x64`; `` | `Opt-In` |  |
+| [`k8s.pod.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the Pod, the `` being the label name, the value being the label value. [18] | `my-app`; `x64`; `` | `Opt-In` |  |
+
+**[17] `k8s.pod.annotation.`:** Examples:
+
+- An annotation `kubernetes.io/enforce-mountable-secrets` with value `true` SHOULD be recorded as
+ the `k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets` attribute with value `"true"`.
+- An annotation `mycompany.io/arch` with value `x64` SHOULD be recorded as
+ the `k8s.pod.annotation.mycompany.io/arch` attribute with value `"x64"`.
+- An annotation `data` with empty string value SHOULD be recorded as
+ the `k8s.pod.annotation.data` attribute with value `""`.
+
+**[18] `k8s.pod.label.`:** Examples:
+
+- A label `app` with value `my-app` SHOULD be recorded as
+ the `k8s.pod.label.app` attribute with value `"my-app"`.
+- A label `mycompany.io/arch` with value `x64` SHOULD be recorded as
+ the `k8s.pod.label.mycompany.io/arch` attribute with value `"x64"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.pod.label.data` attribute with value `""`.
+
+## K8s Replicaset
+
+**Status:** 
+
+**type:** `k8s.replicaset`
+
+**Description:** A Kubernetes ReplicaSet object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.replicaset.name`](/docs/registry/attributes/k8s.md) | string | The name of the ReplicaSet. | `opentelemetry` | `Recommended` |  |
+| [`k8s.replicaset.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the ReplicaSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+| [`k8s.replicaset.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the ReplicaSet, the `` being the annotation name, the value being the annotation value, even if the value is empty. [19] | `0`; `` | `Opt-In` |  |
+| [`k8s.replicaset.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the ReplicaSet, the `` being the label name, the value being the label value, even if the value is empty. [20] | `guestbook`; `` | `Opt-In` |  |
+
+**[19] `k8s.replicaset.annotation.`:** Examples:
+
+- A label `replicas` with value `0` SHOULD be recorded
+ as the `k8s.replicaset.annotation.replicas` attribute with value `"0"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.replicaset.annotation.data` attribute with value `""`.
+
+**[20] `k8s.replicaset.label.`:** Examples:
+
+- A label `app` with value `guestbook` SHOULD be recorded
+ as the `k8s.replicaset.label.app` attribute with value `"guestbook"`.
+- A label `injected` with empty string value SHOULD be recorded as
+ the `k8s.replicaset.label.injected` attribute with value `""`.
+
+## K8s Replicationcontroller
+
+**Status:** 
+
+**type:** `k8s.replicationcontroller`
+
+**Description:** A Kubernetes ReplicationController object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.replicationcontroller.name`](/docs/registry/attributes/k8s.md) | string | The name of the replication controller. | `opentelemetry` | `Recommended` |  |
+| [`k8s.replicationcontroller.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the replication controller. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+
+## K8s Resourcequota
+
+**Status:** 
+
+**type:** `k8s.resourcequota`
+
+**Description:** A Kubernetes ResourceQuota object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.resourcequota.name`](/docs/registry/attributes/k8s.md) | string | The name of the resource quota. | `opentelemetry` | `Recommended` |  |
+| [`k8s.resourcequota.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the resource quota. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+
+## K8s Statefulset
+
+**Status:** 
+
+**type:** `k8s.statefulset`
+
+**Description:** A Kubernetes StatefulSet object.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.statefulset.name`](/docs/registry/attributes/k8s.md) | string | The name of the StatefulSet. | `opentelemetry` | `Recommended` |  |
+| [`k8s.statefulset.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the StatefulSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+| [`k8s.statefulset.annotation.`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the StatefulSet, the `` being the annotation name, the value being the annotation value, even if the value is empty. [21] | `1`; `` | `Opt-In` |  |
+| [`k8s.statefulset.label.`](/docs/registry/attributes/k8s.md) | string | The label placed on the StatefulSet, the `` being the label name, the value being the label value, even if the value is empty. [22] | `guestbook`; `` | `Opt-In` |  |
+
+**[21] `k8s.statefulset.annotation.`:** Examples:
+
+- A label `replicas` with value `1` SHOULD be recorded
+ as the `k8s.statefulset.annotation.replicas` attribute with value `"1"`.
+- A label `data` with empty string value SHOULD be recorded as
+ the `k8s.statefulset.annotation.data` attribute with value `""`.
+
+**[22] `k8s.statefulset.label.`:** Examples:
+
+- A label `replicas` with value `0` SHOULD be recorded
+ as the `k8s.statefulset.label.app` attribute with value `"guestbook"`.
+- A label `injected` with empty string value SHOULD be recorded as
+ the `k8s.statefulset.label.injected` attribute with value `""`.
+
+
+
diff --git a/docs/registry/entities/os.md b/docs/registry/entities/os.md
new file mode 100644
index 0000000000..4ad1933575
--- /dev/null
+++ b/docs/registry/entities/os.md
@@ -0,0 +1,57 @@
+
+
+
+
+
+# OS
+
+## OS
+
+**Status:** 
+
+**type:** `os`
+
+**Description:** The operating system (OS) on which the process represented by this resource is running.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`os.type`](/docs/registry/attributes/os.md) | string | The operating system type. | `windows`; `linux`; `darwin` | `Required` |  |
+| [`os.build_id`](/docs/registry/attributes/os.md) | string | Unique identifier for a particular build or compilation of the operating system. [1] | `TQ3C.230805.001.B2`; `20E247`; `22621` | `Recommended` |  |
+| [`os.description`](/docs/registry/attributes/os.md) | string | Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands. | `Microsoft Windows [Version 10.0.18363.778]`; `Ubuntu 18.04.1 LTS` | `Recommended` |  |
+| [`os.name`](/docs/registry/attributes/os.md) | string | Human readable operating system name. | `iOS`; `Android`; `Ubuntu` | `Recommended` |  |
+| [`os.version`](/docs/registry/attributes/os.md) | string | The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes). | `14.2.1`; `18.04.1` | `Recommended` |  |
+
+**[1] `os.build_id`:** `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`|
+
+---
+
+`os.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `aix` | AIX (Advanced Interactive eXecutive) |  |
+| `darwin` | Apple Darwin |  |
+| `dragonflybsd` | DragonFly BSD |  |
+| `freebsd` | FreeBSD |  |
+| `hpux` | HP-UX (Hewlett Packard Unix) |  |
+| `linux` | Linux |  |
+| `netbsd` | NetBSD |  |
+| `openbsd` | OpenBSD |  |
+| `solaris` | SunOS, Oracle Solaris |  |
+| `windows` | Microsoft Windows |  |
+| `z_os` | Deprecated. Use `zos` instead. |  |
+| `zos` | IBM z/OS |  |
+
+
+
diff --git a/docs/registry/entities/otel.md b/docs/registry/entities/otel.md
new file mode 100644
index 0000000000..dd980aec58
--- /dev/null
+++ b/docs/registry/entities/otel.md
@@ -0,0 +1,27 @@
+
+
+
+
+
+# OTel
+
+## OTel Scope
+
+**Status:** 
Obsoleted.
+
+**type:** `otel.scope`
+
+**Description:** Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's concepts.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`otel.scope.name`](/docs/registry/attributes/otel.md) | string | The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP). | `io.opentelemetry.contrib.mongodb` | `Recommended` |  |
+| [`otel.scope.version`](/docs/registry/attributes/otel.md) | string | The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP). | `1.0.0` | `Recommended` |  |
+
+
+
diff --git a/docs/registry/entities/process.md b/docs/registry/entities/process.md
new file mode 100644
index 0000000000..43fab8888d
--- /dev/null
+++ b/docs/registry/entities/process.md
@@ -0,0 +1,65 @@
+
+
+
+
+
+# Process
+
+## Process
+
+**Status:** 
+
+**type:** `process`
+
+**Description:** An operating system process.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`process.command`](/docs/registry/attributes/process.md) | string | 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`. | `cmd/otelcol` | `Conditionally Required` [1] |  |
+| [`process.command_args`](/docs/registry/attributes/process.md) | string[] | 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`. SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data. | `["cmd/otecol", "--config=config.yaml"]` | `Conditionally Required` [2] |  |
+| [`process.command_line`](/docs/registry/attributes/process.md) | string | 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. SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data. | `C:\cmd\otecol --config="my directory\config.yaml"` | `Conditionally Required` [3] |  |
+| [`process.executable.name`](/docs/registry/attributes/process.md) | string | The name of the process executable. On Linux based systems, this SHOULD be set to the base name of the target of `/proc/[pid]/exe`. On Windows, this SHOULD be set to the base name of `GetProcessImageFileNameW`. | `otelcol` | `Conditionally Required` [4] |  |
+| [`process.executable.path`](/docs/registry/attributes/process.md) | string | 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`. | `/usr/bin/cmd/otelcol` | `Conditionally Required` [5] |  |
+| [`process.linux.cgroup`](/docs/registry/attributes/process.md) | string | The control group associated with the process. [6] | `1:name=systemd:/user.slice/user-1000.slice/session-3.scope`; `0::/user.slice/user-1000.slice/user@1000.service/tmux-spawn-0267755b-4639-4a27-90ed-f19f88e53748.scope` | `Recommended` |  |
+| [`process.owner`](/docs/registry/attributes/process.md) | string | The username of the user that owns the process. | `root` | `Recommended` |  |
+| [`process.parent_pid`](/docs/registry/attributes/process.md) | int | Parent Process identifier (PPID). | `111` | `Recommended` |  |
+| [`process.pid`](/docs/registry/attributes/process.md) | int | Process identifier (PID). | `1234` | `Recommended` |  |
+
+**[1] `process.command`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
+
+**[2] `process.command_args`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
+
+**[3] `process.command_line`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
+
+**[4] `process.executable.name`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
+
+**[5] `process.executable.path`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
+
+**[6] `process.linux.cgroup`:** Control groups (cgroups) are a kernel feature used to organize and manage process resources. This attribute provides the path(s) to the cgroup(s) associated with the process, which should match the contents of the [/proc/\[PID\]/cgroup](https://man7.org/linux/man-pages/man7/cgroups.7.html) file.
+
+## Process Runtime
+
+**Status:** 
+
+**type:** `process.runtime`
+
+**Description:** The single (language) runtime instance which is monitored.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`process.runtime.description`](/docs/registry/attributes/process.md) | string | An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. | `Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0` | `Recommended` |  |
+| [`process.runtime.name`](/docs/registry/attributes/process.md) | string | The name of the runtime of this process. | `OpenJDK Runtime Environment` | `Recommended` |  |
+| [`process.runtime.version`](/docs/registry/attributes/process.md) | string | The version of the runtime of this process, as returned by the runtime without modification. | `14.0.2` | `Recommended` |  |
+
+
+
diff --git a/docs/registry/entities/service.md b/docs/registry/entities/service.md
new file mode 100644
index 0000000000..e52ed20914
--- /dev/null
+++ b/docs/registry/entities/service.md
@@ -0,0 +1,62 @@
+
+
+
+
+
+# Service
+
+## Service
+
+**Status:** 
+
+**type:** `service`
+
+**Description:** A service instance.
+
+**Identifying Attributes:**
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`service.name`](/docs/registry/attributes/service.md) | string | Logical name of the service. [1] | `shoppingcart` | `Required` |  |
+| [`service.instance.id`](/docs/registry/attributes/service.md) | string | The string ID of the service instance. [2] | `627cc493-f310-47de-96bd-71410b7dec09` | `Recommended` |  |
+| [`service.namespace`](/docs/registry/attributes/service.md) | string | A namespace for `service.name`. [3] | `Shop` | `Recommended` |  |
+
+**[1] `service.name`:** 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`.
+
+**[2] `service.instance.id`:** 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/latest/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.
+
+**[3] `service.namespace`:** 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.
+
+**Descriptive Attributes:**
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`service.version`](/docs/registry/attributes/service.md) | string | The version string of the service API or implementation. The format is not defined by these conventions. | `2.0.0`; `a01dbef8a` | `Recommended` |  |
+
+
+
diff --git a/docs/registry/entities/telemetry.md b/docs/registry/entities/telemetry.md
new file mode 100644
index 0000000000..b5bb1ccb16
--- /dev/null
+++ b/docs/registry/entities/telemetry.md
@@ -0,0 +1,77 @@
+
+
+
+
+
+# Telemetry
+
+## Telemetry Distro
+
+**Status:** 
+
+**type:** `telemetry.distro`
+
+**Description:** The distribution of telemetry SDK used to capture data recorded by the instrumentation libraries.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`telemetry.distro.name`](/docs/registry/attributes/telemetry.md) | string | The name of the auto instrumentation agent or distribution, if used. [1] | `parts-unlimited-java` | `Recommended` |  |
+| [`telemetry.distro.version`](/docs/registry/attributes/telemetry.md) | string | The version string of the auto instrumentation agent or distribution, if used. | `1.2.3` | `Recommended` |  |
+
+**[1] `telemetry.distro.name`:** Official auto instrumentation agents and distributions SHOULD set the `telemetry.distro.name` attribute to
+a string starting with `opentelemetry-`, e.g. `opentelemetry-java-instrumentation`.
+
+## Telemetry Sdk
+
+**Status:** 
+
+**type:** `telemetry.sdk`
+
+**Description:** The telemetry SDK used to capture data recorded by the instrumentation libraries.
+
+**Identifying Attributes:**
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`telemetry.sdk.language`](/docs/registry/attributes/telemetry.md) | string | The language of the telemetry SDK. | `cpp`; `dotnet`; `erlang` | `Required` |  |
+| [`telemetry.sdk.name`](/docs/registry/attributes/telemetry.md) | string | The name of the telemetry SDK as defined above. [2] | `opentelemetry` | `Required` |  |
+
+**[2] `telemetry.sdk.name`:** 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.
+
+---
+
+`telemetry.sdk.language` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `cpp` | cpp |  |
+| `dotnet` | dotnet |  |
+| `erlang` | erlang |  |
+| `go` | go |  |
+| `java` | java |  |
+| `nodejs` | nodejs |  |
+| `php` | php |  |
+| `python` | python |  |
+| `ruby` | ruby |  |
+| `rust` | rust |  |
+| `swift` | swift |  |
+| `webjs` | webjs |  |
+
+**Descriptive Attributes:**
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`telemetry.sdk.version`](/docs/registry/attributes/telemetry.md) | string | The version string of the telemetry SDK. | `1.2.3` | `Required` |  |
+
+
+
diff --git a/docs/registry/entities/vcs.md b/docs/registry/entities/vcs.md
new file mode 100644
index 0000000000..936d86c3d7
--- /dev/null
+++ b/docs/registry/entities/vcs.md
@@ -0,0 +1,77 @@
+
+
+
+
+
+# VCS
+
+## VCS Ref
+
+**Status:** 
+
+**type:** `vcs.ref`
+
+**Description:** A reference to a specific version in the Version Control System.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`vcs.ref.head.name`](/docs/registry/attributes/vcs.md) | string | The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository. [1] | `my-feature-branch`; `tag-1-test` | `Recommended` |  |
+| [`vcs.ref.head.revision`](/docs/registry/attributes/vcs.md) | string | 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. [2] | `9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc`; `main`; `123`; `HEAD` | `Recommended` |  |
+| [`vcs.ref.type`](/docs/registry/attributes/vcs.md) | string | The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository. | `branch`; `tag` | `Recommended` |  |
+
+**[1] `vcs.ref.head.name`:** `head` refers to where you are right now; the current reference at a
+given time.
+
+**[2] `vcs.ref.head.revision`:** `head` refers to where you are right now; the current reference at a
+given time.The revision can be a full [hash value (see
+glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
+of the recorded change to a ref within a repository pointing to a
+commit [commit](https://git-scm.com/docs/git-commit) object. It does
+not necessarily have to be a hash; it can simply define a [revision
+number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
+which is an integer that is monotonically increasing. In cases where
+it is identical to the `ref.head.name`, it SHOULD still be included.
+It is up to the implementer to decide which value to set as the
+revision based on the VCS system and situational context.
+
+---
+
+`vcs.ref.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
+
+| Value | Description | Stability |
+|---|---|---|
+| `branch` | [branch](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbranchabranch) |  |
+| `tag` | [tag](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddeftagatag) |  |
+
+## VCS Repo
+
+**Status:** 
+
+**type:** `vcs.repo`
+
+**Description:** A repository in the Version Control System.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`vcs.repository.name`](/docs/registry/attributes/vcs.md) | string | The human readable name of the repository. It SHOULD NOT include any additional identifier like Group/SubGroup in GitLab or organization in GitHub. [3] | `semantic-conventions`; `my-cool-repo` | `Recommended` |  |
+| [`vcs.repository.url.full`](/docs/registry/attributes/vcs.md) | string | The [canonical URL](https://support.google.com/webmasters/answer/10347851?hl=en#:~:text=A%20canonical%20URL%20is%20the,Google%20chooses%20one%20as%20canonical.) of the repository providing the complete HTTP(S) address in order to locate and identify the repository through a browser. [4] | `https://github.com/opentelemetry/open-telemetry-collector-contrib`; `https://gitlab.com/my-org/my-project/my-projects-project/repo` | `Recommended` |  |
+
+**[3] `vcs.repository.name`:** Due to it only being the name, it can clash with forks of the same
+repository if collecting telemetry across multiple orgs or groups in
+the same backends.
+
+**[4] `vcs.repository.url.full`:** In Git Version Control Systems, the canonical URL SHOULD NOT include
+the `.git` extension.
+
+
+
diff --git a/docs/registry/entities/webengine.md b/docs/registry/entities/webengine.md
new file mode 100644
index 0000000000..2dc97e82d2
--- /dev/null
+++ b/docs/registry/entities/webengine.md
@@ -0,0 +1,28 @@
+
+
+
+
+
+# Webengine
+
+## Webengine
+
+**Status:** 
+
+**type:** `webengine`
+
+**Description:** Resource describing the packaged software running the application code. Web engines are typically executed using process.runtime.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`webengine.name`](/docs/registry/attributes/webengine.md) | string | The name of the web engine. | `WildFly` | `Required` |  |
+| [`webengine.description`](/docs/registry/attributes/webengine.md) | string | Additional description of the web engine (e.g. detailed version and edition information). | `WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final` | `Recommended` |  |
+| [`webengine.version`](/docs/registry/attributes/webengine.md) | string | The version of the web engine. | `21.0.0` | `Recommended` |  |
+
+
+
diff --git a/docs/registry/entities/zos.md b/docs/registry/entities/zos.md
new file mode 100644
index 0000000000..afada7b44c
--- /dev/null
+++ b/docs/registry/entities/zos.md
@@ -0,0 +1,28 @@
+
+
+
+
+
+# zOS
+
+## zOS Software
+
+**Status:** 
+
+**type:** `zos.software`
+
+**Description:** A software resource running on a z/OS system.
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`zos.smf.id`](/docs/registry/attributes/zos.md) | string | The System Management Facility (SMF) Identifier uniquely identified a z/OS system within a SYSPLEX or mainframe environment and is used for system and performance analysis. | `SYS1` | `Required` |  |
+| [`zos.sysplex.name`](/docs/registry/attributes/zos.md) | string | The name of the SYSPLEX to which the z/OS system belongs too. | `SYSPLEX1` | `Required` |  |
+| [`mainframe.lpar.name`](/docs/registry/attributes/mainframe.md) | string | Name of the logical partition that hosts a systems with a mainframe operating system. | `LPAR01` | `Recommended` |  |
+
+
+
diff --git a/docs/resource/process.md b/docs/resource/process.md
index 9de67da14e..78e083e190 100644
--- a/docs/resource/process.md
+++ b/docs/resource/process.md
@@ -49,15 +49,15 @@ linkTitle: Process
| [`process.parent_pid`](/docs/registry/attributes/process.md) | int | Parent Process identifier (PPID). | `111` | `Recommended` |  |
| [`process.pid`](/docs/registry/attributes/process.md) | int | Process identifier (PID). | `1234` | `Recommended` |  |
-**[1] `process.command`:** See [Selecting process attributes](#selecting-process-attributes) for details.
+**[1] `process.command`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
-**[2] `process.command_args`:** See [Selecting process attributes](#selecting-process-attributes) for details.
+**[2] `process.command_args`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
-**[3] `process.command_line`:** See [Selecting process attributes](#selecting-process-attributes) for details.
+**[3] `process.command_line`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
-**[4] `process.executable.name`:** See [Selecting process attributes](#selecting-process-attributes) for details.
+**[4] `process.executable.name`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
-**[5] `process.executable.path`:** See [Selecting process attributes](#selecting-process-attributes) for details.
+**[5] `process.executable.path`:** See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
**[6] `process.linux.cgroup`:** Control groups (cgroups) are a kernel feature used to organize and manage process resources. This attribute provides the path(s) to the cgroup(s) associated with the process, which should match the contents of the [/proc/\[PID\]/cgroup](https://man7.org/linux/man-pages/man7/cgroups.7.html) file.
diff --git a/docs/system/k8s-metrics.md b/docs/system/k8s-metrics.md
index 2c374d518f..f3cc932cb6 100644
--- a/docs/system/k8s-metrics.md
+++ b/docs/system/k8s-metrics.md
@@ -128,7 +128,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.pod.uptime` | Gauge | `s` | The time the Pod has been running [1] |  | `k8s.pod` |
+| `k8s.pod.uptime` | Gauge | `s` | The time the Pod has been running [1] |  | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.
The actual accuracy would depend on the instrumentation and operating system.
@@ -151,7 +151,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.pod.cpu.time` | Counter | `s` | Total CPU time consumed [1] |  | `k8s.pod` |
+| `k8s.pod.cpu.time` | Counter | `s` | Total CPU time consumed [1] |  | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** Total CPU time consumed by the specific Pod on all available CPU cores
@@ -195,7 +195,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.pod.memory.usage` | Gauge | `By` | Memory usage of the Pod [1] |  | `k8s.pod` |
+| `k8s.pod.memory.usage` | Gauge | `By` | Memory usage of the Pod [1] |  | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** Total memory usage of the Pod
@@ -217,7 +217,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.pod.network.io` | Counter | `By` | Network bytes for the Pod |  | `k8s.pod` |
+| `k8s.pod.network.io` | Counter | `By` | Network bytes for the Pod |  | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -251,7 +251,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.pod.network.errors` | Counter | `{error}` | Pod network errors |  | `k8s.pod` |
+| `k8s.pod.network.errors` | Counter | `{error}` | Pod network errors |  | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -289,7 +289,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.status.state` | UpDownCounter | `{container}` | Describes the number of K8s containers that are currently in a given state [1] |  | `k8s.container` |
+| `k8s.container.status.state` | UpDownCounter | `{container}` | Describes the number of K8s containers that are currently in a given state [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** All possible container states will be reported at each time interval to avoid missing metrics.
Only the value corresponding to the current state will be non-zero.
@@ -326,7 +326,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.status.reason` | UpDownCounter | `{container}` | Describes the number of K8s containers that are currently in a state for a given reason [1] |  | `k8s.container` |
+| `k8s.container.status.reason` | UpDownCounter | `{container}` | Describes the number of K8s containers that are currently in a state for a given reason [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** All possible container state reasons will be reported at each time interval to avoid missing metrics.
Only the value corresponding to the current state reason will be non-zero.
@@ -373,7 +373,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.uptime` | Gauge | `s` | The time the Node has been running [1] |  | `k8s.node` |
+| `k8s.node.uptime` | Gauge | `s` | The time the Node has been running [1] |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
**[1]:** Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.
The actual accuracy would depend on the instrumentation and operating system.
@@ -396,7 +396,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.allocatable.cpu` | UpDownCounter | `{cpu}` | Amount of cpu allocatable on the node |  | `k8s.node` |
+| `k8s.node.allocatable.cpu` | UpDownCounter | `{cpu}` | Amount of cpu allocatable on the node |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
@@ -416,7 +416,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.allocatable.memory` | UpDownCounter | `By` | Amount of memory allocatable on the node |  | `k8s.node` |
+| `k8s.node.allocatable.memory` | UpDownCounter | `By` | Amount of memory allocatable on the node |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
@@ -436,7 +436,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.allocatable.ephemeral_storage` | UpDownCounter | `By` | Amount of ephemeral-storage allocatable on the node |  | `k8s.node` |
+| `k8s.node.allocatable.ephemeral_storage` | UpDownCounter | `By` | Amount of ephemeral-storage allocatable on the node |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
@@ -456,7 +456,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.allocatable.pods` | UpDownCounter | `{pod}` | Amount of pods allocatable on the node |  | `k8s.node` |
+| `k8s.node.allocatable.pods` | UpDownCounter | `{pod}` | Amount of pods allocatable on the node |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
@@ -476,7 +476,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.condition.status` | UpDownCounter | `{node}` | Describes the condition of a particular Node. [1] |  | `k8s.node` |
+| `k8s.node.condition.status` | UpDownCounter | `{node}` | Describes the condition of a particular Node. [1] |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
**[1]:** All possible node condition pairs (type and status) will be reported at each time interval to avoid missing metrics. Condition pairs corresponding to the current conditions' statuses will be non-zero.
@@ -538,7 +538,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.cpu.time` | Counter | `s` | Total CPU time consumed [1] |  | `k8s.node` |
+| `k8s.node.cpu.time` | Counter | `s` | Total CPU time consumed [1] |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
**[1]:** Total CPU time consumed by the specific Node on all available CPU cores
@@ -560,7 +560,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.cpu.usage` | Gauge | `{cpu}` | Node's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs [1] |  | `k8s.node` |
+| `k8s.node.cpu.usage` | Gauge | `{cpu}` | Node's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs [1] |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
**[1]:** CPU usage of the specific Node on all available CPU cores, averaged over the sample window
@@ -582,7 +582,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.memory.usage` | Gauge | `By` | Memory usage of the Node [1] |  | `k8s.node` |
+| `k8s.node.memory.usage` | Gauge | `By` | Memory usage of the Node [1] |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
**[1]:** Total memory usage of the Node
@@ -604,7 +604,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.network.io` | Counter | `By` | Network bytes for the Node |  | `k8s.node` |
+| `k8s.node.network.io` | Counter | `By` | Network bytes for the Node |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -638,7 +638,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.node.network.errors` | Counter | `{error}` | Node network errors |  | `k8s.node` |
+| `k8s.node.network.errors` | Counter | `{error}` | Node network errors |  | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -676,7 +676,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.deployment.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this deployment [1] |  | `k8s.deployment` |
+| `k8s.deployment.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this deployment [1] |  | [`k8s.deployment`](/docs/registry/entities/k8s.md#k8s-deployment) |
**[1]:** This metric aligns with the `replicas` field of the
[K8s DeploymentSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentspec-v1-apps).
@@ -699,7 +699,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.deployment.available_pods` | UpDownCounter | `{pod}` | Total number of available replica pods (ready for at least minReadySeconds) targeted by this deployment [1] |  | `k8s.deployment` |
+| `k8s.deployment.available_pods` | UpDownCounter | `{pod}` | Total number of available replica pods (ready for at least minReadySeconds) targeted by this deployment [1] |  | [`k8s.deployment`](/docs/registry/entities/k8s.md#k8s-deployment) |
**[1]:** This metric aligns with the `availableReplicas` field of the
[K8s DeploymentStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentstatus-v1-apps).
@@ -726,7 +726,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.replicaset.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this replicaset [1] |  | `k8s.replicaset` |
+| `k8s.replicaset.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this replicaset [1] |  | [`k8s.replicaset`](/docs/registry/entities/k8s.md#k8s-replicaset) |
**[1]:** This metric aligns with the `replicas` field of the
[K8s ReplicaSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicasetspec-v1-apps).
@@ -749,7 +749,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.replicaset.available_pods` | UpDownCounter | `{pod}` | Total number of available replica pods (ready for at least minReadySeconds) targeted by this replicaset [1] |  | `k8s.replicaset` |
+| `k8s.replicaset.available_pods` | UpDownCounter | `{pod}` | Total number of available replica pods (ready for at least minReadySeconds) targeted by this replicaset [1] |  | [`k8s.replicaset`](/docs/registry/entities/k8s.md#k8s-replicaset) |
**[1]:** This metric aligns with the `availableReplicas` field of the
[K8s ReplicaSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicasetstatus-v1-apps).
@@ -776,7 +776,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.replicationcontroller.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this replication controller [1] |  | `k8s.replicationcontroller` |
+| `k8s.replicationcontroller.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this replication controller [1] |  | [`k8s.replicationcontroller`](/docs/registry/entities/k8s.md#k8s-replicationcontroller) |
**[1]:** This metric aligns with the `replicas` field of the
[K8s ReplicationControllerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerspec-v1-core)
@@ -799,7 +799,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.replicationcontroller.available_pods` | UpDownCounter | `{pod}` | Total number of available replica pods (ready for at least minReadySeconds) targeted by this replication controller [1] |  | `k8s.replicationcontroller` |
+| `k8s.replicationcontroller.available_pods` | UpDownCounter | `{pod}` | Total number of available replica pods (ready for at least minReadySeconds) targeted by this replication controller [1] |  | [`k8s.replicationcontroller`](/docs/registry/entities/k8s.md#k8s-replicationcontroller) |
**[1]:** This metric aligns with the `availableReplicas` field of the
[K8s ReplicationControllerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerstatus-v1-core)
@@ -826,7 +826,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.statefulset.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this statefulset [1] |  | `k8s.statefulset` |
+| `k8s.statefulset.desired_pods` | UpDownCounter | `{pod}` | Number of desired replica pods in this statefulset [1] |  | [`k8s.statefulset`](/docs/registry/entities/k8s.md#k8s-statefulset) |
**[1]:** This metric aligns with the `replicas` field of the
[K8s StatefulSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetspec-v1-apps).
@@ -849,7 +849,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.statefulset.ready_pods` | UpDownCounter | `{pod}` | The number of replica pods created for this statefulset with a Ready Condition [1] |  | `k8s.statefulset` |
+| `k8s.statefulset.ready_pods` | UpDownCounter | `{pod}` | The number of replica pods created for this statefulset with a Ready Condition [1] |  | [`k8s.statefulset`](/docs/registry/entities/k8s.md#k8s-statefulset) |
**[1]:** This metric aligns with the `readyReplicas` field of the
[K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps).
@@ -872,7 +872,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.statefulset.current_pods` | UpDownCounter | `{pod}` | The number of replica pods created by the statefulset controller from the statefulset version indicated by currentRevision [1] |  | `k8s.statefulset` |
+| `k8s.statefulset.current_pods` | UpDownCounter | `{pod}` | The number of replica pods created by the statefulset controller from the statefulset version indicated by currentRevision [1] |  | [`k8s.statefulset`](/docs/registry/entities/k8s.md#k8s-statefulset) |
**[1]:** This metric aligns with the `currentReplicas` field of the
[K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps).
@@ -895,7 +895,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.statefulset.updated_pods` | UpDownCounter | `{pod}` | Number of replica pods created by the statefulset controller from the statefulset version indicated by updateRevision [1] |  | `k8s.statefulset` |
+| `k8s.statefulset.updated_pods` | UpDownCounter | `{pod}` | Number of replica pods created by the statefulset controller from the statefulset version indicated by updateRevision [1] |  | [`k8s.statefulset`](/docs/registry/entities/k8s.md#k8s-statefulset) |
**[1]:** This metric aligns with the `updatedReplicas` field of the
[K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps).
@@ -922,7 +922,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.hpa.desired_pods` | UpDownCounter | `{pod}` | Desired number of replica pods managed by this horizontal pod autoscaler, as last calculated by the autoscaler [1] |  | `k8s.hpa` |
+| `k8s.hpa.desired_pods` | UpDownCounter | `{pod}` | Desired number of replica pods managed by this horizontal pod autoscaler, as last calculated by the autoscaler [1] |  | [`k8s.hpa`](/docs/registry/entities/k8s.md#k8s-hpa) |
**[1]:** This metric aligns with the `desiredReplicas` field of the
[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)
@@ -945,7 +945,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.hpa.current_pods` | UpDownCounter | `{pod}` | Current number of replica pods managed by this horizontal pod autoscaler, as last seen by the autoscaler [1] |  | `k8s.hpa` |
+| `k8s.hpa.current_pods` | UpDownCounter | `{pod}` | Current number of replica pods managed by this horizontal pod autoscaler, as last seen by the autoscaler [1] |  | [`k8s.hpa`](/docs/registry/entities/k8s.md#k8s-hpa) |
**[1]:** This metric aligns with the `currentReplicas` field of the
[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)
@@ -968,7 +968,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.hpa.max_pods` | UpDownCounter | `{pod}` | The upper limit for the number of replica pods to which the autoscaler can scale up [1] |  | `k8s.hpa` |
+| `k8s.hpa.max_pods` | UpDownCounter | `{pod}` | The upper limit for the number of replica pods to which the autoscaler can scale up [1] |  | [`k8s.hpa`](/docs/registry/entities/k8s.md#k8s-hpa) |
**[1]:** This metric aligns with the `maxReplicas` field of the
[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)
@@ -991,7 +991,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.hpa.min_pods` | UpDownCounter | `{pod}` | The lower limit for the number of replica pods to which the autoscaler can scale down [1] |  | `k8s.hpa` |
+| `k8s.hpa.min_pods` | UpDownCounter | `{pod}` | The lower limit for the number of replica pods to which the autoscaler can scale down [1] |  | [`k8s.hpa`](/docs/registry/entities/k8s.md#k8s-hpa) |
**[1]:** This metric aligns with the `minReplicas` field of the
[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)
@@ -1014,7 +1014,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.hpa.metric.target.cpu.value` | Gauge | `{cpu}` | Target value for CPU resource in HPA config. [1] |  | `k8s.hpa`; `k8s.namespace` |
+| `k8s.hpa.metric.target.cpu.value` | Gauge | `{cpu}` | Target value for CPU resource in HPA config. [1] |  | [`k8s.hpa`](/docs/registry/entities/k8s.md#k8s-hpa); [`k8s.namespace`](/docs/registry/entities/k8s.md#k8s-namespace) |
**[1]:** This metric aligns with the `value` field of the
[K8s HPA MetricTarget](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#metrictarget-v2-autoscaling).
@@ -1048,7 +1048,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.hpa.metric.target.cpu.average_value` | Gauge | `{cpu}` | Target average value for CPU resource in HPA config. [1] |  | `k8s.hpa`; `k8s.namespace` |
+| `k8s.hpa.metric.target.cpu.average_value` | Gauge | `{cpu}` | Target average value for CPU resource in HPA config. [1] |  | [`k8s.hpa`](/docs/registry/entities/k8s.md#k8s-hpa); [`k8s.namespace`](/docs/registry/entities/k8s.md#k8s-namespace) |
**[1]:** This metric aligns with the `averageValue` field of the
[K8s HPA MetricTarget](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#metrictarget-v2-autoscaling).
@@ -1082,7 +1082,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.hpa.metric.target.cpu.average_utilization` | Gauge | `1` | Target average utilization, in percentage, for CPU resource in HPA config. [1] |  | `k8s.hpa`; `k8s.namespace` |
+| `k8s.hpa.metric.target.cpu.average_utilization` | Gauge | `1` | Target average utilization, in percentage, for CPU resource in HPA config. [1] |  | [`k8s.hpa`](/docs/registry/entities/k8s.md#k8s-hpa); [`k8s.namespace`](/docs/registry/entities/k8s.md#k8s-namespace) |
**[1]:** This metric aligns with the `averageUtilization` field of the
[K8s HPA MetricTarget](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#metrictarget-v2-autoscaling).
@@ -1120,7 +1120,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.daemonset.current_scheduled_nodes` | UpDownCounter | `{node}` | Number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod [1] |  | `k8s.daemonset` |
+| `k8s.daemonset.current_scheduled_nodes` | UpDownCounter | `{node}` | Number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod [1] |  | [`k8s.daemonset`](/docs/registry/entities/k8s.md#k8s-daemonset) |
**[1]:** This metric aligns with the `currentNumberScheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
@@ -1143,7 +1143,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.daemonset.desired_scheduled_nodes` | UpDownCounter | `{node}` | Number of nodes that should be running the daemon pod (including nodes currently running the daemon pod) [1] |  | `k8s.daemonset` |
+| `k8s.daemonset.desired_scheduled_nodes` | UpDownCounter | `{node}` | Number of nodes that should be running the daemon pod (including nodes currently running the daemon pod) [1] |  | [`k8s.daemonset`](/docs/registry/entities/k8s.md#k8s-daemonset) |
**[1]:** This metric aligns with the `desiredNumberScheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
@@ -1166,7 +1166,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.daemonset.misscheduled_nodes` | UpDownCounter | `{node}` | Number of nodes that are running the daemon pod, but are not supposed to run the daemon pod [1] |  | `k8s.daemonset` |
+| `k8s.daemonset.misscheduled_nodes` | UpDownCounter | `{node}` | Number of nodes that are running the daemon pod, but are not supposed to run the daemon pod [1] |  | [`k8s.daemonset`](/docs/registry/entities/k8s.md#k8s-daemonset) |
**[1]:** This metric aligns with the `numberMisscheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
@@ -1189,7 +1189,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.daemonset.ready_nodes` | UpDownCounter | `{node}` | Number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready [1] |  | `k8s.daemonset` |
+| `k8s.daemonset.ready_nodes` | UpDownCounter | `{node}` | Number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready [1] |  | [`k8s.daemonset`](/docs/registry/entities/k8s.md#k8s-daemonset) |
**[1]:** This metric aligns with the `numberReady` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
@@ -1216,7 +1216,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.job.active_pods` | UpDownCounter | `{pod}` | The number of pending and actively running pods for a job [1] |  | `k8s.job` |
+| `k8s.job.active_pods` | UpDownCounter | `{pod}` | The number of pending and actively running pods for a job [1] |  | [`k8s.job`](/docs/registry/entities/k8s.md#k8s-job) |
**[1]:** This metric aligns with the `active` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
@@ -1239,7 +1239,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.job.failed_pods` | UpDownCounter | `{pod}` | The number of pods which reached phase Failed for a job [1] |  | `k8s.job` |
+| `k8s.job.failed_pods` | UpDownCounter | `{pod}` | The number of pods which reached phase Failed for a job [1] |  | [`k8s.job`](/docs/registry/entities/k8s.md#k8s-job) |
**[1]:** This metric aligns with the `failed` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
@@ -1262,7 +1262,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.job.successful_pods` | UpDownCounter | `{pod}` | The number of pods which reached phase Succeeded for a job [1] |  | `k8s.job` |
+| `k8s.job.successful_pods` | UpDownCounter | `{pod}` | The number of pods which reached phase Succeeded for a job [1] |  | [`k8s.job`](/docs/registry/entities/k8s.md#k8s-job) |
**[1]:** This metric aligns with the `succeeded` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
@@ -1285,7 +1285,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.job.desired_successful_pods` | UpDownCounter | `{pod}` | The desired number of successfully finished pods the job should be run with [1] |  | `k8s.job` |
+| `k8s.job.desired_successful_pods` | UpDownCounter | `{pod}` | The desired number of successfully finished pods the job should be run with [1] |  | [`k8s.job`](/docs/registry/entities/k8s.md#k8s-job) |
**[1]:** This metric aligns with the `completions` field of the
[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch)..
@@ -1308,7 +1308,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.job.max_parallel_pods` | UpDownCounter | `{pod}` | The max desired number of pods the job should run at any given time [1] |  | `k8s.job` |
+| `k8s.job.max_parallel_pods` | UpDownCounter | `{pod}` | The max desired number of pods the job should run at any given time [1] |  | [`k8s.job`](/docs/registry/entities/k8s.md#k8s-job) |
**[1]:** This metric aligns with the `parallelism` field of the
[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch).
@@ -1335,7 +1335,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.cronjob.active_jobs` | UpDownCounter | `{job}` | The number of actively running jobs for a cronjob [1] |  | `k8s.cronjob` |
+| `k8s.cronjob.active_jobs` | UpDownCounter | `{job}` | The number of actively running jobs for a cronjob [1] |  | [`k8s.cronjob`](/docs/registry/entities/k8s.md#k8s-cronjob) |
**[1]:** This metric aligns with the `active` field of the
[K8s CronJobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#cronjobstatus-v1-batch).
@@ -1362,7 +1362,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.namespace.phase` | UpDownCounter | `{namespace}` | Describes number of K8s namespaces that are currently in a given phase. |  | `k8s.namespace` |
+| `k8s.namespace.phase` | UpDownCounter | `{namespace}` | Describes number of K8s namespaces that are currently in a given phase. |  | [`k8s.namespace`](/docs/registry/entities/k8s.md#k8s-namespace) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -1402,7 +1402,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.cpu.limit` | UpDownCounter | `{cpu}` | Maximum CPU resource limit set for the container [1] |  | `k8s.container` |
+| `k8s.container.cpu.limit` | UpDownCounter | `{cpu}` | Maximum CPU resource limit set for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1424,7 +1424,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.cpu.request` | UpDownCounter | `{cpu}` | CPU resource requested for the container [1] |  | `k8s.container` |
+| `k8s.container.cpu.request` | UpDownCounter | `{cpu}` | CPU resource requested for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1446,7 +1446,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.memory.limit` | UpDownCounter | `By` | Maximum memory resource limit set for the container [1] |  | `k8s.container` |
+| `k8s.container.memory.limit` | UpDownCounter | `By` | Maximum memory resource limit set for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1468,7 +1468,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.memory.request` | UpDownCounter | `By` | Memory resource requested for the container [1] |  | `k8s.container` |
+| `k8s.container.memory.request` | UpDownCounter | `By` | Memory resource requested for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1490,7 +1490,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.storage.limit` | UpDownCounter | `By` | Maximum storage resource limit set for the container [1] |  | `k8s.container` |
+| `k8s.container.storage.limit` | UpDownCounter | `By` | Maximum storage resource limit set for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1512,7 +1512,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.storage.request` | UpDownCounter | `By` | Storage resource requested for the container [1] |  | `k8s.container` |
+| `k8s.container.storage.request` | UpDownCounter | `By` | Storage resource requested for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1534,7 +1534,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.ephemeral_storage.limit` | UpDownCounter | `By` | Maximum ephemeral storage resource limit set for the container [1] |  | `k8s.container` |
+| `k8s.container.ephemeral_storage.limit` | UpDownCounter | `By` | Maximum ephemeral storage resource limit set for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1556,7 +1556,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.ephemeral_storage.request` | UpDownCounter | `By` | Ephemeral storage resource requested for the container [1] |  | `k8s.container` |
+| `k8s.container.ephemeral_storage.request` | UpDownCounter | `By` | Ephemeral storage resource requested for the container [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
@@ -1578,7 +1578,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.restart.count` | UpDownCounter | `{restart}` | Describes how many times the container has restarted (since the last counter reset) [1] |  | `k8s.container` |
+| `k8s.container.restart.count` | UpDownCounter | `{restart}` | Describes how many times the container has restarted (since the last counter reset) [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** This value is pulled directly from the K8s API and the value can go indefinitely high and be reset to 0
at any time depending on how your kubelet is configured to prune dead containers.
@@ -1604,7 +1604,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `k8s.container.ready` | UpDownCounter | `{container}` | Indicates whether the container is currently marked as ready to accept traffic, based on its readiness probe (1 = ready, 0 = not ready) [1] |  | `k8s.container` |
+| `k8s.container.ready` | UpDownCounter | `{container}` | Indicates whether the container is currently marked as ready to accept traffic, based on its readiness probe (1 = ready, 0 = not ready) [1] |  | [`k8s.container`](/docs/registry/entities/k8s.md#k8s-container) |
**[1]:** This metric SHOULD reflect the value of the `ready` field in the
[K8s ContainerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstatus-v1-core).
@@ -1632,7 +1632,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.cpu.limit.hard` | UpDownCounter | `{cpu}` | The CPU limits in a specific namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1656,7 +1656,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.cpu.limit.used` | UpDownCounter | `{cpu}` | The CPU limits in a specific namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1680,7 +1680,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.cpu.request.hard` | UpDownCounter | `{cpu}` | The CPU requests in a specific namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1704,7 +1704,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.cpu.request.used` | UpDownCounter | `{cpu}` | The CPU requests in a specific namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1728,7 +1728,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.memory.limit.hard` | UpDownCounter | `By` | The memory limits in a specific namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1752,7 +1752,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.memory.limit.used` | UpDownCounter | `By` | The memory limits in a specific namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1776,7 +1776,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.memory.request.hard` | UpDownCounter | `By` | The memory requests in a specific namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1800,7 +1800,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.memory.request.used` | UpDownCounter | `By` | The memory requests in a specific namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1824,7 +1824,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.hugepage_count.request.hard` | UpDownCounter | `{hugepage}` | The huge page requests in a specific namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1852,7 +1852,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.hugepage_count.request.used` | UpDownCounter | `{hugepage}` | The huge page requests in a specific namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1880,7 +1880,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.storage.request.hard` | UpDownCounter | `By` | The storage requests in a specific namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -1914,7 +1914,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.storage.request.used` | UpDownCounter | `By` | The storage requests in a specific namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -2016,7 +2016,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.ephemeral_storage.request.hard` | UpDownCounter | `By` | The sum of local ephemeral storage requests in the namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -2040,7 +2040,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.ephemeral_storage.request.used` | UpDownCounter | `By` | The sum of local ephemeral storage requests in the namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -2064,7 +2064,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.ephemeral_storage.limit.hard` | UpDownCounter | `By` | The sum of local ephemeral storage limits in the namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -2088,7 +2088,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.ephemeral_storage.limit.used` | UpDownCounter | `By` | The sum of local ephemeral storage limits in the namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -2112,7 +2112,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.object_count.hard` | UpDownCounter | `{object}` | The object count limits in a specific namespace.
-The value represents the configured quota limit of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the configured quota limit of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `hard` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
@@ -2142,7 +2142,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.resourcequota.object_count.used` | UpDownCounter | `{object}` | The object count limits in a specific namespace.
-The value represents the current observed total usage of the resource in the namespace. [1] |  | `k8s.resourcequota` |
+The value represents the current observed total usage of the resource in the namespace. [1] |  | [`k8s.resourcequota`](/docs/registry/entities/k8s.md#k8s-resourcequota) |
**[1]:** This metric is retrieved from the `used` field of the
[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core).
diff --git a/docs/system/process-metrics.md b/docs/system/process-metrics.md
index f69589ff9f..f42e56a7c5 100644
--- a/docs/system/process-metrics.md
+++ b/docs/system/process-metrics.md
@@ -57,7 +57,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.cpu.time` | Counter | `s` | Total CPU seconds broken down by different states. |  | `process` |
+| `process.cpu.time` | Counter | `s` | Total CPU seconds broken down by different states. |  | [`process`](/docs/registry/entities/process.md#process) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -98,7 +98,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.cpu.utilization` | Gauge | `1` | Difference in process.cpu.time since the last measurement, divided by the elapsed time and number of CPUs available to the process. |  | `process` |
+| `process.cpu.utilization` | Gauge | `1` | Difference in process.cpu.time since the last measurement, divided by the elapsed time and number of CPUs available to the process. |  | [`process`](/docs/registry/entities/process.md#process) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -139,7 +139,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.memory.usage` | UpDownCounter | `By` | The amount of physical memory in use. |  | `process` |
+| `process.memory.usage` | UpDownCounter | `By` | The amount of physical memory in use. |  | [`process`](/docs/registry/entities/process.md#process) |
@@ -159,7 +159,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.memory.virtual` | UpDownCounter | `By` | The amount of committed virtual memory. |  | `process` |
+| `process.memory.virtual` | UpDownCounter | `By` | The amount of committed virtual memory. |  | [`process`](/docs/registry/entities/process.md#process) |
@@ -179,7 +179,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.disk.io` | Counter | `By` | Disk bytes transferred. |  | `process` |
+| `process.disk.io` | Counter | `By` | Disk bytes transferred. |  | [`process`](/docs/registry/entities/process.md#process) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -212,7 +212,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.network.io` | Counter | `By` | Network bytes transferred. |  | `process` |
+| `process.network.io` | Counter | `By` | Network bytes transferred. |  | [`process`](/docs/registry/entities/process.md#process) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -245,7 +245,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.thread.count` | UpDownCounter | `{thread}` | Process threads count. |  | `process` |
+| `process.thread.count` | UpDownCounter | `{thread}` | Process threads count. |  | [`process`](/docs/registry/entities/process.md#process) |
@@ -265,7 +265,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.open_file_descriptor.count` | UpDownCounter | `{file_descriptor}` | Number of file descriptors in use by the process. |  | `process` |
+| `process.open_file_descriptor.count` | UpDownCounter | `{file_descriptor}` | Number of file descriptors in use by the process. |  | [`process`](/docs/registry/entities/process.md#process) |
@@ -285,7 +285,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.context_switches` | Counter | `{context_switch}` | Number of times the process has been context switched. |  | `process` |
+| `process.context_switches` | Counter | `{context_switch}` | Number of times the process has been context switched. |  | [`process`](/docs/registry/entities/process.md#process) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -318,7 +318,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.paging.faults` | Counter | `{fault}` | Number of page faults the process has made. |  | `process` |
+| `process.paging.faults` | Counter | `{fault}` | Number of page faults the process has made. |  | [`process`](/docs/registry/entities/process.md#process) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -351,7 +351,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `process.uptime` | Gauge | `s` | The time the process has been running. [1] |  | `process` |
+| `process.uptime` | Gauge | `s` | The time the process has been running. [1] |  | [`process`](/docs/registry/entities/process.md#process) |
**[1]:** Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.
The actual accuracy would depend on the instrumentation and operating system.
diff --git a/docs/system/system-metrics.md b/docs/system/system-metrics.md
index 30e7293622..a836ad8401 100644
--- a/docs/system/system-metrics.md
+++ b/docs/system/system-metrics.md
@@ -88,7 +88,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.uptime` | Gauge | `s` | The time the system has been running [1] |  | `host` |
+| `system.uptime` | Gauge | `s` | The time the system has been running [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.
The actual accuracy would depend on the instrumentation and operating system.
@@ -115,7 +115,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.cpu.physical.count` | UpDownCounter | `{cpu}` | Reports the number of actual physical processor cores on the hardware [1] |  | `host` |
+| `system.cpu.physical.count` | UpDownCounter | `{cpu}` | Reports the number of actual physical processor cores on the hardware [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** Calculated by multiplying the number of sockets by the number of cores per socket
@@ -137,7 +137,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.cpu.logical.count` | UpDownCounter | `{cpu}` | Reports the number of logical (virtual) processor cores created by the operating system to manage multitasking [1] |  | `host` |
+| `system.cpu.logical.count` | UpDownCounter | `{cpu}` | Reports the number of logical (virtual) processor cores created by the operating system to manage multitasking [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** Calculated by multiplying the number of sockets by the number of cores per socket, and then by the number of threads per core
@@ -159,7 +159,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.cpu.time` | Counter | `s` | Seconds each logical CPU spent on each mode |  | `host` |
+| `system.cpu.time` | Counter | `s` | Seconds each logical CPU spent on each mode |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -201,7 +201,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.cpu.frequency` | Gauge | `Hz` | Operating frequency of the logical CPU in Hertz. |  | `host` |
+| `system.cpu.frequency` | Gauge | `Hz` | Operating frequency of the logical CPU in Hertz. |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -225,7 +225,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.cpu.utilization` | Gauge | `1` | For each logical CPU, the utilization is calculated as the change in cumulative CPU time (cpu.time) over a measurement interval, divided by the elapsed time. |  | `host` |
+| `system.cpu.utilization` | Gauge | `1` | For each logical CPU, the utilization is calculated as the change in cumulative CPU time (cpu.time) over a measurement interval, divided by the elapsed time. |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -272,7 +272,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.memory.usage` | UpDownCounter | `By` | Reports memory in use by state. [1] |  | `host` |
+| `system.memory.usage` | UpDownCounter | `By` | Reports memory in use by state. [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** The sum over all `system.memory.state` values SHOULD equal the total memory
available on the system, that is `system.memory.limit`.
@@ -310,7 +310,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.memory.limit` | UpDownCounter | `By` | Total memory available in the system. [1] |  | `host` |
+| `system.memory.limit` | UpDownCounter | `By` | Total memory available in the system. [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** Its value SHOULD equal the sum of `system.memory.state` over all states.
@@ -332,7 +332,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.memory.shared` | UpDownCounter | `By` | Shared memory used (mostly by tmpfs). [1] |  | `host` |
+| `system.memory.shared` | UpDownCounter | `By` | Shared memory used (mostly by tmpfs). [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** 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)"
@@ -355,7 +355,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.memory.utilization` | Gauge | `1` | |  | `host` |
+| `system.memory.utilization` | Gauge | `1` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -394,7 +394,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.paging.usage` | UpDownCounter | `By` | Unix swap or windows pagefile usage |  | `host` |
+| `system.paging.usage` | UpDownCounter | `By` | Unix swap or windows pagefile usage |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -428,7 +428,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.paging.utilization` | Gauge | `1` | |  | `host` |
+| `system.paging.utilization` | Gauge | `1` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -462,7 +462,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.paging.faults` | Counter | `{fault}` | |  | `host` |
+| `system.paging.faults` | Counter | `{fault}` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -495,7 +495,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.paging.operations` | Counter | `{operation}` | |  | `host` |
+| `system.paging.operations` | Counter | `{operation}` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -542,7 +542,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.disk.io` | Counter | `By` | |  | `host` |
+| `system.disk.io` | Counter | `By` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -576,7 +576,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.disk.operations` | Counter | `{operation}` | |  | `host` |
+| `system.disk.operations` | Counter | `{operation}` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -610,7 +610,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.disk.io_time` | Counter | `s` | Time disk spent activated [1] |  | `host` |
+| `system.disk.io_time` | Counter | `s` | Time disk spent activated [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** The real elapsed time ("wall clock") used in the I/O path (time from operations running in parallel are not counted). Measured as:
@@ -641,7 +641,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.disk.operation_time` | Counter | `s` | Sum of the time each operation took to complete [1] |  | `host` |
+| `system.disk.operation_time` | Counter | `s` | Sum of the time each operation took to complete [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** Because it is the sum of time each request took, parallel-issued requests each contribute to make the count grow. Measured as:
@@ -680,7 +680,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.disk.merged` | Counter | `{operation}` | |  | `host` |
+| `system.disk.merged` | Counter | `{operation}` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -714,7 +714,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.disk.limit` | UpDownCounter | `By` | The total storage capacity of the disk |  | `host` |
+| `system.disk.limit` | UpDownCounter | `By` | The total storage capacity of the disk |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -742,7 +742,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.filesystem.usage` | UpDownCounter | `By` | Reports a filesystem's space usage across different states. [1] |  | `host` |
+| `system.filesystem.usage` | UpDownCounter | `By` | Reports a filesystem's space usage across different states. [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** 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`.
@@ -796,7 +796,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.filesystem.utilization` | Gauge | `1` | |  | `host` |
+| `system.filesystem.utilization` | Gauge | `1` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -847,7 +847,7 @@ This metric is [opt-in][MetricOptIn].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.filesystem.limit` | UpDownCounter | `By` | The total storage capacity of the filesystem |  | `host` |
+| `system.filesystem.limit` | UpDownCounter | `By` | The total storage capacity of the filesystem |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -891,7 +891,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.network.dropped` | Counter | `{packet}` | Count of packets that are dropped or discarded even though there was no error [1] |  | `host` |
+| `system.network.dropped` | Counter | `{packet}` | Count of packets that are dropped or discarded even though there was no error [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** Measured as:
@@ -931,7 +931,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.network.packets` | Counter | `{packet}` | |  | `host` |
+| `system.network.packets` | Counter | `{packet}` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -965,7 +965,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.network.errors` | Counter | `{error}` | Count of network errors detected [1] |  | `host` |
+| `system.network.errors` | Counter | `{error}` | Count of network errors detected [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** Measured as:
@@ -1005,7 +1005,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.network.io` | Counter | `By` | |  | `host` |
+| `system.network.io` | Counter | `By` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -1039,7 +1039,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.network.connection.count` | UpDownCounter | `{connection}` | |  | `host` |
+| `system.network.connection.count` | UpDownCounter | `{connection}` | |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -1108,7 +1108,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.process.count` | UpDownCounter | `{process}` | Total number of processes in each state |  | `host` |
+| `system.process.count` | UpDownCounter | `{process}` | Total number of processes in each state |  | [`host`](/docs/registry/entities/host.md#host) |
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
@@ -1143,7 +1143,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.process.created` | Counter | `{process}` | Total number of processes created over uptime of the host |  | `host` |
+| `system.process.created` | Counter | `{process}` | Total number of processes created over uptime of the host |  | [`host`](/docs/registry/entities/host.md#host) |
@@ -1193,7 +1193,7 @@ an `{os}` prefix to split this metric across OSes.
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.linux.memory.available` | UpDownCounter | `By` | An estimate of how much memory is available for starting new applications, without causing swapping [1] |  | `host` |
+| `system.linux.memory.available` | UpDownCounter | `By` | An estimate of how much memory is available for starting new applications, without causing swapping [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** 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.
@@ -1219,7 +1219,7 @@ This metric is [recommended][MetricRecommended].
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `system.linux.memory.slab.usage` | UpDownCounter | `By` | Reports the memory used by the Linux kernel for managing caches of frequently used objects. [1] |  | `host` |
+| `system.linux.memory.slab.usage` | UpDownCounter | `By` | Reports the memory used by the Linux kernel for managing caches of frequently used objects. [1] |  | [`host`](/docs/registry/entities/host.md#host) |
**[1]:** 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.
diff --git a/model/process/entities.yaml b/model/process/entities.yaml
index 10c557fc10..c96114783f 100644
--- a/model/process/entities.yaml
+++ b/model/process/entities.yaml
@@ -10,19 +10,19 @@ groups:
- ref: process.parent_pid
- ref: process.executable.name
requirement_level:
- conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details.
+ conditionally_required: See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
- ref: process.executable.path
requirement_level:
- conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details.
+ conditionally_required: See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
- ref: process.command
requirement_level:
- conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details.
+ conditionally_required: See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
- ref: process.command_line
requirement_level:
- conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details.
+ conditionally_required: See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
- ref: process.command_args
requirement_level:
- conditionally_required: See [Selecting process attributes](#selecting-process-attributes) for details.
+ conditionally_required: See [Selecting process attributes](/docs/resource/process.md#selecting-process-attributes) for details.
- ref: process.owner
- ref: process.linux.cgroup
diff --git a/templates/registry/markdown/entity_macros.j2 b/templates/registry/markdown/entity_macros.j2
new file mode 100644
index 0000000000..6049a98998
--- /dev/null
+++ b/templates/registry/markdown/entity_macros.j2
@@ -0,0 +1,6 @@
+{% macro registry_url(id, registry) -%}
+{{registry}}/{{ id | split_id | list | first | kebab_case }}.md#{{ id | kebab_case }}
+{%- endmacro %}
+{% macro print_associations(associations, registry) -%}
+{%- for e in associations %}{%if loop.first == false %}; {% endif %}[`{{ e | trim }}`]({{registry_url(e, registry)}}){%- endfor %}
+{%- endmacro %}
diff --git a/templates/registry/markdown/entity_namespace.md.j2 b/templates/registry/markdown/entity_namespace.md.j2
new file mode 100644
index 0000000000..e0b586753d
--- /dev/null
+++ b/templates/registry/markdown/entity_namespace.md.j2
@@ -0,0 +1,47 @@
+
+
+
+
+{%- import 'stability.j2' as stability %}
+{%- import 'attribute_table.j2' as at %}
+
+# {{ ctx.id | title_case | acronym }}
+
+{% for e in ctx.groups | sort(attribute='name') %}
+{%- set id_attrs = e.attributes | selectattr("role", "equalto", "identifying") -%}
+{%- set desc_attrs = e.attributes | selectattr("role", "equalto", "descriptive") -%}
+{%- set misc_attrs = e.attributes | rejectattr("role", "defined") -%}
+
+## {{ e.name | title_case | acronym }}
+
+**Status:** {{ stability.badge(e.stability, e.deprecated) }}
+
+**type:** `{{ e.name }}`
+
+**Description:** {{ e.brief | trim }}
+
+{%- if desc_attrs | length > 0 %}
+
+**Identifying Attributes:**
+
+{{ at.generate(id_attrs, "", "/docs/registry/attributes", e.lineage.attributes) | trim }}
+{%- endif %}
+{%- if desc_attrs | length > 0 %}
+
+**Descriptive Attributes:**
+
+{{ at.generate(desc_attrs, "", "/docs/registry/attributes", e.lineage.attributes) | trim }}
+{%- endif %}
+{%- if misc_attrs | length > 0 %}
+
+**Other Attributes:**
+
+> :warning: This entity definition contains attributes without a role.
+> Stable Entities MUST NOT have attributes without a defined role.
+
+{{ at.generate(misc_attrs, "", "/docs/registry/attributes", e.lineage.attributes) | trim}}
+{%- endif %}
+
+{% endfor %}
+
+
diff --git a/templates/registry/markdown/entity_readme.md.j2 b/templates/registry/markdown/entity_readme.md.j2
new file mode 100644
index 0000000000..4e91a24ce3
--- /dev/null
+++ b/templates/registry/markdown/entity_readme.md.j2
@@ -0,0 +1,43 @@
+{%- import 'stability.j2' as stability -%}
+
+
+
+
+
+# Entity registry
+
+The entities registry is the catalog of available Entities.
+
+> [!WARNING]
+>
+> The following registry overview is a work in progress.
+>
+> Relationships and signal associations are a work in progress.
+
+Currently, the following namespaces exist:
+
+
+
+ Namespace |
+ Entity |
+ Stability |
+
+
+
+{% for bundle in ctx %}
+{{ bundle.id | title_case | acronym }} | | |
+
+{%- for group in bundle.groups | sort(attribute='name') -%}
+ {%- set my_file_name = bundle.id | kebab_case ~ ".md#" ~ (group.name | kebab_case) -%}
+
+ |
+ {{ group.name }} |
+ {{ stability.htmlbadge(group.stability, group.deprecated) | trim }} |
+
+{%- endfor %}
+{%- endfor %}
+
+
+
diff --git a/templates/registry/markdown/metric_table.j2 b/templates/registry/markdown/metric_table.j2
index 60006ff6fc..3f61f8b11e 100644
--- a/templates/registry/markdown/metric_table.j2
+++ b/templates/registry/markdown/metric_table.j2
@@ -1,8 +1,8 @@
{% import 'stability.j2' as stability %}
{% import 'notes.j2' as notes %}
{% import 'metric_macros.j2' as metrics %}
-{% macro print_entities(associations) %}{%- for e in associations %}{%if loop.first == false %}; {% endif %}`{{ e | trim }}`{%- endfor %}{% endmacro %}
-{% macro generate(group) %}| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+{% import 'entity_macros.j2' as entities %}
+{% macro generate(group, entity_registry) %}| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
-| `{{ group.metric_name }}` | {{ metrics.instrument(group.instrument) | trim }} | `{{ group.unit }}` | {{ group.brief | trim }}{{ notes.add({"note": group.note}) }} | {{ stability.badge(group.stability, group.deprecated, group.brief) | trim }} | {{ print_entities(group.entity_associations) }} |
+| `{{ group.metric_name }}` | {{ metrics.instrument(group.instrument) | trim }} | `{{ group.unit }}` | {{ group.brief | trim }}{{ notes.add({"note": group.note}) }} | {{ stability.badge(group.stability, group.deprecated, group.brief) | trim }} | {{ entities.print_associations(group.entity_associations, entity_registry) }} |
{{ notes.render() }}{% endmacro %}
diff --git a/templates/registry/markdown/registry_readme.md.j2 b/templates/registry/markdown/registry_readme.md.j2
index 1b20433a7e..c4d44c1149 100644
--- a/templates/registry/markdown/registry_readme.md.j2
+++ b/templates/registry/markdown/registry_readme.md.j2
@@ -7,4 +7,5 @@ weight: -2
This is an automatically generated registry of available semantic conventions.
- [Attributes](attributes/README.md)
+- [Entities](entities/README.md)
diff --git a/templates/registry/markdown/snippet.md.j2 b/templates/registry/markdown/snippet.md.j2
index 16fb1aeb3c..b909ff580d 100644
--- a/templates/registry/markdown/snippet.md.j2
+++ b/templates/registry/markdown/snippet.md.j2
@@ -9,13 +9,14 @@
{%- import 'resource_macros.j2' as resource -%}
{%- import 'span_macros.j2' as span %}
{%- set attribute_registry_base_url=params.registry_base_url~"attributes" %}
+{%- set entity_registry_base_url=params.registry_base_url~"entities" %}
{% macro generate_event(group) -%}
{{ event.header(group) }}{{ generate_attributes(group) }}{{ event.body(group.body) }}{% endmacro -%}
{%- macro generate_resource(group) -%}
{{ resource.header(group) }}{{ generate_attributes(group) }}{% endmacro -%}
-{%- macro generate_metric(group) -%}
-{{ mt.generate(group) }}
+{%- macro generate_metric(group, entity_registry_base_url) -%}
+{{ mt.generate(group, entity_registry_base_url) }}
{{ generate_attributes(group) }}{% endmacro -%}
{%- macro generate_span(group) -%}
{{ span.header(group) }}{{ generate_attributes(group) }}{% endmacro -%}
@@ -27,7 +28,7 @@
{%- elif group.type == "resource" or group.type == "entity" -%}
{{ generate_resource(group) }}
{%- elif group.type == "metric" -%}
-{{ generate_metric(group) }}
+{{ generate_metric(group, entity_registry_base_url) }}
{%- elif group.type == "span" -%}
{{ generate_span(group) }}
{%- else -%}
diff --git a/templates/registry/markdown/stability.j2 b/templates/registry/markdown/stability.j2
index b4d019e233..bcad44b73c 100644
--- a/templates/registry/markdown/stability.j2
+++ b/templates/registry/markdown/stability.j2
@@ -10,5 +10,16 @@
{%- endif %}
{%- endmacro %}
+{% macro htmlbadge(stability, deprecated) -%}
+{%- if deprecated %}
+{%- elif stability == "mixed" %}
+{%- elif stability == "stable" %}
+{%- elif stability == "release_candidate" %}
+{%- elif stability == "deprecated" %}
+{%- elif stability == "experimental" %}
+{%- elif stability == "development" %}
+{%- else %}{{ "Unknown stability." }}
+{%- endif %}
+{%- endmacro %}
{% macro deprecated_note(deprecated, note) %}{{ (deprecated.note if deprecated.note is defined else note) | trim }}{%- endmacro %}
diff --git a/templates/registry/markdown/weaver.yaml b/templates/registry/markdown/weaver.yaml
index 6314ac1645..ec0c76351e 100644
--- a/templates/registry/markdown/weaver.yaml
+++ b/templates/registry/markdown/weaver.yaml
@@ -11,6 +11,14 @@ templates:
filter: '.'
application_mode: single
file_name: README.md
+ - pattern: entity_readme.md.j2
+ filter: '.groups | map(select(.type == "entity")) | group_by(.name | split(".") | .[0]) | map({id: .[0].id | split(".") | .[1], groups: .})'
+ application_mode: single
+ file_name: 'entities/README.md'
+ - pattern: entity_namespace.md.j2
+ filter: '.groups | map(select(.type == "entity")) | group_by(.name | split(".") | .[0]) | map({id: .[0].id | split(".") | .[1], groups: .})'
+ application_mode: each
+ file_name: 'entities/{{ ctx.id | kebab_case }}.md'
acronyms:
- AI
- AWS