ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠΌ Π²ΠΈ ΡΠ°Π·ΡΠΈΡΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΡ ΠΊΡΠ°Ρ Π½Π° 2019 Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠ°Π»ΡΠ»ΠΊΠΈΠ½ "ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² Go Π·Π° VictoriaMetrics"
β Π±ΡΡΠ·Π° ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠ° Π‘Π£ΠΠ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ (Π·Π°ΠΏΠΈΡΡΡ ΡΡΠ·Π΄Π°Π²Π° Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΡΡΠ΅Π· ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π½Π·ΠΎΡΠΈΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ).

ΠΡΠΎ Π»ΠΈΠ½ΠΊ ΠΊΡΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ β

Π©Π΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ. ΠΠ· ΡΡΠΌ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠ°Π»ΡΠ»ΠΊΠΈΠ½. ΠΡΠΎ . ΠΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΠΌ ΡΠ΅ ΠΎΡ Go ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠ°ΠΏΠΈΡΠ°Π» ΡΡΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π’Π΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΈΠ»ΠΈ Ρ fast, ΠΈΠ»ΠΈ Ρ quick ΠΏΡΠ΅ΡΠΈΠΊΡΠ°.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΡ Π²ΡΡΡ Ρ VictoriaMetrics. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎΠ²Π° ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²Ρ ΡΠ°ΠΌ? Π’ΠΎΠ²Π° ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π² ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ.

ΠΠ»Π°Π½ΡΡ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π΅ ΡΠ°ΠΊΡΠ²:
- ΠΡΡΠ²ΠΎ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ VictoriaMetrics.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅.
- ΠΠΎΡΠ»Π΅ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.
- Π‘Π»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ: ΠΎΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ.
- Π ΠΏΠΎΡΠ»Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° Π² VictoriaMetrics. Π’ΠΎΠ²Π° ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° bitset-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Go.

ΠΡΠΊΠΎΠΉ Π² Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡΡΠ° Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ VictoriaMetrics? ΠΠ΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° Π·Π½Π°ΡΡ. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΠ° Π½ΠΎΠ²ΠΈΠ½Π°. ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π·Π½Π°ΡΡ β ΡΠΎΠ²Π° Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π’Ρ Π΅ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ClickHouse, Π½Π° Π½ΡΠΊΠΎΠΈ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ClickHouse. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠ°ΡΠΎ: MergeTree, ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΡΠ΄ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΡΠ΅Π· ΡΠ°Π±ΠΎΡΠ° Π²ΡΡΡ Ρ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΡ Π² ΠΊΠ΅Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
VictoriaMetrics ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.
Π’Ρ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½ΠΎ β Ρ.Π΅. ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π½Π° Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π°. VictoriaMetrics ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Π·ΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π°ΡΠ° ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, VictoriaMetrics ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ β Ρ.Π΅. ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π½ΠΎΠ΄ΠΎΠ²Π΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π½Π° VictoriaMetrics, ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ΅ Π½Π°ΡΠ°ΡΡΠ²Π° ΠΏΠΎΡΡΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ.
ΠΠ°ΠΊΡΠΎ Π²ΠΈΠΆΠ΄Π°ΡΠ΅, VictoriaMetrics Π΅ Π±ΡΡΠ·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° ΠΏΠΈΡΠ° Π·Π° Π΄ΡΡΠ³ΠΈ. Π ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Go, Π·Π°ΡΠΎΠ²Π° Π³ΠΎΠ²ΠΎΡΡ Π·Π° Π½Π΅Ρ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠΈΡΠ°ΠΏ.

ΠΠΎΠΉ Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄? Π ΠΌΠ½ΠΎΠ³ΠΎ Ρ
ΠΎΡΠ° Π·Π½Π°ΡΡ. ΠΡΠ΅ΠΌΠ΅Π²ΠΈΡΡ ΡΠ΅Π΄ Π΅ ΡΠ΅ΡΠΈΡ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ (timestamp, ΡΡΠΎΠΉΠ½ΠΎΡΡ), ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΡΠ° ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ β float64.
ΠΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ Π΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ Ρ ΠΊΠ»ΡΡ. ΠΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΡΠΎΠ·ΠΈ ΠΊΠ»ΡΡ? Π’ΠΎΠΉ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½Π΅ΠΏΡΠ°Π·Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄. ΠΠ»ΡΡΡΡ Π½Π° ΡΠΎΠ·ΠΈ ΡΠ΅Π΄ Π΅ ΡΠΏΠΈΡΡΠΊ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ: __name__="cpu_usage" β ΡΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠ°ΡΠ°, instance="my-server" β ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠΌΠΏΡΡΡΡΡΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΡΡΠ±ΡΠ°Π½Π° ΡΠ°Π·ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠ°, datacenter="us-east" β ΡΠΎΠ²Π° Π΅ Π΄Π°ΡΠ°ΡΠ΅Π½ΡΡΡΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΡ.
Π ΡΠ°ΠΊΠ°, ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠΌΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄, ΡΡΡΡΠΎΡΡΠΎ ΡΠ΅ ΠΎΡ ΡΡΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ. ΠΠ° ΡΠΎΠ·ΠΈ ΠΊΠ»ΡΡ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΡΠΊ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ (timestamp, ΡΡΠΎΠΉΠ½ΠΎΡΡ). t1, t3, t3, ..., tN β ΡΠΎΠ²Π° ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ°ΡΠΈ, 10, 20, 12, ..., 15 β ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π’ΠΎΠ²Π° Π΅ cpu-usage Π² ΡΠ΅ΠΊΡΡΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π° ΡΠΎΠ·ΠΈ ΡΠ΅Π΄.

