ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΊΠΎΠ΄ VictoriaMetrics, Π‘Π£Π‘Π” для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов, совмСстимой с Prometheus

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ исходныС тСксты VictoriaMetrics — быстрой ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π” для хранСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ряда (запись ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ врСмя ΠΈ Π½Π°Π±ΠΎΡ€ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… этому Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· пСриодичСский опрос состояния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ сбор ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ). ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ InfluxDB, TimescaleDB, Thanos, Cortex ΠΈ Uber M3. Код написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ особСнности VictoriaMetrics:

  • ΠŸΡ€ΠΎΡΡ‚Π° Π² эксплуатации. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ ΠΈΠ· сСбя ΠΎΠ΄ΠΈΠ½ исполняСмый Ρ„Π°ΠΉΠ» с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ настройками, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΏΡ€ΠΈ запускС. ВсС Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„Π»Π°Π³Π° «-storageDataPath»;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка запросов PromQL, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² систСмС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Prometheus. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ подзапросы PromQL ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ «offset», ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ «WIDTH», ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ «if» ΠΈ «default», Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²;
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² качСствС Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊ Prometheus ΠΈ Grafana.
  • НаличиС Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ заполнСния для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ историчСских Π΄Π°Π½Π½Ρ‹Ρ…;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Prometheus API, Influx, Graphite ΠΈ OpenTSDB. Π’ Ρ‚ΠΎΠΌ числС VictoriaMetrics ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² качСствС ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹ InfluxDB ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с совмСстимыми с InfluxDB ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Telegraf;
  • Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ рСсурсов ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ систСмами. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСстах VictoriaMetrics ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ InfluxDB ΠΈ TimescaleDB ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вставки ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ 20 Ρ€Π°Π·. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ аналитичСских запросов Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с рСляционными Π‘Π£Π‘Π” PostgreSQL ΠΈ MySQL ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚ 10 Π΄ΠΎ 1000 Ρ€Π°Π·.

    ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΊΠΎΠ΄ VictoriaMetrics, Π‘Π£Π‘Π” для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов, совмСстимой с Prometheus

    ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΊΠΎΠ΄ VictoriaMetrics, Π‘Π£Π‘Π” для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов, совмСстимой с Prometheus

    ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΊΠΎΠ΄ VictoriaMetrics, Π‘Π£Π‘Π” для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов, совмСстимой с Prometheus

  • Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‡Π΅Π½ΡŒ большого числа ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов потрСбляСт Π΄ΠΎ 10 Ρ€Π°Π· мСньшС ΠžΠ—Π£, Ρ‡Π΅ΠΌ InfluxDB.
  • Высокая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ сТатия Π΄Π°Π½Π½Ρ‹Ρ… Π² дисковом Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с TimescaleDB ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄ΠΎ 70 Ρ€Π°Π· большС записСй;
  • НаличиС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ с большими Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΌ числом ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π² сСкунду (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ТёсткиС диски ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° AWS, Google Cloud ΠΈ Microsoft Azure);
  • ΠŸΡ€ΠΎΡΡ‚Π°Ρ систСма Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π½Π° основС ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ²;
  • НаличиС срСдств для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ цСлостности Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΎΡ‚ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ экстрСнном ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания (Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ ΠΆΡƒΡ€Π½Π°Π»ΡŒΠ½ΠΎ-структурированного Π΄Π΅Ρ€Π΅Π²Π° со слияниСм);
  • РСализация Π½Π° языкС Go, Ρ‡Ρ‚ΠΎ обСспСчиваСт компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Rust ΠΈ C++.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ исходныС ΠΊΠΎΠ΄Ρ‹ кластСрной вСрсий, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° нСсколько сСрвСров ΠΈ дСмонстрируСт Π½ΠΈΠ·ΠΊΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы. Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ срСдства обСспСчСния высокой доступности.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