Prometheus et VictoriaMetrics: infrastructure de stockage de métriques résilientes

Dans cet article, mon collègue Luca Carboni, ingénieur DevOps du bureau d'Amsterdam de Miro, explique à quoi ressemble notre infrastructure de stockage de métriques. Tous ses composants respectent les principes de haute disponibilité (High Availability) et de tolérance aux pannes (Fault Tolerance), ont une spécialisation claire, peuvent stocker des données pendant une longue période et sont optimaux en termes de coûts.





La pile en question: Prometheus, Alertmanager, Pushgateway, Blackbox exporter, Grafana et VictoriaMetrics.





Configuration de la haute disponibilité et de la tolérance aux pannes pour Prometheus

Prometheus federation, Prometheus. , Grafana : , - .





, . , Prometheus , .





, . (prometheus.yml) , . A B .





. IaC ( ) Terraform (CM) Ansible, . , . , .Alertmanager, Pushgateway, Blackbox,





.





Alertmanager , Prometheus Alertmanager, . Alertmanager , : Prometheus A Prometheus B. IaC CM, Alertmanager .





- , . , — Prometheus A Prometheus B .





Pushgateway , . . Pushgateway DNS Failover , ( active/passive). , .





Blackbox Prometheus A Prometheus B.





, Prometheus, Alertmanager, , Pushgateway active/passive Blackbox. .





. VPC (Virtual Private Cloud), , . . , . — . , , .





Prometheus, , . , . . " , ".





VictoriaMetrics

Prometheus . Prometheus , . . 10 . , ? , — . Prometheus , - , .





Cortex, Thanos, M3DB, VictoriaMetrics . Prometheus, — , , — .





, VictoriaMetrics.





VictoriaMetrics : «--» (single-node version) (cluster version). , , . , .





— . (), .





VictoriaMetrics : vmstorage ( ), vminsert ( ) vmselect ( ). , vminsert vmselect .





vminsert . , , . vminsert (stateless), , , .





, vminsert — (storageNode) , (replicationFactor=N, N — vmstorage). vminsert? Prometheus, remote_write.





vmstorage — , VictoriaMetrics. vminsert vmselect, vmstorage (stateful), . vmstorage , (IO latency) (IOPS), , Prometheus.





vmstorage:





  • storageDataPath — , ;





  • retentionPeriod — ;





  • dedup.minScrapeInterval — ( , ).





vmstorage , replicationFactor, vminsert, (N) .





vmstorage , , , vmstorage .





vmselect . , , . , Prometheus, , . , , Grafana. vminsert, vmselect .





Grafana

Grafana , Prometheus, , VictoriaMetrics. , VictoriaMetrics (MetricsQL) PromQL, Prometheus. Grafana.





Grafana SQLite . SQLite , , . . , PostgreSQL Amazon RDS, Multi-AZ , .





Grafana PostgreSQL. , Grafana . PostgreSQL Grafana, , vendor lock. , .





, Grafana. .





Grafana VictoriaMetrics — , vmselect, — Prometheus . .





***





, , . , vmstorage , Amazon S3.





, . , .





:





  • Prometheus — https://prometheus.io/





  • Alertmanager — https://github.com/prometheus/alertmanager





  • Pushgateway — https://github.com/prometheus/pushgateway





  • Blackbox exporter — https://github.com/prometheus/blackbox_exporter





  • — https://prometheus.io/docs/instrumenting/exporters/





  • Grafana — https://grafana.com/





  • VictoriaMetrics — https://victoriametrics.com/









Miro.












All Articles