ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ стСнограмата Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΡ‚ края Π½Π° 2019 Π³. Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин β€žGo optimizations in VictoriaMetricsβ€œ

Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΡΠœΠ΅Ρ‚Ρ€ΠΈΠΊΡ - Π±ΡŠΡ€Π·Π° ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠ° Π‘Π£Π‘Π” Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии (Π·Π°ΠΏΠΈΡΡŠΡ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ стойности, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰ΠΈ Π½Π° Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ Ρ‡Ρ€Π΅Π· ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° сСнзоритС ΠΈΠ»ΠΈ колСкцията ΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ).

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π•Ρ‚ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠ° към Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠ° Π½Π° Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ - https://youtu.be/MZ5P21j_HLE

Π‘Π»Π°ΠΉΠ΄ΠΎΠ²Π΅

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π Π°Π·ΠΊΠ°ΠΆΠΈ Π½ΠΈ Π·Π° сСбС си. Аз съм ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин. Π’ΡƒΠΊ моят Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π² github. Аз съм Π·Π°ΠΏΠ°Π»Π΅Π½ ΠΏΠΎ Go ΠΈ оптимизацията Π½Π° производитСлността. Написах ΠΌΠ½ΠΎΠ³ΠΎ всякакви ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ с fast, ΠΈΠ»ΠΈ с quick прСфикс.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° работя Π²ΡŠΡ€Ρ…Ρƒ VictoriaMetrics. Какво Π΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ правя Ρ‚Π°ΠΌ? Π©Π΅ говоря Π·Π° Ρ‚ΠΎΠ²Π° Π² Ρ‚Π°Π·ΠΈ прСзСнтация.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π‘Ρ…Π΅ΠΌΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π΅ слСдната:

  • ΠŸΡŠΡ€Π²ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ VictoriaMetrics.
  • Π’ΠΎΠ³Π°Π²Π° Ρ‰Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠ²ΠΎ прСдставляват Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ говоря Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ: ΠΎΡ‚ ΠΊΠ°ΠΊΠ²ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ.
  • И Ρ‚ΠΎΠ³Π°Π²Π° Π½Π΅ΠΊΠ° Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са във VictoriaMetrics. Π’ΠΎΠ²Π° са оптимизация Π·Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс ΠΈ оптимизация Π·Π° внСдряванСто Π½Π° bitset Π² Go.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Какво Π΅ VictoriaMetrics Π·Π½Π°Π΅ Π»ΠΈ някой ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°? Π£Π°Ρƒ, ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π° Π²Π΅Ρ‡Π΅ знаят. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€Π° Π½ΠΎΠ²ΠΈΠ½Π°. Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ знаят, Ρ‚ΠΎΠ²Π° Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π‘Π°Π·ΠΈΡ€Π°Π½ Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° ClickHouse, Π½Π° някои подробности Π·Π° внСдряванСто Π½Π° ClickHouse. НапримСр, Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° ΠΊΠ°Ρ‚ΠΎ: MergeTree, ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изчислСниС Π½Π° всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ процСсорни ядра ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° производитСлността Ρ‡Ρ€Π΅Π· Ρ€Π°Π±ΠΎΡ‚Π° Π²ΡŠΡ€Ρ…Ρƒ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС поставят Π² кСша Π½Π° процСсора.

VictoriaMetrics осигурява Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΎΡ‚ΠΎ компрСсиранС Π½Π° Π΄Π°Π½Π½ΠΈ Π² сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅.

Π’ΠΎΠΉ сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ - тоСст ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ процСсори, ΠΏΠΎΠ²Π΅Ρ‡Π΅ RAM Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€. VictoriaMetrics ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Π΅Π·ΠΈ Π½Π°Π»ΠΈΡ‡Π½ΠΈ рСсурси ΠΈ Ρ‰Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π°Ρ‚Π° производитСлност.

ОсвСн Ρ‚ΠΎΠ²Π° VictoriaMetrics сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ β€” Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ възли към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° VictoriaMetrics ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° производитСлност Ρ‰Π΅ нараства ΠΏΠΎΡ‡Ρ‚ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ.