ΠΡΠ΄Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅? ΠΡΠΊΠΎΠΉ ΠΈΠΌΠ° Π»ΠΈ ΠΈΠ΄Π΅ΠΈ?
- Π DevOps ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΡΡΠ° Π½Π° CPU, RAM, ΠΌΡΠ΅ΠΆΠ°, rps, Π±ΡΠΎΠΉ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Ρ.Π½.
- IoT β ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°, Π½Π°Π»ΡΠ³Π°Π½Π΅, Π³Π΅ΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈ ΠΈ ΠΎΡΠ΅ Π½Π΅ΡΠΎ.
- Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΈΠ½Π°Π½ΡΠΈ β ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΌΠ΅ ΡΠ΅Π½ΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΠΊΡΠΈΠΈ ΠΈ Π²Π°Π»ΡΡΠΈ.
- ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π² Π·Π°Π²ΠΎΠ΄ΠΈΡΠ΅. ΠΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ VictoriaMetrics Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π²ΡΡΡΡΠ½ΠΈ ΡΡΡΠ±ΠΈΠ½ΠΈ, Π·Π° ΡΠΎΠ±ΠΎΡΠΈ.
- Π‘ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΡΠ΅Π½Π·ΠΎΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ; Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π»ΡΠ³Π°Π½Π΅ΡΠΎ Π² Π³ΡΠΌΠΈΡΠ΅; Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ°, ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ; Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄Π° Π½Π° Π±Π΅Π½Π·ΠΈΠ½ ΠΈ Ρ.Π½.
- ΠΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΠ°ΠΌΠΎΠ»Π΅ΡΠΈ. ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΌΠΎΠ»Π΅Ρ ΠΈΠΌΠ° ΡΠ΅ΡΠ½Π° ΠΊΡΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΡΠ±ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠ»Π΅ΡΠ°. ΠΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² Π°Π΅ΡΠΎΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΏΡΠΎΠΌΠΈΡΠ»Π΅Π½ΠΎΡΡ.
- ΠΠ΄ΡΠ°Π²Π΅ΠΎΠΏΠ°Π·Π²Π°Π½Π΅ β ΡΠΎΠ²Π° Π΅ ΠΊΡΡΠ²Π½ΠΎΡΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅, ΠΏΡΠ»Ρ ΠΈ Ρ.Π½.
ΠΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠΌΠ° ΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΡΠΌ Π·Π°Π±ΡΠ°Π²ΠΈΠ», Π½ΠΎ ΡΠ΅ Π½Π°Π΄ΡΠ²Π°ΠΌ, ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅, ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡ ΡΠ²ΡΡ. Π ΠΎΠ±Π΅ΠΌΡΡ Π½Π° ΡΡΡ Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π°ΡΠ°ΡΡΠ²Π° Ρ Π²ΡΡΠΊΠ° ΠΈΠ·ΠΌΠΈΠ½Π°Π»Π° Π³ΠΎΠ΄ΠΈΠ½Π°.

ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π½ΡΠΆΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅? ΠΠ°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅?
ΠΠ°ΡΠΎΡΠΎ Π² Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΅ ΡΡΡΠ΄Π½Π° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ°ΡΠΎΠ²Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ
Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ. Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΡΠΎΡΠΊΠΈ (timestamp, ΡΡΠΎΠΉΠ½ΠΎΡΡ) Ρ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡΡ. Π’Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ API Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΊΠ»ΡΡ, ΠΏΠΎ Π΅Π΄Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΈΠ»ΠΈ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΡ ΡΠ΅Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ, ΠΈΠ»ΠΈ ΠΏΠΎ regexp. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²Π°ΡΠΈ ΡΡΠ»ΡΠ³ΠΈ Π² ΡΠ΅Π½ΡΡΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ Π² ΠΠΌΠ΅ΡΠΈΠΊΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°ΠΊΡΠ² ΠΏΡΠ΅Π²Π΄ΠΎΠ·Π°ΠΏΡΠΎΡ.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ SQL Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ SQL, ΡΠΎΠΉ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½. ΠΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ ΡΠ° Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΠΎ , , , . ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ Π½ΡΠΊΠΎΠΉ Π΅ ΡΡΠ²Π°Π» ΠΏΠΎΠ½Π΅ Π·Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ΅Π·ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΠ° PromQL Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° ΡΠ° ΡΡΠ²Π°Π»ΠΈ. Π’ΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊΡΡ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π½Π° Prometheus.

ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° VictoriaMetrics.
Π’Ρ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π΅ ΡΠ°ΡΡΠΈ. Π’ΠΎΠ²Π° Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ. Π’Π΅Π·ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ.
ΠΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΡΠΏΠ²Π° Π½ΠΎΠ²Π° Π·Π°ΠΏΠΈΡ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΎΠ±ΡΡΡΠ°ΠΌΠ΅ ΠΊΡΠΌ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ label=value Π·Π° Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠ°. ΠΠ°ΠΌΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ.
ΠΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΡΠΏΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ TSDB, ΠΏΡΡΠ²ΠΎ ΡΠ΅ Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ ΠΊΡΠΌ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ·Π²Π°ΠΆΠ΄Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ timeseries_ids Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡ. label=valueΠ‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΎ ΠΏΠΎ timeseries_ids.

ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π²Ρ ΠΎΠ΄ΡΡΠΎ select-Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅.
- ΠΡΡΠ²ΠΎ ΡΡ ΠΈΠ·Π²Π°ΠΆΠ΄Π° Π²ΡΠΈΡΠΊΠΈ
timeseries_idsΠΎΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ Π΄Π²ΠΎΠΉΠΊΠΈlabel=value, ΠΈΠ»ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΡΠΎ ΠΈΠ·ΡΠ°Π·ΡΠ²Π°Π½Π΅. - Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·Π²Π»ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΠΎΡΠΊΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π·Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠ΅
timeseries_ids. - Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π°Π΄ ΡΠ΅Π·ΠΈ ΡΠΎΡΠΊΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ, Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΈΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΡΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ°.
Π ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΠ°ΡΡ. Π’ΠΎΠ²Π° Π΅ ΡΡΡΡΠ΅Π½Π΅ timeseries_ids ΠΏΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ° Π²ΡΠΎΡΠ° ΠΈ ΡΡΠ΅ΡΠ° ΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ , ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Ρ Π΄ΡΡΠ³ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ π

ΠΠ΅ΠΊΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΡΡ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΠΉ Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ? Π, Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ°. ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎΠ²Π°.
ΠΡΡΡΠ½ΠΎΡΡ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠΎΡΡΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠ½ΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ ΡΡΠΏΠΎΡΡΠ°Π²Ρ ΠΊΠ»ΡΡ Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΊΠ»ΡΡ? Π’Π°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° label=value, ΠΊΡΠ΄Π΅ΡΠΎ label ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ β Π΅ ΡΡΡΠΈΠ½Π³. Π ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΡΠ° Π½Π°Π±ΠΎΡ timeseries_ids, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π·Π°Π΄Π°Π΄Π΅Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° label=value.
ΠΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ timeseries_ids, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ label=value.
Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° timeseries_ids Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π²ΠΎΠΉΠΊΠΈ label=value, ΠΈΠ»ΠΈ Π·Π° Π΄Π²ΠΎΠΉΠΊΠΈ label=regexp. ΠΠ°ΠΊ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠΎΠ²Π°? Π§ΡΠ΅Π· Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ timeseries_ids Π·Π° Π²ΡΡΠΊΠ° Π΄Π²ΠΎΠΉΠΊΠ° label=value.

ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠ°ΡΠ° Π½Π°ΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π’Ρ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°.
Π€ΡΠ½ΠΊΡΠΈΡ getMetricIDs Π²ΡΡΡΠ° ΡΠΏΠΈΡΡΠΊ ΠΎΡ ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅. ΠΡΠ΅ΠΊΠΈ ΡΡΡΠΈΠ½Π³ ΡΡΠ΄ΡΡΠΆΠ° label=value. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΡΠ° ΡΠΏΠΈΡΡΠΊ metricIDs.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ? ΠΠΌΠ°ΠΌΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° invertedIndex. Π’ΠΎΠ²Π° Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΡΠ½ΠΈΠΊ (map), ΠΊΠΎΠΉΡΠΎ ΡΡΠΏΠΎΡΡΠ°Π²Ρ ΡΡΡΠΈΠ½Π³ Π½Π° slice int-ΠΎΠ²Π΅. Π‘ΡΡΠΈΠ½Π³ΡΡ ΡΡΠ΄ΡΡΠΆΠ° label=value.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°: ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΌΠ΅ metricIDs Π·Π° ΠΏΡΡΠ²ΠΈΡ label=value, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ label=value, ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΌΠ΅ metricIDs Π·Π° ΡΡΡ
. Π ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° intersectInts, Π·Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅ Π΄ΡΠΌΠ° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΡΠ° ΠΏΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΡΠΏΠΈΡΡΡΠΈ.

ΠΠ°ΠΊΡΠΎ Π²ΠΈΠΆΠ΄Π°ΡΠ΅, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ»ΠΎΠΆΠ½Π°. ΠΠΎ ΡΠΎΠ²Π° Π΅ Π½Π°ΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ°ΠΊΠ²ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ ΠΈΠΌΠ°? ΠΠ»Π°Π²Π½ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π° Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅, ΡΠ΅ ΡΠ°ΠΊΡΠ² ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ. Π‘Π»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π³ΡΠ±ΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡΠΌΠ° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° Π΄ΠΈΡΠΊ. ΠΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΠ°ΠΊΡΠ² ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ Π΅Π΄Π²Π° Π»ΠΈ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ.
ΠΡΠΎΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ ΡΡΡΠΎ Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠΊΠΎ ΠΏΡΠ΅Π²ΠΈΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ β out of memory error. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ.

Π’Π°Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π³ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ , ΠΈΠ»ΠΈ .
ΠΠΊΠΎ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ, Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- ΠΡΡΠ²Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ
ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡΠ² ΡΠ°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π’Ρ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ, ΠΊΡΠ΄Π΅ΡΠΎΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅. - ΠΡΠΎΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ Π±ΡΡΠ·ΠΎ ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡΡ.
- Π’ΡΠ΅ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ Π±ΡΡΠ·ΠΎ ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅ΡΠΈΠΊΡ.
LevelDB ΠΈ RocksDB ΡΠ° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡ Google ΠΈ Facebook. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ LevelDB. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Ρ ΠΎΡΠ°ΡΠ° ΠΎΡ Facebook Π²Π·Π΅Ρ Π° LevelDB ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Ρ, ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ RocksDB. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° Facebook ΡΠ°Π±ΠΎΡΡΡ Π½Π° RocksDB, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΠΏΡΠ΅Π²Π΅Π΄ΠΎΡ Π° MySQL Π½Π° RocksDB. Π’Π΅ Π³ΠΎ Π½Π°ΡΠ΅ΠΊΠΎΡ Π° .
ΠΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° LevelDB. ΠΠ°ΠΊ? ΠΠ°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡ label=value. Π ΠΊΠ°ΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄, Π² ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΡΡΡΡΠ²Π° Π΄Π²ΠΎΠΉΠΊΠ°ΡΠ° label=value.
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ Ρ ΡΠ°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° label=value, ΡΠ΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΠ°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΠΊΠ»ΡΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ timeseries_ids. ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΠΈΡΡΠΊ Π½Π° Π²ΡΠΈΡΠΊΠΈ timeseries_ids, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ ΡΠΎΠ·ΠΈ label=prefix, ΠΏΡΠ°Π²ΠΈΠΌ range scan, Π·Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠ°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π’.Π΅. ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ label=prefix ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ timeseries_ids.

ΠΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅ΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ Π±ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Π» Π½Π° Go. ΠΠΌΠ°ΠΌΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ. Π’ΠΎΠ²Π° Π΅ LevelDB.
Π€ΡΠ½ΠΊΡΠΈΡΡΠ° Π΅ ΡΡΡΠ°ΡΠ°, ΠΊΠ°ΠΊΡΠΎ Π·Π° Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π’Ρ ΠΏΠΎΡΡΠΈ ΡΠ΅Π΄ ΠΏΠΎ ΡΠ΅Π΄ ΠΏΠΎΠ²ΡΠ°ΡΡ Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ Π½Π΅ΡΠΎ Π΅, ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ map , ΡΠ΅ ΠΎΠ±ΡΡΡΠ°ΠΌΠ΅ ΠΊΡΠΌ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΡΡΠ²Π°ΡΠ° label=value. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ label=value ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π½Π°Π±ΠΎΡΠΈ metricIDs Π·Π° ΡΡΡ
. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ.

ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΄ΠΎΠ±ΡΠ΅, Π² ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. VictoriaMetrics ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° LevelDB. ΠΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°ΠΆΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ.
ΠΠ°ΡΠΎ? ΠΠ°ΡΠΎΡΠΎ LevelDB Π΅ ΠΏΠΎ-Π±Π°Π²Π΅Π½ ΠΎΡ Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡΡ Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ΅Π»ΠΈΡ slice metricIDs. Π’Π°Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·Π° - ΡΠ΅Π»ΠΈΡΡ slice Π΅ Π³ΠΎΡΠΎΠ² Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.
ΠΡΠΈ LevelDB ΠΎΠ±Π°ΡΠ΅ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° GetValues ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ label=value. Π Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° timeseries_ids. ΠΡ ΡΠ΅Π·ΠΈ timeseries_ids ΡΡΠ±ΠΈΡΠ°ΠΌΠ΅ slice Π½Π° ΡΠ΅Π·ΠΈ timeseries_ids. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΌΠ°ΠΏ ΠΏΠΎ ΠΊΠ»ΡΡ.
ΠΡΠΎΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π΅, ΡΠ΅ LevelDB Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C. ΠΠ±Π°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° C ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Go Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ. Π’ΠΎΠ²Π° ΠΎΡΠ½Π΅ΠΌΠ° ΡΡΠΎΡΠΈΡΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ, Π·Π°ΡΠΎΡΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Go, ΠΊΠΎΡΡΠΎ ΠΎΡΠ½Π΅ΠΌΠ° 1-5 Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ Π΄Π΅ΡΠ΅ΡΠΎΠΊΡΠ°ΡΠ½ΠΎ. ΠΠ° VictoriaMetrics ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΡΠ°ΡΠ°Π»Π΅Π½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ π

ΠΠ°ΡΠΎΠ²Π° Π½Π°ΠΏΠΈΡΠ°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. Π Ρ Π½Π°ΡΠ΅ΠΊΠΎΡ .
Mergeset Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ MergeTree. Π’Π°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ Π΅ Π·Π°ΠΈΠΌΡΡΠ²Π°Π½Π° ΠΎΡ ClickHouse. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π΅, ΡΠ΅ mergeset ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΡΡΠ΅Π½Π΅ timeseries_ids ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡΡ. Mergeset Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π° Go. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ . Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° mergeset ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° . ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ°ΠΌ.
API-ΡΠΎ Π½Π° mergeset Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠΎΠ²Π° Π½Π° LevelDB ΠΈ RocksDB. Π’ΠΎΠ΅ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π±ΡΡΠ·ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅ΡΠΈΠΊΡ.

ΠΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° mergeset ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π‘Π΅Π³Π° ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ Π° Ρ VictoriaMetrics Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π° ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ.
ΠΠ°ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ Π°?
ΠΡΡΠ²Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π΅ Π²ΠΈΡΠΎΠΊΠΈΡΡ churn rate. Π ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° Π±ΡΠ»Π³Π°ΡΡΠΊΠΈ β ΡΠΎΠ²Π° Π΅ ΡΠ΅ΡΡΠ° ΡΠΌΡΠ½Π° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅. Π’ΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΡ ΡΠ΅Π΄ ΡΠ²ΡΡΡΠ²Π° ΠΈ Π·Π°ΠΏΠΎΡΠ²Π° Π½ΠΎΠ² ΡΠ΅Π΄, ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π΄ΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ.
ΠΡΠΎΡΠ°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π΅ Π³ΠΎΠ»ΡΠΌΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ Π·Π°ΠΏΠΎΡΠ²Π°ΡΠ΅ Π΄Π° Π½Π°Π±ΠΈΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π±Π΅ ΠΌΠ°Π»ΠΊΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π²ΡΡΠΊΠ° ΠΌΠ°ΡΠΈΠ½Π° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ Π΄ΠΈΡΠΊΠ°. 4 Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄Π° Π½Π° ΠΌΠ°ΡΠΈΠ½Π°. ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ 100 ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈ 400 Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄Π°. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ.
Π‘ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Ρ ΠΎΡΠ°ΡΠ° ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΡ Π°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ, Π° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ ΡΠ΄ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ 40 ΡΠ΄ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΠΈΠΌΠ°ΡΠ΅ 40 ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ. ΠΡΡΠΊΠΎ ΡΠ΄ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠ°ΡΠΎ idle, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΠ° Π² user space, ΡΠ°Π±ΠΎΡΠ° Π² kernel space ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ. Π Π²ΡΡΠΊΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΎ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²Π° ΡΠ΅ΡΠΈΡ. Π’ΠΎΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π±ΡΠΎΡ Π½Π° ΡΠ΅ΡΠΈΠΈΡΠ΅ 7-8 ΠΏΡΡΠΈ.
ΠΡ Π΅Π΄Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠ° ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ 40 Ρ 8 = 320 ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠ°ΠΌΠΎ Π·Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡΡΡΡ. Π£ΠΌΠ½ΠΎΠΆΠ°Π²Π°ΠΌΠ΅ ΠΏΠΎ 100, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 32 000 Π²ΠΌΠ΅ΡΡΠΎ 400.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Kubernetes. Π Π²ΡΠ΅ ΠΎΡΠ΅ Π²Π»ΠΎΡΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°, Π·Π°ΡΠΎΡΠΎ Π² Kubernetes ΠΌΠΎΠ³Π°Ρ Π΄Π° Ρ ΠΎΡΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ. ΠΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π° Π² Kubernetes ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π°. Π Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΎ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΡΠ½Ρ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ. ΠΠ° Π²ΡΡΠΊΠ° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π°Ρ Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π±ΡΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ Π½Π°ΡΠ°ΡΡΠ²Π° Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΈ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π³ΠΎΠ»ΡΠΌΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, Π½Π°ΡΠ΅ΡΠ΅Π½ high-cardinality. VictoriaMetrics ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Ρ Π½Π΅Π³ΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ.

ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ high churn rate. ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π° high churn rate Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ? ΠΠ°ΡΠΎΡΠΎ Π½ΡΠΊΠΎΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Kubernetes, Π² ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ deployment, Ρ.Π΅. ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Kubernetes ΠΏΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΏΡΠΈΡΠΈΠ½Π° ΡΠ΅ΡΠΈΡ
Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ id Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠ° Π² Π΅ΡΠΈΠΊΠ΅ΡΠ°.
ΠΠ°ΠΊΠ²ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠΎΠ²Π°? ΠΠΎ ΡΠΎΠ²Π°, ΡΠ΅ ΠΏΡΠΈ Π²ΡΠ΅ΠΊΠΈ Π½ΠΎΠ² Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Ρ, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡ
Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Ρ Π½ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠ° deployment_id. Π’Π°ΠΊΠΈΠ²Π° ΡΠ΅ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠΎΡΠΈΡΠΈ Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΠΈ Π΄ΠΎΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ.
ΠΠ°ΠΆΠ½Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡ Π½Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅, ΡΠ΅ ΠΎΠ±ΡΠΈΡΡ Π±ΡΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π½Π°ΡΠ°ΡΡΠ²Π°, Π½ΠΎ Π±ΡΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π΄Π°Π½Π½ΠΈ, ΠΎΡΡΠ°Π²Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½. Π’Π°ΠΊΠΎΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ° β high churn rate.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ high churn rate Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π΄Π΅Π½.

