αα·α αΆαααΆα’αααΈαααα·αααααΆααααα½ααα·αα·ααα Kubernetes ααααΆααα§ααααα Prometheus αα·ααα·ααΆαα’αααΈααΆαααΌαααααΉαα
αααααΆαααβααβααΆαβαααα½αβαα·αα·αααβααΊβααΆαβααααα·αβααααΆαα ααΆβαα·αβα’αΆα βααααΌαβααΆαβααβαααααβαααα»αβα’αααααβαα½αβααΆαβααα αααααααααα’ααααααααααΊααΎααααΈαααααααΌααα·αααααΆαααΌαα ααα§ααααα αααα·α αα·ααα·ααΈααΆαααααα
αααααΆααααα’αααααααΊααΆααΆαα
ααααΆα
αα
ααααΈ
α’αααΈαααααααΌαααΆααααα½ααα·αα·ααααα αααα»αα ααααα Kubernetes
αααΆαααΈαααααΆαααΆαα ααααα·αααΎαααα»α Kubernetes ααααΌαααΆαααΆαααααααΆααα ααΎαααΆαααΈαααααααααΆ α’αααααααΌαααΆαααΆααα»αααΆααααααα½αααα Zabbix αααααααΆααα·α αα ααΆαααα; ααααα·αααΎα’αααααααΎααΆαααΆαα½αααΆαααααα’ααααα·αα αΆαααΆα αααα·αααααααΆααΉααα·αααΆαααααααααα ααΆααΊααΆ Zabbix ααααααα½ααα·αα·αααααααΆαααΆααααααΆαααΈαααααααααΎαα
α αΌααααααα ααΆααααα½ααα·αα·ααααα ααααα·αα αααααα
ααΆαα»ααααααααααα αααααααααααα API, αααααα·ααΈαααααααα αα·ααααααααααα αααΆαα αα ααΆαα α’αααααααΌαααααΆααααΆ API αααααΆαααΈααα α¬ etcd ααααΆα 0 α Etcd α’αΆα αααα‘ααααααααααΆα αααΎαα αααααΆααααααΆαααα»αααααα·α ααααα»αααΆααααααα»α etcd ααααααΆ αα·αααααααααα
Dockers ααΆααααα αΆααααα½αααΆααΌαααΆαααΆααααα αΎα α αΎααααααααααΆααΉααααΆαα αααΆααα’αααΈαααα αΆααααααΆα αα»αααΆα αααΎααααααΎαααΆαααααα αα·ααααα αΆαααααααααα ααΌα αααα Docker αααα½αα―αααΆαααααααααα½ααααα½αααααααΌαααΆααααααααααααααα αααΆαα αα ααΆαααααααΆααααΆαα’αΆα ααααΆαα
DNS α ααααα·αααΎ DNS ααααΆαααααα»αα ααααα αααααααΆαααα Discovery ααΆααααΌαααΉαααααΆααα α»ααααααΆααααΈααΆ ααΆαα α ααΌαααααααΈαααα ααααΉααααααααΎαααΆαα αα αααα»αααΆαα’αα»αααααααααααα»α αα·αααΆααααα αΆαααααααα ααα»ααααααααα·αααΆααααααΆααααΆαααΆα DNS αα·αα αΆαααΆα αααααΌαααΆααααα½ααα·αα·ααααααααα ααααΎαα»αααΆαααΊααααΆα αα·ααααααααα½αα ααα½αααααααααα’αΆα ααααΌαααΆαααΆαααΆααα ααΎ CoreDNS α
α αΌαα ααΆα αΆαααΆα αααΎααααΈαααααααααααΆαα’αΆα ααααΆααα ingresses (αα½αααΆαα Ingress Controller) αααααΆα ααα»α α αΌααα αααα»αααααααα
αααΆαααΆαα»ααααΆαααααα αααααααααΌαααΆααα»αααΎ - α₯α‘αΌααααααΌαα α»ααα ααααα·αααααΆαα’ααΌααΈα
ααΆααΉαα αΆααααΈααΌα ααΆαααααα·ααΈααααΎαααΆααααα»α pods αααααΆααααααΆαα½αααααααΌαααΆαααααααααα ααα»ααααααΆααα·αααΆαα·ααααααα Pods ααΆαααΆαα ααααΌαα αααααα ααααααααα½αααααααΎαααΆααα ααΎαααΆαααΈααααα½α ααααααα’αααα ααΎαα½αααααααααα ααααβαααβααΆαβα‘α βααΆαα ααα’ααβα’αβ ααΌα ααααβα αΎαβααααΆαβα’αααβααΆβαααα½αβαα·αα·αααβααααΆααβαααβααα αα αααα»αααααΆαααααααα microservice ααΆααΆαααΆααααααΆααααΆααααα»αααΆααααααααααααΆαα’αΆα ααααΆααααααααα·ααΈααΆααααΌαα ααΆαα·ααα αα·αα·αααααΎαααΆαα’αΆα ααααΆαααα ααα»α αααα ααααααααΆααααα ααΎααΆαα’αααΈααααΎαααΆααα? ααααα·αααΎαααααα·ααΈα’αΆα ααααΎααΆα αααααΆαα’αααΈααΎαα‘αΎααα ααΈαααααααΆ ααΎααΆαα ααααααΆαα ααα½αααα»ααααΆαα₯α‘αΌαααα - ααΆαααααααΊααΆαααα½αααααααΆααααΈααΈαα αα·αα αΆαααΆα ααααα½ααα·αα·αααααααΈαα»ααααααα
αα ααααα·αα α»αααααα α’αααααααΌααααααααααααααα·ααααα·ααΆααααααααααα·ααΈαααα½αα―α αααααααΆαααα»ααα·α αα α α ααα½αααααΆααααααΆαα·α α’αΆαααααα·αα·ααΆααααα’αααααααΎααααΆαα αα·αα’αααΈαααααααααα
Prometheus
ααααααααααα’αααα»ααααααΆααααΆααααα½ααα·αα·αααα
αααααααΊ
ααΆααααααΎαααΈαααΈαααααΆααααΆαα αΆααααααΎαααΆαα½α Prometheus: αααααααΎ Helm α’αααα’αΆα ααα‘αΎα Prometheus α¬ Prometheus Operator ααααααΆα
- Prometheus ααααααΆα α’αααΈααααααααΆαααΊααα’ααΆαα½αααΆαα ααα»ααααα’αααααααΌαααααααα ααΆαααααααα ConfigMap - ααΆααα·α αααααα―αααΆαααααααα ααΆαααααααααααααΆαααΌαααααΆαααΎα’ααααα ααΌα αααααΎαααααΆααααΆαααααΎααΈαα»ααα αα»ααααααααΆαααααααα microservice α
- Prometheus Operator ααΆαααΆαααΈαααΆαααΆαααααα·α ααΆααααα»αααααΆαααααα·α ααΆααααααΉααααααα·ααααΆααΆααααα»α ααα»ααααααΆααΆααααααΆααααα½ααααα»αααΆαααααΎααΆαααΆαα½αααΆα ααΆαααααα»ααΆα ααααα‘αα ααΆαα’ααΌααΈααααΌαααΆααααααααα αααα»αα ααααα ααΌα αααααα½αααααΆααααααΆααααα½ααααα»αααΆαααααααααα αα·αααααααα ααΆααααααααα
ααΎααααΈαααααΈααα·ααααααα»αααΌαααααΆαα±ααααα‘αΎα Prometheus ααααααΆααΆαα»ααα·αα α’αααααΉαααααΌαααααααα ααΆααααααααα’αααΈααααααααΆαααΆαααα config ααα»ααααααΆααΉαααΆααααααααα: α’αααααΉαααααααααααΈα’αααΈαααααΆαααααα·αααα·ααααα’αααΈ αα·ααααααααααΆααααΌαααΆαααααααα ααΆααααααααα αα αααα»α Prometheus Operator α’αααα‘αΎαααααΆαααα abstraction αααααααΆα αααααΈααΆα’αααααα’αΆα ααααααααααΈααααα ααααα·αααΎα’αααα ααααΆαα
Prometheus ααααΌαααΆααα½ααααα αΌααααΆαααα’ααΆαα½α Kubernetesα ααΆα’αΆα α αΌαααααΎ αα·αααααΎα’ααααααααααΆαα½α API Serverα
Prometheus ααΆααααααΆαααα·αααΆα ααααααααΆααΌαα ααα»ααααααααα·ααΈ αα·αααΆααΆααααααααααα·ααΈαα½αα ααα½αααααΆααααααΆα ααααΌαααΆαααΆαααΆαααα αααααΆα Prometheus ααΆαααααααααααααααααΆααααααααΆ α αΎαααΎααααΈαααααααΆ α’αααααααΌαααΆααααααΆααααα½ααα ααΆααααα»ααααααα·ααΈ α¬α’αααααΆαα αααααααααααα½α ααΆααααα α α αΎαβααΆαβα’αααβααΆαβα ααβαααβαααβαα½αβα ααα½αα α§ααΆα ααα ααΆα PostgreSQL Exporterα ααΆαααα·ααααααααΈ PostgreSQL α αΎααααααααααΆαα ααΆαααααα Prometheus ααΌα αααα Prometheus α’αΆα ααααΎααΆαααΆαα½αααΆααΆαα
ααααΆαααααααα Prometheus
αααΆαααΈααα Prometheus ααΊααΆαααααααΆαααααα αα½αααααΆααααα Prometheus α ααααααααααΌαααΆααααααΆαα»α αα·αααααΎαααΆααα ααΈαααα
ααααααααααΌαααΆααααααΆαα»ααα αααα»αααΌαααααΆααα·αααααααααααΈαααααααΆ (TSDB) α TSDB αα·ααααααΆααΌαααααΆααα·ααααααααΆα ααααα‘αααα ααα»ααααααΆαααα αααα αααα»αααΆααΆ Go αααααααΌαααΆααααααααα αααα»α Prometheus α αα·ααΆαααΆαα½α α’αααΈααααααααΆαααΊαα αααα»ααααααααααααααΈαα
αα»ααααααΆαα»ααα·αααααααα αααα»α TSDB ααααααααΌα
α αααααΆαα ααΆαααααααα Prometheus αα·ααααααα·αααααααΆααααΆααααααΆαα»αααααααααααααααααααααα αααααααααααΆαα»αααααΆαααΎαααΊ 15 ααααα α’αααα’αΆα ααΎαααΈααααααααααα ααα»ααααααααΌαα αα αΆαααΆα αα·ααααααααΆααααα αααΎααααα’ααααααααΆαα»ααααα»α TSDB αα·αααΌαααΆαααα ααΆααΉαααααΎααααΆααααααΆαααΆααααα αααΎαα ααΆααααααΆαα»ααα·αααααααααααααα·ααΆααααααα αααα»α Prometheus ααααΌαααΆαα αΆαααα»αααΆααΆααΆαα’αα»αααααα·αααα’α
ααααα·αααΎα’αααααΆαα ααΆα ααααααα α ααα½αααααααααΊααΆααααααΆααααΆαααααα»ααα½ααα·ααΆααΈ αααααΆααΆααΆααααααΎααααα»αααΆααααααααα ααααα»ααααααα½ααααααααα αααΆα α¬ααΆαααΆααααααα ααΆααααααΆ "αα·αααααααααα " ααααΌαααΆααααααΆαα»ααα αααα»α TSDB αααααΆαααααααααα»αααααααααααα»ααααΆαααααααα»αααααα αααααΆααααΆααααα»αααΌαααΆαααα ααΆααααα»αααΆααααα ααααΌαααΆαααααΎαα αααα»αααΌαααααΆααα·ααααααααΆαααααααααα·αααΆααΆααααααααΆααααΆαααα α§ααΆα ααα InfluxDB, ClickHouse αα·αααΌα αααααα ααΎα αααα»αααΆαααΎαααΆαααΆααααααααα’αααααααααα’αααΈ ClickHouse α
αααΆαααΈααα Prometheus ααααΎαααΆαααΎααααΌ ααΆαα ααΆααβαα βααβααααααβαα βα ααα»α βα α»αβααΆααβαααβαααβααΎαβααΆαβα²ααβααΆααα αα½αααααΆααα·ααΆαααΆ "α αΌααα ααΆαα API Server" α αΎαααΆαααα ααΈαααααΆαααα·ααΆααΈααΈ XNUMX α αΎαααααααααα
αααααΆααααααα»αααααΆαα’αΆαα»ααΆαααααΈ (ααΆαααΆα α¬ααΆαααΆα cron) αααα’αΆα ααα α‘αΎααα α αααααααααααααα’ααα αΆα ααΆααααΆαααΆαα» Pushgateway α ααααααααΈααααα»ααααααααααΈααααΌαααΆααα»αα αΌααα αααα»αααΆα ααΆαααΆαααΆαααΎαα‘αΎα α’αα»αααααααααααΆα αααααΌααααααααα Pushgateway αα·αααΆααααα ααα αα½αααααα»αααααααα Prometheus ααΉαα α»αααααΆαααααΏαααααααΆ α αΎαααααααααααΆαααααααΈ Pushgateway α
ααΎααααΈααααααα ααΆααααααααααΆαααΌαααααΉααα αααα»α Prometheus ααΆααααΆαααΆαααΆα ααααα‘αααα½α - α’ααααααααααααααΆαααΌαααααΉα. αα·αα αααΆααααΌαααααΉαα α§ααΆα ααα α’αααααααΌααααααΎαααΆαααΆααααΏα ααααα·αααΎ server API ααΊ 0α αα ααααααααααΉαααα·ααΆααααααα»α ααΆαααΌαααααΉαααααΌαααΆααααααΌααα α’ααααααααααααααΆαααΌαααααΉααααααΆααααΆααααααΌαααααα αααααα·ααΈαααααααααααΆαααΌαααααΉαααΆαααΆααααααααααΌααααα’αΆα ααααααααΆαα ααΆαααΌαααααΉααα½ααααα»αα’αΆα ααααΌαααΆαααααΎαα ααΆααααΆαααααααΆαααα‘αααααΆαααααα’αααααααααααα αα½αααααα ααΆαααααααααα’αααα’αα·αααααα αα·ααα½αααΆαααΈαα ααΆααααααααααα»ααααα·ααααααα αααααΆαα ααΆααααααααα ααΆαααΌαααααΉαα’αΆα ααααΌαααΆαααααΎαα ααΆαα Slack, Telegram, α’ααΈααα αα·ααααααΆαααααααααα
α αΎαα α»αααααααααα»αααΉαααααΆααα’αααα’αααΈαα»αααΆαααΆααα Prometheus - ααΆαααααΎα. αα αααααααΎααΆαααΆαα½α Prometheus α’ααααα·αα αΆαααΆα ααααααΆααα’αΆααααααΆαααΆααααΆααααααααα»αααααΆααααΆααααα½ααα·αα·ααααααααααΆαααααααααΆααααΎααααΈαααααααααααααααααΆα αααααΊα’ααααα·αα αΆαααΆα ααααααααΆ "αααααΊααΆα’αΆααααααΆα IP αααααΊααΆα ααα - αααΌααΈααα" αααα»ααα αα·αα’αααααααΌααααααααααααααΆαααα’αααΈααααααΎααααΈαααααααααααα»ααΆααααα (ααααα - ααααα ) α Prometheus αααα½αααΆ α’αΆαααααααΎααααα»ααΆααααααααααΆααααα αα α»αααααα ααΆαααααα»α αΆαααΆα α α αΎαααααααααΆαα ααΆααααα½ααα·αα·αααα
αα·ααΈααΆααααααααααααα’ααΆαα½ααα ααΆαααααααα Kubernetes αααα’αααΈαααα’ααααααααα αααααααααΆα 10 servers ααααααα’αα 3. ααΎααααΈαα·ααααααΆααα’αΆααααααΆα IP αααα server ααΆααααα αα½αααααΆααααααααααα’αααΈαααααααααααααΆ α αΎαααΆαααααΎαααΉαααααΎααΆ .
ααΆααΆ Prometheus ααααΌαααΆαααα α ααΆ PromQL. αααααααΎααΆααΆααα α’αααα’αΆα ααα½αααΆααααααααααααααααΆααααΆαα α αΎααααααΆαααααααααααα½αααΆ αααααΎαααΆαααααΆαα·ααΆααααααα’ααααΎαα½αααα
https://prometheus.io/docs/prometheus/latest/querying/basics/
ΠΡΠΎΡΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ
container_memory_usage_bytes
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
container_memory_usage_bytes / 1024 / 1024
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
sum(container_memory_usage_bytes) / 1024 / 1024
Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)
α ααα»α αααααΆαααααααΆα Prometheus
Prometheus ααΆαα ααα»α αααααΆααααα αααααααααΆαααααα½α αα·α αα½α αααα»α αααααααααααΆααααααΆαααααΆααααα α»α α¬ααΆααααα αΆαααα»αααααα
αα αααα»ααααααΆαααααααα α’αααα’αΆα ααααααααα½αααΆααΆααΆ PromQL α
ααααΆααααΆαααΌαααααΉαααΆαα αααΆααααΌαααααΉα α αΎααα½αααααΆαααααΆαααΆαααΈα
- α’ααααα - ααααα·αααΎααΆαααΆααααΏααα·αααααααα αααααα αααααΆααααααΆ α’αααΈαααΊααα’ααΆαα½αααΆ α αΎαααΆαα·αααααΎαααΆαααα
- αααα αΆα - αααααΊααααα·αααΎααΆαααΆααααΏαααααΎαααΆα ααα»ααααααΆαααααΎαα·αααΆααααααααΆαααα α‘αΎαα ααΆααααααΆααααααααΌαααΆααααααααΎααααΈααΌααΆαααααααααΆααααΆαααααΉααααααααααααααΆαα ααααα·αααΎααααΆαααααααααΆααααααΆααααΆαααΎαα‘αΎααααα»ααααααααα½αααΆααΈ αααααα‘αααααα·ααα·ααα½αααααΌαααΆααααααΊα‘αΎααα α‘αΎαααα
- ααΆαααΆααααΊααΆααααΆαααΆαααΈααΈ αα ααααααααΆαααΌαααααΉαααααΊα‘αΎα αα·αααααΎααΆαα
αα αααα»ααααΊαα»αααααΆαααΆαα’αααααΉαααααΎαααΆαα αΌαααααΎααααααΆαα’αααΈα’αααΈααα Prometheus α ααΆααααΆαααΆαααααΆααααααΌααα ααΆααααααα (ααααα ) αααααΎαααΆααα·ααΆαααΆαααΎα
αααααΆαααα·αααααΆαααΌαα
αααα’α·αααα
ααα»α
αααααΆαα Prometheus ααΌαααΎα
ααΆααα½ααααα αΌαααΆαα½α Grafana
αα αααα»αα ααα»α αααααΆαααααααΆα Prometheus α’αααααΉααα·αα’αΆα ααααΎαααααΆα αααααααααααα’αΆα αα·αα’αΆα αααααΆα αααα’αααα’αΆα ααααΎααΆαααααα·ααααΆαα’αααΈααααΆαααΆαααα αααααα ααΎααααΈααΆαααααα½αααΆ Prometheus ααααΌαααΆααα½ααααα αΌαααΆαα½α Grafana α ααΎαααα½αααΆαααααΆαααααααααααααααααα
ααΆαααα‘αΎαααΆααα½ααααα
αΌα Prometheus αα·α Grafana αα·ααα·ααΆαααΆααααααα α’αααα’αΆα
αααααααααΆαααααΆααα
αααα»αα―αααΆαα
αα αααα»αα’αααααααΆαααααα ααΎαααΉααααααααααΆαααααααΆααααα½ααα·αα·αααα ααΎαααΉααα·ααΆαα’αααΈααΆααααααΌα αα·ααα·ααΆααααααα ααα»αααααααΎ Grafana Loki αα·αα§ααααααααα½αα
α’ααααα·ααααα Marcel Ibraev, α’αααααααααααα Kubernetes αααααΆαααΆααααααΆαα, α’αα»αααααα·ααααααα
αααα»ααααα»αα αα»α
ααααα: www.habr.com