ΠšΠ°ΠΊΡ‚ΠΎ сС досСщатС, VictoriaMetrics Π΅ Π±ΡŠΡ€Π·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° пиша Π΄Ρ€ΡƒΠ³ΠΈ. И Π΅ написано Π² Go, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ говоря Π·Π° Ρ‚ΠΎΠ²Π° Π½Π° Ρ‚Π°Π·ΠΈ срСща.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Кой Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π²Ρ€Π΅ΠΌΠ΅Π²Π° сСрия? ОсвСн Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ·Π½Π°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π°. Π’Ρ€Π΅ΠΌΠ΅Π²Π°Ρ‚Π° ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° Π΅ ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ Π΄Π²ΠΎΠΉΠΊΠΈ (timestamp, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚Π΅Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ са сортирани ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅. Бтойността Π΅ число с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая - float64.

ВсСки Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΎ с ΠΊΠ»ΡŽΡ‡. Какъв Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΡŽΡ‡? Π‘ΡŠΡΡ‚ΠΎΠΈ сС ΠΎΡ‚ Π½Π΅ΠΏΡ€Π°Π·Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡŽΡ‡-стойност.

Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²Π° сСрия. ΠšΠ»ΡŽΡ‡ΡŠΡ‚ Π½Π° Ρ‚Π°Π·ΠΈ сСрия Π΅ ΡΠΏΠΈΡΡŠΠΊΡŠΡ‚ с Π΄Π²ΠΎΠΉΠΊΠΈ: __name__="cpu_usage" Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° показатСля, instance="my-server" Π΅ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΡŠΠ±ΠΈΡ€Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π», datacenter="us-east" - Ρ‚ΠΎΠ²Π° Π΅ Ρ†Π΅Π½Ρ‚ΡŠΡ€ΡŠΡ‚ Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° врСмСвия Ρ€Π΅Π΄, ΡΡŠΡΡ‚ΠΎΡΡ‰ сС ΠΎΡ‚ Ρ‚Ρ€ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡŽΡ‡-стойност. Π’ΠΎΠ·ΠΈ ΠΊΠ»ΡŽΡ‡ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° списък ΠΎΡ‚ Π΄Π²ΠΎΠΉΠΊΠΈ (timestamp, value). t1, t3, t3, ..., tN са Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°Ρ€ΠΊΠΈ, 10, 20, 12, ..., 15 са ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ стойности. Π’ΠΎΠ²Π° Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° процСсора Π·Π° дадСния Ρ€Π΅Π΄.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

КъдС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии? Някой ΠΈΠΌΠ° Π»ΠΈ прСдстава?

  • Π’ DevOps ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Ρ‚Π΅ CPU, RAM, ΠΌΡ€Π΅ΠΆΠ°, rps, Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Ρ‚.Π½.
  • IoT - ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°ΠΌΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, наляганС, Π³Π΅ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΈ ΠΈ ΠΎΡ‰Π΅ Π½Π΅Ρ‰ΠΎ.
  • Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° финанси - ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° слСдим Ρ†Π΅Π½ΠΈΡ‚Π΅ Π·Π° всякакви Π°ΠΊΡ†ΠΈΠΈ ΠΈ Π²Π°Π»ΡƒΡ‚ΠΈ.
  • Π’ допълнСниС, Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° наблюдСниС Π½Π° производствСнитС процСси във Ρ„Π°Π±Ρ€ΠΈΠΊΠΈΡ‚Π΅. ИмамС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ VictoriaMetrics Π·Π° наблюдСниС Π½Π° Π²ΡΡ‚ΡŠΡ€Π½ΠΈ Ρ‚ΡƒΡ€Π±ΠΈΠ½ΠΈ Π·Π° Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ.
  • Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ сСрии са ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° информация ΠΎΡ‚ сСнзори Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ устройства. НапримСр Π·Π° двигатСля; Π·Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅ Π½Π° наляганСто Π² Π³ΡƒΠΌΠΈΡ‚Π΅; Π·Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅ Π½Π° скорост, разстояниС; Π·Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Ρ…ΠΎΠ΄ Π½Π° Π±Π΅Π½Π·ΠΈΠ½ ΠΈ Π΄Ρ€.
  • Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ сСрии ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° наблюдСниС Π½Π° самолСти. ВсСки самолСт ΠΈΠΌΠ° Ρ‡Π΅Ρ€Π½Π° кутия, която ΡΡŠΠ±ΠΈΡ€Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° Π·Π΄Ρ€Π°Π²Π΅Ρ‚ΠΎ Π½Π° самолСта. Π’Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΈ Π² космичСската индустрия.
  • Π—Π΄Ρ€Π°Π²Π΅ΠΎΠΏΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π΅ ΠΊΡ€ΡŠΠ²Π½ΠΎ наляганС, пулс ΠΈ Ρ‚.Π½.

МоТС Π±ΠΈ всС ΠΎΡ‰Π΅ ΠΈΠΌΠ° прилоТСния, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ съм Π·Π°Π±Ρ€Π°Π²ΠΈΠ», Π½ΠΎ сС надявам, Ρ‡Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅, Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ свят. И ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° ΠΈΠΌ нараства всяка Π³ΠΎΠ΄ΠΈΠ½Π°.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π—Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅? Π—Π°Ρ‰ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅?

Въй ΠΊΠ°Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ голямо количСство информация, която Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Π² ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π—Π°Ρ‚ΠΎΠ²Π° сС появиха спСциализирани Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ (timestamp, value) с дадСния ΠΊΠ»ΡŽΡ‡. Π’Π΅ прСдоставят API Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡, ΠΏΠΎ Π΅Π΄Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡŽΡ‡-стойност ΠΈΠ»ΠΈ ΠΏΠΎ няколко Ρ‚Π°ΠΊΠΈΠ²Π° Π΄Π²ΠΎΠΉΠΊΠΈ, ΠΈΠ»ΠΈ ΠΏΠΎ рСгулярСн ΠΈΠ·Ρ€Π°Π·. НапримСр, искатС Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора Π½Π° всички ваши услуги Π² Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ Π² АмСрика, Ρ‚ΠΎΠ³Π°Π²Π° трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚Π°Π·ΠΈ псСвдо-заявка.

ОбикновСно Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии са спСциализирани Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ SQL Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии Π½Π΅ Π΅ подходящ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΈΠΌΠ° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ SQL, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ подходящо. По-подходящи Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки ΠΊΠ°Ρ‚ΠΎ PromQL, InfluxQL, Flux, Q. Надявам сС някой Π΄Π° Π΅ Ρ‡ΡƒΠ²Π°Π» ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π΅Π·ΠΈΡ†ΠΈ. Много ΠΎΡ‚ вас вСроятно са Ρ‡ΡƒΠ²Π°Π»ΠΈ Π·Π° PromQL. Π’ΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π·Π° заявки Prometheus.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ VictoriaMetrics ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π‘ΡŠΡΡ‚ΠΎΠΈ сС ΠΎΡ‚ Π΄Π²Π΅ части. Π’ΠΎΠ²Π° Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π·Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π·Π° стойноститС Π½Π° врСмСвия Ρ€Π΅Π΄. Π’Π΅Π·ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ пристигнС Π½ΠΎΠ² запис, ΠΏΡŠΡ€Π²ΠΎ ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²Π°Ρ‚Π° сСрия Π·Π° дадСния Π½Π°Π±ΠΎΡ€ label=value Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π». НиС Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ стойността Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΄ΠΎΠΉΠ΄Π΅ някаква заявка Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ TSDB, Π½ΠΈΠ΅ ΠΏΡŠΡ€Π²ΠΎ сС ΠΊΠ°Ρ‡Π²Π°ΠΌΠ΅ Π² ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ всичко timeseries_ids записи, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‚ Π½Π° дадСния Π½Π°Π±ΠΎΡ€ label=value. И Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ, индСксирано ΠΎΡ‚ timeseries_ids.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° входяща заявка Π·Π° ΠΈΠ·Π±ΠΎΡ€.

  • На ΠΏΡŠΡ€Π²ΠΎ място, тя ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° всичко timeseries_ids ΠΎΡ‚ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Π΄Π²ΠΎΠΉΠΊΠΈ label=value, ΠΈΠ»ΠΈ отговарят Π½Π° дадСния рСгулярСн ΠΈΠ·Ρ€Π°Π·.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° тя ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° всички Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π΄Π°Π΄Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎΡ‚ΠΎ timeseries_ids.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° някои изчислСния Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Π΅Π·ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, спорСд заявката Π½Π° потрСбитСля. И слСд Ρ‚ΠΎΠ²Π° Π²Ρ€ΡŠΡ‰Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π°.

Π’ Ρ‚Π°Π·ΠΈ прСзСнтация Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° част. Π’ΠΎΠ²Π° Π΅ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ timeseries_ids Ρ‡Ρ€Π΅Π· ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс. Π—Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° част ΠΈ Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° част ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ-късно Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π½Π° VictoriaMetrics, ΠΈΠ»ΠΈ ΠΈΠ·Ρ‡Π°ΠΊΠ°ΠΉΡ‚Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ подготвя Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ πŸ™‚

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π”Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс. Π—Π° ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° просто. Кой Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ? О, Π²Π΅Ρ‡Π΅ няма Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π°. НСка сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Ρ‚ΠΎ.

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ всичко Π΅ просто. Π’ΠΎΠ²Π° Π΅ просто Ρ€Π΅Ρ‡Π½ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π° ΠΊΠ»ΡŽΡ‡ със стойност. Какво Π΅ ΠΊΠ»ΡŽΡ‡? Π’Π°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° label=valueΠšΡŠΠ΄Π΅Ρ‚ΠΎ label ΠΈ value са Π»ΠΈΠ½ΠΈΠΈ. И стойноститС са Π½Π°Π±ΠΎΡ€ timeseries_ids, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π΄Π°Π΄Π΅Π½Π°Ρ‚Π° Π΄Π²ΠΎΠΉΠΊΠ° label=value.

ΠžΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡΡ‚ индСкс Π²ΠΈ позволява Π±ΡŠΡ€Π·ΠΎ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ всичко timeseries_ids, ΠΊΠΎΠΈΡ‚ΠΎ са Π΄Π°Π»ΠΈ label=value.

ОсвСн Ρ‚ΠΎΠ²Π° Π²ΠΈ позволява Π±ΡŠΡ€Π·ΠΎ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ timeseries_ids Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии Π·Π° мноТСство Π΄Π²ΠΎΠΉΠΊΠΈ label=value, ΠΈΠ»ΠΈ Π·Π° Π΄Π²ΠΎΠΉΠΊΠΈ label=regexp. ΠΊΠ°ΠΊ става Ρ‚ΠΎΠ²Π° Π§Ρ€Π΅Π· Π½Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° прСсСчната Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° мноТСството timeseries_ids Π·Π° всСки Ρ‡ΠΈΡ„Ρ‚ label=value.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс. НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с Π½Π°ΠΉ-простата Π½Π°ΠΈΠ²Π½Π° рСализация. Вя ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°.

Ѐункция getMetricIDs ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° списък ΠΎΡ‚ Π½ΠΈΠ·ΠΎΠ²Π΅. ВсСки Ρ€Π΅Π΄ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° label=value. Π’Π°Π·ΠΈ функция Π²Ρ€ΡŠΡ‰Π° списък metricIDs.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ? Π’ΡƒΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° invertedIndex. Π’ΠΎΠ²Π° Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ Ρ€Π΅Ρ‡Π½ΠΈΠΊmap), ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Π½ΠΈΠ·Π° Π² slice ints. Линията ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° label=value.

РСализация Π½Π° функцията: get metricIDs Π·Π° Π½Π°Ρ‡Π°Π»ΠΎ label=value, слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π· всички останали label=value, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ metricIDs Π·Π° тях. И ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡ‚Π΅ функцията intersectInts, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ. И Ρ‚Π°Π·ΠΈ функция Π²Ρ€ΡŠΡ‰Π° прСсСчната Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Ρ‚Π΅Π·ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ слоТно. Но Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΈΠ²Π½ΠΎ изпълнСниС. Какви са Π½Π΅ΠΉΠ½ΠΈΡ‚Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ? ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π½Π° Π½Π°ΠΈΠ²Π½Π°Ρ‚Π° рСализация Π΅, Ρ‡Π΅ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Ρ‚Π°ΠΊΡŠΠ² ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Π² RAM. Π‘Π»Π΅Π΄ рСстартиранС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π³ΡƒΠ±ΠΈΠΌ Ρ‚ΠΎΠ·ΠΈ индСкс. Π’ΠΎΠ·ΠΈ индСкс Π½Π΅ сС записва Π½Π° диск. Π—Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ‚Π°ΠΊΡŠΠ² ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Π΅Π΄Π²Π° Π»ΠΈ Π΅ подходящ.

Вторият Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ ΡΡŠΡ‰ΠΎ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ΠžΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡΡ‚ индСкс трябва Π΄Π° сС ΠΏΠΎΠ±Π΅Ρ€Π΅ Π² RAM. Ако надвишава Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° RAM, Ρ‚ΠΎΠ³Π°Π²Π° Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Π΅ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ - Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ липса Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚. И ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π΅ΡˆΠ΅Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ LevelDBИли RocksDB.

Накратко, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, която Π½ΠΈ позволява Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚Ρ€ΠΈ Π½Π΅Ρ‰Π° Π±ΡŠΡ€Π·ΠΎ.

  • ΠŸΡŠΡ€Π²Π°Ρ‚Π° опСрация Π΅ писанСто ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ към Ρ‚Π°Π·ΠΈ Π±Π°Π·Π°. Вя ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·ΠΎ. ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ са ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅.
  • Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° опСрация Π΅ Π±ΡŠΡ€Π·ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° стойност ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡŽΡ‡.
  • И Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° опСрация Π΅ Π±ΡŠΡ€Π·ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° всички стойности ΠΏΠΎ Π΄Π°Π΄Π΅Π½ прСфикс.

LevelDB ΠΈ RocksDB – Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ са Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΎΡ‚ Google ΠΈ Facebook. ΠŸΡŠΡ€Π²ΠΎ Π΄ΠΎΠΉΠ΄Π΅ LevelDB. Π’ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π°Ρ‚Π° ΠΎΡ‚ Facebook Π²Π·Π΅Ρ…Π° LevelDB ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° Π³ΠΎ подобряват, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…Π° RocksDB. Π‘Π΅Π³Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всички Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ работят Π²ΡŠΡ€Ρ…Ρƒ RocksDB във Facebook, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚Π΅ са ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ към RocksDB ΠΈ MySQL. НарСкоха Π³ΠΎ myrocks.

ΠžΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° LevelDB. Как Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ? НиС Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ label=value. И ΠΊΠ°Ρ‚ΠΎ стойност - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° врСмСвия Ρ€Π΅Π΄, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠΌΠ° Π΄Π²ΠΎΠΉΠΊΠ° label=value.

