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

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

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

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

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

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

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

ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅? ΠΠ°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅?
ΠΠ°ΡΠΎΡΠΎ ΠΏΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ
Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ. Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΡΠΎΡΠΊΠΈ (ΠΌΠ°ΡΠΊΠ΅Ρ, ΡΡΠΎΠΉΠ½ΠΎΡΡ) Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡΡ. Π’Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ 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 ΠΈ value β ΡΠΎΠ²Π° ΡΠ° Π½ΠΈΠ·ΠΎΠ²Π΅. Π ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ - ΡΠΎΠ²Π° Π΅ Π½Π°Π±ΠΎΡ timeseries_ids, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π·Π°Π΄Π°Π΄Π΅Π½Π°ΡΠ° Π΄Π²ΠΎΠΉΠΊΠ° label=value.
ΠΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ timeseries_ids, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ label=value.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° timeseries_ids Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ΅Π΄ΠΈΡΠΈ Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π²ΠΎΠΉΠΊΠΈ label=value, ΠΈΠ»ΠΈ Π·Π° Π΄Π²ΠΎΠΉΠΊΠΈ label=regexp. ΠΠ°ΠΊ ΡΡΠ°Π²Π° ΡΠΎΠ²Π°? Π§ΡΠ΅Π· Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΡΠΎ timeseries_ids Π·Π° Π²ΡΡΠΊΠ° Π΄Π²ΠΎΠΉΠΊΠ° label=value.

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

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

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

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

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

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

ΠΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° mergeset ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π‘Π΅Π³Π° ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ Π° Ρ VictoriaMetrics Π² production ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ.
ΠΠ°ΡΠΎ ΡΠ΅ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ Π°?
ΠΡΡΠ²Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π΅ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΡΠΎΡΠ°ΡΠΈΡ. Π ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° Π±ΡΠ»Π³Π°ΡΡΠΊΠΈ β ΡΠΎΠ²Π° Π΅ ΡΠ΅ΡΡΠ° ΡΠΌΡΠ½Π° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π’ΠΎΠ²Π° Π΅, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΡ ΡΠ΅Π΄ Π·Π°Π²ΡΡΡΠ²Π° ΠΈ Π·Π°ΠΏΠΎΡΠ²Π° Π½ΠΎΠ² ΡΠ΅Π΄, ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ΅ΡΡΠΎ.
ΠΡΠΎΡΠ°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π΅ Π³ΠΎΠ»ΡΠΌΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ Π½Π°Π±ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π±Π΅ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ»Π΅Π΄ΡΡ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ Π΄ΠΈΡΠΊΠ°. 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-Π° Π² Π΅ΡΠΈΠΊΠ΅ΡΠ°.
ΠΠ°ΠΊΠ²ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠΎΠ²Π°? ΠΠΎ ΡΠΎΠ²Π°, ΡΠ΅ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ Π½ΠΎΠ²ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Ρ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡ
Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Ρ Π½ΠΎΠ²Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠ° deployment_id. Π’Π°ΠΊΠΈΠ²Π° ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠΎΡΠΈΡΠΈ Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΠΈ Π΄ΠΎΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ.
ΠΠ°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ ΠΎΠ±ΡΠΈΡΡ Π±ΡΠΎΠΉ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ Π½Π°ΡΠ°ΡΡΠ²Π°, Π½ΠΎ Π±ΡΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π΄Π°Π½Π½ΠΈ, ΠΎΡΡΠ°Π²Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½. Π’ΠΎΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ° high churn rate.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° high churn rate Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π΄Π΅Π½.

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

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

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

ΠΡΠ΅ Π΅Π΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π² ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π΅ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½Π΅ΡΠΎ. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΠ°ΡΠ΄ΠΈΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ
ΠΏΠΎ ΠΊΠ»ΡΡ. Π’ΠΎΠ²Π° Π΅ Π½Π°Π±ΠΎΡ ΠΊΠ»ΡΡ=ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ. Π’.Π΅. ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ
Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ°ΠΌΠΎ Π² Π΅Π΄Π½ΠΎΡΠ΄ΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ, Ρ.Π΅. ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π½Π° Π΅Π΄Π½ΠΎ ΡΠ΄ΡΠΎ. Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΄ΡΠ°, ΠΊΠ°ΠΊΡΠΎ 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 Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅. Π’ΠΎΠ·ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½. Π Π·Π° Π½Π°Ρ ΡΠΎΠΉ ΡΡΡΠΎ Π½Π΅ Π±Π΅ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΡΠ΅Π½, Π·Π°ΡΠΎΠ²Π° Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° intersection Π² VictoriaMetrics Π±Π΅ΡΠ΅ ΡΡΠ΅Π· map. ΠΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° Π·Π° Π·Π°ΠΏΠΈΡ Π² map ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΡΠ°Π·ΠΈ map.
ΠΠ°ΡΠΎ Π² ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠ° ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅? ΠΠ°ΡΠΎΡΠΎ Π² ΡΠ΅Π·ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Go ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ Ρ Π΅ΡΠΈΡΠ°Π½Π΅. Π’.Π΅. ΡΠΎΠΉ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° hash ΠΎΡ ΠΊΠ»ΡΡΠ°, Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π² HashMap. ΠΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° hash ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π° Π΄Π΅ΡΠ΅ΡΠΊΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π’ΠΎΠ²Π° Π΅ Π±Π°Π²Π½ΠΎ Π·Π° VictoriaMetrics.

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

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

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

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

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

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

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

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

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

