diff --git a/.chloggen/add_openshift_semconv.yaml b/.chloggen/add_openshift_semconv.yaml
new file mode 100644
index 0000000000..e04e281f4f
--- /dev/null
+++ b/.chloggen/add_openshift_semconv.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: openshift
+
+# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
+note: Adds metrics for openshift's clusterquota
+
+# 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: [2078]
+
+# (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/.github/CODEOWNERS b/.github/CODEOWNERS
index 9d5f370e71..1cbaeb2d90 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -79,7 +79,8 @@
/model/session/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-client-approvers
# K8s semantic conventions
-/docs/resource/k8s.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers
+/docs/resource/k8s/k8s.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers
+/docs/resource/k8s/openshift.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers
/model/k8s/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers
/docs/non-normative/k8s-attributes.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers
/docs/non-normative/k8s-migration.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-k8s-approvers
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
index 0aa066e861..761367b8c7 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yaml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -76,6 +76,7 @@ body:
- area:oci
- area:onc-rpc
- area:openai
+ - area:openshift
- area:opentracing
- area:os
- area:otel
diff --git a/.github/ISSUE_TEMPLATE/change_proposal.yaml b/.github/ISSUE_TEMPLATE/change_proposal.yaml
index 44d9dd1491..7ab9b0e6d8 100644
--- a/.github/ISSUE_TEMPLATE/change_proposal.yaml
+++ b/.github/ISSUE_TEMPLATE/change_proposal.yaml
@@ -68,6 +68,7 @@ body:
- area:oci
- area:onc-rpc
- area:openai
+ - area:openshift
- area:opentracing
- area:os
- area:otel
diff --git a/.github/ISSUE_TEMPLATE/new-conventions.yaml b/.github/ISSUE_TEMPLATE/new-conventions.yaml
index 241b64c44b..db01509529 100644
--- a/.github/ISSUE_TEMPLATE/new-conventions.yaml
+++ b/.github/ISSUE_TEMPLATE/new-conventions.yaml
@@ -79,6 +79,7 @@ body:
- area:oci
- area:onc-rpc
- area:openai
+ - area:openshift
- area:opentracing
- area:os
- area:otel
diff --git a/docs/non-normative/k8s-migration.md b/docs/non-normative/k8s-migration.md
index c90d92123e..18840bf5e2 100644
--- a/docs/non-normative/k8s-migration.md
+++ b/docs/non-normative/k8s-migration.md
@@ -60,6 +60,7 @@ and one for disabling the old schema called `semconv.k8s.disableLegacy`. Then:
- [K8s ReplicationController resource](#k8s-replicationcontroller-resource)
- [K8s Container metrics](#k8s-container-metrics)
- [K8s ResourceQuota metrics](#k8s-resourcequota-metrics)
+ - [OpenShift ClusterResourceQuota metrics](#openshift-clusterresourcequota-metrics)
- [K8s Node condition metrics](#k8s-node-condition-metrics)
- [K8s Filesystem metrics](#k8s-filesystem-metrics)
- [K8s Pod Volume metrics](#k8s-pod-volume-metrics)
@@ -363,6 +364,25 @@ These metrics were completely re-designed. The changes are the following:
+### OpenShift ClusterResourceQuota metrics
+
+The OpenShift ClusterResourceQuota metrics implemented by the Collector and specifically the
+[k8scluster](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.115.0/receiver/k8sclusterreceiver/documentation.md)
+receiver were introduced as semantic conventions in
+[github.com/open-telemetry/semantic-conventions/pull/2779](https://github.com/open-telemetry/semantic-conventions/pull/2779).
+
+These metrics were completely re-designed. The changes are the following:
+
+
+
+| Old (Collector)  | New |
+|------------------------------------------------------------------------------------|-------------------------------------|
+| `openshift.clusterquota.hard_limit` | `openshift.clusterquota.{resource}.hard` |
+| `openshift.clusterquota.used` | `openshift.clusterquota.{resource}.used` |
+| `{resource}` attribute | Split in different metrics per type |
+
+
+
### K8s Node condition metrics
The K8s Node condition metrics implemented by the Collector and specifically the
diff --git a/docs/registry/attributes/README.md b/docs/registry/attributes/README.md
index 1b355b7680..a782d50540 100644
--- a/docs/registry/attributes/README.md
+++ b/docs/registry/attributes/README.md
@@ -85,6 +85,7 @@ Currently, the following namespaces exist:
- [OCI](oci.md)
- [ONC RPC](onc-rpc.md)
- [OpenAI](openai.md)
+- [Openshift](openshift.md)
- [OpenTracing](opentracing.md)
- [OS](os.md)
- [OTel](otel.md)
diff --git a/docs/registry/attributes/openshift.md b/docs/registry/attributes/openshift.md
new file mode 100644
index 0000000000..85650c2246
--- /dev/null
+++ b/docs/registry/attributes/openshift.md
@@ -0,0 +1,13 @@
+
+
+
+# Openshift
+
+## Openshift Attributes
+
+OpenShift resource attributes.
+
+| Attribute | Type | Description | Examples | Stability |
+|---|---|---|---|---|
+| `openshift.clusterquota.name` | string | The name of the cluster quota. | `opentelemetry` |  |
+| `openshift.clusterquota.uid` | string | The UID of the cluster quota. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |  |
diff --git a/docs/registry/entities/README.md b/docs/registry/entities/README.md
index 2829bc1d6d..9a3c0c576c 100644
--- a/docs/registry/entities/README.md
+++ b/docs/registry/entities/README.md
@@ -77,6 +77,8 @@ Currently, the following namespaces exist:
| | [k8s.replicationcontroller](k8s.md#k8s-replicationcontroller) |  |
| | [k8s.resourcequota](k8s.md#k8s-resourcequota) |  |
| | [k8s.statefulset](k8s.md#k8s-statefulset) |  |
+| Openshift | | |
+| | [openshift.clusterquota](openshift.md#openshift-clusterquota) |  |
| OS | | |
| | [os](os.md#os) |  |
| OTel | | |
diff --git a/docs/registry/entities/openshift.md b/docs/registry/entities/openshift.md
new file mode 100644
index 0000000000..9f54e8342d
--- /dev/null
+++ b/docs/registry/entities/openshift.md
@@ -0,0 +1,29 @@
+
+
+
+
+
+# Openshift
+
+## Openshift Clusterquota
+
+**Status:** 
+
+**type:** `openshift.clusterquota`
+
+**Description:** An OpenShift [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#clusterresourcequota-quota-openshift-io-v1) object.
+
+**Identifying Attributes:**
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`openshift.clusterquota.uid`](/docs/registry/attributes/openshift.md) | string | The UID of the cluster quota. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+
+**Descriptive Attributes:**
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`openshift.clusterquota.name`](/docs/registry/attributes/openshift.md) | string | The name of the cluster quota. | `opentelemetry` | `Recommended` |  |
+
+
+
diff --git a/docs/resource/README.md b/docs/resource/README.md
index c178cecff6..30d081f42e 100644
--- a/docs/resource/README.md
+++ b/docs/resource/README.md
@@ -251,7 +251,8 @@ Attributes defining a running environment (e.g. Operating System, Cloud, Data Ce
- [CICD](./cicd.md)
- Deployment:
- [Deployment Environment](./deployment-environment.md)
- - [Kubernetes](./k8s.md)
+ - [Kubernetes](k8s/k8s.md)
+ - [Openshift](k8s/openshift.md)
- [CloudFoundry](./cloudfoundry.md)
- [Browser](./browser.md)
diff --git a/docs/resource/k8s.md b/docs/resource/k8s/k8s.md
similarity index 99%
rename from docs/resource/k8s.md
rename to docs/resource/k8s/k8s.md
index b6cab67970..971066df3e 100644
--- a/docs/resource/k8s.md
+++ b/docs/resource/k8s/k8s.md
@@ -205,7 +205,7 @@ A container specification in a Pod template. This type is intended to be used to
capture information such as name of a container in a Pod template which is different
from the name of the running container.
-Note: This type is different from [container](./container.md), which corresponds
+Note: This type is different from [container](../container.md), which corresponds
to a running container.
@@ -599,5 +599,5 @@ A ResourceQuota provides constraints that limit aggregate resource consumption p
The following guidelines are specific to Kubernetes:
-- [Service attributes](../non-normative/k8s-attributes.md#service-attributes)
-- [Naming known exceptions](../non-normative/naming-known-exceptions.md)
+- [Service attributes](../../non-normative/k8s-attributes.md#service-attributes)
+- [Naming known exceptions](../../non-normative/naming-known-exceptions.md)
diff --git a/docs/resource/k8s/openshift.md b/docs/resource/k8s/openshift.md
new file mode 100644
index 0000000000..a18697d761
--- /dev/null
+++ b/docs/resource/k8s/openshift.md
@@ -0,0 +1,31 @@
+# Openshift
+
+**Status**: [Development][DocumentStatus]
+
+## ClusterResourceQuota
+
+
+
+
+
+
+
+
+
+**Status:** 
+
+**type:** `openshift.clusterquota`
+
+**Description:** An OpenShift [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#clusterresourcequota-quota-openshift-io-v1) object.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`openshift.clusterquota.name`](/docs/registry/attributes/openshift.md) | string | The name of the cluster quota. | `opentelemetry` | `Recommended` |  |
+| [`openshift.clusterquota.uid`](/docs/registry/attributes/openshift.md) | string | The UID of the cluster quota. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
+
+
+
+
+
+
+[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
diff --git a/docs/system/k8s-metrics.md b/docs/system/k8s-metrics.md
index 496b13ddf9..688fa90e78 100644
--- a/docs/system/k8s-metrics.md
+++ b/docs/system/k8s-metrics.md
@@ -12,7 +12,7 @@ This document describes instruments and attributes for common K8s level
metrics in OpenTelemetry. These metrics are collected from technology-specific,
well-defined APIs (e.g. Kubelet's API).
-Metrics in `k8s.` instruments SHOULD be attached to a [K8s Resource](/docs/resource/k8s.md)
+Metrics in `k8s.` instruments SHOULD be attached to a [K8s Resource](/docs/resource/k8s/k8s.md)
and therefore inherit its attributes, like `k8s.pod.name` and `k8s.pod.uid`.
diff --git a/docs/system/openshift-metrics.md b/docs/system/openshift-metrics.md
new file mode 100644
index 0000000000..1117fa3c46
--- /dev/null
+++ b/docs/system/openshift-metrics.md
@@ -0,0 +1,609 @@
+
+
+# Semantic conventions for OpenShift metrics
+
+**Status**: [Development][DocumentStatus]
+
+## OpenShift metrics
+
+This document describes instruments and attributes for common OpenShift specific
+metrics in OpenTelemetry. These metrics are collected from OpenShift's,
+well-defined API.
+
+Metrics in `openshift.` instruments SHOULD be attached to an [OpenShift Resource](/docs/resource/k8s/openshift.md)
+and therefore inherit its attributes, like `openshift.clusterquota.name` and `openshift.clusterquota.uid`.
+
+
+
+- [ClusterResourceQuota metrics](#clusterresourcequota-metrics)
+ - [Metric: `openshift.clusterquota.cpu.limit.hard`](#metric-openshiftclusterquotacpulimithard)
+ - [Metric: `openshift.clusterquota.cpu.limit.used`](#metric-openshiftclusterquotacpulimitused)
+ - [Metric: `openshift.clusterquota.cpu.request.hard`](#metric-openshiftclusterquotacpurequesthard)
+ - [Metric: `openshift.clusterquota.cpu.request.used`](#metric-openshiftclusterquotacpurequestused)
+ - [Metric: `openshift.clusterquota.memory.limit.hard`](#metric-openshiftclusterquotamemorylimithard)
+ - [Metric: `openshift.clusterquota.memory.limit.used`](#metric-openshiftclusterquotamemorylimitused)
+ - [Metric: `openshift.clusterquota.memory.request.hard`](#metric-openshiftclusterquotamemoryrequesthard)
+ - [Metric: `openshift.clusterquota.memory.request.used`](#metric-openshiftclusterquotamemoryrequestused)
+ - [Metric: `openshift.clusterquota.hugepage_count.request.hard`](#metric-openshiftclusterquotahugepage_countrequesthard)
+ - [Metric: `openshift.clusterquota.hugepage_count.request.used`](#metric-openshiftclusterquotahugepage_countrequestused)
+ - [Metric: `openshift.clusterquota.storage.request.hard`](#metric-openshiftclusterquotastoragerequesthard)
+ - [Metric: `openshift.clusterquota.storage.request.used`](#metric-openshiftclusterquotastoragerequestused)
+ - [Metric: `openshift.clusterquota.persistentvolumeclaim_count.hard`](#metric-openshiftclusterquotapersistentvolumeclaim_counthard)
+ - [Metric: `openshift.clusterquota.persistentvolumeclaim_count.used`](#metric-openshiftclusterquotapersistentvolumeclaim_countused)
+ - [Metric: `openshift.clusterquota.ephemeral_storage.request.hard`](#metric-openshiftclusterquotaephemeral_storagerequesthard)
+ - [Metric: `openshift.clusterquota.ephemeral_storage.request.used`](#metric-openshiftclusterquotaephemeral_storagerequestused)
+ - [Metric: `openshift.clusterquota.ephemeral_storage.limit.hard`](#metric-openshiftclusterquotaephemeral_storagelimithard)
+ - [Metric: `openshift.clusterquota.ephemeral_storage.limit.used`](#metric-openshiftclusterquotaephemeral_storagelimitused)
+ - [Metric: `openshift.clusterquota.object_count.hard`](#metric-openshiftclusterquotaobject_counthard)
+ - [Metric: `openshift.clusterquota.object_count.used`](#metric-openshiftclusterquotaobject_countused)
+
+
+
+## ClusterResourceQuota metrics
+
+**Description:** [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1) level metrics captured under the namespace `openshift.clusterquota`.
+
+### Metric: `openshift.clusterquota.cpu.limit.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.cpu.limit.hard` | UpDownCounter | `{cpu}` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.cpu.limit.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.cpu.limit.used` | UpDownCounter | `{cpu}` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.cpu.request.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.cpu.request.hard` | UpDownCounter | `{cpu}` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.cpu.request.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.cpu.request.used` | UpDownCounter | `{cpu}` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.memory.limit.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.memory.limit.hard` | UpDownCounter | `By` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.memory.limit.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.memory.limit.used` | UpDownCounter | `By` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.memory.request.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.memory.request.hard` | UpDownCounter | `By` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.memory.request.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.memory.request.used` | UpDownCounter | `By` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.hugepage_count.request.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.hugepage_count.request.hard` | UpDownCounter | `{hugepage}` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.hugepage.size`](/docs/registry/attributes/k8s.md) | string | The size (identifier) of the K8s huge page. | `2Mi` | `Required` |  |
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.hugepage_count.request.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.hugepage_count.request.used` | UpDownCounter | `{hugepage}` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.hugepage.size`](/docs/registry/attributes/k8s.md) | string | The size (identifier) of the K8s huge page. | `2Mi` | `Required` |  |
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.storage.request.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.storage.request.hard` | UpDownCounter | `By` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.storageclass.name`](/docs/registry/attributes/k8s.md) | string | The name of K8s [StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#storageclass-v1-storage-k8s-io) object. | `gold.storageclass.storage.k8s.io` | `Conditionally Required` [1] |  |
+
+**[1] `k8s.storageclass.name`:** The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.storage.request.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.storage.request.used` | UpDownCounter | `By` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.storageclass.name`](/docs/registry/attributes/k8s.md) | string | The name of K8s [StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#storageclass-v1-storage-k8s-io) object. | `gold.storageclass.storage.k8s.io` | `Conditionally Required` [1] |  |
+
+**[1] `k8s.storageclass.name`:** The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.persistentvolumeclaim_count.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.persistentvolumeclaim_count.hard` | UpDownCounter | `{persistentvolumeclaim}` | The enforced hard limit of the resource across all projects. [1] |  | |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.storageclass.name`](/docs/registry/attributes/k8s.md) | string | The name of K8s [StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#storageclass-v1-storage-k8s-io) object. | `gold.storageclass.storage.k8s.io` | `Conditionally Required` [1] |  |
+
+**[1] `k8s.storageclass.name`:** The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.persistentvolumeclaim_count.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.persistentvolumeclaim_count.used` | UpDownCounter | `{persistentvolumeclaim}` | The current observed total usage of the resource across all projects. [1] |  | |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.storageclass.name`](/docs/registry/attributes/k8s.md) | string | The name of K8s [StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#storageclass-v1-storage-k8s-io) object. | `gold.storageclass.storage.k8s.io` | `Conditionally Required` [1] |  |
+
+**[1] `k8s.storageclass.name`:** The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+storage class.
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.ephemeral_storage.request.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.ephemeral_storage.request.hard` | UpDownCounter | `By` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.ephemeral_storage.request.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.ephemeral_storage.request.used` | UpDownCounter | `By` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.ephemeral_storage.limit.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.ephemeral_storage.limit.hard` | UpDownCounter | `By` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.ephemeral_storage.limit.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.ephemeral_storage.limit.used` | UpDownCounter | `By` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.object_count.hard`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.object_count.hard` | UpDownCounter | `{object}` | The enforced hard limit of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Hard` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.resourcequota.resource_name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s resource a resource quota defines. [1] | `count/replicationcontrollers` | `Required` |  |
+
+**[1] `k8s.resourcequota.resource_name`:** The value for this attribute can be either the full `count/[.]` string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See [Kubernetes Resource Quotas documentation](https://kubernetes.io/docs/concepts/policy/resource-quotas/#object-count-quota) for more details.
+
+
+
+
+
+
+### Metric: `openshift.clusterquota.object_count.used`
+
+This metric is [recommended][MetricRecommended].
+
+
+
+
+
+
+
+
+| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
+| -------- | --------------- | ----------- | -------------- | --------- | ------ |
+| `openshift.clusterquota.object_count.used` | UpDownCounter | `{object}` | The current observed total usage of the resource across all projects. [1] |  | [`openshift.clusterquota`](/docs/registry/entities/openshift.md#openshift-clusterquota) |
+
+**[1]:** This metric is retrieved from the `Status.Total.Used` field of the
+[K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+of the
+[ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
+|---|---|---|---|---|---|
+| [`k8s.resourcequota.resource_name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s resource a resource quota defines. [1] | `count/replicationcontrollers` | `Required` |  |
+
+**[1] `k8s.resourcequota.resource_name`:** The value for this attribute can be either the full `count/[.]` string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See [Kubernetes Resource Quotas documentation](https://kubernetes.io/docs/concepts/policy/resource-quotas/#object-count-quota) for more details.
+
+
+
+
+
+
+[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
+[MetricRecommended]: /docs/general/metric-requirement-level.md#recommended
diff --git a/model/openshift/entities.yaml b/model/openshift/entities.yaml
new file mode 100644
index 0000000000..f77f0d30cc
--- /dev/null
+++ b/model/openshift/entities.yaml
@@ -0,0 +1,14 @@
+groups:
+ - id: entity.openshift.clusterquota
+ type: entity
+ stability: development
+ name: openshift.clusterquota
+ brief: >
+ An OpenShift
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#clusterresourcequota-quota-openshift-io-v1)
+ object.
+ attributes:
+ - ref: openshift.clusterquota.uid
+ role: identifying
+ - ref: openshift.clusterquota.name
+ role: descriptive
diff --git a/model/openshift/metrics.yaml b/model/openshift/metrics.yaml
new file mode 100644
index 0000000000..9563511a0d
--- /dev/null
+++ b/model/openshift/metrics.yaml
@@ -0,0 +1,418 @@
+groups:
+ # openshift.clusterquota.cpu.* metrics
+ - id: metric.openshift.clusterquota.cpu.limit.hard
+ type: metric
+ metric_name: openshift.clusterquota.cpu.limit.hard
+ annotations:
+ code_generation:
+ metric_value_type: double
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "{cpu}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.cpu.limit.used
+ type: metric
+ metric_name: openshift.clusterquota.cpu.limit.used
+ annotations:
+ code_generation:
+ metric_value_type: double
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "{cpu}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.cpu.request.hard
+ type: metric
+ metric_name: openshift.clusterquota.cpu.request.hard
+ annotations:
+ code_generation:
+ metric_value_type: double
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "{cpu}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.cpu.request.used
+ type: metric
+ metric_name: openshift.clusterquota.cpu.request.used
+ annotations:
+ code_generation:
+ metric_value_type: double
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "{cpu}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+ # openshift.clusterquota.memory.* metrics
+ - id: metric.openshift.clusterquota.memory.limit.hard
+ type: metric
+ metric_name: openshift.clusterquota.memory.limit.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.memory.limit.used
+ type: metric
+ metric_name: openshift.clusterquota.memory.limit.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.memory.request.hard
+ type: metric
+ metric_name: openshift.clusterquota.memory.request.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.memory.request.used
+ type: metric
+ metric_name: openshift.clusterquota.memory.request.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+ # openshift.clusterquota.hugepage_count.* metrics
+ - id: metric.openshift.clusterquota.hugepage_count.request.hard
+ type: metric
+ metric_name: openshift.clusterquota.hugepage_count.request.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "{hugepage}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ attributes:
+ - ref: k8s.hugepage.size
+ requirement_level: required
+ - id: metric.openshift.clusterquota.hugepage_count.request.used
+ type: metric
+ metric_name: openshift.clusterquota.hugepage_count.request.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "{hugepage}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ attributes:
+ - ref: k8s.hugepage.size
+ requirement_level: required
+
+ # openshift.clusterquota.storage.* metrics
+ - id: metric.openshift.clusterquota.storage.request.hard
+ type: metric
+ metric_name: openshift.clusterquota.storage.request.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+ attributes:
+ - ref: k8s.storageclass.name
+ requirement_level:
+ conditionally_required: |
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+ - id: metric.openshift.clusterquota.storage.request.used
+ type: metric
+ metric_name: openshift.clusterquota.storage.request.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+ attributes:
+ - ref: k8s.storageclass.name
+ requirement_level:
+ conditionally_required: |
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+
+ # openshift.clusterquota.persistentvolumeclaim_count.* metrics
+ - id: metric.openshift.clusterquota.persistentvolumeclaim_count.hard
+ type: metric
+ metric_name: openshift.clusterquota.persistentvolumeclaim_count.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "{persistentvolumeclaim}"
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+ attributes:
+ - ref: k8s.storageclass.name
+ requirement_level:
+ conditionally_required: |
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+ - id: metric.openshift.clusterquota.persistentvolumeclaim_count.used
+ type: metric
+ metric_name: openshift.clusterquota.persistentvolumeclaim_count.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "{persistentvolumeclaim}"
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+ attributes:
+ - ref: k8s.storageclass.name
+ requirement_level:
+ conditionally_required: |
+ The `k8s.storageclass.name` should be required when a resource quota is defined for a specific
+ storage class.
+
+ # openshift.clusterquota.ephemeral_storage.* metrics
+ - id: metric.openshift.clusterquota.ephemeral_storage.request.hard
+ type: metric
+ metric_name: openshift.clusterquota.ephemeral_storage.request.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.ephemeral_storage.request.used
+ type: metric
+ metric_name: openshift.clusterquota.ephemeral_storage.request.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.ephemeral_storage.limit.hard
+ type: metric
+ metric_name: openshift.clusterquota.ephemeral_storage.limit.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ - id: metric.openshift.clusterquota.ephemeral_storage.limit.used
+ type: metric
+ metric_name: openshift.clusterquota.ephemeral_storage.limit.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "By"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+
+ # openshift.clusterquota.object_count metric
+ - id: metric.openshift.clusterquota.object_count.hard
+ type: metric
+ metric_name: openshift.clusterquota.object_count.hard
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The enforced hard limit of the resource across all projects.
+ instrument: updowncounter
+ unit: "{object}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Hard` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ attributes:
+ - ref: k8s.resourcequota.resource_name
+ requirement_level: required
+ - id: metric.openshift.clusterquota.object_count.used
+ type: metric
+ metric_name: openshift.clusterquota.object_count.used
+ annotations:
+ code_generation:
+ metric_value_type: int
+ stability: development
+ brief: |
+ The current observed total usage of the resource across all projects.
+ instrument: updowncounter
+ unit: "{object}"
+ entity_associations:
+ - openshift.clusterquota
+ note: |
+ This metric is retrieved from the `Status.Total.Used` field of the
+ [K8s ResourceQuotaStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#resourcequotastatus-v1-core)
+ of the
+ [ClusterResourceQuota](https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/schedule_and_quota_apis/clusterresourcequota-quota-openshift-io-v1#status-total).
+ attributes:
+ - ref: k8s.resourcequota.resource_name
+ requirement_level: required
diff --git a/model/openshift/registry.yaml b/model/openshift/registry.yaml
new file mode 100644
index 0000000000..f5ac3d9680
--- /dev/null
+++ b/model/openshift/registry.yaml
@@ -0,0 +1,19 @@
+groups:
+ - id: registry.openshift
+ type: attribute_group
+ display_name: Openshift Attributes
+ brief: >
+ OpenShift resource attributes.
+ attributes:
+ - id: openshift.clusterquota.uid
+ type: string
+ stability: development
+ brief: >
+ The UID of the cluster quota.
+ examples: [ '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' ]
+ - id: openshift.clusterquota.name
+ type: string
+ stability: development
+ brief: >
+ The name of the cluster quota.
+ examples: [ 'opentelemetry' ]