Ако ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ с Ρ‚Π°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° label=value, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Ρ‚Π°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ timeseries_ids. Π—Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ списък Π½Π° всички timeseries_idsΠΊΠΎΠΈΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ с Ρ‚ΠΎΠ²Π° label=prefix, ΠΏΡ€Π°Π²ΠΈΠΌ сканиранС Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π° Ρ‚Π°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ВоСст ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ всички Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ с label=prefix ΠΈ Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ timeseries_ids.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Π° рСализация Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π±ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Π»ΠΎ Π² Go. ИмамС ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс. Π’ΠΎΠ²Π° Π΅ LevelDB.

Ѐункцията Π΅ ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΈΠ²Π½Π°Ρ‚Π° рСализация. ΠŸΠΎΡ‡Ρ‚ΠΈ Ρ€Π΅Π΄ ΠΏΠΎ Ρ€Π΅Π΄ повтаря Π½Π°ΠΈΠ²Π½Π°Ρ‚Π° рСализация. ЕдинствСният Π²ΡŠΠΏΡ€ΠΎΡ Π΅, Ρ‡Π΅ вмСсто Π΄Π° сС ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π° Π½Π° map ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ всички стойности Π·Π° ΠΏΡŠΡ€Π²ΠΈΡ label=value. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π· всички останали Π΄Π²ΠΎΠΉΠΊΠΈ label=value ΠΈ Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ metricID Π·Π° тях. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ прСсСчката.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Всичко ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π°Ρ€Π΅Π΄, Π½ΠΎ Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ. VictoriaMetrics ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° LevelDB. Но накрая Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° сС ΠΎΡ‚ΠΊΠ°ΠΆΠ°.

Π—Π°Ρ‰ΠΎ? Въй ΠΊΠ°Ρ‚ΠΎ LevelDB Π΅ ΠΏΠΎ-Π±Π°Π²Π½Π° ΠΎΡ‚ Π½Π°ΠΈΠ²Π½Π°Ρ‚Π° рСализация. ΠŸΡ€ΠΈ Π½Π°ΠΈΠ²Π½Π° рСализация, Π·Π° Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡŽΡ‡, Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ цСлия срСз metricIDs. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·Π° опСрация - цялата Ρ„ΠΈΠ»ΠΈΠΉΠΊΠ° Π΅ Π³ΠΎΡ‚ΠΎΠ²Π° Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.

Π’ LevelDB, ΠΏΡ€ΠΈ всяко ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° функция GetValues трябва Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π· всички Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ с label=value. И Π·Π° всСки Ρ€Π΅Π΄ Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ стойността timeseries_ids. ΠžΡ‚ Ρ‚Π°ΠΊΠΈΠ²Π° timeseries_ids ΡΡŠΠ±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΠ°Ρ€Ρ‡Π΅ ΠΎΡ‚ тях timeseries_ids. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΠΊΠ°Ρ€Ρ‚Π° Ρ‡Ρ€Π΅Π· ΠΊΠ»ΡŽΡ‡.

Вторият Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π΅, Ρ‡Π΅ LevelDB Π΅ написан Π½Π° C. Π”ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ C Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Go Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·. ΠžΡ‚Π½Π΅ΠΌΠ° стотици наносСкунди. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π² сравнСниС с ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° функция, написано Π² go, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‚Π½Π΅ΠΌΠ° 1-5 наносСкунди, Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π² производитСлността Π΅ дСсСтки ΠΏΡŠΡ‚ΠΈ. Π—Π° VictoriaMetrics Ρ‚ΠΎΠ²Π° бСшС Ρ„Π°Ρ‚Π°Π»Π΅Π½ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ πŸ™‚

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π—Π°Ρ‚ΠΎΠ²Π° написах моя собствСна рСализация Π½Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс. И я ΠΏΠΎΠ²ΠΈΠΊΠ° mergeset.

Mergeset сС основава Π½Π° структурата Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ MergeTree. Π’Π°Π·ΠΈ структура Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π΅ заимствана ΠΎΡ‚ ClickHouse. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π½Π°Π±ΠΎΡ€ΡŠΡ‚ Π·Π° сливанС трябва Π΄Π° бъдС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° Π±ΡŠΡ€Π·ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ timeseries_ids ΠΏΠΎ дадСния ΠΊΠ»ΡŽΡ‡. Mergeset Π΅ написан изцяло Π½Π° Go. МоТСш Π΄Π° видиш Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π½Π° VictoriaMetrics Π² GitHub. РСализацията Π½Π° mergeset Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° /lib/mergeset. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ сС случва Ρ‚Π°ΠΌ.

API Π·Π° mergeset Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° LevelDB ΠΈ RocksDB. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π²ΠΈ позволява Π±ΡŠΡ€Π·ΠΎ Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚Π΅ Π½ΠΎΠ²ΠΈ записи Ρ‚Π°ΠΌ ΠΈ Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅ записи ΠΏΠΎ Π΄Π°Π΄Π΅Π½ прСфикс.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π©Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ Π½Π° mergeset ΠΏΠΎ-късно. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с VictoriaMetrics Π² производството ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс.

Π—Π°Ρ‰ΠΎ са възникнали?

ΠŸΡŠΡ€Π²Π°Ρ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΅ високият ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° оттСглянС. ΠŸΡ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° руски, Ρ‚ΠΎΠ²Π° Π΅ чСста промяна във Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’ΠΎΠ²Π° Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ врСмСвият Ρ€Π΅Π΄ ΡΠ²ΡŠΡ€ΡˆΠ²Π° ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π° Π½ΠΎΠ² Ρ€Π΅Π΄ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Ρ‚ΠΎΠ²Π° сС случва чСсто.

Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΅ голСмият Π±Ρ€ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈ популярност, броят Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ сСрии бСшС малък. НапримСр, Π½Π° всСки ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ трябва Π΄Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора, ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ диска. 4 Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€. Π”Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ 100 ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ΠΈ 400 Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ.

Π‘ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Ρ…ΠΎΡ€Π°Ρ‚Π° стигнаха Π΄ΠΎ идСята, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΌΠ΅Ρ€ΠΈ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° информация. НапримСр Π΄Π° сС ΠΈΠ·ΠΌΠ΅Ρ€ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ Π½Π° цСлия процСсор, Π° ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π½Π° всяко процСсорно ядро. Ако ΠΈΠΌΠ°Ρ‚Π΅ 40 процСсорни ядра, Ρ‚ΠΎΠ³Π°Π²Π°, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΈΠΌΠ°Ρ‚Π΅ 40 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии Π·Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора.

Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ всичко. Всяко процСсорно ядро ​​моТС Π΄Π° ΠΈΠΌΠ° няколко ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π°Π·Π΅Π½ Ρ…ΠΎΠ΄, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½. ΠšΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π² потрСбитСлско пространство, Ρ€Π°Π±ΠΎΡ‚Π° Π² пространство Π½Π° ядрото ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ. И всяко Ρ‚Π°ΠΊΠΎΠ²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΎ ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄. Π’ΠΎΠ²Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° броя Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ 7-8 ΠΏΡŠΡ‚ΠΈ.

ΠžΡ‚ Π΅Π΄Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ 40 x 8 = 320 ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ само Π·Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€. Π£ΠΌΠ½ΠΎΠΆΠ°Π²Π°ΠΌΠ΅ ΠΏΠΎ 100 ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ 32 000 вмСсто 400.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π΄ΠΎΠΉΠ΄Π΅ Kubernetes. И Ρ‚ΠΎΠ²Π° всС ΠΎΡ‰Π΅ Π³ΠΎ влошава, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ услуги ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ хоствани Π² Kubernetes. Всяка услуга Π² Kubernetes сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ²Π΅. И всичко Ρ‚ΠΎΠ²Π° трябва Π΄Π° сС слСди. ОсвСн Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ постоянно внСдряванС Π½Π° Π½ΠΎΠ²ΠΈ вСрсии Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ услуги. Π—Π° всяка Π½ΠΎΠ²Π° вСрсия трябва Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π½ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° броят Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ нараства СкспонСнциално ΠΈ сС сблъсквамС с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с голям Π±Ρ€ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΉΡ‚ΠΎ сС Π½Π°Ρ€ΠΈΡ‡Π° висока кардиналност. VictoriaMetrics Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ Π΄ΠΎΠ±Ρ€Π΅ Π² сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΎΡ‚Π±Π»ΠΈΠ·ΠΎ високия ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° ΠΎΡ‚Π»ΠΈΠ². Какво причинява висок ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° оттСглянС Π² производството? Въй ΠΊΠ°Ρ‚ΠΎ някои значСния Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ сС промСнят.

НапримСр, Π½Π΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ Kubernetes, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° концСпцията deployment, Ρ‚.Π΅. ΠΊΠΎΠ³Π°Ρ‚ΠΎ бъдС пусната Π½ΠΎΠ²Π° вСрсия Π½Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. По някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Kubernetes Ρ€Π΅ΡˆΠΈΡ…Π° Π΄Π° добавят ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ към Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π°.

Π”ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅? Π”ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ с всяко Π½ΠΎΠ²ΠΎ внСдряванС всички стари Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии сС ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Ρ‚ ΠΈ вмСсто тях Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π½ΠΎΠ²ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии с Π½ΠΎΠ²Π° стойност Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° deployment_id. МоТС Π΄Π° ΠΈΠΌΠ° стотици хиляди ΠΈ Π΄ΠΎΡ€ΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° Ρ€Π΅Π΄ΠΎΠ²Π΅.

