80 lines
3.8 KiB
Markdown
80 lines
3.8 KiB
Markdown
# Documentation
|
||
|
||
This documentation is intended to be a complete reflection of the current state of the exposed metrics of kube-state-metrics.
|
||
|
||
Any contribution to improving this documentation or adding sample usages will be appreciated.
|
||
|
||
## Table of Contents
|
||
|
||
- [Metrics Stages](#metrics-stages)
|
||
- [Exposed Metrics](#exposed-metrics)
|
||
- [Join Metrics](#join-metrics)
|
||
- [CLI arguments](#cli-arguments)
|
||
|
||
## Metrics Stages
|
||
|
||
Stages about metrics are grouped into three categories:
|
||
|
||
| Stage | Description |
|
||
| ------------ | -------------------------------------------------------------------------------------------------------------------------- |
|
||
| EXPERIMENTAL | Metrics which normally correspond to the Kubernetes API object alpha status or spec fields and can be changed at any time. |
|
||
| STABLE | Metrics which should have very few backwards-incompatible changes outside of major version updates. |
|
||
| DEPRECATED | Metrics which will be removed once the deprecation timeline is met. |
|
||
|
||
## Exposed Metrics
|
||
|
||
Per group of metrics there is one file for each metrics. See each file for specific documentation about the exposed metrics:
|
||
|
||
- [CertificateSigningRequest Metrics](certificatesigningrequest-metrics.md)
|
||
- [ConfigMap Metrics](configmap-metrics.md)
|
||
- [CronJob Metrics](cronjob-metrics.md)
|
||
- [DaemonSet Metrics](daemonset-metrics.md)
|
||
- [Deployment Metrics](deployment-metrics.md)
|
||
- [Endpoint Metrics](endpoint-metrics.md)
|
||
- [Horizontal Pod Autoscaler Metrics](horizontalpodautoscaler-metrics.md)
|
||
- [Ingress Metrics](ingress-metrics.md)
|
||
- [Job Metrics](job-metrics.md)
|
||
- [Lease Metrics](lease-metrics.md)
|
||
- [LimitRange Metrics](limitrange-metrics.md)
|
||
- [MutatingWebhookConfiguration Metrics](mutatingwebhookconfiguration-metrics.md)
|
||
- [Namespace Metrics](namespace-metrics.md)
|
||
- [NetworkPolicy Metrics](networkpolicy-metrics.md)
|
||
- [Node Metrics](node-metrics.md)
|
||
- [PersistentVolume Metrics](persistentvolume-metrics.md)
|
||
- [PersistentVolumeClaim Metrics](persistentvolumeclaim-metrics.md)
|
||
- [Pod Disruption Budget Metrics](poddisruptionbudget-metrics.md)
|
||
- [Pod Metrics](pod-metrics.md)
|
||
- [ReplicaSet Metrics](replicaset-metrics.md)
|
||
- [ReplicationController Metrics](replicationcontroller-metrics.md)
|
||
- [ResourceQuota Metrics](resourcequota-metrics.md)
|
||
- [Secret Metrics](secret-metrics.md)
|
||
- [Service Metrics](service-metrics.md)
|
||
- [StatefulSet Metrics](statefulset-metrics.md)
|
||
- [StorageClass Metrics](storageclass-metrics.md)
|
||
- [ValidatingWebhookConfiguration Metrics](validatingwebhookconfiguration-metrics.md)
|
||
- [VerticalPodAutoscaler Metrics](verticalpodautoscaler-metrics.md)
|
||
- [VolumeAttachment Metrics](volumeattachment-metrics.md)
|
||
|
||
## Join Metrics
|
||
|
||
When an additional, not provided by default label is needed, a [Prometheus matching operator](https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)
|
||
can be used to extend single metrics output.
|
||
|
||
This example adds `label_release` to the set of default labels of the `kube_pod_status_ready` metric
|
||
and allows you select or group the metrics by Helm release label:
|
||
|
||
```
|
||
kube_pod_status_ready * on (namespace, pod) group_left(label_release) kube_pod_labels
|
||
```
|
||
|
||
Another useful example would be to query the memory usage of pods by its `phase`, such as `Running`:
|
||
|
||
```
|
||
sum(kube_pod_container_resource_requests{resource="memory"}) by (namespace, pod, node)
|
||
* on (namespace, pod) group_left() (sum(kube_pod_status_phase{phase="Running"}) by (pod, namespace) == 1)
|
||
```
|
||
|
||
## CLI Arguments
|
||
|
||
Additionally, options for `kube-state-metrics` can be passed when executing as a CLI, or in a kubernetes / openshift environment. More information can be found here: [CLI Arguments](cli-arguments.md)
|