é¡ã®æ¿ããå¯ä¸ã®ã¢ã¤ãã³ãã£ãã£ã®ã¤ã³ãã©ã¨ã³ã¸ãã¢ãm_yamaã§ãã15ã«æã¶ã2度ç®ã®ç»å ´ã§ãã
å»å¹´ãã©ã¯ã¹ã§å è¡æè¡æ¤è¨¼ãè¡ã£ã¦ãããæè¡æ¨é²ããã¸ã§ã¯ããã§åãçµãã ãã¹ã±ã¼ã©ãã«ãªç£è¦ã·ã¹ãã ãã«ã¤ãã¦ã1å¹´ãã£ã·ãå¯ãããçæãªãªã¼ã¹ã¨ãªãã¾ãããç®æ±ã失礼ãããã¾ãã
- VictoriaMetricsã¨ã¯ï¼
- VictoriaMetricsã®ã¡ãªããã»ãã¡ãªãã
- VictoriaMetricsã®å°å ¥æ¹æ³
- VictoriaMetricsã®æ´»ç¨äºä¾
- VictoriaMetricsã§ãã°ã¯è¦ããªãã®ï¼
- ã¾ã¨ã
VictoriaMetricsã¨ã¯ï¼
VictoriaMetricsã¯ããªã¼ãã³ã½ã¼ã¹ã®æç³»åãã¼ã¿ãã¼ã¹ã¨ç£è¦ã½ãªã¥ã¼ã·ã§ã³ã§ãã Prometheusã¨äºææ§ããããè¨å®ãã¡ã¤ã«ããã®ã¾ã¾ä½¿ããããããã®ã§ãããã¡ãã¦ãµã¼ã¯éåæãªãå©ç¨ã§ããã¯ãã
ã¡ãã£ã¨å¼·ã表ç¾ã«ãªã£ã¦ãã¾ãã¾ãããå人çã«ã¯Prometheusä¸ä½äºæã®OSSç£è¦ãã¼ã«ãã¨æãã¦ãã¾ãã
ãããªVictoriaMetricsã«ã¯ã2ã¤ã®ãã¼ã¸ã§ã³ãããã¾ãã
- single nodeãã¼ã¸ã§ã³
- clusterãã¼ã¸ã§ã³
ãã£ãã主è¦ãªæ©è½ãã¾ã¨ãã¦ã¿ã¾ããã以ä¸ã®ã°ã¬ã¼ããã¯ã®ã³ã³ãã¼ãã³ããã¾ã¨ããã®ãsingle nodeãã¼ã¸ã§ã³ãåå²ããã®ãclusterãã¼ã¸ã§ã³ã«ãªãã¾ãã (ä»ã«ãalertãproxyãªã©ã®ä¾¿å©ãããªã³ã³ãã¼ãã³ããããã¤ãããã¾ã)
clusterãã¼ã¸ã§ã³ã¯ãã¤ã¯ããµã¼ãã¹ã§ãã¦ãã®ã§ãã¡ãã®æ¹ãè¯ãããã§ãããå ¬å¼ã¨ãã¦ã¯100ä¸ãã¼ã¿ãã¤ã³ã/ç§ä»¥ä¸ãªãsingle nodeãã¼ã¸ã§ã³ãå§ãã¦ãã¾ãã
It is recommended to use the single-node version instead of the cluster version for ingestion rates lower than a million data points per second.
https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html
ä¸è¬çãªnode_exporterã®å ´åã1ãµã¼ãã§700ã¡ããªã¯ã¹ã¨ã¡ãã£ã¨ãã£ãã®ã§(â»)ãããã©ã«ãã®åéééã®1åããã¨ã«ãã£ããåç´è¨ç®ããã¨ãç£è¦å¯¾è±¡ã7ä¸å°ããããªãsingle nodeãã¼ã¸ã§ã³ã§è¯ãããã§ãã
â» AmazonLinux2023ã®å ´å
1,000,000(ã¡ããªã¯ã¹/ç§) / 800(ã¡ããªã¯ã¹/ãµã¼ã) = 1,250(ãµã¼ã/ç§)
1,250(ãµã¼ã/ç§) * 60(ç§) = 75,000(ãµã¼ã/å)
ãã¡ãããããªãã©ã³ã¹ããã¿ã¤ãã³ã°ããããã¦ãã¼ã¿åéã§ããããã¯ãªãã®ã§è¦æ¤è¨¼ã§ãããåé·åããã°ããªãã®å°æ°ãç£è¦ã§ãããã§ã¯ããã¾ãã
VictoriaMetricsã®ã¡ãªããã»ãã¡ãªãã
VictoriaMetricsã®ã¡ãªãã
- Prometheusã¨äºææ§ããã
- Grafanaããè¦ãåã«ã¯éãã¯ãªã
- ãã¼ã¿å§ç¸®å¹çãé«ããé·æä¿åã«åãã¦ãã
- TimescaleDBã¨æ¯ã¹ã¦æå¤§70å
- Prometheusã¨æ¯ã¹ã¦æå¤§7å
- Prometheusã§1TBã®ãã¼ã¿ã120GBã¾ã§æ¸ã£ãã¨ã®è¨äºããã
- (clusterãã¼ã¸ã§ã³ã®å ´å) ã³ã³ãã¼ãã³ãããããã¦ããã¹ã±ã¼ã©ããªãã£ã«åªãã
- ã¹ã±ã¼ã«ã¢ã¦ãã»ã¤ã³ãå¯è½
- vmselect: èªã¿è¾¼ã¿ãè¤æ°äººãããããã®ã°ã©ããä¸åº¦ã«åå¾ãããã¨ããã¨ãã«ã¹ã±ã¼ã«ã¢ã¦ãããã°ã¹ã ã¼ãºã«èªã¿è¾¼ã¾ããï¼ã¯ãï¼
- vminsert: æ¸ãè¾¼ã¿ãç£è¦å¯¾è±¡ãå¢ãã¦ç£è¦ãã¼ã¿ãå¢ãã¦ãæåã§è¿½å ããå¿ è¦ãªã
- ã¹ã±ã¼ã«ã¢ã¦ãã®ã¿å¯è½
- vmstorage: ãã¼ã¿ä¿åãéãã¯ã¨ãªãããããæ¥ã¦ãã¹ã±ã¼ã«ã¢ã¦ãããã°ã¹ã ã¼ãºãªå¦çãã§ãããã¯ãã
- â»ã¹ã±ã¼ã«ã¤ã³ã¯ãã¼ã¿ãã¹ããä¼´ãã®ã§ãè¨ç»çãªæ¡å¼µãå¿ è¦
- ã¹ã±ã¼ã«ã¢ã¦ãã»ã¤ã³ãå¯è½
- (clusterãã¼ã¸ã§ã³ã®å ´å) ãã«ãããã³ãããµãã¼ã
- è¤æ°ã·ã¹ãã ã®ä¸å 管çããããã
VictoriaMetricsã®ãã¡ãªãã
- æ¥æ¬èªã§ã®å°å ¥äºä¾ã(Prometheusããã)å°ãªã
- ã³ã³ãã¼ãã³ããå¤ãããè¤é
â»ãã¡ãªããã«é¢ãã¦ã¯ãã¾ãæ
å ±ãè¦ã¤ãããããæ¨ããå¼·ããªå
容ã«ãªã£ã¦ãã¾ã£ã¦ãã¾ããã
ã¿ãªãããæ¤è¨¼ããæã«ããã¡ãªç¹ããã²æãã¦ãã ããï¼ä»åæ¬é¡ï¼
VictoriaMetricsã®å°å ¥æ¹æ³
VictoriaMetricsã§ç£è¦ãå§ããã«ã¯ããããã¨ã3ã¤ããã¾ãã
- VictoriaMetricsãã®ãã®ã®æ§ç¯
- ç£è¦å¯¾è±¡ã«exporterãã¤ã³ã¹ãã¼ã«
- vmagentã®ã»ããã¢ãã
ããã§ã¯ã·ã³ãã«ãªsingle nodeãã¼ã¸ã§ã³ã§è©±ãé²ãã¾ãã
1. VictoriaMetricsã®æ§ç¯
single nodeãã¼ã¸ã§ã³ã®VictoriaMetricsã¯1ãã¤ããªã§åãã®ã§ãgithubãããã¦ã³ãã¼ããã¦å®è¡ããã ãã§èµ·åãã¾ãã
# ãã¦ã³ãã¼ã curl -sLO https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.94.0/victoria-metrics-linux-amd64-v1.94.0.tar.gz # è§£å tar xzf victoria-metrics-linux-amd64-v1.94.0.tar.gz # å®è¡ ./victoria-metrics-prod -storageDataPath=/path/to/data -retentionPeriod=1y
ããã ãããã¼ç°¡åã(æ¬çªéç¨ãããªããµã¼ãã¹åã¨ããã°ã¨ãå¿ è¦ã ãã©ã)
èµ·åãªãã·ã§ã³ã¯ããããããã¾ãããå ¬å¼æ°ããåºæ¬çã«ããã©ã«ãå¤ã使ãã°ååãã¨ã®ãã¨ã§ããå©ããã
ã¾ãå ¬å¼ã§ansibleã®playbookãç¨æããã¦ããã®ã§ãclusterãã¼ã¸ã§ã³ã§è¤æ°å°ã®nodeã使ãå ´åã¯ããã¡ãããã¼ã¹ã«ã³ã¼ãåãã¦ããã¨æ¥½ããã§ãã
ããã«ããã«ãåã³ã³ãã¼ãã³ãã«ã¯å ¬å¼ã®docker imageãããã®ã§ãk8sã¨ãECS Fargateã§ãç£è¦ã¯ã©ã¹ã¿ã¼ãæ§ç¯ã§ããããEFSããã¦ã³ããã¦ãã¼ã¿ãããã«å ¥ããã°ãã»ã£ãããããµã¼ãã¬ã¹ç£è¦ã·ã¹ãã ãã§ãããï¼ãã£ã¦ã¿ãã人çã ã£ãã
2. ç£è¦å¯¾è±¡ã«exporterãã¤ã³ã¹ãã¼ã«
ç£è¦å¯¾è±¡ã®ãµã¼ãã«ã¯ãç®çã«åã£ãexporterï¼node_exporterãpostgres-exporterãªã©ï¼ãã¤ã³ã¹ãã¼ã«ããå¿
è¦ãããã¾ãã
æé ï¼ã¨ããã«ã¯ã·ã³ãã«ããããã©ï¼ã¯ä»¥ä¸ã®éãã
curl -sLO https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz ./node_exporter-1.6.1.linux-amd64/node_exporter &
ããã ãããã¼ç°¡ï¼ä»¥ä¸ç¥ï¼
ãã®å¾ã{ãµã¼ãã®IP or ãã¹ãå}:{exporterã®ãã¼ã}/metrics
ã«ã¢ã¯ã»ã¹ããã¨ä»¥ä¸ã®ãããªãã¼ã¿ãåå¾ã§ãã¾ãã
# node_exporterã®å ´å [ec2-user@hoge-server ~]$ curl -s localhost:9100/metrics | head # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 3.1403e-05 go_gc_duration_seconds{quantile="0.25"} 3.1403e-05 go_gc_duration_seconds{quantile="0.5"} 3.1403e-05 go_gc_duration_seconds{quantile="0.75"} 3.1403e-05 go_gc_duration_seconds{quantile="1"} 3.1403e-05 go_gc_duration_seconds_sum 3.1403e-05 go_gc_duration_seconds_count 1
â»åºæ¬çãªã¡ããªã¯ã¹ã®åå¾ã«ä½¿ãããnode_exporterã§ã¯ãCPUãã¡ã¢ãªãªã©700ã¡ãã£ã¨ã®ã¡ããªã¯ã¹ããªã¢ã«ã¿ã¤ã ã§åå¾ã§ãã¾ããã
ãã®ã¡ããªã¯ã¹ããvmagent(å¾è¿°)ã宿çã«åå¾ãã«ããã®ã§ãç£è¦å¯¾è±¡ã§ãããã¨ã¯exporterãèµ·åãã¦ããã ããç°¡åã
exporterãç£è¦å¯¾è±¡ã«åå¥ã«ã¤ã³ã¹ãã¼ã«ã¨ãã ã¨ç½ç®å¥ãã¡ããã®ã§ãansibleã§ã³ã¼ãåãã¦ããããã§ããã
3. vmagentã®ã»ããã¢ãã
ç£è¦ãµã¼ãã¨ç£è¦å¯¾è±¡ãµã¼ãã®æºåãã§ããããç£è¦å¯¾è±¡ãµã¼ãããä¸è¨ã®ã¡ããªã¯ã¹ãåå¾ãã¦VictoriaMetricsã«æãããã¤ãå¿
è¦ã§ããããããã®vmagentã§ãã
ãã£ãã¨ã»ã¼åããªã®ã§æ¸ãã»ã©ã§ããªãã®ã§ãããä¸å¿å°å ¥æé ãæ¸ãã¦ããã¾ãã (vmagentã¯vmutils-*ã«å«ã¾ããè¤æ°ã®ãã¤ããªã®ãã¡ã®ä¸ã¤ã§ã)
curl -sLO https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.94.0/vmutils-linux-amd64-v1.94.0.tar.gz tar xvf vmutils-linux-amd64-v1.94.0.tar.gz ./vmagent-prod -promscrape.config=/path/to/prometheus.yml -remoteWrite.url=https://{victoria-metrics}/api/v1/write
ãï¼ä»¥ä¸ç¥ï¼
configã«ã¯ç£è¦å¯¾è±¡ãè¨å®ãè¨è¼ãã¾ãã詳ããã¯Prometheusã®configurationãã
調ã¹ãã¨ãvmagentã§ã¯ãªãPrometheusã使ã£ã¦ããäºä¾ãå¤ãã®ã§ãããPrometheusã«æ¯ã¹ã¦vmagentã®æ¹ãã¡ã¢ãªãCPUããã£ã¹ã¯IOããããã¯ã¼ã¯å¸¯åå¹ ãæãããã¨ãã§ããããã§ãã
ãã§ã«Prometheusã使ã£ã¦ãã¦vmagentã«ä¹ãæããå ´åã¯ãPrometheusã®è¨å®ãã¡ã¤ã«ã使ããã®ã§ç§»è¡ãç°¡åã(Prometheusåç¬ã§ä½¿ã£ã¦ããå ´åãè¨å®ãã¡ã¤ã«ã«remote_write.urlã§VictoriaMetricsãæå®ããå¿ è¦ã¯ããã¾ã)
VictoriaMetricsã®æ´»ç¨äºä¾
ã³ããã©(colopl)ã®å ´å
ç´¯è¨ãã¼ã¿ãã¤ã³ãã1,500å以ä¸ã®k8sã¯ã©ã¹ã¿ã¼ã®ç£è¦ã«VictoriaMetricsãå©ç¨ãã¦ããããã§ããPrometheusã§ã¯ã¹ã±ã¼ã«ã¢ãããã¦ãèããããªãã£ãè² è·è©¦é¨ããVictoriaMetricsã§ã¯å®å®ãã¦ã¯ãªã¢ã§ããã¨ã®ãã¨ã
(4å¹´åã®æ å ±ãªã®ã§ãããã«é²åãéãã¦ããã)
Adidasã®å ´å
äºä¾ã¨ããããPromCon2019(Prometheusã«é¢é£ããã«ã³ãã¡ã¬ã³ã¹)ã§ç´¹ä»ãããPoCçãªå 容ã®ããã§ãããPrometheusã®ãªã¢ã¼ãã¹ãã¬ã¼ã¸ã¨ãã¦ãæ¤è¨ãããæç³»åDBã®InfluxDBãThanosã¨æ¯è¼ãã¦ãå§åçã«ãªã½ã¼ã¹æ¶è²»éãå°ãªããã¨ããããã¾ãã
https://promcon.io/2019-munich/slides/remote-write-storage-wars.pdf
CyberAgentã®å ´å
2020å¹´æç¹ã§ã30以ä¸ã®Kubernetesã¯ã©ã¹ã¿ã横æç£è¦ãã¦ããã¨ã®ãã¨ããããã¯ãã®å¢å ã«ãã追å ã³ã¹ããæãããã¦ãããã¨ããã®ã¯ãPrometheusã®ãµã¼ãã¹ãã£ã¹ã«ããªã¨ãçã¨ããªãªã½ã¼ã¹æ¶è²»çãªè©±ããªï¼
ï¼æ°åã§å ¥ç¤¾å¾åå¹´ã§ãã®å 容ã¯ãããããï¼
VictoriaMetrics+Prometheusで構築する複数Kubernetesの監視基盤 - Speaker Deck
FIFA ã¯ã¼ã«ãã«ãã ã«ã¿ã¼ã« 2022ã®ç£è¦ã«ãå°å ¥ããã¦ããæ¨¡æ§ãGMP(Google Managed Prometheus)ã®ãµãçãªä½¿ãæ¹ï¼
大規模イベントを支えるクラウドアーキテクチャの実現 / ABEMA Cloud Platform Architecture for Large-scale Events - Speaker Deck
VictoriaMetricsã§ãã°ã¯è¦ããªãã®ï¼
ããã¾ã§ã¯ååã®éããã¡ããªã¯ã¹ã«ç¹åããç£è¦ã·ã¹ãã ã§ããã°ãè¦ãå ´åã¯ElasticsearchãGrafana Lokiãªã©ãå©ç¨ããå¿ è¦ãããã¾ããããã2023/7ã«victorialogsããã¬ãã¥ã¼ãªãªã¼ã¹(v0.1.0)ããããã°ã¾ã§ã¾ã¨ãã¦ç®¡çã§ããããã«ãªãããã§ãã(2023/10/13ç¹ã§v0.4.1ãææ°)
å
¬å¼ã«ããã¨ãvictorialogsã¯ãElasticsearchãGrafana Lokiã¨æ¯ã¹ã¦ãæå¤§ã§30åã®ãã¼ã¿ãå¦çã§ãããã¨ã®ãã¨ã§ãããããã
ç¾å¨æºãã£ã¦ããblastmail, blastengineï¼å®£ä¼ï¼ã§ããElasticsearchã®ãã°ãindexãè¥å¤§åãã¦ãã£ã·ãã£ã·ãªã®ã§ããããã£ãæ°ãããã¼ã«ãä¸æãæ´»ç¨ã§ããã°ãããªããã¨ãããæ°æã¡ã§ãã
ã¾ã¨ã
OSSç£è¦ã®VictoriaMetricsã«ã¤ãã¦ã¾ã¨ãã¾ãããSaaSã®ç£è¦ã·ã¹ãã ã®æéãç¡è¦ã§ããªããªã£ã¦ããããã²æ¤è¨ãã¦ã¿ã¦ãã ããã