Π’Π°ΠΆΠ½Π° характСристика Π½Π° всичко Ρ‚ΠΎΠ²Π° Π΅, Ρ‡Π΅ общият Π±Ρ€ΠΎΠΉ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ нараства, Π½ΠΎ броят Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ΄Π²Π°Ρ‚ Π΄Π°Π½Π½ΠΈ, остава постоянСн. Π’ΠΎΠ²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ сС Π½Π°Ρ€ΠΈΡ‡Π° висока стСпСн Π½Π° оттСглянС.

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π° високия ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° ΠΎΡ‚Π»ΠΈΠ² Π΅ Π΄Π° сС осигури постоянна скорост Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π·Π° всички Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии Π·Π° Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅. ОбикновСно Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΡŠΡ‚ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° послСдния час ΠΈΠ»ΠΈ послСдния Π΄Π΅Π½.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Как Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ? Π•Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈΡ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’ΠΎΠ²Π° Π΅ Π·Π° раздСлянС Π½Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡ индСкс Π½Π° нСзависими Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ части. ВоСст, ΠΌΠΈΠ½Π°Π²Π° някакъв ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅, Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с инвСртирания Ρ‚Π΅ΠΊΡƒΡ‰ индСкс. И създавамС Π½ΠΎΠ² ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс. Минава ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅, създавамС ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΈ ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½.

И ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±ΠΈ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈ индСкси, Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈ индСкси, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ Π² дадСния ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». И ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ ΠΎΡ‚ Ρ‚Π°ΠΌ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° врСмСвия Ρ€Π΅Π΄.

Π’ΠΎΠ²Π° спСстява рСсурси, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ сС Π½Π°Π»Π°Π³Π° Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ части, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ Π² дадСния ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». ВоСст, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ Π΄Π°Π½Π½ΠΈ Π·Π° послСдния час, пропускамС заявки Π·Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Има ΠΈ Π΄Ρ€ΡƒΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ΠΎΠ²Π° Π΅ Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π·Π° всСки Π΄Π΅Π½ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ списък с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ сСрии, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π°ΡΡ‚ΡŠΠΏΠΈΠ»ΠΈ ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ·ΠΈ Π΄Π΅Π½.

ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²ΠΎΡ‚ΠΎ Π½Π° Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΅, Ρ‡Π΅ Π½Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€Π°ΠΌΠ΅ информация Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии, която Π½Π΅ ΠΈΠ·Ρ‡Π΅Π·Π²Π° с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ. Π’Π΅ са постоянни ΠΈ Π½Π΅ сС промСнят.

ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊΡŠΡ‚ Π΅, Ρ‡Π΅ Ρ‚Π°ΠΊΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π° изпълнСниС ΠΈ ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. И VictoriaMetrics ΠΈΠ·Π±Ρ€Π° Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠ° сС Π΅ случило историчСски. Π’ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡΡŠΡ‰ΠΎ сС ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄ΠΎΠ±Ρ€Π΅ Π² сравнСниС с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ. Въй ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ трябва Π΄Π° Π΄ΡƒΠ±Π»ΠΈΡ€Π°Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ във всСки дял Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС промСнят, тоСст, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·Ρ‡Π΅Π·Π²Π°Ρ‚ с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ. VictoriaMetrics бСшС основно ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° дисково пространство, Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ внСдряванС влоши ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° дисково пространство. Но Ρ‚Π°Π·ΠΈ рСализация Π΅ ΠΏΠΎ-подходяща Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° дисково пространство, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ бСшС ΠΈΠ·Π±Ρ€Π°Π½Π°.

Π’Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° сС бия с нСя. Π‘ΠΎΡ€Π±Π°Ρ‚Π° бСшС, Ρ‡Π΅ ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° изпълнСниС всС ΠΎΡ‰Π΅ трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-голямо число timeseries_ids Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈΡΡ‚ индСкс Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π²Ρ€Π΅ΠΌΠ΅.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Как Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ? Π Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π³ΠΎ ΠΏΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ - Ρ‡Ρ€Π΅Π· ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° няколко ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии във всСки запис Π½Π° инвСртирания индСкс вмСсто Π΅Π΄ΠΈΠ½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Ρ‚.Π΅. ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ»ΡŽΡ‡Π° label=value, ΠΊΠΎΠ΅Ρ‚ΠΎ сС срСща във всСки Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄. И сСга спСстявамС няколко timeseries_ids Π² Π΅Π΄ΠΈΠ½ запис.

Π•Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡ€Π΅Π΄ΠΈ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ N записа, Π° сСга ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ запис, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° ΡΡŠΡ‰ΠΈΡ прСфикс ΠΊΠ°Ρ‚ΠΎ всички останали. Π—Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ запис стойността ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всички ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° врСмСвия Ρ€Π΅Π΄.

Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ скоростта Π½Π° сканиранС Π½Π° Ρ‚Π°ΠΊΡŠΠ² ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Π΄ΠΎ 10 ΠΏΡŠΡ‚ΠΈ. И позволява Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° кСша, Π·Π°Ρ‰ΠΎΡ‚ΠΎ сСга ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π½ΠΈΠ·Π° label=value само вСднъТ Π² кСша Π·Π°Π΅Π΄Π½ΠΎ N ΠΏΡŠΡ‚ΠΈ. И Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС голям, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ дълги Ρ€Π΅Π΄ΠΎΠ²Π΅, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈ Π² Ρ‚Π°Π³ΠΎΠ²Π΅ ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Kubernetes ΠΎΠ±ΠΈΡ‡Π° Π΄Π° ΠΏΡŠΡ…Π° Ρ‚Π°ΠΌ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π”Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° ускоряванС Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Π΅ ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³. БъздаванС Π½Π° няколко ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈ индСкса вмСсто Π΅Π΄ΠΈΠ½ ΠΈ раздСлянС Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ тях ΠΏΠΎ ΠΊΠ»ΡŽΡ‡. Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ key=value ΠΏΠ°Ρ€Π°. ВоСст ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ няколко нСзависими ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ΠΈ индСкса, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π°Π½ΠΊΠ΅Ρ‚ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π½Π° няколко процСсора. ΠŸΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ позволяваха само СднопроцСсорСн Ρ€Π΅ΠΆΠΈΠΌ, Ρ‚.Π΅. сканиранС Π½Π° Π΄Π°Π½Π½ΠΈ само Π½Π° Π΅Π΄Π½ΠΎ ядро. Π’ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΈ позволява Π΄Π° сканиратС Π΄Π°Π½Π½ΠΈ Π½Π° няколко ядра навСднъТ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈ ClickHouse. Π’ΠΎΠ²Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

И сСга ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ към Π½Π°ΡˆΠΈΡ‚Π΅ ΠΎΠ²Π½ΠΈ - към функцията Π½Π° прСсичанС timeseries_ids. НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚. Π’Π°Π·ΠΈ функция Π²ΠΈ позволява Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ timeseries_ids Π·Π° Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ€ label=value.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ Π½Π°ΠΈΠ²Π½ΠΎ изпълнСниС. Π”Π²Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ Ρ†ΠΈΠΊΡŠΠ»Π°. Π’ΡƒΠΊ стигамС Π΄ΠΎ Π²Ρ…ΠΎΠ΄Π° Π½Π° функцията intersectInts Π΄Π²Π΅ Ρ„ΠΈΠ»ΠΈΠΉΠΊΠΈ - a ΠΈ b. На ΠΈΠ·Ρ…ΠΎΠ΄Π° трябва Π΄Π° Π½ΠΈ Π²ΡŠΡ€Π½Π΅ прСсСчната Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π·Π΅Π½ΠΈ.

Наивното изпълнСниС ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°. НиС ΠΈΡ‚Π΅Ρ€ΠΈΡ€Π°ΠΌΠ΅ всички стойности ΠΎΡ‚ срСза a, Π²ΡŠΡ‚Ρ€Π΅ Π² Ρ‚ΠΎΠ·ΠΈ Ρ†ΠΈΠΊΡŠΠ» ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π· всички стойности Π½Π° slice b. И Π³ΠΈ сравнявамС. Ако ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚, Π·Π½Π°Ρ‡ΠΈ смС Π½Π°ΠΌΠ΅Ρ€ΠΈΠ»ΠΈ прСсСчна Ρ‚ΠΎΡ‡ΠΊΠ°. И Π³ΠΎ Π·Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ Π² result.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Какви са Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅? ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Π°Ρ‚Π° слоТност Π΅ основният ΠΌΡƒ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ. НапримСр, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ Π½Π° срСза a ΠΈ b ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΌΠΈΠ»ΠΈΠΎΠ½, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚Π°Π·ΠΈ функция Π½ΠΈΠΊΠΎΠ³Π° няма Π΄Π° Π²ΠΈ Π²ΡŠΡ€Π½Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‰Π΅ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π΅Π΄ΠΈΠ½ Ρ‚Ρ€ΠΈΠ»ΠΈΠΎΠ½ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡ€ΠΈ Π·Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π’Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ изпълнСниС Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚Π°. БъздавамС ΠΊΠ°Ρ€Ρ‚Π°. ΠŸΠΎΡΡ‚Π°Π²ΡΠΌΠ΅ всички стойности ΠΎΡ‚ срСза Π² Ρ‚Π°Π·ΠΈ ΠΊΠ°Ρ€Ρ‚Π° a. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» ΠΏΡ€Π΅Π· ΠΏΠ°Ρ€Ρ‡Π΅ b. И ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ Ρ‚Π°Π·ΠΈ стойност Π΅ ΠΎΡ‚ срСз b Π² ΠΊΠ°Ρ€Ρ‚Π°Ρ‚Π°. Ако ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°, Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π³ΠΎ към Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Какви са прСдимствата? ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ ΠΈΠΌΠ° само Π»ΠΈΠ½Π΅ΠΉΠ½Π° слоТност. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ функцията Ρ‰Π΅ сС изпълни ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π°. Π—Π° Π΅Π΄ΠΈΠ½ ΠΌΠΈΠ»ΠΈΠΎΠ½Π΅Π½ срСз Ρ‚Π°Π·ΠΈ функция Ρ‰Π΅ сС изпълнява Π² 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Ρ‚Ρ€ΠΈΠ»ΠΈΠΎΠ½ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π² ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° функция.

А Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊΡŠΡ‚ Π΅, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ функция изисква ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚, Π·Π° Π΄Π° създадС Ρ‚Π°Π·ΠΈ ΠΊΠ°Ρ€Ρ‚Π°.

Вторият Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π΅ голямото Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π·Π° Ρ…Π΅ΡˆΠΈΡ€Π°Π½Π΅. Π’ΠΎΠ·ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½. И Π·Π° нас ΡΡŠΡ‰ΠΎ Π½Π΅ бСшС ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ във VictoriaMetrics внСдряванСто Π½Π° прСсичанСто бСшС Ρ‡Ρ€Π΅Π· ΠΊΠ°Ρ€Ρ‚Π°. Но слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° основния процСсор сС ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π° Π·Π° писанС Π½Π° ΠΊΠ°Ρ€Ρ‚Π°Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° стойност Π² Ρ‚Π°Π·ΠΈ ΠΊΠ°Ρ€Ρ‚Π°.

Π—Π°Ρ‰ΠΎ Ρ‚Π΅Π·ΠΈ мСста губят процСсорно Π²Ρ€Π΅ΠΌΠ΅? Въй ΠΊΠ°Ρ‚ΠΎ Π² Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Go ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ…Π΅ΡˆΠΈΡ€Π°Ρ‰Π° опСрация. ВоСст, Ρ‚ΠΎΠΉ изчислява Ρ…Π΅ΡˆΠ° ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π°, Π·Π° Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ ΠΏΠΎ-късно ΠΏΡ€ΠΈ дадСния индСкс Π² HashMap. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ‚Π° Π·Π° изчисляванС Π½Π° Ρ…Π΅Ρˆ ΠΎΡ‚Π½Π΅ΠΌΠ° дСсСтки наносСкунди. Π’ΠΎΠ²Π° Π΅ Π±Π°Π²Π½ΠΎ Π·Π° VictoriaMetrics.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π Π΅ΡˆΠΈΡ… Π΄Π° внСдря битсСт, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ спСциално Π·Π° Ρ‚ΠΎΠ·ΠΈ случай. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° прСсСчната Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π΄Π²Π°Ρ‚Π° срСза сСга. Π’ΡƒΠΊ създавамС битсСт. Към Π½Π΅Π³ΠΎ добавямС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ срСз. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° провСрявамС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ във втория срСз. И Π³ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ към Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°. ВоСст ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ЕдинствСното Π½Π΅Ρ‰ΠΎ Π΅, Ρ‡Π΅ смС Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π·Π° ΠΊΠ°Ρ€Ρ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€Π°Π½Π΅ с пСрсонализирани Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΡƒΠΊ add ΠΈ has.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

На ΠΏΡ€ΡŠΠ² ΠΏΠΎΠ³Π»Π΅Π΄ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, Π°ΠΊΠΎ стандартната ΠΊΠ°Ρ€Ρ‚Π° Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Ρ‚Π°ΠΌ ΠΏΡ€Π΅Π΄ΠΈ ΠΈ слСд Ρ‚ΠΎΠ²Π° сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ някои Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ Π΅ 10 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ стандартната ΠΊΠ°Ρ€Ρ‚Π° Π·Π° случая Π½Π° VictoriaMetrics.

Π’ допълнСниС, Ρ‚ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ Π² сравнСниС с внСдряванСто Π½Π° ΠΊΠ°Ρ€Ρ‚Π°Ρ‚Π°. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΡƒΠΊ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π±ΠΈΡ‚ΠΎΠ²Π΅ вмСсто осСмбайтови стойности.

ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊΡŠΡ‚ Π½Π° Ρ‚Π°ΠΊΠΎΠ²Π° изпълнСниС Π΅, Ρ‡Π΅ Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅ Π΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π½ΠΎ.

Π”Ρ€ΡƒΠ³ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Ρ‚, Π΅, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ рСализация ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΎΠ±Ρ€Π΅ Π² някои случаи. ВоСст, Ρ‚ΠΎΠΉ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ случай, Π·Π° Ρ‚ΠΎΠ·ΠΈ случай Π½Π° прСсичанС Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° врСмСвия Ρ€Π΅Π΄ Π½Π° VictoriaMetrics. Π’ΠΎΠ²Π° Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅ подходящ Π·Π° всички случаи. Ако сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността, Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ липса Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ забавянС Π½Π° производитСлността.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

ΠŸΠΎΠΌΠΈΡΠ»Π΅Ρ‚Π΅ Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ структура. Ако искатС Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚ΠΎΠΉ Π΅ Π² ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° VictoriaMetrics, Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° lib/uint64set. Π’ΠΎΠΉ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ спСциално Π·Π° случая Π½Π° VictoriaMetrics, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ timeseries_id Π΅ 64-Π±ΠΈΡ‚ΠΎΠ²Π° стойност, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π° са основно постоянни ΠΈ само послСднитС 32 Π±ΠΈΡ‚Π° сС промСнят.

Π’Π°Π·ΠΈ структура ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π½Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π½Π° диск, тя Ρ€Π°Π±ΠΎΡ‚ΠΈ само Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π•Ρ‚ΠΎ нСговия API. НС Π΅ ΠΌΠ½ΠΎΠ³ΠΎ слоТно. API Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ спСциално Π·Π° конкрСтния случай Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° VictoriaMetrics. ВоСст, няма Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π•Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ VictoriaMetrics.

Има Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ add, ΠΊΠΎΠ΅Ρ‚ΠΎ добавя Π½ΠΎΠ²ΠΈ стойности. Има функция has, ΠΊΠΎΠΉΡ‚ΠΎ провСрява Π·Π° Π½ΠΎΠ²ΠΈ стойности. И ΠΈΠΌΠ° функция del, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° стойности. Има ΠΏΠΎΠΌΠΎΡ‰Π½Π° функция len, ΠΊΠΎΠΉΡ‚ΠΎ Π²Ρ€ΡŠΡ‰Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π½Π°Π±ΠΎΡ€Π°. функция clone ΠΊΠ»ΠΎΠ½ΠΈΡ€Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°. И функция appendto ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Ρ‚ΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ€ Π² срСз timeseries_ids.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ структура ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΡŠΡ‚ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π΄Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°:

  • ItemsCount Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΎ ΠΏΠΎΠ»Π΅ Π·Π° Π±ΡŠΡ€Π·ΠΎ Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° броя Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π² Π½Π°Π±ΠΎΡ€Π°. ΠœΠΎΠΆΠ΅Ρ…ΠΌΠ΅ Π΄Π° сС справим ΠΈ Π±Π΅Π· Ρ‚ΠΎΠ²Π° спомагатСлно ΠΏΠΎΠ»Π΅, Π½ΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚ΡƒΠΊ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ VictoriaMetrics чСсто Ρ€Π°Π·ΠΏΠΈΡ‚Π²Π° Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° Π½Π° bitset Π² своитС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ.

  • Π’Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅ Π΅ buckets. Π’ΠΎΠ²Π° Π΅ ΠΏΠ°Ρ€Ρ‡Π΅ ΠΎΡ‚ структура bucket32. Всяка структура ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° hi ΠΏΠΎΠ»Π΅. Π’ΠΎΠ²Π° са ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π°. И Π΄Π²Π΅ Ρ„ΠΈΠ»ΠΈΠΉΠΊΠΈ - b16his ΠΈ buckets Π½Π° bucket16 структури.

Π’ΡƒΠΊ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ 16 Π±ΠΈΡ‚Π° ΠΎΡ‚ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° част Π½Π° 64-Π±ΠΈΡ‚ΠΎΠ²Π°Ρ‚Π° структура. И Π±ΠΈΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€ΠΈ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Ρ‚ΡƒΠΊ Π·Π° Π΄ΠΎΠ»Π½ΠΈΡ‚Π΅ 16 Π±ΠΈΡ‚Π° Π½Π° всСки Π±Π°ΠΉΡ‚.

Bucket64 сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ масив uint64. Π”ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° сС изчислява с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ константи. Π’ Π΅Π΄ΠΈΠ½ bucket16 ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ максимум 2^16=65536 ΠΌΠ°Π»ΠΊΠΎ. Ако Ρ‚ΠΎΠ²Π° сС Ρ€Π°Π·Π΄Π΅Π»ΠΈ Π½Π° 8, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚ΠΎΠ²Π° са 8 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°. Π Π°Π·Π΄Π΅Π»Π΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π½Π° 8, Ρ‚ΠΎΠ²Π° Π΅ 1000 uint64 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Ρ‚.Π΅. Bucket16 - Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΡˆΠ°Ρ‚Π° 8-ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Π° структура.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π·ΠΈ структура Π·Π° добавянС Π½Π° Π½ΠΎΠ²Π° стойност.

