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) ![changed](https://img.shields.io/badge/changed-orange?style=flat) | 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` | ![Development](https://img.shields.io/badge/-development-blue) | +| `openshift.clusterquota.uid` | string | The UID of the cluster quota. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | ![Development](https://img.shields.io/badge/-development-blue) | 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) | ![Development](https://img.shields.io/badge/-development-blue) | | | [k8s.resourcequota](k8s.md#k8s-resourcequota) | ![Development](https://img.shields.io/badge/-development-blue) | | | [k8s.statefulset](k8s.md#k8s-statefulset) | ![Development](https://img.shields.io/badge/-development-blue) | +| Openshift | | | +| | [openshift.clusterquota](openshift.md#openshift-clusterquota) | ![Development](https://img.shields.io/badge/-development-blue) | | OS | | | | | [os](os.md#os) | ![Development](https://img.shields.io/badge/-development-blue) | | 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:** ![Development](https://img.shields.io/badge/-development-blue) + +**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` | ![Development](https://img.shields.io/badge/-development-blue) | + +**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` | ![Development](https://img.shields.io/badge/-development-blue) | + + + 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:** ![Development](https://img.shields.io/badge/-development-blue) + +**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` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`openshift.clusterquota.uid`](/docs/registry/attributes/openshift.md) | string | The UID of the cluster quota. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | + + + + + + +[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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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` | ![Development](https://img.shields.io/badge/-development-blue) | + + + + + + +### 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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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` | ![Development](https://img.shields.io/badge/-development-blue) | + + + + + + +### 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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | + +**[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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | + +**[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] | ![Development](https://img.shields.io/badge/-development-blue) | | + +**[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] | ![Development](https://img.shields.io/badge/-development-blue) | + +**[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] | ![Development](https://img.shields.io/badge/-development-blue) | | + +**[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] | ![Development](https://img.shields.io/badge/-development-blue) | + +**[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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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` | ![Development](https://img.shields.io/badge/-development-blue) | + +**[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] | ![Development](https://img.shields.io/badge/-development-blue) | [`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` | ![Development](https://img.shields.io/badge/-development-blue) | + +**[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' ]