Alexander Valyalkin ã«ãã 2019 幎åŸåã®ã¬ããŒããVictoriaMetrics ã«ããã Go ã®æé©åãã®æžãèµ·ãããèªãããšããå§ãããŸãã
ãã®ã¬ããŒãã®ãããªãžã®ãªã³ã¯ã¯æ¬¡ã®ãšããã§ã -
ããªãèªèº«ã«ã€ããŠæããŠãã ããã ç§ã¯ã¢ã¬ã¯ãµã³ããŒã»ãŽã¡ãªã£ã«ãã³ã§ãã ãã fast
ããŸã㯠quick
æ¥é èŸã
ç§ã¯çŸåš VictoriaMetrics ã«åãçµãã§ããŸãã ããã¯äœã§ããããããŠç§ã¯ããã§äœãããŠããã®ã§ããããïŒ ãã®ãã¬ãŒã³ããŒã·ã§ã³ã§ã¯ããã«ã€ããŠèª¬æããŸãã
å ±åæžã®æŠèŠã¯ä»¥äžã®ãšããã§ãã
- ãŸããVictoriaMetrics ãšã¯äœãã«ã€ããŠèª¬æããŸãã
- ããã§ã¯æç³»åã説æããŠãããŸãã
- 次ã«ãæç³»åããŒã¿ããŒã¹ãã©ã®ããã«æ©èœãããã説æããŸãã
- 次ã«ãããŒã¿ããŒã¹ã®ã¢ãŒããã¯ãã£ãã€ãŸãæ§æèŠçŽ ã«ã€ããŠèª¬æããŸãã
- 次ã«ãVictoriaMetrics ã®æé©åã«ç§»ããŸãããã ããã¯ãéã€ã³ããã¯ã¹ã®æé©åãšãGo ã®ãããã»ããå®è£ ã®æé©åã§ãã
èŽè¡ã®äžã§ VictoriaMetrics ãäœã§ããããç¥ã£ãŠãã人ã¯ããŸãã? ãããããç¥ã£ãŠãã人ãå€ãã§ãããã è¯ããã¥ãŒã¹ã§ãã ç¥ããªã人ã®ããã«èª¬æãããšãããã¯æç³»åããŒã¿ããŒã¹ã§ãã ããã¯ãClickHouse ã¢ãŒããã¯ãã£ãšãClickHouse å®è£ ã®è©³çŽ°ã«åºã¥ããŠããŸãã ããšãã°ãMergeTree ã§ã¯ãå©çšå¯èœãªãã¹ãŠã®ããã»ããµ ã³ã¢ã§ã®äžŠåèšç®ãšãããã»ããµ ãã£ãã·ã¥ã«é 眮ãããããŒã¿ ãããã¯ã®åŠçã«ããããã©ãŒãã³ã¹ã®æé©åãå¯èœã§ãã
VictoriaMetrics ã¯ãä»ã®æç³»åããŒã¿ããŒã¹ãããåªããããŒã¿å§çž®ãæäŸããŸãã
åçŽæ¹åã«æ¡åŒµã§ããŸããã€ãŸããXNUMX å°ã®ã³ã³ãã¥ãŒã¿ãŒã«ããã»ããµãŒã RAM ãè¿œå ã§ããŸãã VictoriaMetrics ã¯ããããã®å©çšå¯èœãªãªãœãŒã¹ãããŸã掻çšããçŽç·çãªçç£æ§ãåäžãããŸãã
VictoriaMetrics ã¯æ°Žå¹³æ¹åã«ãæ¡åŒµã§ããŸããã€ãŸããVictoriaMetrics ã¯ã©ã¹ã¿ãŒã«ããŒããè¿œå ãããšãããã©ãŒãã³ã¹ãã»ãŒçŽç·çã«åäžããŸãã
ãæ³åã®ãšãããVictoriaMetrics ã¯é«éãªããŒã¿ããŒã¹ã§ããä»ã®ããŒã¿ããŒã¹ãäœæã§ããªãããã§ãã ãã㯠Go ã§æžãããŠããã®ã§ããã®ããŒãã¢ããã§ããã«ã€ããŠè©±ããŸãã
æç³»åãšã¯äœãã誰ãç¥ã£ãŠããŸãã? 圌ã¯ãŸãå€ãã®äººãç¥ã£ãŠããŸãã æç³»åãšã¯äžé£ã®ãã¢ã§ã (timestamp, зМаÑеМОе)
ããã§ã¯ããããã®ãã¢ãæéé ã«äžŠã¹æ¿ããããŠããŸãã å€ã¯æµ®åå°æ°ç¹æ° - float64 ã§ãã
åæç³»åã¯ããŒã«ãã£ãŠäžæã«èå¥ãããŸãã ãã®éµã¯äœã§æ§æãããŠããŸãã? ããã¯ã空ã§ã¯ãªãããŒãšå€ã®ãã¢ã®ã»ããã§æ§æãããŸãã
以äžã¯æç³»åã®äŸã§ãã ãã®ã·ãªãŒãºã®ããŒã¯ãã¢ã®ãªã¹ãã§ãã __name__="cpu_usage"
ã¯ã¡ããªã¯ã¹ã®ååã§ãã instance="my-server"
- ããã¯ããã®ã¡ããªã¯ã¹ãåéãããã³ã³ãã¥ãŒã¿ã§ãã datacenter="us-east"
- ããã¯ããã®ã³ã³ãã¥ãŒã¿ã眮ãããŠããããŒã¿ ã»ã³ã¿ãŒã§ãã
æçµçã«ãXNUMX ã€ã®ããŒãšå€ã®ãã¢ã§æ§æãããæç³»ååãåŸãããŸããã ãã®ããŒã¯ãã¢ã®ãªã¹ãã«å¯Ÿå¿ããŸã (timestamp, value)
. t1, t3, t3, ..., tN
- ãããã¯ã¿ã€ã ã¹ã¿ã³ãã§ãã 10, 20, 12, ..., 15
â 察å¿ããå€ã ããã¯ãç¹å®ã®ã·ãªãŒãºã®ç¹å®ã®æç¹ã§ã® CPU 䜿çšçã§ãã
æç³»åã¯ã©ãã§äœ¿çšã§ããŸãã? 誰ãäœãã¢ã€ãã¢ã¯ãããŸããïŒ
- DevOpsã§ã¯ãCPUãRAMããããã¯ãŒã¯ãRPSããšã©ãŒæ°ãªã©ã枬å®ã§ããŸãã
- IoT - 枩床ãå§åãå°ç座æšãªã©ã枬å®ã§ããŸãã
- éèãå¯èœã§ããããããçš®é¡ã®æ ªãé貚ã®ââäŸ¡æ Œãç£èŠã§ããŸãã
- ããã«ãæç³»åã¯å·¥å Žã®çç£ããã»ã¹ã®ç£èŠã«ã䜿çšã§ããŸãã VictoriaMetrics ã䜿çšããŠé¢šåã¿ãŒãã³ããããããç£èŠãããŠãŒã¶ãŒãããŸãã
- æç³»åã¯ãããŸããŸãªããã€ã¹ã®ã»ã³ãµãŒããæ å ±ãåéããã®ã«ã圹ç«ã¡ãŸãã ããšãã°ããšã³ãžã³ã®å Žåã ã¿ã€ã€ã®ç©ºæ°å§ã枬å®ããããã é床ãè·é¢ã®æž¬å®çšã ã¬ãœãªã³æ¶è²»éã®èšæž¬ãªã©ã«ã
- æç³»åã¯èªç©ºæ©ã®ç£èŠã«ã䜿çšã§ããŸãã åèªç©ºæ©ã«ã¯ãèªç©ºæ©ã®ç¶æ ã«é¢ããããŸããŸãªãã©ã¡ãŒã¿ã®æç³»åãåéãããã©ã㯠ããã¯ã¹ããããŸãã æç³»åã¯èªç©ºå®å®ç£æ¥ã§ã䜿çšãããŸãã
- ãã«ã¹ã±ã¢ãšã¯è¡å§ãèæãªã©ã§ãã
å¿ããŠããå¿çšäŸã¯ä»ã«ããããããããŸããããçŸä»£ç€ŸäŒã§ã¯æç³»åãç©æ¥µçã«äœ¿ãããŠãããšããããšããç解ããã ããã°å¹žãã§ãã ãããŠãã®äœ¿çšéã¯å¹Žã å¢å ããŠããŸãã
ãªãæç³»åããŒã¿ããŒã¹ãå¿ èŠãªã®ã§ãããã? æç³»åã®ä¿åã«éåžžã®ãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ã䜿çšã§ããªãã®ã¯ãªãã§ãã?
éåžžãæç³»åã«ã¯å€§éã®æ
å ±ãå«ãŸããŠãããåŸæ¥ã®ããŒã¿ããŒã¹ã«ä¿åããŠåŠçããããšãå°é£ã§ããããã§ãã ããã§ãæç³»åã«ç¹åããããŒã¿ããŒã¹ãç»å ŽããŸããã ãã€ã³ããå¹çãã貯ããããæ ç¹ã§ã (timestamp, value)
æå®ãããããŒã䜿çšããŠã ãããã¯ãããŒãåäžã®ããŒãšå€ã®ãã¢ãè€æ°ã®ããŒãšå€ã®ãã¢ããŸãã¯æ£èŠè¡šçŸã«ãã£ãŠä¿åãããããŒã¿ãèªã¿åãããã® API ãæäŸããŸãã ããšãã°ãã¢ã¡ãªã«ã®ããŒã¿ã»ã³ã¿ãŒã«ãããã¹ãŠã®ãµãŒãã¹ã® CPU è² è·ã調ã¹ããå Žåã¯ããã®ç䌌ã¯ãšãªã䜿çšããå¿
èŠããããŸãã
éåžžãæç³»åããŒã¿ããŒã¹ã¯ãæç³»å SQL ãããŸãé©ããŠããªããããç¹æ®ãªã¯ãšãªèšèªãæäŸããŸãã SQL ããµããŒãããããŒã¿ããŒã¹ããããŸãããããŸãé©ããŠããŸããã ãªã©ã®ã¯ãšãªèšèª
VictoriaMetrics ãäŸãšããŠäœ¿çšããææ°ã®æç³»åããŒã¿ããŒã¹ ã¢ãŒããã¯ãã£ã¯æ¬¡ã®ãšããã§ãã
XNUMX ã€ã®éšåããæ§æãããŸãã ããã¯ã転眮ã€ã³ããã¯ã¹ã®ã¹ãã¬ãŒãžãšæç³»åå€ã®ã¹ãã¬ãŒãžã§ãã ãããã®ãªããžããªã¯åé¢ãããŠããŸãã
æ°ããã¬ã³ãŒããããŒã¿ããŒã¹ã«å°çãããšããŸã転眮ã€ã³ããã¯ã¹ã«ã¢ã¯ã»ã¹ããŠãæå®ãããã»ããã®æç³»åèå¥åãèŠã€ããŸãã label=value
ç¹å®ã®ã¡ããªã¯ã¹ã«å¯ŸããŠã ãã®èå¥åãèŠã€ããŠããã®å€ãããŒã¿ ã¹ãã¢ã«ä¿åããŸãã
TSDB ããããŒã¿ãååŸãããªã¯ãšã¹ããæ¥ããšããŸã転眮ã€ã³ããã¯ã¹ã«ç§»åããŸãã å
šãŠãæã«å
¥ããŸããã timeseries_ids
ãã®ã»ããã«äžèŽããã¬ã³ãŒã label=value
ã 次ã«ãããŒã¿ ãŠã§ã¢ããŠã¹ããå¿
èŠãªããŒã¿ããã¹ãŠååŸãã次ã®ããã«ã€ã³ããã¯ã¹ä»ãããŸãã timeseries_ids
.
æç³»åããŒã¿ããŒã¹ãåä¿¡ããéžæã¯ãšãªãåŠçããæ¹æ³ã®äŸãèŠãŠã¿ãŸãããã
- ãŸã第äžã«ã圌女ã¯ãã¹ãŠãæã«å
¥ããŸã
timeseries_ids
æå®ããããã¢ãå«ã転眮ã€ã³ããã¯ã¹ããlabel=value
ããŸãã¯æå®ãããæ£èŠè¡šçŸãæºããã - 次ã«ãèŠã€ãã£ãããŒã¿ ãã€ã³ãã«ã€ããŠãæå®ãããæéééã§ããŒã¿ ã¹ãã¬ãŒãžãããã¹ãŠã®ããŒã¿ ãã€ã³ããååŸããŸãã
timeseries_ids
. - ãã®åŸãããŒã¿ããŒã¹ã¯ãŠãŒã¶ãŒã®èŠæ±ã«å¿ããŠããããã®ããŒã¿ ãã€ã³ãã«å¯ŸããŠããã€ãã®èšç®ãå®è¡ããŸãã ãããŠãã®åŸãçããè¿ããŸãã
ãã®ãã¬ãŒã³ããŒã·ã§ã³ã§ã¯ãæåã®éšåã«ã€ããŠèª¬æããŸãã ããã¯æ€çŽ¢ã§ã timeseries_ids
転眮ã€ã³ããã¯ã¹ã«ãã£ãŠã 第äºéšã第äžéšã«ã€ããŠã¯åŸã»ã©ã芧ããã ããŸã
転眮ã€ã³ããã¯ã¹ã«ç§»ããŸãããã å€ãã®äººã¯ããã¯ç°¡åã ãšæããããããŸããã 転眮ã€ã³ããã¯ã¹ãšã¯äœãããããŠãããã©ã®ããã«æ©èœããã®ãã誰ãç¥ã£ãŠããã§ãããã? ããããã人ã¯ããã»ã©å€ããããŸããã ãããäœã§ããããç解ããŠã¿ãŸãããã
å®ã¯ç°¡åãªãã§ãã ããã¯ãããŒãå€ã«ãããã³ã°ããåãªãèŸæžã§ãã éµãšã¯äœã§ãã? ãã®ã«ããã« label=value
ã©ã label
О value
- ãããã¯ç·ã§ãã ãããŠå€ã¯ã»ããã§ã timeseries_ids
ãæå®ããããã¢ãå«ãŸããŸã label=value
.
é玢åŒã«ããããã¹ãŠããã°ããèŠã€ããããšãã§ããŸã timeseries_ids
ãäžãã label=value
.
ããã«èŠã€ããããšãã§ããŸã timeseries_ids
è€æ°ã®ãã¢ã®æç³»å label=value
ããŸãã¯ã«ããã«åã label=regexp
ã ããã¯ã©ãããŠèµ·ããã®ã§ãããã? éåã®äº€ç¹ãèŠã€ããããšã«ãã£ãŠ timeseries_ids
åãã¢ããšã« label=value
.
転眮ã€ã³ããã¯ã¹ã®ããŸããŸãªå®è£ ãèŠãŠã¿ãŸãããã æãåçŽãªåçŽãªå®è£ ããå§ããŸãããã 圌女ã¯ãããªæãã§ãã
æ©èœ getMetricIDs
æååã®ãªã¹ããååŸããŸãã åè¡ã«ã¯æ¬¡ã®å
容ãå«ãŸããŸã label=value
ã ãã®é¢æ°ã¯ãªã¹ããè¿ããŸã metricIDs
.
䜿ãæ¹ïŒ ããã«ã¯ã°ããŒãã«å€æ°ãšããååããããŸãã invertedIndex
ã ããã¯æ®éã®èŸæžã§ã(map
)ãæååãã¹ã©ã€ã¹æŽæ°ã«ãããããŸãã è¡ã«ã¯ä»¥äžãå«ãŸããŸã label=value
.
é¢æ°å®è£
: get metricIDs
åã㊠label=value
ããã®åŸãä»ã®ãã¹ãŠãå®è¡ããŸã label=value
ãåãããŸãã metricIDs
圌ãã®ããã«ã ãããŠé¢æ°ãåŒã³åºããŸã intersectInts
ãããã«ã€ããŠã¯åŸè¿°ããŸãã ãããŠããã®é¢æ°ã¯ãããã®ãªã¹ãã®å
±ééšåãè¿ããŸãã
ã芧ã®ãšããã転眮ã€ã³ããã¯ã¹ã®å®è£ ã¯ããã»ã©è€éã§ã¯ãããŸããã ããããããã¯åçŽãªå®è£ ã§ãã ã©ã®ãããªæ¬ ç¹ããããŸãã? åçŽãªå®è£ ã®äž»ãªæ¬ ç¹ã¯ããã®ãããªéã€ã³ããã¯ã¹ã RAM ã«æ ŒçŽãããããšã§ãã ã¢ããªã±ãŒã·ã§ã³ãåèµ·åãããšããã®ã€ã³ããã¯ã¹ã¯å€±ãããŸãã ãã®ã€ã³ããã¯ã¹ã¯ãã£ã¹ã¯ã«ä¿åãããŸããã ãã®ãããªè»¢çœ®ã€ã³ããã¯ã¹ã¯ããŒã¿ããŒã¹ã«ã¯é©ããªãå¯èœæ§ããããŸãã
XNUMX çªç®ã®æ¬ ç¹ãã¡ã¢ãªã«é¢é£ããŠããŸãã 転眮ã€ã³ããã¯ã¹ã¯ RAM ã«åãŸãå¿ èŠããããŸãã RAM ã®ãµã€ãºãè¶ ãããšãæããã«ã¡ã¢ãªäžè¶³ãšã©ãŒãçºçããŸãã ãããŠããã°ã©ã ã¯åäœããŸããã
ãã®åé¡ã¯ã次ã®ãããªæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠè§£æ±ºã§ããŸãã
ã€ãŸããXNUMX ã€ã®æäœãè¿ éã«å®è¡ã§ããããŒã¿ããŒã¹ãå¿ èŠã§ãã
- æåã®æäœã¯é²é³ã§ã
клÑÑ-зМаÑеМОе
ãã®ããŒã¿ããŒã¹ã«ã 圌女ã¯ãããéåžžã«çŽ æ©ãè¡ããŸããклÑÑ-зМаÑеМОе
ã¯ä»»æã®æååã§ãã - XNUMX çªç®ã®æäœã¯ãæå®ãããããŒã䜿çšããå€ã®ã¯ã€ãã¯æ€çŽ¢ã§ãã
- XNUMX çªç®ã®æäœã¯ãæå®ããããã¬ãã£ãã¯ã¹ã«ãããã¹ãŠã®å€ã®è¿ éãªæ€çŽ¢ã§ãã
LevelDB ãš RocksDB - ãããã®ããŒã¿ããŒã¹ã¯ Google ãš Facebook ã«ãã£ãŠéçºãããŸããã æåã«ç»å Žããã®ã¯ LevelDB ã§ãã ãã®åŸ Facebook ã®äººãã¡ã LevelDB ãæ¡çšããŠæ¹è¯ãå§ããRocksDB ãäœããŸããã çŸåšãRocksDB ã MySQL ã«è»¢éããããã®ãå«ããã»ãŒãã¹ãŠã®å
éšããŒã¿ããŒã¹ã Facebook å
ã® RocksDB äžã§åäœããŸãã 圌ãã¯åœŒã«ååãä»ããŸãã
転眮ã€ã³ããã¯ã¹ã¯ãLevelDB ã䜿çšããŠå®è£
ã§ããŸãã ã©ããã£ãŠããã®ïŒ ããŒãšããŠä¿å label=value
ã ãããŠãå€ã¯ãã¢ãååšããæç³»åã®èå¥åã§ã label=value
.
ç¹å®ã®ãã¢ã«é¢ããæç³»åãå€æ°ããå Žå label=value
ã®å Žåããã®ããŒã¿ããŒã¹ã«ã¯åãããŒãšç°ãªãããŒãæã€è¡ãå€æ°ååšããŸãã timeseries_ids
ã ãã¹ãŠã®ãªã¹ããååŸããã«ã¯ timeseries_ids
ãããã§å§ãŸããŸã label=prefix
ããã®ããŒã¿ããŒã¹ãæé©åãããç¯å²ã¹ãã£ã³ãå®è¡ããŸãã ã€ãŸãã次ã§å§ãŸããã¹ãŠã®è¡ãéžæããŸãã label=prefix
ãããŠå¿
èŠãªãã®ãæã«å
¥ãã timeseries_ids
.
Go ã§ã©ã®ããã«ãªããã瀺ããµã³ãã«å®è£ ã次ã«ç€ºããŸãã 転眮ã€ã³ããã¯ã¹ããããŸãã ãããLevelDBã§ãã
é¢æ°ã¯åçŽãªå®è£
ã®å Žåãšåãã§ãã åçŽãªå®è£
ãã»ãŒ XNUMX è¡ãã€ç¹°ãè¿ããŸãã å¯äžã®ãã€ã³ãã¯ã次ã®ããšã«ç®ãåããã®ã§ã¯ãªãã map
転眮ã€ã³ããã¯ã¹ã«ã¢ã¯ã»ã¹ããŸãã æåã®ãã¹ãŠã®å€ãååŸããŸã label=value
ã 次ã«ãæ®ãã®ãã¹ãŠã®ãã¢ã調ã¹ãŸã label=value
ãããŠããããã«å¯Ÿå¿ãã metricID ã®ã»ãããååŸããŸãã ãããã亀差ç¹ãèŠã€ããŸãã
ãã¹ãŠãããŸããã£ãŠããããã«èŠããŸããããã®è§£æ±ºçã«ã¯æ¬ ç¹ããããŸãã VictoriaMetrics ã¯åœåãLevelDB ã«åºã¥ããŠè»¢çœ®ã€ã³ããã¯ã¹ãå®è£ ããŸããã ããããçµå±ã¯è«ŠããããåŸãŸããã§ããã
ãªãïŒ LevelDB ã¯åçŽãªå®è£
ãããé
ãããã§ãã åçŽãªå®è£
ã§ã¯ãæå®ãããããŒãæå®ãããšãã¹ã©ã€ã¹å
šäœãããã«ååŸãããŸãã metricIDs
ã ããã¯éåžžã«é«éãªæäœã§ããã¹ã©ã€ã¹å
šäœã䜿çšã§ããç¶æ
ã«ãªããŸãã
LevelDB ã§ã¯ãé¢æ°ãåŒã³åºããããã³ã« GetValues
ã§å§ãŸããã¹ãŠã®è¡ã確èªããå¿
èŠããããŸã label=value
ã ãããŠåè¡ã®å€ãååŸããŸã timeseries_ids
ã ãã®ãã㪠timeseries_ids
ãããã®ã¹ã©ã€ã¹ãéããŸã timeseries_ids
ã æããã«ãããã¯åã«ããŒã«ãã£ãŠéåžžã®ãããã«ã¢ã¯ã»ã¹ãããããã¯ããã«é
ããªããŸãã
1 çªç®ã®æ¬ ç¹ã¯ãLevelDB ã C ã§æžãããŠããããšã§ããGo ããã® C é¢æ°ã®åŒã³åºãã¯ããã»ã©é«éã§ã¯ãããŸããã æ°çŸããç§ããããŸãã ããã¯ããã»ã©é«éã§ã¯ãããŸãããgo ã§èšè¿°ãããéåžžã®é¢æ°åŒã³åºããšæ¯èŒãããš 5 ïœ XNUMX ããç§ããããããã©ãŒãã³ã¹ã®å·®ã¯æ°ååã«ãªããŸãã VictoriaMetrics ã«ãšã£ãŠãããã¯èŽåœçãªæ¬ é¥ã§ãã :)
ããã§ç§ã¯ç¬èªã®è»¢çœ®ã€ã³ããã¯ã¹ã®å®è£
ãäœæããŸããã ãããŠåœŒã¯åœŒå¥³ã«é»è©±ãã
Mergeset 㯠MergeTree ããŒã¿æ§é ã«åºã¥ããŠããŸãã ãã®ããŒã¿æ§é 㯠ClickHouse ããåçšãããã®ã§ãã æããã«ãé«éæ€çŽ¢ã®ããã«ããŒãžã»ãããæé©åããå¿
èŠããããŸãã timeseries_ids
æå®ãããããŒã«åŸã£ãŠã Mergeset ã¯ãã¹ãŠ Go ã§æžãããŠããŸãã ã芧ããã ããŸã
ããŒãžã»ãã API ã¯ãLevelDB ããã³ RocksDB ã«éåžžã«äŒŒãŠããŸãã ã€ãŸããæ°ããã¬ã³ãŒããããã«ãã°ããä¿åããæå®ããããã¬ãã£ãã¯ã¹ã«ãã£ãŠã¬ã³ãŒãããã°ããéžæã§ããããã«ãªããŸãã
ããŒãžã»ããã®æ¬ ç¹ã«ã€ããŠã¯åŸã»ã©èª¬æããŸãã 次ã«ãéçšç°å¢ã§è»¢çœ®ã€ã³ããã¯ã¹ãå®è£ ãããšãã« VictoriaMetrics ã§ã©ã®ãããªåé¡ãçºçãããã«ã€ããŠèª¬æããŸãã
ãªã圌ãã¯çããã®ã§ããããïŒ
äžã€ç®ã®çç±ã¯ã解çŽçã®é«ãã§ãã ãã·ã¢èªã«ç¿»èš³ãããšãããã¯æç³»åã®é »ç¹ãªå€æŽã§ãã ããã¯ãæç³»åãçµäºããŠæ°ããæç³»åãå§ãŸããšãããŸãã¯å€ãã®æ°ããæç³»åãå§ãŸããšãã§ãã ãããŠãããã¯é »ç¹ã«èµ·ãããŸãã
4 çªç®ã®çç±ã¯ãæç³»åã®æ°ãå€ãããšã§ãã ã¢ãã¿ãªã³ã°ãæ®åãå§ããåœåãæç³»åã®æ°ã¯å°ãªãã£ãã ããšãã°ãã³ã³ãã¥ãŒã¿ããšã«ãCPUãã¡ã¢ãªããããã¯ãŒã¯ããã£ã¹ã¯ã®è² è·ãç£èŠããå¿ èŠããããŸãã ã³ã³ãã¥ãŒã¿ãŒããšã« 100 ã€ã®æç³»åã 400 å°ã®ã³ã³ãã¥ãŒã¿ãŒãš XNUMX ã®æç³»åããããšããŸãã ããã¯ãããããã§ãã
æéãçµã€ã«ã€ããŠã人ã ã¯ãã詳现ãªæ å ±ã枬å®ã§ããããšã«æ°ã¥ããŸããã ããšãã°ãããã»ããµå šäœã®è² è·ã§ã¯ãªããåããã»ããµ ã³ã¢ã®è² è·ãåå¥ã«æž¬å®ããŸãã 40 åã®ããã»ããµ ã³ã¢ãããå Žåãããã»ããµè² è·ã枬å®ããããã®æç³»å㯠40 åã«ãªããŸãã
ããããããã ãã§ã¯ãããŸããã åããã»ããµ ã³ã¢ã¯ãã¢ã€ãã«æã«ã¢ã€ãã«ãªã©ã®è€æ°ã®ç¶æ ãæã€ããšãã§ããŸãã ãŸãããŠãŒã¶ãŒç©ºéãã«ãŒãã«ç©ºéããã®ä»ã®ç¶æ ã§ãåäœããŸãã ãããŠããã®ãããªåç¶æ ã¯ãåå¥ã®æç³»åãšããŠæž¬å®ããããšãã§ããŸãã ããã«ãããè¡æ°ãããã« 7 ïœ 8 åå¢å ããŸãã
40 ã€ã®ã¡ããªãã¯ããã8 å°ã®ã³ã³ãã¥ãŒã¿ãŒã«å¯Ÿã㊠320 x 100 = 32 ã®ã¡ããªãã¯ãåŸãããŸããã 000 ãæãããšã400 ã§ã¯ãªã XNUMX ã«ãªããŸãã
ãã®åŸãKubernetes ãç»å ŽããŸããã ãããŠãKubernetes ã¯ããŸããŸãªãµãŒãã¹ããã¹ãã§ãããããäºæ ã¯ããã«æªåããŸããã Kubernetes ã®åãµãŒãã¹ã¯å€æ°ã®ãããã§æ§æãããŸãã ãããŠãããããã¹ãŠãç£èŠããå¿ èŠããããŸãã ããã«ããµãŒãã¹ã®æ°ããããŒãžã§ã³ãç¶ç¶çã«å±éããŠããŸãã æ°ããããŒãžã§ã³ããšã«ãæ°ããæç³»åãäœæããå¿ èŠããããŸãã ãã®çµæãæç³»åã®æ°ãææ°é¢æ°çã«å¢å ããé«ã«ãŒãã£ããªãã£ãšåŒã°ããæç³»åã®æ°ãå€ããªããšããåé¡ã«çŽé¢ããŸãã VictoriaMetrics ã¯ãä»ã®æç³»åããŒã¿ããŒã¹ãšæ¯èŒããŠãããã«ããŸã察åŠããŸãã
é«ã解çŽçã«ã€ããŠè©³ããèŠãŠã¿ãŸãããã æ¬çªç°å¢ã§ã®é«ããã£ãŒã³ã¬ãŒãã®åå ã¯äœã§ãã? ã©ãã«ãã¿ã°ã®æå³ã®äžéšã¯åžžã«å€åããããã§ãã
ããšãã°ãKubernetes ã«ã¯æ¬¡ã®ãããªæŠå¿µããããŸãã deployment
ã€ãŸããã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ãããŒã«ã¢ãŠãããããšãã§ãã äœããã®çç±ã§ãKubernetes éçºè
ã¯ã©ãã«ã«ãããã€ã¡ã³ã ID ãè¿œå ããããšã«ããŸããã
ããã¯äœã«ã€ãªãããŸããã? ããã«ãæ°ããå±éãè¡ããããã³ã«ãå€ãæç³»åã¯ãã¹ãŠäžæããã代ããã«æ°ããæç³»åãæ°ããã©ãã«å€ã§å§ãŸããŸãã deployment_id
ã ãã®ãããªè¡ã¯æ°åäžãããã«ã¯æ°çŸäžãååšããå¯èœæ§ããããŸãã
ããããã¹ãŠã«ã€ããŠéèŠãªããšã¯ãæç³»åã®ç·æ°ã¯å¢å ããŸãããçŸåšã¢ã¯ãã£ãã§ããŒã¿ãåä¿¡ããŠââããæç³»åã®æ°ã¯äžå®ã®ãŸãŸã§ãããšããããšã§ãã ãã®ç¶æ ãé«è§£çŽçãšãããŸãã
é«ããã£ãŒã³ ã¬ãŒãã®äž»ãªåé¡ã¯ãç¹å®ã®æéééã«ãããç¹å®ã®ã©ãã« ã»ããã®ãã¹ãŠã®æç³»åã§äžå®ã®æ€çŽ¢é床ã確ä¿ããããšã§ãã éåžžãããã¯éå» XNUMX æéãŸãã¯æåŸã®æ¥ã®æéééã§ãã
ãã®åé¡ã解決ããã«ã¯ã©ãããã°ããã§ãããã? ãããæåã®ãªãã·ã§ã³ã§ãã ããã¯ã転眮ã€ã³ããã¯ã¹ãæéã®çµéãšãšãã«ç¬ç«ããéšåã«åå²ããããã§ãã ã€ãŸããããçšåºŠã®æéãçµéãããšãçŸåšã®éã€ã³ããã¯ã¹ã®åŠçãçµäºããŸãã ãããŠãæ°ãã転眮ã€ã³ããã¯ã¹ãäœæããŸãã å¥ã®æéééãçµéãã次ãã次ãžãšäœæãããŸãã
ãããŠããããã®å転ã€ã³ããã¯ã¹ãããµã³ããªã³ã°ãããšãæå®ãããééå ã«åãŸãäžé£ã®å転ã€ã³ããã¯ã¹ãèŠã€ãããŸãã ãããŠãããã«å¿ããŠãããããæç³»åã® ID ãéžæããŸãã
ããã«ãããæå®ãããééå ã«åãŸããªãéšåã確èªããå¿ èŠããªããªãããããªãœãŒã¹ãç¯çŽãããŸãã ã€ãŸããéåžžãéå» XNUMX æéã®ããŒã¿ãéžæããå Žåããã以åã®æéééã«ã€ããŠã¯ã¯ãšãªãã¹ãããããŸãã
ãã®åé¡ã解決ããã«ã¯å¥ã®ãªãã·ã§ã³ããããŸãã ããã¯ããã®æ¥ã«çºçããæç³»åã® ID ã®åå¥ã®ãªã¹ããæ¯æ¥ä¿åããããã§ãã
åã®ãœãªã¥ãŒã·ã§ã³ã«å¯Ÿãããã®ãœãªã¥ãŒã·ã§ã³ã®å©ç¹ã¯ãæéãçµã£ãŠãæ¶ããªãæç³»åæ å ±ãè€è£œããªãããšã§ãã ãããã¯åžžã«ååšããå€åããŸããã
æ¬ ç¹ã¯ããã®ãããªãœãªã¥ãŒã·ã§ã³ã¯å®è£ ãããé£ããããããã°ãããå°é£ã§ããããšã§ãã ãããŠãVictoriaMetrics ã¯ãã®ãœãªã¥ãŒã·ã§ã³ãéžæããŸããã ãããæŽå²çã«èµ·ãã£ãããšã§ãã ãã®ãœãªã¥ãŒã·ã§ã³ãã以åã®ãœãªã¥ãŒã·ã§ã³ãšæ¯èŒããŠåªããããã©ãŒãã³ã¹ãçºæ®ããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãå€åããªããã€ãŸãæéã®çµéãšãšãã«æ¶å€±ããªãæç³»åã®ããŒã¿ãåããŒãã£ã·ã§ã³ã§è€è£œããå¿ èŠããããšããäºå®ã«ããå®è£ ãããŸããã§ããã VictoriaMetrics ã¯äž»ã«ãã£ã¹ã¯é åã®æ¶è²»ã«å¯ŸããŠæé©åãããŠããã以åã®å®è£ ã§ã¯ãã£ã¹ã¯é åã®æ¶è²»ãæªåããŠããŸããã ãã ãããã®å®è£ ã¯ãã£ã¹ã¯é åã®æ¶è²»ãæå°éã«æããã®ã«é©ããŠãããããéžæãããŸããã
ç§ã¯åœŒå¥³ãšæŠããªããã°ãªããªãã£ãã èŠåŽããã®ã¯ããã®å®è£
ã§ãããã«å€§ããªæ°å€ãéžæããå¿
èŠãããããšã§ãã timeseries_ids
転眮ã€ã³ããã¯ã¹ãæéããŒãã£ã·ã§ã³åãããŠããå ŽåããããããŒã¿ã®å Žåã¯ç°ãªããŸãã
ãã®åé¡ãã©ã®ããã«è§£æ±ºããã®ã§ãããã? ç§ãã¡ã¯ãå転眮ã€ã³ããã¯ã¹ ãšã³ããªã« XNUMX ã€ã®èå¥åã®ä»£ããã«è€æ°ã®æç³»åèå¥åãæ ŒçŽãããšããç¬èªã®æ¹æ³ã§ãã®åé¡ã解決ããŸããã ã€ãŸããéµãæã£ãŠããŸã label=value
ããã¹ãŠã®æç³»åã§çºçããŸãã ãããŠä»ãç§ãã¡ã¯ããã€ããä¿åããŠããŸã timeseries_ids
XNUMXã€ã®ãšã³ããªã§ã
ããã«äŸã瀺ããŸãã 以å㯠N åã®ãšã³ããªããããŸããããçŸåšã¯ä»ã®ãã¹ãŠãšåããã¬ãã£ãã¯ã¹ãæã€ãšã³ããªã XNUMX ã€ãããŸãã åã®ãšã³ããªã®å Žåãå€ã«ã¯ãã¹ãŠã®æç³»å ID ãå«ãŸããŠããŸãã
ããã«ããã転眮ã€ã³ããã¯ã¹ã®èµ°æ»é床ãæ倧10åãŸã§é«éåããããšãã§ããŸããã ãŸããæååãä¿åããããã«ãªã£ãã®ã§ããã£ãã·ã¥ã®ã¡ã¢ãªæ¶è²»éãæžããããšãã§ããŸããã label=value
N åäžç·ã«ãã£ãã·ã¥ã«å
¥ããã®ã¯ XNUMX åã ãã§ãã ãŸããã¿ã°ãã©ãã«ã«é·ãè¡ãæ ŒçŽãããšããã®è¡ã倧ãããªãå¯èœæ§ããããKubernetes ã¯ããã«æŒã蟌ãããšã奜ã¿ãŸãã
転眮ã€ã³ããã¯ã¹ã§ã®æ€çŽ¢ãé«éåããããã®ãã XNUMX ã€ã®ãªãã·ã§ã³ã¯ã·ã£ãŒãã£ã³ã°ã§ãã XNUMX ã€ã§ã¯ãªãè€æ°ã®éã€ã³ããã¯ã¹ãäœæãããããã®éã§ããŒã«ãã£ãŠããŒã¿ãã·ã£ãŒãã£ã³ã°ããŸãã ããã¯ã»ããã§ã key=value
èžæ°ã ã€ãŸããè€æ°ã®ç¬ç«ããéã€ã³ããã¯ã¹ãååŸããè€æ°ã®ããã»ããµäžã§äžŠè¡ããŠã¯ãšãªãå®è¡ã§ããŸãã 以åã®å®è£
ã§ã¯ãã·ã³ã°ã«ããã»ããµ ã¢ãŒãã§ã®åäœã®ã¿ãèš±å¯ãããŠããŸãããã€ãŸããXNUMX ã€ã®ã³ã¢ã®ã¿ã§ããŒã¿ãã¹ãã£ã³ã§ããŸããã ãã®ãœãªã¥ãŒã·ã§ã³ã䜿çšãããšãClickHouse ã奜ãã§è¡ãããã«ãè€æ°ã®ã³ã¢ã®ããŒã¿ãäžåºŠã«ã¹ãã£ã³ã§ããŸãã ãããç§ãã¡ãå®è£
ããäºå®ã®ãã®ã§ãã
ããŠãçŸã®è©±ã亀差ç¹é¢æ°ã«æ»ããŸãããã timeseries_ids
ã ã©ã®ãããªå®è£
ãããããèããŠã¿ãŸãããã ãã®æ©èœã䜿çšãããšã timeseries_ids
ç¹å®ã®ã»ããã«å¯Ÿã㊠label=value
.
æåã®ãªãã·ã§ã³ã¯åçŽãªå®è£
ã§ãã XNUMX ã€ã®ãã¹ããããã«ãŒãã ããã§é¢æ°ã®å
¥åãååŸããŸã intersectInts
XNUMXã€ã®ã¹ã©ã€ã¹ - a
О b
ã åºåã§ã¯ããããã®ã¹ã©ã€ã¹ã®äº€å·®éšåãè¿ãããã¯ãã§ãã
çŽ æŽãªå®è£
ã¯æ¬¡ã®ããã«ãªããŸãã ã¹ã©ã€ã¹ããã®ãã¹ãŠã®å€ãå埩åŠçããŸã a
ããã®ã«ãŒãå
ã§ã¹ã©ã€ã¹ã®ãã¹ãŠã®å€ã調ã¹ãŸãã b
ã ãããŠããããæ¯èŒããŸãã ããããäžèŽããå Žåã亀差ç¹ãèŠã€ãã£ãããšã«ãªããŸãã ãããŠãããä¿åããŸã result
.
ãã¡ãªããã¯äœã§ãã? äºæ¬¡é¢æ°ã®è€éããäž»ãªæ¬ ç¹ã§ãã ããšãã°ããã£ã¡ã³ã·ã§ã³ãã¹ã©ã€ã¹ã®å Žåã a
О b
äžåºŠã« XNUMX äžä»¶ã®å Žåããã®é¢æ°ã¯æ±ºããŠçããè¿ããŸããã ãªããªããXNUMXå
åã®å埩ãè¡ãå¿
èŠãããããã§ãããã¯çŸä»£ã®ã³ã³ãã¥ãŒã¿ãŒã§ãããªãã®åæ°ã§ãã
XNUMX çªç®ã®å®è£
ã¯ãããã«åºã¥ããŠããŸãã å°å³ãäœæããŸãã ã¹ã©ã€ã¹ããã®ãã¹ãŠã®å€ããã®ãããã«å
¥ããŸã a
ã 次ã«ãå¥ã®ã«ãŒãã§ã¹ã©ã€ã¹ãåŠçããŸãã b
ã ãããŠããã®å€ãã¹ã©ã€ã¹ããã®ãã®ã§ãããã©ããã確èªããŸã b
å°å³ã§ã ååšããå Žåã¯ãçµæã«è¿œå ããŸãã
ã¡ãªããã¯äœã§ãã? å©ç¹ã¯ãç·åœ¢ã®è€éãã ããååšããããšã§ãã ã€ãŸããã¹ã©ã€ã¹ã倧ããå Žåãé¢æ°ã¯ããé«éã«å®è¡ãããŸãã 2 äžãµã€ãºã®ã¹ã©ã€ã¹ã®å Žåããã®é¢æ°ã¯ XNUMX äžåã®å埩ã§å®è¡ãããŸã (åã®é¢æ°ã®å埩åæ°ã¯ XNUMX å å)ã
æ¬ ç¹ã¯ããã®é¢æ°ããã®ããããäœæããããã«ããå€ãã®ã¡ã¢ãªãå¿ èŠãšããããšã§ãã
XNUMX çªç®ã®æ¬ ç¹ã¯ãããã·ã¥åã®ãªãŒããŒãããã倧ããããšã§ãã ãã®æ¬ ç¹ã¯ããŸãæããã§ã¯ãããŸããã ãŸããç§ãã¡ã«ãšã£ãŠãããã¯ããŸãæããã§ã¯ãªãã£ãã®ã§ãVictoriaMetrics ã§ã¯åœåã亀差ã®å®è£ ã¯ããããä»ããŠããŸããã ãããããããã¡ã€ãªã³ã°ã®çµæãã¡ã€ã³ ããã»ããµã®æéãããããžã®æžã蟌ã¿ãšããã®ãããå ã®å€ã®ååšã®ç¢ºèªã«è²»ããããŠããããšãããããŸããã
ãªããããã®å Žæ㧠CPU æéãç¡é§ã«ãªãã®ã§ãããã? Go ã¯ãããã®è¡ã«å¯ŸããŠããã·ã¥æäœãå®è¡ããããã§ãã ã€ãŸããHashMap å ã®ç¹å®ã®ã€ã³ããã¯ã¹ã«ããããŒã«ã¢ã¯ã»ã¹ããããã«ãããŒã®ããã·ã¥ãèšç®ããŸãã ããã·ã¥èšç®æäœã¯æ°åããç§ã§å®äºããŸãã VictoriaMetrics ã§ã¯ãããé ãã§ãã
ãã®ã±ãŒã¹å°çšã«æé©åããããããã»ãããå®è£
ããããšã«ããŸããã XNUMX ã€ã®ã¹ã©ã€ã¹ã®äº€å·®éšåã¯æ¬¡ã®ããã«ãªããŸãã ããã§ãããã»ãããäœæããŸãã æåã®ã¹ã©ã€ã¹ããèŠçŽ ãè¿œå ããŸãã 次ã«ãXNUMX çªç®ã®ã¹ã©ã€ã¹ã«ãããã®èŠçŽ ãååšãããã©ããã確èªããŸãã ãããŠããããçµæã«è¿œå ããŸãã ã€ãŸããåã®äŸãšã»ãšãã©å€ãããŸããã ããã§å¯äžã®ããšã¯ãããããžã®ã¢ã¯ã»ã¹ãã«ã¹ã¿ã é¢æ°ã«çœ®ãæããããšã§ãã add
О has
.
äžèŠãããšã以åã«æšæºãããã䜿çšããããã®åŸä»ã®é¢æ°ãåŒã³åºãããå Žåãããã¯åäœãé ããªãã¯ãã®ããã«èŠããŸããããããã¡ã€ãªã³ã°ã«ãããšãVictoriaMetrics ã®å Žåãããã¯æšæºãããããã 10 åé«éã«åäœããŸãã
ããã«ããããå®è£ ãšæ¯èŒããŠäœ¿çšããã¡ã¢ãªãå€§å¹ ã«å°ãªããªããŸãã ããã«ã¯ XNUMX ãã€ãã®å€ã§ã¯ãªãããããä¿åããŠããããã§ãã
ãã®å®è£ ã®æ¬ ç¹ã¯ãããã»ã©æçœã§ã¯ãªããèªæã§ã¯ãªãããšã§ãã
å€ãã®äººãæ°ã¥ããŠããªããã XNUMX ã€ã®æ¬ ç¹ã¯ããã®å®è£ ãå Žåã«ãã£ãŠã¯ããŸãæ©èœããªãå¯èœæ§ãããããšã§ãã ã€ãŸããVictoriaMetrics æç³»å ID ã®äº€å·®ãšããç¹å®ã®ã±ãŒã¹ã«å¯ŸããŠæé©åãããŸãã ãã¹ãŠã®ã±ãŒã¹ã«é©ããŠãããšããããã§ã¯ãããŸããã ééã£ãŠäœ¿çšãããšãããã©ãŒãã³ã¹ã¯åäžããŸããããã¡ã¢ãªäžè¶³ãšã©ãŒãçºçããããã©ãŒãã³ã¹ãäœäžããŸãã
ãã®æ§é ã®å®è£
ãèããŠã¿ãŸãããã ã芧ã«ãªãããå Žåã¯ãVictoriaMetrics ãœãŒã¹ã®ãã©ã«ããŒã«ãããŸãã timeseries_id
㯠64 ãããå€ã§ãæåã® 32 ãããã¯åºæ¬çã«äžå®ã§ãæåŸã® 32 ãããã®ã¿ãå€åããŸãã
ãã®ããŒã¿æ§é ã¯ãã£ã¹ã¯ã«ã¯ä¿åããããã¡ã¢ãªå ã§ã®ã¿åäœããŸãã
ããã«ãã® API ããããŸãã ããã»ã©è€éã§ã¯ãããŸããã ãã® API ã¯ãVictoriaMetrics ã®ç¹å®ã®äœ¿çšäŸã«åãããŠç¹å¥ã«èª¿æŽãããŠããŸãã ã€ãŸããããã«ã¯äžèŠãªæ©èœã¯ãããŸããã VictoriaMetrics ã«ãã£ãŠæ瀺çã«äœ¿çšãããé¢æ°ã次ã«ç€ºããŸãã
æ©èœããããŸã add
ãæ°ããå€ãè¿œå ããŸãã æ©èœããããŸã has
ãæ°ããå€ããã§ãã¯ããŸãã ãããŠæ©èœããããŸã del
ãå€ãåé€ããŸãã ãã«ããŒæ©èœããããŸã len
ãã»ããã®ãµã€ãºãè¿ããŸãã é¢æ° clone
ã¯ããŒã³ãããããããã ãããŠæ©èœ appendto
ãã®ã»ãããã¹ã©ã€ã¹ã«å€æããŸã timeseries_ids
.
ãã®ããŒã¿æ§é ã®å®è£ ã¯æ¬¡ã®ããã«ãªããŸãã set ã«ã¯ XNUMX ã€ã®èŠçŽ ããããŸãã
-
ItemsCount
ã¯ãã»ããå ã®èŠçŽ ã®æ°ããã°ããè¿ããã«ã㌠ãã£ãŒã«ãã§ãã ãã®è£å©ãã£ãŒã«ããªãã§ãå¯èœã§ãããVictoriaMetrics ã¯ã¢ã«ãŽãªãºã ã§ãããã»ããã®é·ããé »ç¹ã«ã¯ãšãªãããããããã«è¿œå ããå¿ èŠããããŸããã -
XNUMX çªç®ã®ãã£ãŒã«ãã¯
buckets
ã ããã¯æ§é ã®äžéšã§ãbucket32
ã åæ§é äœã«ã¯hi
åéã ãããã¯äžäœ 32 ãããã§ãã ãããŠXNUMXã€ã®ã¹ã©ã€ã¹ -b16his
Оbuckets
ã®bucket16
æ§é ç©ã
16 ãããæ§é ã® 64 çªç®ã®éšåã®äžäœ 16 ããããããã«æ ŒçŽãããŸãã ããã§ã¯ãåãã€ãã®äžäœ XNUMX ãããã®ãããã»ãããä¿åãããŸãã
Bucket64
é
åã§æ§æãããŸã uint64
ã é·ãã¯ãããã®å®æ°ã䜿çšããŠèšç®ãããŸãã XNUMXã€ã§ bucket16
æ倧ãŸã§ä¿åã§ãã 2^16=65536
å°ãã ããã 8 ã§å²ããšã8 ãããã€ãã«ãªããŸãã ããäžåºŠ8ã§å²ããš1000ã§ã uint64
æå³ã ãã㯠Bucket16
â ãã㯠8 ãããã€ãã®æ§é ã§ãã
æ°ããå€ãè¿œå ããããã®ãã®æ§é ã®ã¡ãœããã® XNUMX ã€ãã©ã®ããã«å®è£ ãããããèŠãŠã¿ãŸãããã
ããã¯ãã¹ãŠããå§ãŸããŸã uint64
æå³ã äžäœ 32 ããããèšç®ããäžäœ 32 ããããèšç®ããŸãã ãã¹ãŠãèŠãŠã¿ãŸããã buckets
ã åãã±ããã®äžäœ 32 ããããšè¿œå ãããå€ãæ¯èŒããŸãã ãããŠããããäžèŽããå Žåãé¢æ°ãåŒã³åºããŸã add
æ§é äœ b32 å
buckets
ã ããã«äžäœ 32 ããããè¿œå ããŸãã ãããŠãããæ»ã£ãå Žå true
ããã®å Žåãããã¯ããã®ãããªå€ãããã«è¿œå ããŸãããããã®ãããªå€ã¯ååšããªãã£ãããšãæå³ããŸãã æ»ã£ãŠããã false
ã§ããã°ããã®ãããªæå³ã¯ãã§ã«ååšããŠããŸããã 次ã«ãæ§é å
ã®èŠçŽ ã®æ°ãå¢ãããŸãã
å¿
èŠãªãã®ãèŠã€ãããªãå Žå bucket
å¿
èŠãªhi-valueãæå®ããŠé¢æ°ãåŒã³åºããŸãã addAlloc
ãæ°ãããã®ãçæãããŸã bucket
ããã±ããæ§é ã«è¿œå ããŸãã
ãããé¢æ°ã®å®è£
ã§ã b32.add
ã ããã¯ä»¥åã®å®è£
ãšäŒŒãŠããŸãã æäžäœ 16 ããããšæäžäœ 16 ããããèšç®ããŸãã
次ã«ãäžäœ 16 ãããããã¹ãŠèª¿ã¹ãŸãã äžèŽãããã®ãèŠã€ããŸãã äžèŽãããã®ãããã°ãadd ã¡ãœãããåŒã³åºããŸããããã«ã€ããŠã¯æ¬¡ã®ããŒãžã§æ€èšããŸãã bucket16
.
ãããŠããããæãäœãã¬ãã«ã§ãããå¯èœãªéãæé©åããå¿
èŠããããŸãã èšç®ããŸã uint64
ã¹ã©ã€ã¹ãããã®IDå€ãš bitmask
ã ããã¯ãç¹å®ã® 64 ãããå€ã®ãã¹ã¯ã§ããããã®ãããã®ååšã確èªããããèšå®ãããããããã«äœ¿çšã§ããŸãã ãã®ããããèšå®ãããŠãããã©ããã確èªããŠèšå®ããååšãè¿ããŸãã ããã¯ç§ãã¡ã®å®è£
ã§ãããæç³»åã®äº€å·®ãã ID ã®æäœãåŸæ¥ã®ããããšæ¯èŒã㊠10 åé«éåããããšãã§ããŸããã
ãã®æé©åã«å ããŠãVictoriaMetrics ã«ã¯ä»ã«ãå€ãã®æé©åããããŸãã ãããã®æé©åã®ã»ãšãã©ã¯ãå®çšŒåç°å¢ã§ã³ãŒãããããã¡ã€ãªã³ã°ããåŸã«çç±ããã£ãŠè¿œå ãããŸããã
ãããæé©åã®äž»ãªã«ãŒã«ã§ããããã«ããã«ããã¯ããããšä»®å®ããŠæé©åãè¿œå ããªãã§ãã ãããããã«ããã¯ãååšããªãããšãå€æããå¯èœæ§ãããããã§ãã éåžžãæé©åã«ããã³ãŒãã®å質ãäœäžããŸãã ãããã£ãŠããããå®éã®ããŒã¿ã«ãªãããã«ããããã¡ã€ãªã³ã°åŸãã§ããã°æ¬çªç°å¢ã§ã®ã¿æé©åãã䟡å€ããããŸãã èå³ã®ãã人ã¯ãVictoriaMetrics ã®ãœãŒã¹ ã³ãŒããèŠãŠãããã«ããä»ã®æé©åãæ¢çŽ¢ããŠãã ããã
ãããã»ããã«ã€ããŠè³ªåããããŸãã C++ ãã¯ãã« ããŒã«å®è£ ãšéåžžã«ãã䌌ãŠãããæé©åããããããã»ããã§ãã ããããå®è£ ãããã§ããïŒ
ããããããããã§ã¯ãããŸããã ãã®ãããã»ãããå®è£ ãããšãã¯ãVictoriaMetrics ã§äœ¿çšããããããã® ID æç³»åã®æ§é ã«é¢ããç¥èãåèã«ãªããŸããã ãããŠãã®æ§é ã¯ãäžäœ 32 ããããåºæ¬çã«äžå®ã§ãããããªãã®ã§ãã äžäœ 32 ãããã¯å€æŽãããå¯èœæ§ããããŸãã ããããäœãã»ã©ãå€æŽãããé »åºŠãé«ããªããŸãã ãããã£ãŠããã®å®è£ ã¯ãã®ããŒã¿æ§é ã«å¯ŸããŠç¹ã«æé©åãããŠããŸãã ç§ã®ç¥ãéããC++ å®è£ ã¯äžè¬çãªã±ãŒã¹ã«æé©åãããŠããŸãã äžè¬çãªã±ãŒã¹ã«å¯ŸããŠæé©åããŠããç¹å®ã®ã±ãŒã¹ã«å¯ŸããŠã¯æé©ã§ã¯ãªãããšãæå³ããŸãã
ã¢ã¬ã¯ã»ã€ã»ãããŽã£ããæ°ã®ã¬ããŒããèŠãããšããå§ãããŸãã çŽ 32 ãæåã圌㯠ClickHouse ã«ãããç¹å®ã®å°éåéã®æé©åã«ã€ããŠè©±ããŸããã 圌ã¯ãäžè¬çãªã±ãŒã¹ã§ã¯ãC++ å®è£ ãŸãã¯ãã®ä»ã®å®è£ ã¯ãç é¢ã§å¹³åçã«é©åã«æ©èœããããã«èª¿æŽãããŠãããšã ãè¿°ã¹ãŠããŸãã ããã¯ãäžäœ XNUMX ããããã»ãŒäžå®ã§ããããšãããã£ãŠãããç§ãã¡ã®ãããªç¥èã«ç¹åããå®è£ ãããããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸãã
XNUMXçªç®ã®è³ªåããããŸãã InfluxDB ãšã®æ ¹æ¬çãªéãã¯äœã§ãã?
å€ãã®åºæ¬çãªéãããããŸãã ããã©ãŒãã³ã¹ãšã¡ã¢ãªæ¶è²»éã®ç¹ã§ãInfluxDB ã®ãã¹ãã§ã¯ãã«ãŒãã£ããªãã£ã®é«ãæç³»åãå€æ° (ããšãã°æ°çŸäžå) ããå Žåããã®æç³»åã®ã¡ã¢ãªæ¶è²»éã 10 åã«ãªãããšã瀺ãããŠããŸãã ããšãã°ãVictoriaMetrics 㯠1 äžã®ã¢ã¯ãã£ãè¡ããšã« 10 GB ãæ¶è²»ããŸãããInfluxDB 㯠XNUMX GB ãæ¶è²»ããŸãã ããã¯å€§ããªéãã§ãã
XNUMX çªç®ã®åºæ¬çãªéãã¯ãInfluxDB ã«ã¯ãFlux ãš InfluxQL ãšããå¥åŠãªã¯ãšãªèšèªãããããšã§ãã ãããã¯ãæç³»åãæ±ãã«ã¯ããŸã䟿å©ã§ã¯ãããŸããã
ãããŠãã XNUMX ã€ã®éãã¯ãInfluxDB ã«ã¯å°ãå¥åŠãªããŒã¿ ã¢ãã«ããããåè¡ã«ç°ãªãã¿ã°ã®ã»ãããæã€è€æ°ã®ãã£ãŒã«ããæ ŒçŽã§ããããšã§ãã ãããã®è¡ã¯ããã«ããŸããŸãªããŒãã«ã«åå²ãããŸãã ãããã®è¿œå ã®è€éãã«ããããã®ããŒã¿ããŒã¹ã䜿çšããåŸç¶ã®äœæ¥ãè€éã«ãªããŸãã ãµããŒããããç解ãããããã®ã¯é£ããã§ãã
VictoriaMetrics ã§ã¯ãã¹ãŠãã¯ããã«ã·ã³ãã«ã§ãã ããã§ã¯ãåæç³»åã Key-Value ã«ãªããŸãã å€ã¯ç¹ã®éåã§ã - (timestamp, value)
ããããŠããŒã¯ã»ããã§ã label=value
ã ãã£ãŒã«ããšæž¬å®ã®éã«åé¢ã¯ãããŸããã ç§ã®ç¥ãéããç°ãªãè¡éã®èšç®ããŸã å®è£
ãããŠããªã InfluxDB ãšã¯ç°ãªããä»»æã®ããŒã¿ãéžæããŠçµåãå ç®ãæžç®ãä¹ç®ãé€ç®ãè¡ãããšãã§ããŸãã å®è£
ã§ãããšããŠããã³ãŒããããããæžããªããšãããªãã®ã§å€§å€ã§ãã
æ確ãªè³ªåããããŸãã ããªãã話ããããçš®ã®åé¡ãã€ãŸããã®è»¢çœ®ã€ã³ããã¯ã¹ãã¡ã¢ãªã«åãŸããªããããããã§ããŒãã£ã·ã§ã³åãè¡ãããŠãããšããããšãæ£ããç解ããŸããã?
ãŸããæšæºç㪠Go ãããäžã§ã®è»¢çœ®ã€ã³ããã¯ã¹ã®åçŽãªå®è£ ã瀺ããŸããã ãã®é玢åŒã¯ãã£ã¹ã¯ã«ä¿åãããªãããããã®å®è£ ã¯ããŒã¿ããŒã¹ã«ã¯é©ããŠããŸãããããŒã¿ããŒã¹ã¯ãåèµ·åæã«ãã®ããŒã¿ãå©çšå¯èœãªç¶æ ã®ãŸãŸã§ããããã«ãã£ã¹ã¯ã«ä¿åããå¿ èŠããããŸãã ãã®å®è£ ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãåèµ·åãããšã転眮ã€ã³ããã¯ã¹ãæ¶ããŸãã ãããŠããã¹ãŠã®ããŒã¿ãèŠã€ãããªããªããããã¢ã¯ã»ã¹ã§ããªããªããŸãã
ããã«ã¡ã¯ïŒ ãå ±åããããšãããããŸãïŒ ç§ã®ååã¯ããã«ã§ãã ã¯ã€ã«ãããªãŒåºèº«ã§ãã ããã€ã質åããããŸãã 質å 2ã ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ãæ§ç¯ãããšãã«å¥ã®ååãéžæããæéããããŠããŒã¿ãããŒãã£ã·ã§ã³åå²ããŠãããããããããXNUMX ã€ã®ããŒãã£ã·ã§ã³ã« XNUMX ã€ã®ããŒãã£ã·ã§ã³ã®ããŒã¿ãå«ãŸããŠãããšããäºå®ã®ã¿ã«åºã¥ããŠãæ€çŽ¢æã«ããŒã¿ã亀差ã§ããã ãããšæããŸãã?æéãã€ãŸã XNUMX ã€ã®æéééå ã§ããã°ãããŒã¹ãç°ãªãæ¹æ³ã§åæ£ããŠãããšããäºå®ãå¿é ããå¿ èŠã¯ãããŸããã 質å XNUMX - ãããã»ããããã®ä»ãã¹ãŠã䜿çšããŠåæ§ã®ã¢ã«ãŽãªãºã ãå®è£ ããŠãããããããã»ããµåœä»€ã䜿çšããããšããå¯èœæ§ããããŸãã? ãããããã®ãããªæé©åãè©Šããããšãããã§ãããã?
XNUMXã€ç®ã¯ããã«çããŸãã ãŸã ãã®æ®µéã«ã¯éããŠããŸããã ããããå¿ èŠã§ããã°ãããã«è¡ããŸãã ãããŠæåã®è³ªåã¯äœã§ãããïŒ
XNUMX ã€ã®ã·ããªãªã«ã€ããŠèª¬æããŸããã ãããŠãããè€éãªå®è£ ãåãã XNUMX çªç®ã®ãã®ãéžæãããšè¿°ã¹ãŠããŸãã ãããŠåœŒãã¯ãããŒã¿ãæéã«ãã£ãŠåå²ãããæåã®æ¹æ³ã奜ã¿ãŸããã§ããã
ã¯ãã æåã®ã±ãŒã¹ã§ã¯ãåããŒãã£ã·ã§ã³ã«ãããããã¹ãŠã®ããŒãã£ã·ã§ã³ã«ç¶ãæç³»åã®éè€ããŒã¿ãä¿åããå¿ èŠããããããã€ã³ããã¯ã¹ã®ç·éã¯å€§ãããªããŸãã ãŸããæç³»åã®ãã£ãŒã³ ã¬ãŒããå°ããå Žåãã€ãŸãåãç³»åãåžžã«äœ¿çšãããŠããå Žåãæåã®ã±ãŒã¹ã§ã¯ãXNUMX çªç®ã®ã±ãŒã¹ãšæ¯èŒããŠãå æããããã£ã¹ã¯é åã®éãå€§å¹ ã«å€±ãããããšã«ãªããŸãã
ãããã£ãŠãã¯ããæéåå²ã¯è¯ãéžæè¢ã§ãã ããã¡ããŠã¹ã¯ããã䜿çšããŸãã ããããããã¡ããŠã¹ã«ã¯å¥ã®æ¬ ç¹ããããŸãã ãããã®ããŒã¿ãçµåãããšãã¯ããã¹ãŠã®ã©ãã«ãšæç³»åã®ã¡ã¿æ å ±ãã¡ã¢ãªå ã«ä¿æããå¿ èŠããããŸãã ãããã£ãŠãVictoriaMetrics ãšã¯ç°ãªããããŒãžããããŒã¿ã®æçã倧ããå ŽåãããŒãžäžã«ã¡ã¢ãªæ¶è²»éãéåžžã«å¢å ããŸãã ããŒãžã®éãVictoriaMetrics ã¯ã¡ã¢ãªããŸã£ããæ¶è²»ãããããŒãžãããããŒã¿ã®ãµã€ãºã«é¢ä¿ãªããæ¶è²»ãããã®ã¯æ°ãããã€ãã ãã§ãã
䜿çšããŠããã¢ã«ãŽãªãºã ã¯ã¡ã¢ãªã䜿çšããŸãã å€ãå«ã timeseries ã¿ã°ãããŒã¯ããŸãã ãã®ããã«ããŠãããããŒã¿é åãšå¥ã®ããŒã¿é åã«ãã¢ã®ååšããããã©ããã確èªããŸãã ãããŠã亀差ãçºçãããã©ãããããããŸãã éåžžãããŒã¿ããŒã¹ã«ã¯ã«ãŒãœã«ãšã€ãã¬ãŒã¿ãå®è£ ãããŠããããããã®æäœã¯åçŽã«è€éã§ãããããçŸåšã®ã³ã³ãã³ããä¿åãã䞊ã¹æ¿ããããããŒã¿ãå®è¡ããŸãã
ããŒã¿ããã©ããŒã¹ããããã«ã«ãŒãœã«ã䜿çšããªãã®ã¯ãªãã§ãããã?
ã¯ãã
ãœãŒããããè¡ã¯ LevelDB ãŸãã¯ããŒãžã»ããã«ä¿åãããŸãã ã«ãŒãœã«ã移åããŠäº€å·®ç¹ãèŠã€ããããšãã§ããŸãã 䜿ã£ãŠã¿ãŸãããïŒ é ãããã§ãã ã«ãŒãœã«ã䜿çšãããšãè¡ããšã«é¢æ°ãåŒã³åºãå¿ èŠãããããã§ãã é¢æ°åŒã³åºã㯠5 ããç§ã§ãã 100 åè¡ããå Žåãé¢æ°ãåŒã³åºãã ã㧠000 ç§ãããããšãããããŸãã
ããããããšãããã§ãããã¯ãã ãããŠæåŸã®è³ªåã§ãã ãã®è³ªåã¯å°ãå¥åŠã«èããããããããŸããã ããŒã¿ãå°çããç¬éã«å¿ èŠãªãã¹ãŠã®éèšãèªã¿åããå¿ èŠãªåœ¢åŒã§ä¿åããããšãã§ããªãã®ã¯ãªãã§ãã? VictoriaMetricsãClickHouse ãªã©ã®äžéšã®ã·ã¹ãã ã«å€§éã®ããŒã¿ãä¿åããããã«å€ãã®æéãè²»ããã®ã¯ãªãã§ãããã?
ããããããããããã«äŸãæããŸãã å°ããªããã¡ãã®ã¹ããŒãã¡ãŒã¿ãŒãã©ã®ããã«æ©èœãããèããŠã¿ãŸãããã 移åããè·é¢ãèšé²ããåžžã«ããã XNUMX ã€ã®å€ã«å ç®ããXNUMX çªç®ã®å€ãå ç®ããŸãã ãããŠåããŸãã ãããŠå¹³åçãªé床ãåŸãããŸãã ã»ãŒåãããšãã§ããŸãã å¿ èŠãªäºå®ããã¹ãŠãã®å Žã§åèšããŸãã
ããããŸããã質åã¯ããããŸããã ããªãã®äŸã«ã¯ãã®å ŽããããŸãã å¿ èŠãªéèšãããã£ãŠããå Žåããããæè¯ã®å®è£ ã§ãã ããããåé¡ã¯ããŠãŒã¶ãŒããããã®ã¡ããªã¯ã¹ãäžéšã®ããŒã¿ã ClickHouse ã«ä¿åããŠãããå°æ¥çã«ããããã©ã®ããã«éèšããŠãã£ã«ã¿ãªã³ã°ãããããŸã ããã£ãŠããªãããããã¹ãŠã®çããŒã¿ãä¿åããå¿ èŠãããããšã§ãã ããããå¹³åå€ãèšç®ããå¿ èŠãããããšãããã£ãŠããå Žåã¯ã倧éã®çã®å€ãããã«ä¿åãã代ããã«ãå¹³åå€ãèšç®ããŠã¿ãŠã¯ãããã§ãããã? ãã ããããã¯å¿ èŠãªãã®ãæ£ç¢ºã«ç¥ã£ãŠããå Žåã«éããŸãã
ã¡ãªã¿ã«ãæç³»åãä¿åããããŒã¿ããŒã¹ã¯éèšã®ã«ãŠã³ãããµããŒãããŠããŸãã ããšãã°ãããã¡ããŠã¹ã¯ãµããŒãããŠããŸã
ããšãã°ã以åã®ä»äºã§ã¯ãéå» XNUMX æéã®ã¹ã©ã€ãã£ã³ã° ãŠã£ã³ããŠå ã®ã€ãã³ãã®æ°ãæ°ããå¿ èŠããããŸããã åé¡ã¯ãGo ã§ã«ã¹ã¿ã å®è£ ãã€ãŸãããããã«ãŠã³ãããããã®ãµãŒãã¹ãäœæããå¿ èŠãããããšã§ãã ãã®ãµãŒãã¹ã¯èšç®ãé£ãããããæçµçã«ã¯èªæã§ã¯ãããŸããã§ããã äžå®ã®æéééã§ããã€ãã®éèšãã«ãŠã³ãããå¿ èŠãããå Žåãå®è£ ã¯ç°¡åã«ãªããŸãã ã¹ã©ã€ãã£ã³ã° ãŠã£ã³ããŠå ã®ã€ãã³ããã«ãŠã³ããããå Žåãããã¯æã£ãã»ã©åçŽã§ã¯ãããŸããã ããã¯å®è£ ãé£ãããããClickHouse ãæç³»åããŒã¿ããŒã¹ã«ã¯ãŸã å®è£ ãããŠããªããšæããŸãã
ãããŠããäžã€è³ªåã§ãã ç§ãã¡ã¯ã¡ããã©å¹³ååã«ã€ããŠè©±ããŠãããšããããã€ãŠã¯ Carbon ããã¯ãšã³ããåãã Graphite ã®ãããªãã®ããã£ãããšãæãåºããŸããã ãããŠã圌ã¯å€ãããŒã¿ãéåŒãæ¹æ³ãã€ãŸã XNUMX åããšã« XNUMX ãã€ã³ããXNUMX æéããšã« XNUMX ãã€ã³ããªã©ãæ®ãæ¹æ³ãç¥ã£ãŠããŸãããåççã«ãããã¯ãæ¯èŒçèšãã° XNUMX ãæåã®çããŒã¿ãå¿ èŠãªå Žåã«éåžžã«äŸ¿å©ã§ããã以å€ã®ããŒã¿ã¯äœã§ãå¯èœã§ããéåŒãããŸãã ãã ããPrometheus ãš VictoriaMetrics ã¯ãã®æ©èœããµããŒãããŠããŸããã ããããµããŒãããäºå®ã¯ãããŸãã? ããã§ãªãå Žåã¯ããªãããã§ã¯ãªãã®ã§ãããã?
ã質åããããšãããããŸãã ãŠãŒã¶ãŒã¯å®æçã«ãã®è³ªåãããŸãã 圌ãã¯ãããŠã³ãµã³ããªã³ã°ã®ãµããŒãããã€è¿œå ããããå°ããŸãã ããã«ã¯ããã€ãã®åé¡ããããŸãã ãŸãããã¹ãŠã®ãŠãŒã¶ãŒãç解ããããš downsampling
äœããç°ãªããŸããç¹å®ã®ééã§ä»»æã®ç¹ãååŸããã人ãããã°ãæ倧å€ãæå°å€ãå¹³åå€ãååŸããã人ãããŸãã å€ãã®ã·ã¹ãã ãããŒã¿ããŒã¹ã«ããŒã¿ãæžã蟌ãå Žåããã¹ãŠãã²ãšãŸãšãã«ããããšã¯ã§ããŸããã ã·ã¹ãã ããšã«ç°ãªãéåŒããå¿
èŠã«ãªãå¯èœæ§ããããŸãã ãããŠããããå®è£
ããã®ã¯å°é£ã§ãã
50 ã€ç®ã¯ãVictoriaMetrics ã¯ãClickHouse ãšåæ§ã«ã倧éã®çããŒã¿ãåŠçããããã«æé©åãããŠãããããã·ã¹ãã ã«å€æ°ã®ã³ã¢ãããå Žåã000 ç§ä»¥å ã« 000 åè¡ãåŠçã§ããããšã§ãã VictoriaMetrics ã§æç³»åãã€ã³ããã¹ãã£ã³ â ã³ã¢ããã 20 ç§ããã XNUMX ãã€ã³ãã ãããŠããã®ããã©ãŒãã³ã¹ã¯æ¢åã®ã³ã¢ã«åãããŠæ¡åŒµãããŸãã ã€ãŸããããšãã° XNUMX åã®ã³ã¢ãããå ŽåãXNUMX ç§ããã XNUMX åãã€ã³ããã¹ãã£ã³ããããšã«ãªããŸãã VictoriaMetrics ãš ClickHouse ã®ãã®ç¹æ§ã«ãããããŠã³ãµã³ããªã³ã°ã®å¿ èŠæ§ãæžããŸãã
ãã 0,4 ã€ã®ç¹åŸŽã¯ãVictoriaMetrics ããã®ããŒã¿ãå¹æçã«å§çž®ããããšã§ãã æ¬çªç°å¢ã§ã®å¹³åã®å§çž®ã¯ããã€ã³ãããã 0,8 ïœ XNUMX ãã€ãã§ãã åãã€ã³ãã¯ã¿ã€ã ã¹ã¿ã³ã + å€ã§ãã ãŸããå¹³åã㊠XNUMX ãã€ãæªæºã«å§çž®ãããŸãã
ã»ã«ã²ã€ã 質åããããŸãã æå°é²é³æéã¯ã©ããããã§ãã?
XNUMXããªç§ã ç§ãã¡ã¯æè¿ãä»ã®æç³»åããŒã¿ããŒã¹éçºè ãšè©±ãããŸããã æå°ã¿ã€ã ã¹ã©ã€ã¹ã¯ XNUMX ç§ã§ãã ããšãã°ãGraphite ã§ã¯ãããã XNUMX ç§ã§ãã OpenTSDB ã§ã XNUMX ç§ã§ãã InfluxDB ã®ç²ŸåºŠã¯ããç§ã§ãã Prometheus ã§ã¯ XNUMX ããªç§ã§ãããããVictoriaMetrics ã§ã¯ XNUMX ããªç§ã§ãã VictoriaMetrics ã¯ããšããš Prometheus ã®ãªã¢ãŒã ã¹ãã¬ãŒãžãšããŠéçºãããŸããã ããããä»ã§ã¯ä»ã®ã·ã¹ãã ããããŒã¿ãä¿åã§ããããã«ãªããŸããã
ç§ã話ãããæ åœè ã¯ã粟床㯠30 ç§ãã XNUMX ç§ã§ãããšèšã£ãŠããŸãã粟床ã¯æç³»åããŒã¿ããŒã¹ã«ä¿åãããŠããããŒã¿ã®çš®é¡ã«äŸåããããã圌ãã«ãšã£ãŠã¯ããã§ååã§ãã ããã DevOps ããŒã¿ãŸãã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ããã®ããŒã¿ã§ãããXNUMX åããã XNUMX ç§ã®ééã§åéãããå Žåã¯ãXNUMX ç§ã®ç²ŸåºŠã§ååã§ããããã以äžã®ãã®ã¯å¿ èŠãããŸããã ãããŠããã®ããŒã¿ãé«é »åºŠååŒã·ã¹ãã ããåéããå Žåã¯ãããç§ã®ç²ŸåºŠãå¿ èŠã§ãã
VictoriaMetrics ã®ããªç§ç²ŸåºŠã¯ DevOps ã®ã±ãŒã¹ã«ãé©ããŠãããã¬ããŒãã®åé ã§è¿°ã¹ãã»ãšãã©ã®ã±ãŒã¹ã«é©ããŠããŸãã å¯äžé©ããŠããªãå¯èœæ§ãããã®ã¯ãé«é »åºŠååŒã·ã¹ãã ã§ãã
ããããšãïŒ ãããŠããäžã€ã®è³ªåã PromQL ã®äºææ§ãšã¯äœã§ãã?
å®å
šãªäžäœäºææ§ã VictoriaMetrics 㯠PromQL ãå®å
šã«ãµããŒãããŠããŸãã ããã«ãPromQL ã«æ¬¡ã®é«åºŠãªæ©èœãè¿œå ãããŸãã
ãã¬ã°ã©ã ãã£ã³ãã«
ç»é²ãŠãŒã¶ãŒã®ã¿ãã¢ã³ã±ãŒãã«åå ã§ããŸãã
Prometheus ã®é·æã¹ãã¬ãŒãžãšã㊠VictoriaMetrics ã«åãæ¿ããããšã劚ããŠããã®ã¯äœã§ãã? (ã³ã¡ã³ãã«æžããŠãã ãããã¢ã³ã±ãŒãã«è¿œå ããŸã))
-
èŠèŽè ã®ïŒïŒ%ãPrometheus5ã¯äœ¿çšããŸãã
-
èŠèŽè ã®ïŒïŒ%ãVictoriaMetrics2 ã«ã€ããŠç¥ããŸããã§ãã
7 人ã®ãŠãŒã¶ãŒãæ祚ããŸããã 12åã®ãŠãŒã¶ãŒãæ£æš©ããã
åºæïŒ habr.com