Всичко Π·Π°ΠΏΠΎΡ‡Π²Π° с uint64 стойности. Π˜Π·Ρ‡ΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π°, изчислявамС Π΄ΠΎΠ»Π½ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π°. МинавамС ΠΏΡ€Π΅Π· всички buckets. Π‘Ρ€Π°Π²Π½Π΅Ρ‚Π΅ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π° във всяка ΠΊΠΎΡ„Π° с Π΄ΠΎΠ±Π°Π²Π΅Π½Π°Ρ‚Π° стойност. И Π°ΠΊΠΎ Ρ‚Π΅ ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚, Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ функцията add Π² структура b32 buckets. И Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π΄ΠΎΠ»Π½ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π° Ρ‚Π°ΠΌ. И Π°ΠΊΠΎ сС Π²ΡŠΡ€Π½Π° true, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ смС Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠ°Π²Π° стойност Ρ‚Π°ΠΌ ΠΈ Π½Π΅ смС ΠΈΠΌΠ°Π»ΠΈ Ρ‚Π°ΠΊΠ°Π²Π° стойност. Ако сС Π²ΡŠΡ€Π½Π΅ false, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚Π°ΠΊΠ°Π²Π° стойност Π²Π΅Ρ‡Π΅ Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π»Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°ΠΌΠ΅ броя Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π² структурата.

Ако Π½Π΅ смС Π½Π°ΠΌΠ΅Ρ€ΠΈΠ»ΠΈ правилния bucket с ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° висока стойност, Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ функцията addAlloc, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½ΠΎΠ² bucket, добавяйки Π³ΠΎ към структурата Π½Π° ΠΊΠΎΡ„Π°Ρ‚Π°.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π’ΠΎΠ²Π° Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° функцията b32.add. Подобно Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ изпълнСниС. Π˜Π·Ρ‡ΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ високи 16 Π±ΠΈΡ‚Π°, ниски 16 Π±ΠΈΡ‚Π°.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π· всичкитС Π³ΠΎΡ€Π½ΠΈ 16 Π±ΠΈΡ‚Π°. НамирамС съвпадСния. И Π°ΠΊΠΎ ΠΈΠΌΠ° съвпадСниС, ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° добавянС, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° слСдващата страница bucket16.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

И Ρ‚ΡƒΠΊ Π΅ Π½Π°ΠΉ-ниското Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π° максимално. Π˜Π·Ρ‡ΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π·Π° uint64 ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° стойност ΡΡŠΡ‰ΠΎ ΠΈ Π² Π±ΠΈΡ‚Π° Π½Π° срСза bitmask. Π’ΠΎΠ²Π° Π΅ маска Π·Π° Ρ‚Π°Π·ΠΈ 64-Π±ΠΈΡ‚ΠΎΠ²Π° стойност, Ρ‡Ρ€Π΅Π· която ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π·Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ Π±ΠΈΡ‚ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ Ρ‚ΠΎΠ·ΠΈ Π±ΠΈΡ‚ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΈ Π³ΠΎ настройвамС ΠΈ Π²Ρ€ΡŠΡ‰Π°ΠΌΠ΅ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ. Π•Ρ‚ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° рСализация, която Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ускорим опСрацията ΠΏΠΎ прСсичанС Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии с 10 ΠΏΡŠΡ‚ΠΈ Π² сравнСниС с ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Π’ допълнСниС към Ρ‚Π°Π·ΠΈ оптимизация, VictoriaMetrics ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ с ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Π½ΠΎ слСд ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² производството.

Π’ΠΎΠ²Π° Π΅ основното ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π° оптимизацията - Π½Π΅ добавяйтС оптимизация, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΉΠΊΠΈ, Ρ‡Π΅ Ρ‰Π΅ ΠΈΠΌΠ° тясно място, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ няма Π΄Π° ΠΈΠΌΠ° тясно място. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ влошава качСството Π½Π° ΠΊΠΎΠ΄Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ си струва Π΄Π° сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π° само слСд ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΈ Π·Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½Π΅ Π² производството, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΄Π° са Ρ€Π΅Π°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС интСрСсуват, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚Π΅ изходния ΠΊΠΎΠ΄ Π½Π° VictoriaMetrics ΠΈ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚Π°ΠΌ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ във VictoriaMetrics. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Валялкин

Имам Π²ΡŠΠΏΡ€ΠΎΡ относно bitset. Много ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° C++ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅Π½ bool, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° bitset. ΠžΡ‚ Ρ‚Π°ΠΌ Π»ΠΈ Π²Π·Π΅Ρ…Ρ‚Π΅ внСдряванСто?

НС, Π½Π΅ ΠΎΡ‚ Ρ‚Π°ΠΌ. ΠšΠΎΠ³Π°Ρ‚ΠΎ внСдрявах Ρ‚ΠΎΠ·ΠΈ битсСт, бях Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄Π΅Π½ ΠΎΡ‚ познанията Π·Π° структурата Π½Π° Ρ‚Π΅Π·ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ във VictoriaMetrics. И тяхната структура Π΅ Ρ‚Π°ΠΊΠ°Π²Π°, Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π° са основно постоянни. Π”ΠΎΠ»Π½ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π° ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ Π½Π° промяна. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-нисък Π΅ Π±ΠΈΡ‚ΡŠΡ‚, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-чСсто ΠΌΠΎΠΆΠ΅ Π΄Π° сС промСня. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Ρ‚Π°Π·ΠΈ рСализация Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π° Π·Π° Ρ‚Π°Π·ΠΈ структура ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. РСализацията Π½Π° C++, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π·Π½Π°ΠΌ, Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π° Π·Π° общия случай. Ако ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ оптимизация Π·Π° общия случай, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ тя няма Π΄Π° Π΅ Π½Π°ΠΉ-ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ случай.

Π‘ΡŠΠ²Π΅Ρ‚Π²Π°ΠΌ Π²ΠΈ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° АлСксСй Миловид. ΠŸΡ€Π΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ мСсСц Ρ‚ΠΎΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ClickHouse Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ спСциализации. Π’ΠΎΠΉ просто ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π² общия случай ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° C ++ ΠΈΠ»ΠΈ някакво Π΄Ρ€ΡƒΠ³ΠΎ изпълнСниС Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ΠΎ Π·Π° Π΄ΠΎΠ±Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π° срСдно Π² Π±ΠΎΠ»Π½ΠΈΡ†Π°. МоТС Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-лошо ΠΎΡ‚ спСциализирана рСализация Π·Π° спСцифични знания, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΡˆΠ°Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ 32 Π±ΠΈΡ‚Π° са ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ постоянни.

Имам Π²Ρ‚ΠΎΡ€ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ. Каква Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ InfluxDB?

Има ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»Π½ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ. Π©ΠΎ сС отнася Π΄ΠΎ производитСлността ΠΈ консумацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Ρ‚ΠΎΠ³Π°Π²Π° InfluxDB Π² тСстовСтС ΠΏΠΎΠΊΠ°Π·Π²Π° 10 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ консумация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии с висока кардиналност, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ тях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ. НапримСр VictoriaMetrics консумира 1 GB Π½Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ InfluxDB консумира 10 GB. И Ρ‚ΠΎΠ²Π° Π΅ голяма Ρ€Π°Π·Π»ΠΈΠΊΠ°.

Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»Π½Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° Π΅, Ρ‡Π΅ InfluxDB ΠΈΠΌΠ° странни Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки - Flux ΠΈ InfluxQL. Π’Π΅ Π½Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² сравнСниС с PromQL, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ VictoriaMetrics. PromQL Π΅ Π΅Π·ΠΈΠΊ Π·Π° заявки ΠΎΡ‚ Prometheus.

Π”Ρ€ΡƒΠ³Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° Π΅, Ρ‡Π΅ InfluxDB ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ странСн ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ всСки Ρ€Π΅Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° няколко ΠΏΠΎΠ»Π΅Ρ‚Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ‚Π°Π³ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ са Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° всички Π²ΠΈΠ΄ΠΎΠ²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Π’Π΅Π·ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ услоТнСния услоТняват послСдващата Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π·ΠΈ Π±Π°Π·Π°. Π’Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°.

Π’ΡŠΠ² VictoriaMetrics всичко Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-просто. Π’Π°ΠΌ всСки Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ Π΅ ΠΊΠ»ΡŽΡ‡-стойност. Бтойността Π΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ βˆ’ (timestamp, value), Π° ΠΊΠ»ΡŽΡ‡ΡŠΡ‚ Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΡŠΡ‚ label=value. Няма Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ измСрвания. Π’ΠΎΠ²Π° Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ всякакви Π΄Π°Π½Π½ΠΈ ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅, добавятС, ΠΈΠ·Π²Π°ΠΆΠ΄Π°Ρ‚Π΅, ΡƒΠΌΠ½ΠΎΠΆΠ°Π²Π°Ρ‚Π΅, раздСлятС, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ InfluxDB, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ изчислСнията ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ всС ΠΎΡ‰Π΅ Π½Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π·Π½Π°ΠΌ. Π”ΠΎΡ€ΠΈ ΠΈ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ, Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, трябва Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΡƒΠΏ ΠΊΠΎΠ΄.

Имам Π΅Π΄ΠΈΠ½ уточняващ Π²ΡŠΠΏΡ€ΠΎΡ. ΠŸΡ€Π°Π²ΠΈΠ»Π½ΠΎ Ρ€Π°Π·Π±Ρ€Π°Ρ…, Ρ‡Π΅ ΠΈΠΌΠ° някакъв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ…Ρ‚Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Π½Π΅ сС ΠΏΠΎΠ±ΠΈΡ€Π° Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Π°ΠΌ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° раздСлянС?

