K8s Ephemeral Storage Metrics
A prometheus ephemeral storage metric exporter for pods, containers, nodes, and volumes.
This project was created to address lack of monitoring in Kubernetes
This project does not monitor CSI backed ephemeral storage ex. Generic ephemeral volumes
Helm Install
helm repo add k8s-ephemeral-storage-metrics https://jmcgrath207.github.io/k8s-ephemeral-storage-metrics/chart
helm repo update
helm upgrade --install my-deployment k8s-ephemeral-storage-metrics/k8s-ephemeral-storage-metrics
Values
Key | Type | Default | Description |
---|---|---|---|
affinity | object | {} |
|
deploy_type | string | "Deployment" |
Set as Deployment for single controller to query all nodes or Daemonset |
dev | object | {"enabled":false,"image":{"imagePullPolicy":"IfNotPresent"}} |
For local development of kind and/or deploy grow and shrink test pods |
image.imagePullPolicy | string | "IfNotPresent" |
|
image.repository | string | "ghcr.io/jmcgrath207/k8s-ephemeral-storage-metrics" |
|
image.tag | string | "1.5.0" |
|
interval | int | 15 |
Polling node rate for exporter |
log_level | string | "info" |
|
max_node_concurrency | int | 10 |
Max number of concurrent query requests to the kubernetes API. |
metrics | object | {"adjusted_polling_rate":false,"ephemeral_storage_container_limit_percentage":true,"ephemeral_storage_container_volume_limit_percentage":true,"ephemeral_storage_node_available":true,"ephemeral_storage_node_capacity":true,"ephemeral_storage_node_percentage":true,"ephemeral_storage_pod_usage":true} |
Set metrics you want to enable |
metrics.adjusted_polling_rate | bool | false |
Create the ephemeral_storage_adjusted_polling_rate metrics to report Adjusted Poll Rate in milliseconds. Typically used for testing. |
metrics.ephemeral_storage_container_limit_percentage | bool | true |
Percentage of ephemeral storage used by a container in a pod |
metrics.ephemeral_storage_container_volume_limit_percentage | bool | true |
Percentage of ephemeral storage used by a container's volume in a pod |
metrics.ephemeral_storage_node_available | bool | true |
Available ephemeral storage for a node |
metrics.ephemeral_storage_node_capacity | bool | true |
Capacity of ephemeral storage for a node |
metrics.ephemeral_storage_node_percentage | bool | true |
Percentage of ephemeral storage used on a node |
metrics.ephemeral_storage_pod_usage | bool | true |
Current ephemeral byte usage of pod |
nodeSelector | object | {} |
|
podAnnotations | object | {} |
|
prometheus.enable | bool | true |
|
prometheus.release | string | "kube-prometheus-stack" |
|
tolerations | list | [] |
Contribute
Start Kind
make new_kind
Run locally
make deploy_local
Run locally with Delve Debug
make deploy_debug
Then connect to localhost:30002
with delve or your IDE.
Run e2e Test
make deploy_e2e
Debug e2e
make deploy_e2e_debug
Then run a debug against deployment_test.go
License
This project is licensed under the MIT License. See the LICENSE
file for more details.