システムメトリクスの種類
メトリクスを収集可能にするやつ | 集めるメトリクス | PrometheusOperatorのCRD | Prometheusのscrape role | メトリクス例 |
---|---|---|---|---|
prometheus/node_exporter (DaemonSet) | hardware and OS metrics (*NIX kernelからExposeされるもの) | PodMonitor |
pod |
node_cpu_seconds_total , node_disk_io_time_seconds_total
|
kubernetes/kube-state-metrics (Deployment) | Kubernetes オブジェクトのステート | ServiceMonitor |
endpoints | kube_storageclass_created |
kubelet (各ノード) |
コンテナメトリクス cadvisor , resource , probes
|
ServiceMonitor |
endpoints | kubelet_volume_stats_available_bytes |
kubernetes-sigs/metrics-server (Deployment) | オートスケーリングパイプライン(HPAとかVPA)用のコンテナメトリクス | Monitoring ツールで集めない | Monitoring ツールで集めない | なし |
ダイアグラム
コメント:
- システムメトリクスのソースは、3つ
kube-api-server
,kubelet
とHostのKernel - Prometheusは、それぞれ
kube-api-server
はkube-state-metrics
経由、kubelet
はPrometheusから直接Scrape、Hostはnode_exporterを経由してメトリクス収集 - PrometheusOperatorを使わなくてももちろんMonitoringできる
- PrometheusOperatorは、
PodMonitor
やServiceMonitor
によって、Prometheusのscrapeのconfigを設定できるようにしてくれる - PrometheusのMetricsをCustomMetricsAPIにしてHPA/VPAをするともっと図が複雑になる(今回は書いてない)
- Prometheusのadditional-scrape-configを使ってもkubeletのメトリクスを取得できるがどちらがいいのかは現状よくわからず
- metrics-serverはkubectl topでcontainerのmemoryとcpu使用率を表示するのにも使用される
参考
- https://github.com/prometheus-operator/prometheus-operator