ΠŸΡŠΡ€Π²ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°Ρ… Π½Π°ΠΈΠ²Π½Π° рСализация Π½Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Π²ΡŠΡ€Ρ…Ρƒ стандартна ΠΊΠ°Ρ€Ρ‚Π° Π½Π° Go. Π’Π°Π·ΠΈ рСализация Π½Π΅ Π΅ подходяща Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Π½Π΅ сС записва Π½Π° диск, Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ трябва Π΄Π° сС записва Π½Π° диск, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π΄Π° останат Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΏΡ€ΠΈ рСстартиранС. ΠŸΡ€ΠΈ Ρ‚Π°Π·ΠΈ рСализация, ΠΊΠΎΠ³Π°Ρ‚ΠΎ рСстартиратС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π²Π°ΡˆΠΈΡΡ‚ ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ индСкс Ρ‰Π΅ ΠΈΠ·Ρ‡Π΅Π·Π½Π΅. И Ρ‰Π΅ Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всички Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ няма Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅.

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Казвам сС ПавСл. Аз съм ΠΎΡ‚ Wildberries. Имам няколко Π²ΡŠΠΏΡ€ΠΎΡΠ° към вас. Π’ΡŠΠΏΡ€ΠΎΡ ΠΏΡŠΡ€Π²ΠΈ. БмятатС Π»ΠΈ, Ρ‡Π΅ Π°ΠΊΠΎ бяхтС ΠΈΠ·Π±Ρ€Π°Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ си ΠΈ бяхтС Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅, Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π±ΠΈΡ…Ρ‚Π΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ прСсичанСто Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡ€ΠΈ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅, въз основа само Π½Π° Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Π΅Π΄ΠΈΠ½ дял ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΄Π°Π½Π½ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅, Ρ‚.Π΅. Π² Π΅Π΄ΠΈΠ½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ няма Π΄Π° сС притСсняватС ΠΎΡ‚ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ‚Π΅ Π²ΠΈ са Ρ€Π°Π·ΠΏΡ€ΡŠΡΠ½Π°Ρ‚ΠΈ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½? Π’ΡŠΠΏΡ€ΠΎΡ Π½ΠΎΠΌΠ΅Ρ€ 2 - Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ с bitset ΠΈ всичко останало, Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈ стС ΠΎΠΏΠΈΡ‚Π°Π»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ инструкции Π½Π° процСсора? МоТС Π±ΠΈ стС ΠΎΠΏΠΈΡ‚Π²Π°Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ?

Π©Π΅ отговоря Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ. ΠžΡ‰Π΅ Π½Π΅ смС стигнали. Но Π°ΠΊΠΎ трябва, Ρ‰Π΅ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ. Какъв бСшС ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Π²ΡŠΠΏΡ€ΠΎΡ?

Π’ΠΈΠ΅ ΠΎΠ±ΡΡŠΠ΄ΠΈΡ…Ρ‚Π΅ Π΄Π²Π° сцСнария. И ΠΊΠ°Π·Π°Ρ…Π°, Ρ‡Π΅ са ΠΈΠ·Π±Ρ€Π°Π»ΠΈ втория с ΠΏΠΎ-слоТно изпълнСниС. И Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΡ…Π° ΠΏΡŠΡ€Π²ΠΈΡ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Π΄Π° Π’ ΠΏΡŠΡ€Π²ΠΈΡ случай общият ΠΎΠ±Π΅ΠΌ Π½Π° индСкса Ρ‰Π΅ бъдС ΠΏΠΎ-голям, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ във всСки дял Ρ‰Π΅ трябва Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π΄ΡƒΠ±Π»ΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠ½Π΅Π·ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ ΠΏΡ€Π΅Π· всички Ρ‚Π΅Π·ΠΈ дяловС. И Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ малък ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° оттСглянС Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии, тоСст Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ сСрии сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ постоянно, Ρ‚ΠΎΠ³Π°Π²Π° Π² ΠΏΡŠΡ€Π²ΠΈΡ случай Ρ‰Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΅Ρ‚ΠΎ дисково пространство Π² сравнСниС с втория случай.

И Ρ‚Π°ΠΊΠ° - Π΄Π°, раздСлянСто ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΅ Π΄ΠΎΠ±ΡŠΡ€ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. ΠŸΡ€ΠΎΠΌΠ΅Ρ‚Π΅ΠΉ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. Но Prometheus ΠΈΠΌΠ° Π΄Ρ€ΡƒΠ³ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ. ΠšΠΎΠ³Π°Ρ‚ΠΎ обСдинява Ρ‚Π΅Π·ΠΈ части ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, трябва Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΌΠ΅Ρ‚Π°-информация Π·Π° всички Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Π°ΠΊΠΎ частитС ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ са Π³ΠΎΠ»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ обСдинява, Ρ‚ΠΎΠ³Π°Π²Π° консумацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ нараства ΠΌΠ½ΠΎΠ³ΠΎ силно ΠΏΡ€ΠΈ обСдиняванСто, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ VictoriaMetrics. ΠŸΡ€ΠΈ сливанС VictoriaMetrics ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ консумира ΠΏΠ°ΠΌΠ΅Ρ‚, Ρ‚Π°ΠΌ сС консумират няколко ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°, нСзависимо ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° частитС ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС сливат.

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°ΠΌΠ΅Ρ‚. Π’ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии - ΠΌΠ°Ρ€ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ стойности. И ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ провСряватС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π²ΠΎΠΉΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ масив ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΈ Π² Π΄Ρ€ΡƒΠ³. И Π²ΠΈΠ΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ Π΄Π°Π»ΠΈ прСсичанСто сС Π΅ случило ΠΈΠ»ΠΈ Π½Π΅. ОбикновСно Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ курсори, ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° си стойност ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚ ΠΏΡ€Π΅Π· сортирани Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΡ€Π°Π΄ΠΈ простата слоТност Π½Π° Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π—Π°Ρ‰ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ курсори Π·Π° ΠΎΠ±Ρ…ΠΎΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ?

Π”Π°.

Π’ нашия LevelDB ΠΈΠ»ΠΈ Π² mergeset сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ само сортирани Ρ€Π΅Π΄ΠΎΠ²Π΅. МоТСм Π΄Π° Π²ΡŠΡ€Π²ΠΈΠΌ с курсора ΠΈ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ прСсСчката. Π—Π°Ρ‰ΠΎ Π½Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅? Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ Π±Π°Π²Π½ΠΎ. Въй ΠΊΠ°Ρ‚ΠΎ курсоритС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚, Ρ‡Π΅ трябва Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ функция Π·Π° всСки Ρ€Π΅Π΄. Π˜Π·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° функция Π΅ 5 наносСкунди. И Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ 100 000 000 Ρ€Π΅Π΄Π°, Ρ‚ΠΎΠ³Π°Π²Π° сС ΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ отдСлямС ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ сСкунда само Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° функция.

Има Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ, Π΄Π°. И послСдният ΠΌΠΈ Π²ΡŠΠΏΡ€ΠΎΡ. Π’ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ·Π²ΡƒΡ‡ΠΈ ΠΌΠ°Π»ΠΊΠΎ странно. Π—Π°Ρ‰ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° пристиганСто Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π΅ нСвъзмоТно Π΄Π° сС прСброят всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ ΠΈ Π΄Π° сС запазят Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° Ρ„ΠΎΡ€ΠΌΠ°? Π—Π°Ρ‰ΠΎ Π΄Π° спСстяватС ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π² някои систСми ΠΊΠ°Ρ‚ΠΎ VictoriaMetrics, ClickHouse ΠΈ Π΄Ρ€., Π·Π° Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° тях ΠΏΠΎ-късно?

Π©Π΅ Π΄Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π΄Π° станС ΠΏΠΎ-ясно. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ°Π»ΠΊΠ° ΠΈΠ³Ρ€Π°Ρ‡ΠΊΠ° скоростомСр? Π’ΠΎΠΉ записва разстояниСто, ΠΊΠΎΠ΅Ρ‚ΠΎ стС ΠΈΠ·ΠΌΠΈΠ½Π°Π»ΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π· цялото Π²Ρ€Π΅ΠΌΠ΅ Π³ΠΎ добавя към Π΅Π΄Π½Π° стойност, към Π²Ρ‚ΠΎΡ€ΠΈ ΠΏΡŠΡ‚. И раздСля. И ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° срСдна скорост. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ. Π”ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Ρ„Π°ΠΊΡ‚ΠΈ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.

Π”ΠΎΠ±Ρ€Π΅, Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ Π²ΡŠΠΏΡ€ΠΎΡΠ°. Π’Π°ΡˆΠΈΡΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠ° къдС Π΄Π° ΠΆΠΈΠ²Π΅Π΅. Ако Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π°, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΎΡ‚ΠΎ изпълнСниС. Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ Ρ…ΠΎΡ€Π°Ρ‚Π° Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚ Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, някои Π΄Π°Π½Π½ΠΈ Π² ClickHouse, ΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ знаят ΠΊΠ°ΠΊ Ρ‰Π΅ Π³ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Ρ‚ ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ трябва Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ всички Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Но Π°ΠΊΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Π΅ трябва Π΄Π° изчислитС Π½Π΅Ρ‰ΠΎ, Ρ‚ΠΎΠ³Π°Π²Π° Π·Π°Ρ‰ΠΎ Π½Π΅ Π³ΠΎ изчислитС, вмСсто Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚Π΅ ΠΊΡƒΠΏ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ стойности Ρ‚Π°ΠΌ? Но Ρ‚ΠΎΠ²Π° Π΅ само Π°ΠΊΠΎ Π·Π½Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π°.

ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ прСброяванС Π½Π° Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ. НапримСр Prometheus ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° запис. ВоСст, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ, Π°ΠΊΠΎ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ са Π²ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ. Π’ΠΎΠ²Π° всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΎ във VictoriaMetrics, Π½ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΏΡ€Π΅Π΄Ρ…ΠΎΠΆΠ΄Π° ΠΎΡ‚ Prometheus, Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π° Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° ΠΏΡ€Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅.

