13. curl http://localhost:8080/metrics
# HELP rest_client_request_status_codes Number of http requests, partitioned by metadata
# TYPE rest_client_request_status_codes counter
rest_client_request_status_codes{code="200",host="10.240.0.10:6443",method="DELETE"} 3
rest_client_request_status_codes{code="200",host="10.240.0.10:6443",method="GET"} 2758
rest_client_request_status_codes{code="200",host="10.240.0.10:6443",method="PATCH"} 3
rest_client_request_status_codes{code="200",host="10.240.0.10:6443",method="PUT"} 1305
rest_client_request_status_codes{code="201",host="10.240.0.10:6443",method="POST"} 58
L’URL de métriques
14. Implémenté dans les Kubelets
Durée de rétention : 2 minutes
Expose des métriques d’un nœud
● Génériques (système)
● Spécifiques aux conteneurs
15. Heapster
Implémenté sous forme d’un pod K8s
Durée de rétention : 2 minutes
Agrège les métriques des cAdvisors de tous les nœuds
Permet de remonter les métriques dans le dashboard Kubernetes
Est utilisé pour l’autoscalling des pods via la configuration des
HorizontalPodAutoscalers
Peut être utilisé pour renvoyer des métriques vers un back-end à long terme
(InfluxDB, Elastisearch, Hawkular…)
Peut aussi collecter des métriques custom (implémentation bof bof)
16. Mais aussi...
Des services de base exposent également un /metrics qui va bien :
◉ les API Servers K8s
◉ Etcd
D’autres agents existent pour fournir des métriques complémentaires :
◉ node-exporter
> Métriques systèmes génériques (indépendant de K8s)
> https://github.com/prometheus/node_exporter
◉ wmi-exporter (non testé)
> Idem, mais spécifique Windows via WMI
> https://github.com/martinlindhe/wmi_exporter
◉ kube-state-metrics
> Ajoute des métriques spécifiques aux déploiements & à la vie du cluster K8s
> https://github.com/kubernetes/kube-state-metrics
18. 1. J’utilise le SDK prometheus-client pour mon langage de programmation
préféré
2. J’expose une URL avec mes métriques (au hasard /metrics)
3. J’annote mes pods (ou rs, ou deploy) pour que Prometheus les collecte
(a.k.a: scraping)
4. Je vérifie que mes compteurs remontent dans Prometheus
5. Je fait un dashboard de ouf / j’admire le résultat dans Grafana
Et si je veux mes métriques à moi ?
20. Conclusion
◉ Prometheus, c’est bon mangez-en
> Intégration K8s + Grafana
> Requêtage PromQL
◉ Ajouter ses propres métriques, c’est facile, go for it
◉ Double chaîne Heapster vs. Prometheus un peu dommage
◉ Pas de sharding dans Prometheus => Cortex ?
◉ Peu de profondeur d’historique
◉ Redémarrage de prometheus ou kill -HUP pour changer les alertes
> fichier de conf, pas d’API pour les modifier
◉ REX sous forte charge ?
◉ Dans le cluster ou hors du cluster K8s ?
◉ Alerte dans Prometheus ou dans Grafana ?
21. OCTO TECHNOLOGY > THERE IS A BETTER WAY 21
VOUS CROYEZ QUE LES TECHNOLOGIES CHANGENT LE MONDE ?
NOUS AUSSI ! REJOIGNEZ-NOUS !
recrutement@octo.com
Nous recrutons aussi dans nos filiales
PARIS I RABAT I LAUSANNE I SÃO PAULO I SYDNEY