ΠΠΌΠ°ΠΌ Π²ΡΠΏΡΠΎΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ bitset. ΠΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΈΡΠ° Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° C++ vector bool, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ bitset. ΠΠ·Π΅Π»ΠΈ Π»ΠΈ ΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΎΡ ΡΠ°ΠΌ?
ΠΠ΅, Π½Π΅ ΠΎΡΡΠ°ΠΌ. ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΎΠ·ΠΈ bitset ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΎΡ Π·Π½Π°Π½ΠΈΡΡΠ° Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ids Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² 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 ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ°Π½Π½Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π² Π²ΡΡΠΊΠ° Π»ΠΈΠ½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ fields Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°Π³ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ. Π’Π΅Π·ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°Π·ΠΈ Π±Π°Π·Π°. Π’Ρ Π΅ ΡΡΡΠ΄Π½Π° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
Π VictoriaMetrics Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ. ΠΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ° β ΡΠΎΠ²Π° Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΎΡΠΊΠΈ β (ΠΌΠ°ΡΠΊΠ΅Ρ, ΡΡΠΎΠΉΠ½ΠΎΡΡ), Π° ΠΊΠ»ΡΡΡΡ β ΡΠΎΠ²Π° Π΅ Π½Π°Π±ΠΎΡ label=valueΠΡΠΌΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° fields ΠΈ measurements. Π’ΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅, ΡΠ³Π»ΠΎΠ±ΡΠ²Π°ΡΠ΅, ΠΈΠ·ΡΠΈΡΠ°ΡΠ΅, ΡΠΌΠ½ΠΎΠΆΠ°Π²Π°ΡΠ΅ ΠΈ Π΄Π΅Π»ΠΈΡΠ΅, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ InfluxDB, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π΄ΠΎΡΠ΅Π³Π° Π½Π΅ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π·Π½Π°ΠΌ. ΠΠΎΡΠΈ ΠΈ Π΄Π° ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄.
ΠΠΌΠ°ΠΌ ΡΡΠΎΡΠ½ΡΠ²Π°Ρ Π²ΡΠΏΡΠΎΡ. ΠΡΠ°Π²ΠΈΠ»Π½ΠΎ Π»ΠΈ ΡΠ°Π·Π±ΡΠ°Ρ , ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π·Π° ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΠΊΠ°Π·Π²Π°Ρ ΡΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π·Π°ΡΠΎΠ²Π° ΡΠ°ΠΌ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅?
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ Π½Π°ΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Go map. Π’Π°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΡΠ΅ Π·Π°ΠΏΠ°Π·Π²Π° Π½Π° Π΄ΠΈΡΠΊΠ°, Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π° Π½Π° Π΄ΠΈΡΠΊ, Π·Π° Π΄Π° ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅. ΠΡΠΈ ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠ»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π½Π΅. Π ΡΠ΅ Π·Π°Π³ΡΠ±ΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅.
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠ°Π²Π΅Π». ΠΠ· ΡΡΠΌ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Wildberries. ΠΠΌΠ°ΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠΏΡΠΎΡΠ° ΠΊΡΠΌ Π²Π°Ρ. ΠΡΡΠ²ΠΈΡΡ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊ Π²ΠΈ ΡΠ΅ ΡΡΡΡΠ²Π°, Π°ΠΊΠΎ Π±ΡΡ ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π»ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅, Π±ΠΈΡ ΡΠ΅ Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΡΡΡΡΠ΅Π½Π΅, ΠΎΡΠ½ΠΎΠ²Π°Π²Π°ΠΉΠΊΠΈ ΡΠ΅ ΡΠ°ΠΌΠΎ Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π² Π΅Π΄Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅, Ρ.Π΅. Π·Π° Π΅Π΄ΠΈΠ½ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», ΠΈ Π½ΡΠΌΠ°ΡΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΡΡΠ΅Π²ΠΎΠΆΠΈΡΠ΅ Π·Π° ΡΠΎΠ²Π°, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°ΡΡΠΈ, ΡΠ°Π·ΠΏΡΡΡΠ½Π°ΡΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½? ΠΡΠΏΡΠΎΡ Π½ΠΎΠΌΠ΅Ρ 2 - ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Ρ 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 Π±Π°ΠΉΡΠ° Π½Π° ΡΠΎΡΠΊΠ°. ΠΡΡΠΊΠ° ΡΠΎΡΠΊΠ° Π΅ timestamp + ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π ΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π½Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ ΡΡΠ΅Π΄Π½ΠΎ.
Π‘Π΅ΡΠ³Π΅ΠΉ. ΠΠΌΠ°ΠΌ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΠ²Π° Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΡΡΡΠΏΠΊΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° Π·Π°ΠΏΠΈΡ?
ΠΠ΄Π½Π° ΠΌΠΈΠ»Π΅ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠ°ΡΠΊΠΎΡΠΎ ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ Ρ Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΡΠΈ ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΡΡΡΠΏΠΊΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π Graphite, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΎ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π OpenTSDB ΡΡΡΠΎ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π InfluxDB β Π½Π°Π½ΠΎ-ΡΠ΅ΠΊΡΠ½Π΄Π½Π° ΡΠΎΡΠ½ΠΎΡΡ. Π VictoriaMetrics β Π΅Π΄Π½Π° ΠΌΠΈΠ»Π΅ΡΠ΅ΠΊΡΠ½Π΄Π°, Π·Π°ΡΠΎΡΠΎ Π² Prometheus Π΅ Π΅Π΄Π½Π° ΠΌΠΈΠ»Π΅ΡΠ΅ΠΊΡΠ½Π΄Π°. Π VictoriaMetrics Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΊΠ°ΡΠΎ remote storage Π·Π° Prometheus. ΠΠΎ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
Π§ΠΎΠ²Π΅ΠΊΡΡ, Ρ ΠΊΠΎΠ³ΠΎΡΠΎ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΡΡ , ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΈΠΌΠ°Ρ ΡΠ΅ΠΊΡΠ½Π΄Π½Π° ΡΠΎΡΠ½ΠΎΡΡ β ΡΠΎΠ²Π° ΠΈΠΌ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ, Π·Π°ΡΠΎΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² Π±Π°Π·Π°ΡΠ° ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠΊΠΎ ΡΠΎΠ²Π° ΡΠ° DevOps Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π³ΠΈ ΡΡΠ±ΠΈΡΠ°ΡΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π΄ΠΎ ΠΌΠΈΠ½ΡΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ΠΊΡΠ½Π΄Π½Π°ΡΠ° ΡΠΎΡΠ½ΠΎΡΡ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½Π°, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°. Π Π°ΠΊΠΎ ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΡΠΎΠΊΠ° ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΡΡΡΠ³ΠΎΠ²ΠΈΡ, ΡΠΎΠ³Π°Π²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π½Π°Π½ΠΎ-ΡΠ΅ΠΊΡΠ½Π΄Π½Π° ΡΠΎΡΠ½ΠΎΡΡ.
ΠΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π½Π°ΡΠ° ΡΠΎΡΠ½ΠΎΡΡ Π½Π° VictoriaMetrics Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° ΠΊΠ°ΠΊΡΠΎ Π·Π° DevOps ΡΠ»ΡΡΠ°ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ°, Π΅ high frequency trading ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ! Π ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΠ²Π° Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ PromQL?
ΠΡΠ»Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ. VictoriaMetrics Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° PromQL. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΡ Π΄ΠΎΠ±Π°Π²Ρ ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΡΠΌ PromQL, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° . ΠΠ° ΡΠ°Π·ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈΠΌΠ° Π΄ΠΎΠΊΠ»Π°Π΄ Π² YouTube. Π Π°Π·ΠΊΠ°Π·Π²Π°Ρ Π½Π° Monitoring Meetup ΠΏΡΠ΅Π· ΠΏΡΠΎΠ»Π΅ΡΡΠ° Π² Π‘Π°Π½ΠΊΡ ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³.
Telegram ΠΊΠ°Π½Π°Π» .
Π‘Π°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°. , ΠΌΠΎΠ»Ρ.
ΠΠ°ΠΊΠ²ΠΎ Π²ΠΈ ΡΠΏΠΈΡΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ VictoriaMetrics ΠΊΠ°ΡΠΎ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Prometheus? (ΠΠΈΡΠ΅ΡΠ΅ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅, ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°))
71,4%ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Prometheus5
28,6%ΠΠ΅ Π·Π½Π°Π΅Ρ Π·Π° VictoriaMetrics2
ΠΠ»Π°ΡΡΠ²Π°Ρ
Π° 7 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΡΠ·Π΄ΡΡΠΆΠ°Ρ
Π° ΡΠ΅ 12 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