ΠΠ°ΠΊ Π΄Π° ΡΠ΅ΡΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ? ΠΡΠΎ ΠΏΡΡΠ²ΠΈΡ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠ° ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΡΠ°ΡΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅. Π’.Π΅. ΠΈΠ·ΠΌΠΈΠ½Π°Π²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅, ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΈΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ. Π ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ·ΠΌΠΈΠ½Π°Π²Π° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅, ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΡΡΠΊ.
Π ΠΏΡΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ Π½Π°Π±ΠΎΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π». Π ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΎΡΡΠ°ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ.
Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠΏΠ΅ΡΡΠΈΠΌ ΡΠ΅ΡΡΡΡΠΈ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π». Π’.Π΅. ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ°Ρ, ΡΠΎ Π·Π° ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅.

ΠΠΌΠ° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈ ΠΏΡΠ΅Π· ΡΠΎΠ·ΠΈ Π΄Π΅Π½.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ Π½Π΅ Π΄ΡΠ±Π»ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΈΠ·ΡΠ΅Π·Π²Π°Ρ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. Π’Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΈ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ ΡΠ°ΠΊΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. Π VictoriaMetrics ΠΈΠ·Π±ΡΠ° ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠ° ΡΠ΅ Π΅ ΠΎΡΠΎΡΠΌΠΈΠ»ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ. Π’Π°ΠΊΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄ΠΎΠ±ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ. ΠΠ°ΡΠΎΡΠΎ ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π·Π°ΡΠ°Π΄ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π²ΡΠ² Π²ΡΡΠΊΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ, Ρ.Π΅. ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΈΠ·ΡΠ΅Π·Π²Π°Ρ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. VictoriaMetrics Π΅ Π±ΠΈΠ»Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ Π²Π»ΠΎΡΠ°Π²Π°Π»Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π·Π°ΡΠΎΠ²Π° Π΅ Π±ΠΈΠ»Π° ΠΈΠ·Π±ΡΠ°Π½Π°.
ΠΡΠΈΡΠ»ΠΎ ΡΠ΅ Π΅ Π΄Π° ΡΠ΅ Π±ΠΎΡΠΈΠΌ Ρ Π½Π΅Π³ΠΎ. ΠΠΎΡΠ±Π°ΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠ΅ΡΠ΅ Π² ΡΠΎΠ²Π°, ΡΠ΅ Π² ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ timeseries_ids Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅.

ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡ
ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ? Π Π΅ΡΠΈΡ
ΠΌΠ΅ Π³ΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ β ΡΡΠ΅Π· ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ Π² Π²ΡΡΠΊΠ° Π·Π°ΠΏΠΈΡΠΊΠ° Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. Π’.Π΅. ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ»ΡΡ label=value, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ° Π²ΡΠ² Π²ΡΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π²Π° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ°. Π ΡΠ΅Π³Π° Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ timeseries_ids Π² Π΅Π΄Π½Π° Π·Π°ΠΏΠΈΡ.
ΠΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠ΅Π΄ΠΈ ΠΈΠΌΠ°Ρ ΠΌΠ΅ N Π·Π°ΠΏΠΈΡΠ°, Π° ΡΠ΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ Π·Π°ΠΏΠΈΡ, ΡΠΈΠΉΡΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡ Π΅ ΡΡΡΠΈΡΡ ΠΊΠ°ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ. ΠΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΡ Π·Π°ΠΏΠΈΡ ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ id Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ.
Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄ΠΎ 10 ΠΏΡΡΠΈ. Π Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π·Π° ΠΊΠ΅ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅Π³Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΡΡΠΈΠ½Π³Π° label=value ΡΠ°ΠΌΠΎ Π²Π΅Π΄Π½ΡΠΆ Π² ΠΊΠ΅ΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ N ΠΏΡΡΠΈ. Π ΡΠΎΠ·ΠΈ ΡΡΡΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π³ΠΎΠ»ΡΠΌ, Π°ΠΊΠΎ Π² ΡΠ°Π³ΠΎΠ²Π΅ΡΠ΅ ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π΄ΡΠ»Π³ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Kubernetes ΠΎΠ±ΠΈΡΠ° Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ.

ΠΡΠ΅ Π΅Π΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π² ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π΅ ΡΠ°ΡΠ΄ΠΈΡΠ²Π°Π½Π΅ΡΠΎ. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠ±ΡΡΠ½Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΠ°ΡΠ΄ΠΈΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ
ΠΏΠΎ ΠΊΠ»ΡΡ. Π’ΠΎΠ²Π° Π΅ Π½Π°Π±ΠΎΡ key=value ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ. Π’.Π΅. ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΎΠ±ΡΡΠ½Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ
Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ°ΠΌΠΎ Π² Π΅Π΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ, Ρ.Π΅. ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π½Π° Π΅Π΄Π½ΠΎ ΡΠ΄ΡΠΎ. Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΄ΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΎΠ±ΠΈΡΠ° Π΄Π° ΠΏΡΠ°Π²ΠΈ ClickHouse. Π’ΠΎΠ²Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅.

Π ΡΠ΅Π³Π° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ Π½Π° ΡΠ΅ΠΌΠ°ΡΠ° β Π·Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π½Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ timeseries_ids. ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ timeseries_ids Π·Π° Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ label=value.

ΠΡΡΠ²ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΠΎΠ²Π° Π΅ Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ²Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠΈΠΊΡΠ»Π°. ΠΡ
ΠΎΠ΄ΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° intersectInts ΡΠ° Π΄Π²Π° slices β a ΠΈ b. ΠΠ° ΠΈΠ·Ρ
ΠΎΠ΄Π° ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π½ΠΈ Π²ΡΡΠ½Π΅ ΠΏΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ slices.
ΠΠ°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½. ΠΠ·ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΡ slice a, Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΡΠΈΠΊΡΠ» ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° slice b. Π Π³ΠΈ ΡΡΠ°Π²Π½ΡΠ²Π°ΠΌΠ΅. ΠΠΊΠΎ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ, Π·Π½Π°ΡΠΈ ΡΠΌΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ. Π Π³ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.

ΠΠ°ΠΊΠ²ΠΈ ΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅? ΠΠ²Π°Π΄ΡΠ°ΡΠ½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ β ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° slice a ΠΈ b ΠΎΡ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΌΠΈΠ»ΠΈΠΎΠ½, ΡΠΎ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π½ΠΈΠΊΠΎΠ³Π° Π½ΡΠΌΠ° Π΄Π° Π²ΠΈ Π²ΡΡΠ½Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡ. ΠΠ°ΡΠΎΡΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π΅Π΄ΠΈΠ½ ΡΡΠΈΠ»ΠΈΠΎΠ½ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΠΈ Π·Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ.

ΠΡΠΎΡΠ°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° map. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ map. ΠΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π² ΡΠΎΠ·ΠΈ map Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΡ slice a. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΈΠΊΡΠ» ΠΏΡΠ΅Π· slice b. Π ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ β Π΄Π°Π»ΠΈ ΠΈΠΌΠ° ΡΠ°Π·ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΡ slice b Π² map. ΠΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°, Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π³ΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°.

ΠΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ°? ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π΅, ΡΠ΅ ΡΡΠΊ Π΅ ΡΠ°ΠΌΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ. Π’.Π΅. ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° slices. ΠΠ° ΠΌΠΈΠ»ΠΈΠΎΠ½Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ slice, ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ Π·Π° 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠΈΠ»ΠΈΠΎΠ½ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊΡΠΎ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ°ΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠ°Π·ΠΈ map.
ΠΡΠΎΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ β Π΅ Π³ΠΎΠ»ΡΠΌΠΎΡΠΎ overhead Π½Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ. Π’ΠΎΠ·ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½. Π Π·Π° Π½Π°Ρ ΡΠΎΠΉ ΡΡΡΠΎ Π½Π΅ Π±Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½, Π·Π°ΡΠΎΠ²Π° Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π² VictoriaMetrics ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° intersection Π±Π΅ΡΠ΅ ΡΡΠ΅Π· map. ΠΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° Π·Π° Π·Π°ΠΏΠΈΡ Π² map ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΡΠ°Π·ΠΈ map.
ΠΠ°ΡΠΎ Π² ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠ° ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅? ΠΠ°ΡΠΎΡΠΎ Π² ΡΠ΅Π·ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Go ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ Ρ Π΅ΡΠΈΡΠ°Π½Π΅. Π’.Π΅. ΡΠΎΠΉ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ Π΅Ρ ΠΎΡ ΠΊΠ»ΡΡΠ°, Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π² HashMap. ΠΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Ρ Π΅ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π° Π΄Π΅ΡΠ΅ΡΠΊΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π’ΠΎΠ²Π° Π΅ Π±Π°Π²Π½ΠΎ Π·Π° VictoriaMetrics.

Π Π΅ΡΠΈΡ
Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌ bitset, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π° ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ΅Π³Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π²Π° slices. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ bitset. ΠΠΎΠ±Π°Π²ΡΠΌΠ΅ Π² Π½Π΅Π³ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ slice. ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π²ΡΠ² Π²ΡΠΎΡΠΈΡ slice. Π Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π³ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°. Π’.Π΅. ΠΏΠΎΡΡΠΈ Π½Π΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠΌΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π΅ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ map Ρ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. add ΠΈ has.

ΠΠ° ΠΏΡΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, Π°ΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° map, Π° ΡΡΠΊ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΠΎΡΠ΅ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° 10 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° map Π·Π° ΡΠ»ΡΡΠ°Ρ Ρ VictoriaMetrics.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° map. ΠΠ°ΡΠΎΡΠΎ ΡΡΠΊ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π±ΠΈΡΠΎΠ²Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠ΅ΠΌΠ±Π°ΠΉΡΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π½Π° ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅, ΡΠ΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°, Π½Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»Π½Π°.
ΠΡΠ΅ Π΅Π΄ΠΈΠ½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ, ΠΊΠΎΠΉΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Ρ, Π΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅ Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ. Π’.Π΅. ΡΡ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ, Π·Π° ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² VictoriaMetrics. Π’ΠΎΠ²Π° Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ. ΠΠΊΠΎ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ out of memory error ΠΈ Π·Π°Π±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.

ΠΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ°. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° VictoriaMetrics, Π² ΠΏΠ°ΠΏΠΊΠ° . Π’Ρ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° ΡΠ»ΡΡΠ°Ρ Π½Π° VictoriaMetrics, ΠΊΡΠ΄Π΅ΡΠΎ timeseries_id ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° 64-Π±ΠΈΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΡΠ²ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΠΈ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΡΠ°ΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°.
Π’Π°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π½Π° Π΄ΠΈΡΠΊΠ°, ΡΡ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.

ΠΡΠΎ Π½Π΅ΠΉΠ½ΠΈΡ API. Π’ΠΎΠΉ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½. API-ΡΠΎ Π΅ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° VictoriaMetrics. Π’.Π΅. ΡΡΠΊ Π½ΡΠΌΠ° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’ΡΠΊ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ²Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ VictoriaMetrics.
ΠΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ add, ΠΊΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Ρ Π½ΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ has, ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π½ΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ del, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΡΡΠΈΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΌΠ° ΠΏΠΎΠΌΠΎΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ len, ΠΊΠΎΡΡΠΎ Π²ΡΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΡΠΎ. Π€ΡΠ½ΠΊΡΠΈΡΡΠ° clone ΠΊΠ»ΠΎΠ½ΠΈΡΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΡΠΎ. Π ΡΡΠ½ΠΊΡΠΈΡΡΠ° appendto ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΡΠΎΠ·ΠΈ ΡΠ΅Ρ Π² slice. timeseries_ids.

ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΠΈ. Π ΡΠ΅Ρ ΠΈΠΌΠ° Π΄Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°:
ItemsCountβ ΡΠΎΠ²Π° Π΅ ΠΏΠΎΠΌΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π΅, Π·Π° Π΄Π° Π²ΡΡΠ½Π΅ΡΠ΅ Π±ΡΡΠ·ΠΎ Π±ΡΠΎΡ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ Π² ΡΠ΅Ρ. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΈ Π±Π΅Π· ΡΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π΅, Π½ΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΊ, Π·Π°ΡΠΎΡΠΎ VictoriaMetrics ΡΠ΅ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π° Π·Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°ΡΠ° Π½Π° bitset Π² ΡΠ²ΠΎΠΈΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ.ΠΡΠΎΡΠΎΡΠΎ ΠΏΠΎΠ»Π΅ Π΅
buckets. Π’ΠΎΠ²Π° Π΅ slice ΠΎΡ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°bucket32. ΠΡΠ² Π²ΡΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°hiΠΏΠΎΠ»Π΅. Π’ΠΎΠ²Π° ΡΠ° Π³ΠΎΡΠ½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°. Π Π΄Π²Π° slice βb16hisΠΈbucketsΠΎΡbucket16ΡΡΡΡΠΊΡΡΡΠΈ.
Π’ΡΠΊ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π³ΠΎΡΠ½ΠΈΡΠ΅ 16 Π±ΠΈΡΠ° ΠΎΡ Π²ΡΠΎΡΠ°ΡΠ° ΡΠ°ΡΡ Π½Π° 64-Π±ΠΈΡΠΎΠ²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ°. Π ΡΡΠΊ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ bitsets Π·Π° ΠΌΠ»Π°Π΄ΡΠΈΡΠ΅ 16 Π±ΠΈΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ Π±Π°ΠΉΡ.
Bucket64 ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΌΠ°ΡΠΈΠ² uint64. ΠΡΠ»ΠΆΠΈΠ½Π°ΡΠ° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ. Π Π΅Π΄ΠΈΠ½ bucket16 ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° 2^16=65536 Π±ΠΈΡ. ΠΠΊΠΎ Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ Π½Π° 8, ΡΠΎΠ²Π° Π΅ 8 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°. ΠΠΊΠΎ Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎ Π½Π° 8, ΡΠΎΠ²Π° ΡΠ° 1000 uint64 ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π’.Π΅. Bucket16 Π΅ 8-ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ½Π° ΡΡΡΡΠΊΡΡΡΠ°.

ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ.
ΠΡΠΈΡΠΊΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Ρ uint64 Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π³ΠΎΡΠ½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°, ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎΠ»Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°. ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ buckets. Π‘ΡΠ°Π²Π½ΡΠ²Π°ΠΌΠ΅ Π³ΠΎΡΠ½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° Π² Π²ΡΠ΅ΠΊΠΈ bucket Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π Π°ΠΊΠΎ ΡΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ, ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° add Π² ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° b32 buckets. Π Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π΄ΠΎΠ»Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°. Π Π°ΠΊΠΎ ΡΠΎΠ²Π° Π΅ Π²ΡΡΠ½Π°Π»ΠΎ true, ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠΌΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΊΠ°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ°ΠΌ ΠΈ ΡΠ°ΠΊΠΎΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ. ΠΠΊΠΎ ΡΡ Π²ΡΡΠ½Π΅ false, ΡΠΎ ΡΠ°ΠΊΠ°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π²Π΅ΡΠ΅ Π΅ ΠΈΠΌΠ°Π»Π°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΌΠ΅ Π±ΡΠΎΡ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ Π² ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°.
ΠΠΊΠΎ Π½Π΅ ΡΠΌΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π½ΡΠΆΠ½ΠΈΡ bucket Ρ Π½ΡΠΆΠ½ΠΎΡΠΎ hi-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° addAlloc, ΠΊΠΎΡΡΠΎ Π·Π°Π΄Π΅Π»Ρ Π½ΠΎΠ² bucket, Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ Π³ΠΎ Π² ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° bucket.

Π’ΠΎΠ²Π° Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° b32.add. Π’Ρ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΡΠΈΡΠ΅ 16 Π±ΠΈΡΠ°, ΠΌΠ»Π°Π΄ΡΠΈΡΠ΅ 16 Π±ΠΈΡΠ°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ Π³ΠΎΡΠ½ΠΈ 16 Π±ΠΈΡΠ°. ΠΠ°ΠΌΠΈΡΠ°ΠΌΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ. Π ΠΏΡΠΈ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° add, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π° bucket16.