НапримСр, Π² ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π° Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΏΡ€Π΅Π±Ρ€ΠΎΠΈΡ‚Π΅ броя Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡΡ‚Π° Π² ΠΏΠ»ΡŠΠ·Π³Π°Ρ‰ сС ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† ΠΏΡ€Π΅Π· послСдния час. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° направя пСрсонализирана имплСмСнтация Π² Go, Ρ‚.Π΅. услуга Π·Π° ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ. Π’Π°Π·ΠΈ услуга Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка бСшС Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π½Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС ΠΏΡ€Π΅Π±Ρ€ΠΎΠΈ. Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС просто, Π°ΠΊΠΎ трябва Π΄Π° ΠΏΡ€Π΅Π±Ρ€ΠΎΠΈΡ‚Π΅ някои Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ Π½Π° фиксирани ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅. Ако искатС Π΄Π° ΠΏΡ€Π΅Π±Ρ€ΠΎΠΈΡ‚Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² ΠΏΠ»ΡŠΠ·Π³Π°Ρ‰ сС ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° лСсно, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°. Мисля, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² ClickHouse ΠΈΠ»ΠΈ Π² Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅.

И ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ Π²ΡŠΠΏΡ€ΠΎΡ. Въкмо Π³ΠΎΠ²ΠΎΡ€Π΅Ρ…ΠΌΠ΅ Π·Π° осрСдняванС ΠΈ си спомних, Ρ‡Π΅ някога имашС Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ Graphite с Carbon Π±Π΅ΠΊΠ΅Π½Π΄. И Ρ‚ΠΎΠΉ знаСшС ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Ρ‚ΡŠΠ½ΠΈ старитС Π΄Π°Π½Π½ΠΈ, Ρ‚.Π΅. Π΄Π° остави Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΌΠΈΠ½ΡƒΡ‚Π°, Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° час ΠΈ Ρ‚.Π½. По ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚ΠΎΠ²Π° Π΅ доста ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ сурови Π΄Π°Π½Π½ΠΈ, сравнитСлно ΠΊΠ°Π·Π°Π½ΠΎ, Π·Π° Π΅Π΄ΠΈΠ½ мСсСц, Π° всичко останало ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Ρ‚ΡŠΠ½Π΅Π½ΠΎ навън Но Prometheus, VictoriaMetrics Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ‚Π°Π·ΠΈ функционалност. ΠŸΠ»Π°Π½ΠΈΡ€Π° Π»ΠΈ сС Π΄Π° бъдС ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ΅Π½ΠΎ? Ако Π½Π΅, Π·Π°Ρ‰ΠΎ Π½Π΅?

благодаря Π·Π° Π²ΡŠΠΏΡ€ΠΎΡΠ° ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π³ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ. Π’Π΅ ΠΏΠΈΡ‚Π°Ρ‚ ΠΊΠΎΠ³Π° Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·Ρ‚ΡŠΠ½ΡΠ²Π°Π½Π΅ (намаляванС). Π’ΡƒΠΊ ΠΈΠΌΠ° няколко ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΡŠΡ€Π²ΠΎ, всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Ρ€Π°Π·Π±ΠΈΡ€Π° downsampling Π½Π΅Ρ‰ΠΎ своС: някой иска Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π΄Π°Π΄Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», някой иска максималнитС, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡ‚Π΅, срСднитС стойности. Ако ΠΌΠ½ΠΎΠ³ΠΎ систСми записват Π΄Π°Π½Π½ΠΈ във Π²Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Ρ€Π΅Π΄ΠΈΡ‚Π΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π·Π° всички. МоТС Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅Ρ‚Π΅, Ρ‡Π΅ трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ Π΄Π΅Ρ†ΠΈΠΌΠΈΡ€Π°Π½Π΅ Π·Π° всяка систСма. И Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π° изпълнСниС.

И Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ Π΅, Ρ‡Π΅ VictoriaMetrics, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ClickHouse, Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с голямо количСство Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΠΏΡ€Π΅Π· ΠΌΠΈΠ»ΠΈΠ°Ρ€Π΄ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π·Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ сСкунда, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ядра Π² систСмата си. Π’ΠΎΡ‡ΠΊΠΎΠ²ΠΎ сканиранС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии във VictoriaMetrics - 50 000 000 Ρ‚ΠΎΡ‡ΠΊΠΈ Π² сСкунда Π½Π° ядро. И Ρ‚Π°Π·ΠΈ производитСлност сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° Π΄ΠΎ Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ядра. ВоСст, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ 20 ядра Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‰Π΅ сканиратС ΠΌΠΈΠ»ΠΈΠ°Ρ€Π΄ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² сСкунда. И Ρ‚ΠΎΠ²Π° свойство Π½Π° VictoriaMetrics ΠΈ ClickHouse намалява нСобходимостта ΠΎΡ‚ ΠΏΠΎΠ½ΠΈΠΆΠ°Π²Π°Π½Π΅.

Π”Ρ€ΡƒΠ³ΠΎ прСдимство Π΅, Ρ‡Π΅ VictoriaMetrics компрСсира Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ. Π‘Ρ€Π΅Π΄Π½Π°Ρ‚Π° компрСсия Π·Π° производство Π΅ ΠΎΡ‚ 0,4 Π΄ΠΎ 0,8 Π±Π°ΠΉΡ‚Π° Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°. Всяка Ρ‚ΠΎΡ‡ΠΊΠ° Π΅ ΠΊΠ»Π΅ΠΉΠΌΠΎ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ + стойност. И компрСсира срСдно ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ‚.

Π‘Π΅Ρ€Π³Π΅ΠΉ. Имам Π²ΡŠΠΏΡ€ΠΎΡ. Какъв Π΅ минималният ΠΎΡ‚Ρ€ΡΠ·ΡŠΠΊ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° запис?

Π•Π΄Π½Π° милисСкунда. Наскоро ΠΈΠΌΠ°Ρ…ΠΌΠ΅ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ с Π΄Ρ€ΡƒΠ³ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ сСрии. ΠœΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅ Π΅ Π΅Π΄Π½Π° сСкунда. И Π² Graphite Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡΡŠΡ‰ΠΎ Π΅ Π΅Π΄Π½Π° сСкунда. OpenTSDB ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ° Π΅Π΄Π½Π° Π²Ρ‚ΠΎΡ€Π°. Π’ InfluxDB, наносСкунда точност. VictoriaMetrics ΠΈΠΌΠ° Π΅Π΄Π½Π° милисСкунда, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Prometheus ΠΈΠΌΠ° Π΅Π΄Π½Π° милисСкунда. А VictoriaMetrics ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° Prometheus. Но сСга ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ систСми.

Π§ΠΎΠ²Π΅ΠΊΡŠΡ‚, с ΠΊΠΎΠ³ΠΎΡ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ…, ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚ Π²Ρ‚ΠΎΡ€Π° точност - Ρ‚ΠΎΠ²Π° ΠΈΠΌ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ зависи ΠΎΡ‚ Π²ΠΈΠ΄Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Ако Ρ‚ΠΎΠ²Π° са Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ DevOps ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ инфраструктурата, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π³ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Ρ‚Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ ΠΎΡ‚ 30 сСкунди Π½Π° ΠΌΠΈΠ½ΡƒΡ‚Π°, Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠΌΠ° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ сСкундна точност, Π½Π΅ Π²ΠΈ трябва ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ. И Π°ΠΊΠΎ ΡΡŠΠ±ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ високочСстотни систСми Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ, Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ наносСкунда точност.

Вочността ΠΎΡ‚ милисСкунди във VictoriaMetrics ΡΡŠΡ‰ΠΎ Π΅ подходяща Π·Π° случай Π½Π° DevOps ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС подходяща Π·Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи, ΠΊΠΎΠΈΡ‚ΠΎ спомСнах Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°. ЕдинствСното Π½Π΅Ρ‰ΠΎ, Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ подходящо, са високочСстотнитС систСми Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ.

Благодаря Ρ‚ΠΈ! И ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ Π²ΡŠΠΏΡ€ΠΎΡ. Какво Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π² PromQL?

Пълна ΠΎΠ±Ρ€Π°Ρ‚Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚. VictoriaMetrics напълно ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° PromQL. Π’ допълнСниС, Ρ‚ΠΎΠΉ добавя ΠΎΡ‰Π΅ Π΅Π΄Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност към PromQL, която сС Π½Π°Ρ€ΠΈΡ‡Π° MetricsQL. Π’ YouTube сС Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° Ρ‚Π°Π·ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност. Π“ΠΎΠ²ΠΎΡ€ΠΈΡ… Π½Π° Monitoring Meetup ΠΏΡ€Π΅Π· ΠΏΡ€ΠΎΠ»Π΅Ρ‚Ρ‚Π° Π² Π‘Π°Π½ΠΊΡ‚ ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³.

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ ΠΊΠ°Π½Π°Π» Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΡΠœΠ΅Ρ‚Ρ€ΠΈΠΊΡ.

Π’ Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° участват само рСгистрирани ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π’ΠΏΠΈΡˆΠΈ сС, Моля Ρ‚Π΅.

Какво Π²ΠΈ ΠΏΡ€Π΅Ρ‡ΠΈ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ към VictoriaMetrics ΠΊΠ°Ρ‚ΠΎ Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° Prometheus? (ΠΠ°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅, Ρ‰Π΅ добавя към Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π°))

  • 71,4%НС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Prometheus5

  • 28,6%НС Π·Π½Π°Π΅Ρ… Π·Π° VictoriaMetrics2

7 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ гласуваха. 12 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€