Π Π΅ΡΠΎ Π½Π°ΠΉ-Π΄ΠΎΠ»Π½ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ. ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π·Π° uint64 id ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² slice bit, Π° ΡΡΡΠΎ ΠΈ bitmask. Π’ΠΎΠ²Π° Π΅ ΠΌΠ°ΡΠΊΠ° Π·Π° ΡΠ°Π·ΠΈ 64-Π±ΠΈΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΏΠΎ ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ Π±ΠΈΡ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅ΠΌ. ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ Π±ΠΈΡ, ΠΊΠΎΠΉΡΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½, ΠΈ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Π³ΠΎ, ΠΈ Π²ΡΡΡΠ°ΠΌΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ. ΠΡΠΎ ΠΊΠ°ΠΊΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ°ΠΌΠ΅, ΠΊΠΎΡΡΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π΄Π° ΡΠ΅ ΡΡΠΊΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ids Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ 10 ΠΏΡΡΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ maps.

Π VictoriaMetrics ΠΎΡΠ²Π΅Π½ ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊΠ°, Π° ΡΠ»Π΅Π΄ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² production.
Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ β Π½Π΅ Π΄ΠΎΠ±Π°Π²ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΠ°, ΡΠ΅ ΡΡΠΊ ΡΠ΅ ΠΈΠΌΠ° ΡΠ΅ΡΠ½ΠΎ ΠΌΡΡΡΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΡΠ°ΠΌ Π½ΡΠΌΠ° ΡΠ΅ΡΠ½ΠΎ ΠΌΡΡΡΠΎ. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²Π»ΠΎΡΠ°Π²Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. ΠΠ°ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ ΠΈ Π·Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π΅ Π² production, Π·Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° VictoriaMetrics ΠΈ Π΄Π° ΠΏΡΠΎΡΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΠ°ΠΌ.

ΠΠΌΠ°ΠΌ Π²ΡΠΏΡΠΎΡ Π·Π° bitset. ΠΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΡΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° C++ vector, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ bitset. ΠΠ·Π΅Π»ΠΈ Π»ΠΈ ΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΎΡ ΡΠ°ΠΌ?
ΠΠ΅, Π½Π΅ ΠΎΡΡΠ°ΠΌ. ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ bitset ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄Π΅Ρ ΠΏΠΎ Π·Π½Π°Π½ΠΈΡΡΠ° Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ids timeseries, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² VictoriaMetrics. Π‘ΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΈΠΌ Π΅ ΡΠ°ΠΊΠ°Π²Π°, ΡΠ΅ Π³ΠΎΡΠ½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ. ΠΠΎΠ»Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-Π½ΠΈΡΡΠΊ Π΅ Π±ΠΈΡΡΡ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΡΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. ΠΠ°ΡΠΎΠ²Π° ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠΎΡΠ½ΠΎ Π·Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. C++ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π·Π½Π°ΠΌ, Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ. ΠΠΊΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, ΡΠΎ ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΉ-ΠΎΠΏΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ.
ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π²ΠΈ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠΈΠ»ΠΎΠ²ΠΈΠ΄. Π’ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠ΅ΡΠ΅Ρ ΡΠ°Π·ΠΊΠ°Π·Π²Π°ΡΠ΅ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ClickHouse ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π’ΠΎΠΉ ΡΠΎΡΠ½ΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°, ΡΠ΅ Π² ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ C++ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΈΠ»ΠΈ Π½ΡΠΊΠ°ΠΊΠ²Π° Π΄ΡΡΠ³Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ° Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈ Π·Π° Π΄ΠΎΠ±ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π² ΡΡΠ΅Π΄Π½ΠΎΡΠΎ ΠΏΠΎ Π±ΠΎΠ»Π½ΠΈΡΠΈΡΠ΅. Π’Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π·Π»Π΅ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π·Π½Π°Π½ΠΈΡ, ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ Π³ΠΎΡΠ½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ.
ΠΠΌΠ°ΠΌ Π²ΡΠΎΡΠΈ Π²ΡΠΏΡΠΎΡ. Π ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΊΠΎΡΠ΅Π½Π½ΠΎΡΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ InfluxDB?
ΠΠΎΡΠ΅Π½Π½ΠΈΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΊΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠΎ InfluxDB Π² ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° 10 ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π·Π° high cardinality Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, VictoriaMetrics ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° 1 GB Π½Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΅Π΄Π°, Π΄ΠΎΠΊΠ°ΡΠΎ InfluxDB ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° 10 Gb. Π ΡΠΎΠ²Π° Π΅ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·Π»ΠΈΠΊΠ°.
ΠΡΠΎΡΠΎΡΠΎ ΠΊΠΎΡΠ΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π΅, ΡΠ΅ Π² InfluxDB ΠΈΠΌΠ° ΡΡΡΠ°Π½Π½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ β Flux ΠΈ InfluxQL. Π’Π΅ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ , ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π² VictoriaMetrics. PromQL Π΅ Π΅Π·ΠΈΠΊΡΡ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΎΡ Prometheus.
Π ΠΎΡΠ΅ Π΅Π΄Π½ΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ β Π² InfluxDB ΠΌΠΎΠ΄Π΅Π»ΡΡ Π½Π° Π΄Π°Π½Π½ΠΈ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ°Π½Π΅Π½, ΠΊΡΠ΄Π΅ΡΠΎ Π² Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ»Ρ Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°Π³ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ. Π’Π΅Π·ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ Π·Π°ΡΡΡΠ΄Π½ΡΠ²Π°Ρ ΠΏΠΎ-ΠΊΡΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°Π·ΠΈ Π±Π°Π·Π°. Π’Ρ Π΅ ΡΡΡΠ΄Π½Π° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
Π VictoriaMetrics Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ. Π’Π°ΠΌ Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΎΡΠΊΠΈ β (timestamp, ΡΡΠΎΠΉΠ½ΠΎΡΡ), Π° ΠΊΠ»ΡΡΡΡ Π΅ Π½Π°Π±ΠΎΡ label=value. ΠΡΠΌΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° fields ΠΈ measurements. Π’ΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅, ΡΡΠ±ΠΈΡΠ°ΡΠ΅, ΠΈΠ·Π²Π°ΠΆΠ΄Π°ΡΠ΅, ΡΠΌΠ½ΠΎΠΆΠ°Π²Π°ΡΠ΅, Π΄Π΅Π»ΠΈΡΠ΅, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ InfluxDB, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π·Π½Π°ΠΌ. ΠΠΎΡΠΈ ΠΈ Π΄Π° ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, ΡΠ΅ ΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄.
ΠΠΌΠ°ΠΌ ΡΡΠΎΡΠ½ΡΠ²Π°Ρ Π²ΡΠΏΡΠΎΡ. Π Π°Π·Π±ΡΠ°Ρ Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π·Π° ΠΊΠΎΠΉΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π·Π°ΡΠΎΠ²Π° ΡΠ°ΠΌ ΠΈΠΌΠ° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅?
Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ Π½Π°ΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Go map. Π’Π°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΡΠ΅ Π·Π°ΠΏΠ°Π·Π²Π° Π½Π° Π΄ΠΈΡΠΊΠ°, Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΠ°, Π·Π° Π΄Π° ΠΎΡΡΠ°Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΠΏΡΠΈ ΡΠ΅ΡΡΠ°ΡΡ. Π ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ ΡΠ΅ΡΡΠ°ΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π½Π΅. Π ΡΠ΅ Π·Π°Π³ΡΠ±ΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅.
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! ΠΠ· ΡΡΠΌ ΠΠ°Π²Π΅Π» ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Wildberries. ΠΠΌΠ°ΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠΏΡΠΎΡΠ° ΠΊΡΠΌ Π²Π°Ρ. ΠΡΡΠ²ΠΈΡΡ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΈΡΠ»ΠΈΡΠ΅, Π°ΠΊΠΎ Π±ΡΡ ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π»ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅, Π±ΠΈ Π»ΠΈ ΠΌΠΎΠ³Π»ΠΎ Π΄Π° ΡΡΠ°Π½Π΅ ΡΠ°ΠΊΠ°, ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΡΡΡΡΠ΅Π½Π΅, ΠΎΡΠ½ΠΎΠ²Π°Π²Π°ΠΉΠΊΠΈ ΡΠ΅ ΡΠ°ΠΌΠΎ Π½Π° ΡΠΎΠ²Π°, ΡΠ΅ Π² Π΅Π΄Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅, Ρ.Π΅. Π·Π° Π΅Π΄ΠΈΠ½ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΈ Π½ΡΠΌΠ° Π»ΠΈ Π΄Π° Π²ΠΈ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅, ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ°ΡΠ° ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΡΠ°Π·Π±ΡΡΠΊΠ°Π½ΠΈ? ΠΡΠΎΡΠΈΡΡ Π²ΡΠΏΡΠΎΡ β ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Ρ bitset ΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ, ΠΏΡΠΎΠ±Π²Π°Π»ΠΈ Π»ΠΈ ΡΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°? ΠΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Π»ΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ?
ΠΠ° Π²ΡΠΎΡΠΈΡ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΡ. ΠΡΠ΅ Π½Π΅ ΡΠΌΠ΅ ΡΡΠΈΠ³Π½Π°Π»ΠΈ Π΄ΠΎ ΡΠΎΠ²Π°. ΠΠΎ Π°ΠΊΠΎ Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΠ΅ ΡΡΠΈΠ³Π½Π΅ΠΌ. Π ΠΏΡΡΠ²ΠΈΡΡ, ΠΊΠ°ΠΊΡΠ² Π±Π΅ΡΠ΅ Π²ΡΠΏΡΠΎΡΡΡ?
ΠΠ±ΡΡΠΆΠ΄Π°Ρ ΡΠ΅ Π΄Π²Π° ΡΡΠ΅Π½Π°ΡΠΈΡ. Π ΠΊΠ°Π·Π°Ρ ΡΠ΅, ΡΠ΅ ΡΡΠ΅ ΠΈΠ·Π±ΡΠ°Π»ΠΈ Π²ΡΠΎΡΠΈΡ Ρ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Π Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΠΎΡ ΡΠ΅ ΠΏΡΡΠ²ΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠ°. Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΎΠ±ΡΠΈΡΡ ΠΎΠ±Π΅ΠΌ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π±ΠΈ Π±ΠΈΠ» ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ, Π·Π°ΡΠΎΡΠΎ Π² Π²ΡΡΠΊΠ° ΠΏΠ°ΡΡΠΈΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π΄ΡΠ±Π»ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΅Π·ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ. Π Π°ΠΊΠΎ Π²Π°ΡΠΈΡΡ churn rate Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ Π΅ ΠΌΠ°Π»ΡΠΊ, Ρ.Π΅. ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΡΠΎ Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π±ΠΈΡ ΠΌΠ΅ Π·Π°Π³ΡΠ±ΠΈΠ»ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π²ΡΠΎΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ.
Π ΡΠ°ΠΊΠ° β Π΄Π°, ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π΄ΠΎΠ±ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ. Π’ΠΎΠΉ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ Prometheus. ΠΠΎ Π² Prometheus ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ. ΠΡΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΡΡΠΆΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ label ΠΈ timeseries. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π°ΠΊΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ»ΠΈΠ²Π°, ΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ, ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π°ΡΠ°ΡΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ VictoriaMetrics. ΠΡΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ VictoriaMetrics Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ²Π° Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ°ΠΌ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ° Π΄Π°Π½Π½ΠΈ.
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, ΡΠΏΠΎΡΡΠ΅Π±ΡΠ²Π° ΠΏΠ°ΠΌΠ΅Ρ. Π Π½Π΅Ρ ΡΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Ρ timeseries-Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π²ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΠ΅ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΌΠ°ΡΠΈΠ² Π΄Π°Π½Π½ΠΈ ΠΈ Π² Π΄ΡΡΠ³. Π ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ β ΠΈΠΌΠ° Π»ΠΈ intersect ΠΈΠ»ΠΈ Π½Π΅. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π² Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΊΡΡΡΠΎΡΠΈ, ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΡΠΎΡΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅.
ΠΠ°ΡΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΡΡΡΠΎΡΠΈ Π·Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ?
ΠΠ°.
ΠΡΠΈ Π½Π°Ρ Π² LevelDB ΠΈΠ»ΠΈ Π² mergeset ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ Ρ ΠΊΡΡΡΠΎΡ ΠΈ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ. Π Π·Π°ΡΠΎ Π½Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅? ΠΠ°ΡΠΎΡΠΎ β ΡΠΎΠ²Π° Π΅ Π±Π°Π²Π½ΠΎ. ΠΠ°ΡΠΎΡΠΎ ΠΊΡΡΡΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Ρ, ΡΠ΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ β ΠΎΡΠ½Π΅ΠΌΠ° 5 Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ 100 000 000 ΡΠ΅Π΄Π°, ΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°ΠΌΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠ°ΠΌΠΎ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°.
Π’Π°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ ΠΈΠΌΠ°, Π΄Π°. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΌΠΈ Π²ΡΠΏΡΠΎΡ. ΠΡΠΏΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π·Π²ΡΡΠΈ ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ°Π½Π½ΠΎ. ΠΠ°ΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠΎΡΡΡΠΏΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΡ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ Π²ΠΈΠ΄? ΠΠ°ΡΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ VictoriaMetrics, ClickHouse ΠΈ Ρ.Π½., Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΡΡ ?
Π©Π΅ Π΄Π°ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΡΠ°Π½Π΅ ΠΏΠΎ-ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎ. ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ°Π»ΠΊΠΈΡΡ ΠΈΠ³ΡΠ°ΡΠΊΠ° ΡΠΏΠΈΠ΄ΠΎΠΌΠ΅ΡΡΡ? Π’ΠΎΠΉ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ΅ ΠΈΠ·ΠΌΠΈΠ½Π°Π»ΠΈ, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ Π³ΠΎ Π² Π΅Π΄Π½ΠΎ ΡΠΈΡΠ»ΠΎ, Π° Π·Π° Π΄ΡΡΠ³ΠΎ β Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. Π ΡΠ°Π·Π΄Π΅Π»Ρ. Π ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΡΠ΅Π΄Π½Π°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ. ΠΠ° ΡΡΠ±Π΅ΡΠ΅ΠΌ Π½Π° Π»Π΅ΡΡΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ°ΠΊΡΠΈ.
ΠΠΎΠ±ΡΠ΅, ΡΠ°Π·Π±ΡΠ°Ρ Π²ΡΠΏΡΠΎΡΠ°. ΠΠ°ΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ° ΠΌΡΡΡΠΎ Π·Π° ΠΆΠΈΠ²ΠΎΡ. ΠΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠΎΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ Π²ΠΈ ΡΡΡΠ±Π²Π°Ρ, ΡΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ Ρ ΠΎΡΠ°ΡΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π½ΡΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π² ClickHouse ΠΈ ΡΠ΅ Π½Π΅ Π·Π½Π°ΡΡ ΠΎΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ Π³ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Ρ, ΡΠΈΠ»ΡΡΠΈΡΠ°Ρ Π² Π±ΡΠ΄Π΅ΡΠ΅, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΎ Π°ΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅ Π½Π΅ΡΠΎ ΡΡΠ΅Π΄Π½ΠΎ, Π·Π°ΡΠΎ Π΄Π° Π½Π΅ Π³ΠΎ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΊΡΠΏΡΠΈΠ½ΠΈ ΡΡΡΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ? ΠΠΎ ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΡΠΊΠ°ΡΠ΅.
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Π°Π³ΡΠ΅Π³Π°ΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Prometheus ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° . Π’ΠΎΠ΅ΡΡ, ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ, Π°ΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ ΡΠ΅ Π²ΠΈ ΠΏΠΎΡΡΡΠ±Π²Π°Ρ. Π VictoriaMetrics ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡΠ½ΠΎ, Π½ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ Π½Π΅Ρ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ Prometheus, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ° Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Π±ΡΠΎΡΡ Π½Π° ΡΡΠ±ΠΈΡΠΈΡΡΠ° Π² ΠΏΠ»ΡΠ·Π³Π°Ρ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ°Ρ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Go, Ρ.Π΅. ΡΡΠ»ΡΠ³Π° Π·Π° Π±ΡΠΎΠ΅Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. Π’Π°Π·ΠΈ ΡΡΠ»ΡΠ³Π° Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΡΠ°Π½Π° Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»Π½Π°, Π·Π°ΡΠΎΡΠΎ Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ΡΠΎ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΡΠ°, Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ Π·Π° ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎ Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π±ΡΠΎΠΈΡΠ΅ ΡΡΠ±ΠΈΡΠΈΡ Π² ΠΏΠ»ΡΠ·Π³Π°Ρ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ, ΡΠΎ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°. ΠΠΈΡΠ»Ρ, ΡΠ΅ ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π² ClickHouse ΠΈΠ»ΠΈ Π² Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, Π·Π°ΡΠΎΡΠΎ Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ. Π‘Π΅Π³Π° Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΌΠ΅ Π·Π° ΡΡΠ΅Π΄Π½ΠΎΡΠΈΡΠ»Π΅Π½Π΅, ΠΈ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΠΈΡ , ΡΠ΅ Π½ΡΠΊΠΎΠ³Π° ΠΈΠΌΠ°ΡΠ΅ Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Graphite Ρ Π±Π΅ΠΊΠ΅Π½Π΄ Carbon. Π ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅Π΄ΡΡΠΈΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Ρ.Π΅. Π΄Π° ΠΎΡΡΠ°Π²Ρ Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠΈΠ½ΡΡΠ°, Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ°Ρ ΠΈ Ρ.Π½. ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ Π½ΠΈ ΡΡΡΠ±Π²Π°Ρ ΡΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π·Π° Π΅Π΄ΠΈΠ½ ΠΌΠ΅ΡΠ΅Ρ, Π° Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅Π΄ΡΡΠΈΡΠ°. ΠΠΎ Prometheus ΠΈ VictoriaMetrics Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ»Π°Π½ΠΈΡΠ° Π»ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°? ΠΠΊΠΎ Π½Π΅, Π·Π°ΡΠΎ?
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π²ΡΠΏΡΠΎΡΠ°. ΠΠ°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³ΠΎ Π·Π°Π΄Π°Π²Π°Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ. ΠΠΈΡΠ°Ρ, ΠΊΠΎΠ³Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° downsampling. Π’ΡΠΊ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΡΠ²ΠΎ, Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΠ°Π·Π±ΠΈΡΠ° ΠΏΠΎΠ΄ downsampling Π½Π΅ΡΠΎ ΡΠ²ΠΎΠ΅: Π½ΡΠΊΠΎΠΈ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° ΡΠΎΡΠΊΠ° Π² Π·Π°Π΄Π°Π΄Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π΄ΡΡΠ³ΠΈ ΠΈΡΠΊΠ°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΊΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° Π²ΠΈ ΠΏΠΎΡΡΡΠΏΠ²Π°Ρ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΏΠΎΠ΄ Π΅Π΄ΠΈΠ½ ΡΡΠ°Π½Π΄Π°ΡΡ. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅, ΡΠ΅ Π·Π° Π²ΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Π·Π° downsampling. Π ΡΠΎΠ²Π° Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΡΠΎΡΠΎΡΠΎ Π΅, ΡΠ΅ VictoriaMetrics, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ClickHouse, Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΡΠ΅Π΄Π° Π·Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠΈ. Π‘ΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠΎΡΠΊΠΈ Π² VictoriaMetrics Π΅ 50 000 000 ΡΠΎΡΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π½Π° Π΅Π΄Π½ΠΎ ΡΠ΄ΡΠΎ. Π ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° ΡΠΏΡΡΠΌΠΎ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΄ΡΠ°. Π’.Π΅. Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ 20 ΡΠ΄ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ°ΡΠ΅ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΡΠΎΡΠΊΠΈ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π ΡΠΎΠ²Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π° VictoriaMetrics ΠΈ ClickHouse Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π½ΡΠΆΠ΄Π°ΡΠ° ΠΎΡ downsampling.
ΠΡΠ΅ Π΅Π΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΅, ΡΠ΅ VictoriaMetrics Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΅ ΡΡΠ΅Π΄Π½ΠΎ ΠΎΡ 0,4 Π΄ΠΎ 0,8 Π±Π°ΠΉΡΠ° Π½Π° ΡΠΎΡΠΊΠ°. ΠΡΡΠΊΠ° ΡΠΎΡΠΊΠ° Π΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°ΡΠΊΠ΅Ρ + ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π ΡΡ ΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ Π² ΡΡΠ΅Π΄Π½ΠΎ.
Π‘Π΅ΡΠ³Π΅ΠΉ. ΠΠΌΠ°ΠΌ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΡΠ² Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΊΠ²Π°Π½Ρ Π·Π° Π·Π°ΠΏΠΈΡ?
ΠΠ΄Π½Π° ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΡΠΊ ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ Ρ Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π’Π΅Ρ Π½ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ ΠΊΠ²Π°Π½Ρ Π½Π° Π²ΡΠ΅ΠΌΠ΅ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π Graphite, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΎ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π OpenTSDB ΠΏΠ°ΠΊ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π InfluxDB - Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π½Π° ΡΠΎΡΠ½ΠΎΡΡ. Π VictoriaMetrics - Π΅Π΄Π½Π° ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°, Π·Π°ΡΠΎΡΠΎ Π² Prometheus ΡΡΡΠΎ Π΅ Π΅Π΄Π½Π° ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°. Π VictoriaMetrics Π±Π΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΊΠ°ΡΠΎ Π΄Π°Π»Π΅ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Prometheus. ΠΠΎ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
Π§ΠΎΠ²Π΅ΠΊΡΡ, Ρ ΠΊΠΎΠ³ΠΎΡΠΎ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΡΡ , ΠΊΠ°Π·Π°, ΡΠ΅ ΠΈΠΌΠ°Ρ ΡΠ΅ΠΊΡΠ½Π΄Π½Π° ΡΠΎΡΠ½ΠΎΡΡ - ΡΠΎΠ²Π° ΠΈΠΌ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ, Π·Π°ΡΠΎΡΠΎ ΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² Π±Π°Π·Π°ΡΠ° Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠΊΠΎ ΡΠΎΠ²Π° ΡΠ° DevOps Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π³ΠΈ ΡΡΠ±ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΎΡ 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π΄ΠΎ ΠΌΠΈΠ½ΡΡΠ°, ΡΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π½Π°ΡΠ° ΡΠΎΡΠ½ΠΎΡΡ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½Π°, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. Π Π°ΠΊΠΎ ΡΡΠ±ΠΈΡΠ°ΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΡΠΎΠΊΠ° ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΡΡΡΠ³ΠΎΠ²ΠΈΡ, ΡΠΎΠ³Π°Π²Π° Π΅ Π½ΡΠΆΠ½Π° Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π½Π° ΡΠΎΡΠ½ΠΎΡΡ.
ΠΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π½Π°ΡΠ° ΡΠΎΡΠ½ΠΎΡΡ Π½Π° VictoriaMetrics Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° ΠΊΠ°ΠΊΡΠΎ Π·Π° DevOps ΡΠ»ΡΡΠ°ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ°, Π΅ Π²ΠΈΡΠΎΡΠ΅ΡΡΠΎΡΠ½Π° ΡΡΡΠ³ΠΎΠ²ΠΈΡ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ! Π ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΠ²Π° Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ PromQL?
ΠΡΠ»Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ. VictoriaMetrics Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° PromQL. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° PromQL, Π½Π°ΡΠ΅ΡΠ΅Π½Π° . ΠΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈΠΌΠ° Π΄ΠΎΠΊΠ»Π°Π΄ Π² YouTube. Π Π°Π·ΠΊΠ°Π·Π²Π°Ρ Π½Π° Monitoring Meetup ΠΏΡΠ΅Π· ΠΏΡΠΎΠ»Π΅ΡΡΠ° Π² Π‘Π°Π½ΠΊΡ ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³.
Telegram ΠΊΠ°Π½Π°Π» .
Π‘Π°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°. , ΠΌΠΎΠ»Ρ.
ΠΠ°ΠΊΠ²ΠΎ Π²ΠΈ ΡΠΏΠΈΡΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ Π½Π° VictoriaMetrics ΠΊΠ°ΡΠΎ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Prometheus? (ΠΠΈΡΠ΅ΡΠ΅ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅, ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°))
71,4%ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Prometheus5
28,6%ΠΠ΅ Π·Π½Π°Π΅Ρ Π·Π° VictoriaMetrics2
ΠΠ»Π°ΡΡΠ²Π°Ρ
Π° 7 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΠ°Π΄ΡΡΠΆΡ
Π° 12 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
