ΠΡΠ΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ΅Π½ΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΡ ΠΊΡΠ°Ρ Π½Π° 2019 Π³. Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠ°Π»ΡΠ»ΠΊΠΈΠ½ βGo optimizations in VictoriaMetricsβ
ΠΡΠΎ Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠ° Π½Π° ΡΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ -
Π Π°Π·ΠΊΠ°ΠΆΠΈ Π½ΠΈ Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ. ΠΠ· ΡΡΠΌ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠ°Π»ΡΠ»ΠΊΠΈΠ½. Π’ΡΠΊ fast
, ΠΈΠ»ΠΈ Ρ quick
ΠΏΡΠ΅ΡΠΈΠΊΡ.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΡ Π²ΡΡΡ Ρ VictoriaMetrics. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²Ρ ΡΠ°ΠΌ? Π©Π΅ Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΡΠΎΠ²Π° Π² ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ.
Π‘Ρ Π΅ΠΌΠ°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ°:
- ΠΡΡΠ²ΠΎ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ VictoriaMetrics.
- Π’ΠΎΠ³Π°Π²Π° ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ: ΠΎΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ.
- Π ΡΠΎΠ³Π°Π²Π° Π½Π΅ΠΊΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π²ΡΠ² VictoriaMetrics. Π’ΠΎΠ²Π° ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° bitset Π² Go.
ΠΠ°ΠΊΠ²ΠΎ Π΅ VictoriaMetrics Π·Π½Π°Π΅ Π»ΠΈ Π½ΡΠΊΠΎΠΉ ΠΎΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠ°? Π£Π°Ρ, ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° Π²Π΅ΡΠ΅ Π·Π½Π°ΡΡ. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΠ° Π½ΠΎΠ²ΠΈΠ½Π°. ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π·Π½Π°ΡΡ, ΡΠΎΠ²Π° Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠ°Π·ΠΈΡΠ°Π½ Π΅ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ClickHouse, Π½Π° Π½ΡΠΊΠΎΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ClickHouse. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠ°ΡΠΎ: MergeTree, ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠ΄ΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΡΠ΅Π· ΡΠ°Π±ΠΎΡΠ° Π²ΡΡΡ Ρ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΡ Π² ΠΊΠ΅ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
VictoriaMetrics ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΎΡΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.
Π’ΠΎΠΉ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½ΠΎ - ΡΠΎΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ RAM Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡΡΡΡ. VictoriaMetrics ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Π·ΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° VictoriaMetrics ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ β Ρ.Π΅. ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ·Π»ΠΈ ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ° VictoriaMetrics ΠΈ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ΅ Π½Π°ΡΠ°ΡΡΠ²Π° ΠΏΠΎΡΡΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ.
ΠΠ°ΠΊΡΠΎ ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ°ΡΠ΅, VictoriaMetrics Π΅ Π±ΡΡΠ·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° ΠΏΠΈΡΠ° Π΄ΡΡΠ³ΠΈ. Π Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Go, ΡΠ°ΠΊΠ° ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΡΠΎΠ²Π° Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ΅ΡΠ°.
ΠΠΎΠΉ Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π²ΡΠ΅ΠΌΠ΅Π²Π° ΡΠ΅ΡΠΈΡ? ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΏΠΎΠ·Π½Π°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ
ΠΎΡΠ°. ΠΡΠ΅ΠΌΠ΅Π²Π°ΡΠ° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° Π΅ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ (timestamp, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΡΠ° ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ - float64.
ΠΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎ Ρ ΠΊΠ»ΡΡ. ΠΠ°ΠΊΡΠ² Π΅ ΡΠΎΠ·ΠΈ ΠΊΠ»ΡΡ? Π‘ΡΡΡΠΎΠΈ ΡΠ΅ ΠΎΡ Π½Π΅ΠΏΡΠ°Π·Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²Π° ΡΠ΅ΡΠΈΡ. ΠΠ»ΡΡΡΡ Π½Π° ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ Π΅ ΡΠΏΠΈΡΡΠΊΡΡ Ρ Π΄Π²ΠΎΠΉΠΊΠΈ: __name__="cpu_usage"
Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, instance="my-server"
Π΅ ΠΊΠΎΠΌΠΏΡΡΡΡΡΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΠ±ΠΈΡΠ° ΡΠΎΠ·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π», datacenter="us-east"
- ΡΠΎΠ²Π° Π΅ ΡΠ΅Π½ΡΡΡΡΡ Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΡ.
ΠΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄, ΡΡΡΡΠΎΡΡ ΡΠ΅ ΠΎΡ ΡΡΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π’ΠΎΠ·ΠΈ ΠΊΠ»ΡΡ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° ΡΠΏΠΈΡΡΠΊ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ (timestamp, value)
. t1, t3, t3, ..., tN
ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°ΡΠΊΠΈ, 10, 20, 12, ..., 15
ΡΠ° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π’ΠΎΠ²Π° Π΅ ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π·Π° Π΄Π°Π΄Π΅Π½ΠΈΡ ΡΠ΅Π΄.
ΠΡΠ΄Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ? ΠΡΠΊΠΎΠΉ ΠΈΠΌΠ° Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π°?
- Π DevOps ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°ΡΠ΅ CPU, RAM, ΠΌΡΠ΅ΠΆΠ°, rps, Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Ρ.Π½.
- IoT - ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°, Π½Π°Π»ΡΠ³Π°Π½Π΅, Π³Π΅ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈ ΠΈ ΠΎΡΠ΅ Π½Π΅ΡΠΎ.
- Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΈΠ½Π°Π½ΡΠΈ - ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ»Π΅Π΄ΠΈΠΌ ΡΠ΅Π½ΠΈΡΠ΅ Π·Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π°ΠΊΡΠΈΠΈ ΠΈ Π²Π°Π»ΡΡΠΈ.
- Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π²ΡΠ² ΡΠ°Π±ΡΠΈΠΊΠΈΡΠ΅. ΠΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ VictoriaMetrics Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΡΡΠ½ΠΈ ΡΡΡΠ±ΠΈΠ½ΠΈ Π·Π° ΡΠΎΠ±ΠΎΡΠΈ.
- Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΡΠ΅Π½Π·ΠΎΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ; Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π»ΡΠ³Π°Π½Π΅ΡΠΎ Π² Π³ΡΠΌΠΈΡΠ΅; Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡ, ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΠ΅; Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ Π½Π° Π±Π΅Π½Π·ΠΈΠ½ ΠΈ Π΄Ρ.
- Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΌΠΎΠ»Π΅ΡΠΈ. ΠΡΠ΅ΠΊΠΈ ΡΠ°ΠΌΠΎΠ»Π΅Ρ ΠΈΠΌΠ° ΡΠ΅ΡΠ½Π° ΠΊΡΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΡΠ±ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠ»Π΅ΡΠ°. ΠΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ Π² ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΈΠ½Π΄ΡΡΡΡΠΈΡ.
- ΠΠ΄ΡΠ°Π²Π΅ΠΎΠΏΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π΅ ΠΊΡΡΠ²Π½ΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅, ΠΏΡΠ»Ρ ΠΈ Ρ.Π½.
ΠΠΎΠΆΠ΅ Π±ΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΡΠΌ Π·Π°Π±ΡΠ°Π²ΠΈΠ», Π½ΠΎ ΡΠ΅ Π½Π°Π΄ΡΠ²Π°ΠΌ, ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅, ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π² ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡ ΡΠ²ΡΡ. Π ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° ΠΈΠΌ Π½Π°ΡΠ°ΡΡΠ²Π° Π²ΡΡΠΊΠ° Π³ΠΎΠ΄ΠΈΠ½Π°.
ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅? ΠΠ°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅?
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΡΡΠ΄Π½ΠΎ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π² ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ
Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΡΠΎΡΠΊΠΈ (timestamp, value)
Ρ Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΊΠ»ΡΡ. Π’Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ API Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΊΠ»ΡΡ, ΠΏΠΎ Π΅Π΄Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈΠ»ΠΈ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΠΊΠΈΠ²Π° Π΄Π²ΠΎΠΉΠΊΠΈ, ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ΅Π½ ΠΈΠ·ΡΠ°Π·. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²Π°ΡΠΈ ΡΡΠ»ΡΠ³ΠΈ Π² ΡΠ΅Π½ΡΡΡ Π·Π° Π΄Π°Π½Π½ΠΈ Π² ΠΠΌΠ΅ΡΠΈΠΊΠ°, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎ-Π·Π°ΡΠ²ΠΊΠ°.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ ΡΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ SQL Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ SQL, ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΎ. ΠΠΎ-ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΊΠ°ΡΠΎ
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ VictoriaMetrics ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ.
Π‘ΡΡΡΠΎΠΈ ΡΠ΅ ΠΎΡ Π΄Π²Π΅ ΡΠ°ΡΡΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄. Π’Π΅Π·ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ.
ΠΠΎΠ³Π°ΡΠΎ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈΡΡΠΈΠ³Π½Π΅ Π½ΠΎΠ² Π·Π°ΠΏΠΈΡ, ΠΏΡΡΠ²ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²Π°ΡΠ° ΡΠ΅ΡΠΈΡ Π·Π° Π΄Π°Π΄Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡ label=value
Π·Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π». ΠΠΈΠ΅ Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ.
ΠΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠΉΠ΄Π΅ Π½ΡΠΊΠ°ΠΊΠ²Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ TSDB, Π½ΠΈΠ΅ ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΡΠ²Π°ΠΌΠ΅ Π² ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ timeseries_ids
Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° Π΄Π°Π΄Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡ label=value
. Π ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΎ ΠΎΡ timeseries_ids
.
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π²Ρ ΠΎΠ΄ΡΡΠ° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ.
- ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π²ΡΠΈΡΠΊΠΎ
timeseries_ids
ΠΎΡ ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ Π΄Π²ΠΎΠΉΠΊΠΈlabel=value
, ΠΈΠ»ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° Π΄Π°Π΄Π΅Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ΅Π½ ΠΈΠ·ΡΠ°Π·. - Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΎΡΠΊΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π΄Π°Π΄Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎΡΠΎ
timeseries_ids
. - Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° Π½ΡΠΊΠΎΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΡΡ Ρ ΡΠ΅Π·ΠΈ ΡΠΎΡΠΊΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΡΠΏΠΎΡΠ΅Π΄ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΡΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ°.
Π ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΠ°ΡΡ. Π’ΠΎΠ²Π° Π΅ ΡΡΡΡΠ΅Π½Π΅ timeseries_ids
ΡΡΠ΅Π· ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ° Π²ΡΠΎΡΠ°ΡΠ° ΡΠ°ΡΡ ΠΈ ΡΡΠ΅ΡΠ°ΡΠ° ΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ
ΠΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ° ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΎΡΡΠΎ. ΠΠΎΠΉ Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ? Π, Π²Π΅ΡΠ΅ Π½ΡΠΌΠ° ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ°. ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎ.
ΠΡΡΡΠ½ΠΎΡΡ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠΎΡΡΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠ½ΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ ΡΠ²ΡΡΠ·Π²Π° ΠΊΠ»ΡΡ ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡ. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΊΠ»ΡΡ? Π’Π°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° label=value
ΠΡΠ΄Π΅ΡΠΎ label
ΠΈ value
ΡΠ° Π»ΠΈΠ½ΠΈΠΈ. Π ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΡΠ° Π½Π°Π±ΠΎΡ timeseries_ids
, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π΄Π°Π΄Π΅Π½Π°ΡΠ° Π΄Π²ΠΎΠΉΠΊΠ° label=value
.
ΠΠ±ΡΡΠ½Π°ΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ timeseries_ids
, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄Π°Π»ΠΈ label=value
.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ timeseries_ids
Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π·Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π²ΠΎΠΉΠΊΠΈ label=value
, ΠΈΠ»ΠΈ Π·Π° Π΄Π²ΠΎΠΉΠΊΠΈ label=regexp
. ΠΊΠ°ΠΊ ΡΡΠ°Π²Π° ΡΠΎΠ²Π° Π§ΡΠ΅Π· Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΡΠΎ timeseries_ids
Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠΈΡΡ label=value
.
Π Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠ°ΡΠ° Π½Π°ΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π’Ρ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°.
Π€ΡΠ½ΠΊΡΠΈΡ getMetricIDs
ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠΏΠΈΡΡΠΊ ΠΎΡ Π½ΠΈΠ·ΠΎΠ²Π΅. ΠΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ ΡΡΠ΄ΡΡΠΆΠ° label=value
. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΡΠ° ΡΠΏΠΈΡΡΠΊ metricIDs
.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ? Π’ΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° invertedIndex
. Π’ΠΎΠ²Π° Π΅ Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΡΠ΅ΡΠ½ΠΈΠΊmap
), ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π½ΠΈΠ·Π° Π² slice ints. ΠΠΈΠ½ΠΈΡΡΠ° ΡΡΠ΄ΡΡΠΆΠ° label=value
.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°: get metricIDs
Π·Π° Π½Π°ΡΠ°Π»ΠΎ label=value
, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ label=value
, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ metricIDs
Π·Π° ΡΡΡ
. Π ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° intersectInts
, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΏΠΎ-Π΄ΠΎΠ»Ρ. Π ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΡΠ° ΠΏΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ΅Π·ΠΈ ΡΠΏΠΈΡΡΡΠΈ.
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΎ ΡΠΎΠ²Π° Π΅ Π½Π°ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ°ΠΊΠ²ΠΈ ΡΠ° Π½Π΅ΠΉΠ½ΠΈΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ? ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π° Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅, ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ°ΠΊΡΠ² ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π² RAM. Π‘Π»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π³ΡΠ±ΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ. Π’ΠΎΠ·ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° Π½Π° Π΄ΠΈΡΠΊ. ΠΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΠ°ΠΊΡΠ² ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π΅Π΄Π²Π° Π»ΠΈ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ.
ΠΡΠΎΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ ΡΡΡΠΎ Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ±ΡΡΠ½Π°ΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ±Π΅ΡΠ΅ Π² RAM. ΠΠΊΠΎ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° RAM, ΡΠΎΠ³Π°Π²Π° Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ - Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ Π»ΠΈΠΏΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ.
Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π³ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡ
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΡΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΡΡΠΈ Π½Π΅ΡΠ° Π±ΡΡΠ·ΠΎ.
- ΠΡΡΠ²Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ
ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΊΡΠΌ ΡΠ°Π·ΠΈ Π±Π°Π·Π°. Π’Ρ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ.ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅. - ΠΡΠΎΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ Π±ΡΡΠ·ΠΎ ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡΡ.
- Π ΡΡΠ΅ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ Π±ΡΡΠ·ΠΎ ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅ΡΠΈΠΊΡ.
LevelDB ΠΈ RocksDB β Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡ Google ΠΈ Facebook. ΠΡΡΠ²ΠΎ Π΄ΠΎΠΉΠ΄Π΅ LevelDB. Π’ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΌΡΠ΅ΡΠ°ΡΠ° ΠΎΡ Facebook Π²Π·Π΅Ρ
Π° LevelDB ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Ρ, Π½Π°ΠΏΡΠ°Π²ΠΈΡ
Π° RocksDB. Π‘Π΅Π³Π° ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ°Π±ΠΎΡΡΡ Π²ΡΡΡ
Ρ RocksDB Π²ΡΠ² Facebook, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΠ° ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Π΅Π½ΠΈ ΠΊΡΠΌ RocksDB ΠΈ MySQL. ΠΠ°ΡΠ΅ΠΊΠΎΡ
Π° Π³ΠΎ
ΠΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° LevelDB. ΠΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ? ΠΠΈΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡ label=value
. Π ΠΊΠ°ΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ° Π΄Π²ΠΎΠΉΠΊΠ° label=value
.
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Ρ ΡΠ°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° label=value
, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΠ°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΠΊΠ»ΡΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ timeseries_ids
. ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΏΠΈΡΡΠΊ Π½Π° Π²ΡΠΈΡΠΊΠΈ timeseries_ids
ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ ΡΠΎΠ²Π° label=prefix
, ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π·Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠ°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ΅ΡΡ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ label=prefix
ΠΈ Π²Π·Π΅ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ timeseries_ids
.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π±ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Π»ΠΎ Π² Go. ΠΠΌΠ°ΠΌΠ΅ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ. Π’ΠΎΠ²Π° Π΅ LevelDB.
Π€ΡΠ½ΠΊΡΠΈΡΡΠ° Π΅ ΡΡΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΠΏΡΠΈ Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎΡΡΠΈ ΡΠ΅Π΄ ΠΏΠΎ ΡΠ΅Π΄ ΠΏΠΎΠ²ΡΠ°ΡΡ Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΡ Π²ΡΠΏΡΠΎΡ Π΅, ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π° Π½Π° map
ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΡΡΠ²ΠΈΡ label=value
. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ label=value
ΠΈ Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ metricID Π·Π° ΡΡΡ
. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠ΅ΡΠ΅ΡΠΊΠ°ΡΠ°.
ΠΡΠΈΡΠΊΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π°ΡΠ΅Π΄, Π½ΠΎ ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. VictoriaMetrics ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π²Π½Π΅Π΄ΡΠΈ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° LevelDB. ΠΠΎ Π½Π°ΠΊΡΠ°Ρ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°ΠΆΠ°.
ΠΠ°ΡΠΎ? Π’ΡΠΉ ΠΊΠ°ΡΠΎ LevelDB Π΅ ΠΏΠΎ-Π±Π°Π²Π½Π° ΠΎΡ Π½Π°ΠΈΠ²Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠΈ Π½Π°ΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π·Π° Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡΡ, Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ΅Π»ΠΈΡ ΡΡΠ΅Π· metricIDs
. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ - ΡΡΠ»Π°ΡΠ° ΡΠΈΠ»ΠΈΠΉΠΊΠ° Π΅ Π³ΠΎΡΠΎΠ²Π° Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π°.
Π LevelDB, ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ GetValues
ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ label=value
. Π Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° timeseries_ids
. ΠΡ ΡΠ°ΠΊΠΈΠ²Π° timeseries_ids
ΡΡΠ±Π΅ΡΠ΅ΡΠ΅ ΠΏΠ°ΡΡΠ΅ ΠΎΡ ΡΡΡ
timeseries_ids
. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΠΊΠ°ΡΡΠ° ΡΡΠ΅Π· ΠΊΠ»ΡΡ.
ΠΡΠΎΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π΅, ΡΠ΅ LevelDB Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C. ΠΠΎΡΡΡΠΏΡΡ Π΄ΠΎ C ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Go Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·. ΠΡΠ½Π΅ΠΌΠ° ΡΡΠΎΡΠΈΡΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ, Π·Π°ΡΠΎΡΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² go, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ½Π΅ΠΌΠ° 1-5 Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΏΡΡΠΈ. ΠΠ° VictoriaMetrics ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΡΠ°ΡΠ°Π»Π΅Π½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ π
ΠΠ°ΡΠΎΠ²Π° Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. Π Ρ ΠΏΠΎΠ²ΠΈΠΊΠ°
Mergeset ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ MergeTree. Π’Π°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π΅ Π·Π°ΠΈΠΌΡΡΠ²Π°Π½Π° ΠΎΡ ClickHouse. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π½Π°Π±ΠΎΡΡΡ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° Π±ΡΡΠ·ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ timeseries_ids
ΠΏΠΎ Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΊΠ»ΡΡ. Mergeset Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π° Go. ΠΠΎΠΆΠ΅Ρ Π΄Π° Π²ΠΈΠ΄ΠΈΡ
API Π·Π° mergeset Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° LevelDB ΠΈ RocksDB. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π°ΡΠ΅ Π½ΠΎΠ²ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΌ ΠΈ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅ΡΠΈΠΊΡ.
Π©Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° mergeset ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ VictoriaMetrics Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ ΠΏΡΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ.
ΠΠ°ΡΠΎ ΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Π»ΠΈ?
ΠΡΡΠ²Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π΅ Π²ΠΈΡΠΎΠΊΠΈΡΡ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΎΡΡΠ΅Π³Π»ΡΠ½Π΅. ΠΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΡΡΡΠΊΠΈ, ΡΠΎΠ²Π° Π΅ ΡΠ΅ΡΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅. Π’ΠΎΠ²Π° Π΅ ΠΌΠΎΠΌΠ΅Π½ΡΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΡ ΡΠ΅Π΄ ΡΠ²ΡΡΡΠ²Π° ΠΈ Π·Π°ΠΏΠΎΡΠ²Π° Π½ΠΎΠ² ΡΠ΅Π΄ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ΅ΡΡΠΎ.
ΠΡΠΎΡΠ°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π΅ Π³ΠΎΠ»Π΅ΠΌΠΈΡΡ Π±ΡΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ, Π±ΡΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ Π±Π΅ΡΠ΅ ΠΌΠ°Π»ΡΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ Π΄ΠΈΡΠΊΠ°. 4 Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡ. ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ 100 ΠΊΠΎΠΌΠΏΡΡΡΡΠ° ΠΈ 400 Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ.
Π‘ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Ρ ΠΎΡΠ°ΡΠ° ΡΡΠΈΠ³Π½Π°Ρ Π° Π΄ΠΎ ΠΈΠ΄Π΅ΡΡΠ°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠΈ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ, Π° ΠΏΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π½Π° Π²ΡΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ ΡΠ΄ΡΠΎ. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ 40 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠ΄ΡΠ°, ΡΠΎΠ³Π°Π²Π°, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΈΠΌΠ°ΡΠ΅ 40 ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ. ΠΡΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ ΡΠ΄ΡΠΎ ββΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π·Π΅Π½ Ρ ΠΎΠ΄, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅Π°ΠΊΡΠΈΠ²Π΅Π½. ΠΠ°ΠΊΡΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ. Π Π²ΡΡΠΊΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄. Π’ΠΎΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π±ΡΠΎΡ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ 7-8 ΠΏΡΡΠΈ.
ΠΡ Π΅Π΄Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠ° ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ 40 x 8 = 320 ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠ°ΠΌΠΎ Π·Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡΡΡΡ. Π£ΠΌΠ½ΠΎΠΆΠ°Π²Π°ΠΌΠ΅ ΠΏΠΎ 100 ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 32 000 Π²ΠΌΠ΅ΡΡΠΎ 400.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΎΠΉΠ΄Π΅ Kubernetes. Π ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π³ΠΎ Π²Π»ΠΎΡΠ°Π²Π°, Π·Π°ΡΠΎΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Ρ ΠΎΡΡΠ²Π°Π½ΠΈ Π² Kubernetes. ΠΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π° Π² Kubernetes ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ²Π΅. Π Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ. ΠΠ° Π²ΡΡΠΊΠ° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° Π±ΡΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ Π½Π°ΡΠ°ΡΡΠ²Π° Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΈ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° Π²ΠΈΡΠΎΠΊΠ° ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»Π½ΠΎΡΡ. VictoriaMetrics Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Π΄ΠΎΠ±ΡΠ΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΎΡΠ±Π»ΠΈΠ·ΠΎ Π²ΠΈΡΠΎΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΎΡΠ»ΠΈΠ². ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π° Π²ΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΎΡΡΠ΅Π³Π»ΡΠ½Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ? Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½ΡΠΊΠΎΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ Kubernetes, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° deployment
, Ρ.Π΅. ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°ΡΠ° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Kubernetes ΡΠ΅ΡΠΈΡ
Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ ΠΊΡΠΌ Π΅ΡΠΈΠΊΠ΅ΡΠ°.
ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅? ΠΠΎ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Ρ Π²ΡΡΠΊΠΎ Π½ΠΎΠ²ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Ρ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡ
Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Ρ Π½ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠ° deployment_id
. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΡΠΎΡΠΈΡΠΈ Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΠΈ Π΄ΠΎΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅Π΄ΠΎΠ²Π΅.
ΠΠ°ΠΆΠ½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅, ΡΠ΅ ΠΎΠ±ΡΠΈΡΡ Π±ΡΠΎΠΉ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ Π½Π°ΡΠ°ΡΡΠ²Π°, Π½ΠΎ Π±ΡΠΎΡΡ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΈΠ΄Π²Π°Ρ Π΄Π°Π½Π½ΠΈ, ΠΎΡΡΠ°Π²Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½. Π’ΠΎΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ° Π²ΠΈΡΠΎΠΊΠ° ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° ΠΎΡΡΠ΅Π³Π»ΡΠ½Π΅.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° Π²ΠΈΡΠΎΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΎΡΠ»ΠΈΠ² Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΡΡΡΠ΅Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π·Π° Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π΄Π΅Π½.
ΠΠ°ΠΊ Π΄Π° ΡΠ΅ΡΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ? ΠΡΠΎ ΠΏΡΡΠ²ΠΈΡ Π²Π°ΡΠΈΠ°Π½Ρ. Π’ΠΎΠ²Π° Π΅ Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ°ΡΡΠΈ. Π’ΠΎΠ΅ΡΡ, ΠΌΠΈΠ½Π°Π²Π° Π½ΡΠΊΠ°ΠΊΡΠ² ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅, Π·Π°Π²ΡΡΡΠ²Π°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΠΊΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ. Π ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠΈΠ½Π°Π²Π° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅, ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½.
Π ΠΊΠΎΠ³Π°ΡΠΎ Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±ΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΎΠ±ΡΡΠ½Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΎΠ±ΡΡΠ½Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π». Π ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΠΎΡ ΡΠ°ΠΌ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄.
Π’ΠΎΠ²Π° ΡΠΏΠ΅ΡΡΡΠ²Π° ΡΠ΅ΡΡΡΡΠΈ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π». Π’ΠΎΠ΅ΡΡ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ°Ρ, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ.
ΠΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π’ΠΎΠ²Π° Π΅ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π°ΡΡΡΠΏΠΈΠ»ΠΈ ΠΏΡΠ΅Π· ΡΠΎΠ·ΠΈ Π΄Π΅Π½.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅, ΡΠ΅ Π½Π΅ Π΄ΡΠ±Π»ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΡΡΠΎ Π½Π΅ ΠΈΠ·ΡΠ΅Π·Π²Π° Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. Π’Π΅ ΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΠΈ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ ΡΠ°ΠΊΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. Π VictoriaMetrics ΠΈΠ·Π±ΡΠ° ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠ° ΡΠ΅ Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ. Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄ΠΎΠ±ΡΠ΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΡΠ±Π»ΠΈΡΠ°ΡΠ΅ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π΄ΡΠ» Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ, ΡΠΎΠ΅ΡΡ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΈΠ·ΡΠ΅Π·Π²Π°Ρ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. VictoriaMetrics Π±Π΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π²Π»ΠΎΡΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠΎ ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½Π°.
Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ Π±ΠΈΡ Ρ Π½Π΅Ρ. ΠΠΎΡΠ±Π°ΡΠ° Π±Π΅ΡΠ΅, ΡΠ΅ ΠΏΡΠΈ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ ΡΠΈΡΠ»ΠΎ timeseries_ids
Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΠ±ΡΡΠ½Π°ΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π²ΡΠ΅ΠΌΠ΅.
ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡ
ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ? Π Π΅ΡΠΈΡ
ΠΌΠ΅ Π³ΠΎ ΠΏΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅Π½ Π½Π°ΡΠΈΠ½ - ΡΡΠ΅Π· ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π·Π°ΠΏΠΈΡ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. Ρ.Π΅. ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ»ΡΡΠ° label=value
, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ° Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄. Π ΡΠ΅Π³Π° ΡΠΏΠ΅ΡΡΡΠ²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ timeseries_ids
Π² Π΅Π΄ΠΈΠ½ Π·Π°ΠΏΠΈΡ.
ΠΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠ΅Π΄ΠΈ ΠΈΠΌΠ°Ρ ΠΌΠ΅ N Π·Π°ΠΏΠΈΡΠ°, Π° ΡΠ΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ Π·Π°ΠΏΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΡΡΡΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ. ΠΠ° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Π·Π°ΠΏΠΈΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄.
Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΡΠ² ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄ΠΎ 10 ΠΏΡΡΠΈ. Π ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π·Π° ΠΊΠ΅ΡΠ°, Π·Π°ΡΠΎΡΠΎ ΡΠ΅Π³Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π½ΠΈΠ·Π° label=value
ΡΠ°ΠΌΠΎ Π²Π΅Π΄Π½ΡΠΆ Π² ΠΊΠ΅ΡΠ° Π·Π°Π΅Π΄Π½ΠΎ N ΠΏΡΡΠΈ. Π ΡΠΎΠ·ΠΈ ΡΠ΅Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π³ΠΎΠ»ΡΠΌ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π΄ΡΠ»Π³ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈ Π² ΡΠ°Π³ΠΎΠ²Π΅ ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Kubernetes ΠΎΠ±ΠΈΡΠ° Π΄Π° ΠΏΡΡ
Π° ΡΠ°ΠΌ.
ΠΡΡΠ³ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π΅ ΡΠ°ΡΠ΄ΠΈΠ½Π³. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠ±ΡΡΠ½Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ
ΠΏΠΎ ΠΊΠ»ΡΡ. Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ key=value
ΠΏΠ°ΡΠ°. Π’ΠΎΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΎΠ±ΡΡΠ½Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π°Π½ΠΊΠ΅ΡΠΈΡΠ°ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ
Π° ΡΠ°ΠΌΠΎ Π΅Π΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ, Ρ.Π΅. ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΠ°ΠΌΠΎ Π½Π° Π΅Π΄Π½ΠΎ ΡΠ΄ΡΠΎ. Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ°ΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΄ΡΠ° Π½Π°Π²Π΅Π΄Π½ΡΠΆ, ΠΊΠ°ΠΊΡΠΎ ΠΎΠ±ΠΈΡΠ° Π΄Π° ΠΏΡΠ°Π²ΠΈ ClickHouse. Π’ΠΎΠ²Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅.
Π ΡΠ΅Π³Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ Π½Π°ΡΠΈΡΠ΅ ΠΎΠ²Π½ΠΈ - ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π½Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ timeseries_ids
. ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ timeseries_ids
Π·Π° Π΄Π°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ label=value
.
ΠΡΡΠ²ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ Π½Π°ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ²Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠΈΠΊΡΠ»Π°. Π’ΡΠΊ ΡΡΠΈΠ³Π°ΠΌΠ΅ Π΄ΠΎ Π²Ρ
ΠΎΠ΄Π° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° intersectInts
Π΄Π²Π΅ ΡΠΈΠ»ΠΈΠΉΠΊΠΈ - a
ΠΈ b
. ΠΠ° ΠΈΠ·Ρ
ΠΎΠ΄Π° ΡΡΡΠ±Π²Π° Π΄Π° Π½ΠΈ Π²ΡΡΠ½Π΅ ΠΏΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ΅Π·ΠΈ ΡΠ΅Π·Π΅Π½ΠΈ.
ΠΠ°ΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°. ΠΠΈΠ΅ ΠΈΡΠ΅ΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π·Π° a
, Π²ΡΡΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠΈΠΊΡΠ» ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° slice b
. Π Π³ΠΈ ΡΡΠ°Π²Π½ΡΠ²Π°ΠΌΠ΅. ΠΠΊΠΎ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ, Π·Π½Π°ΡΠΈ ΡΠΌΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠΎΡΠΊΠ°. Π Π³ΠΎ Π·Π°ΠΏΠ°Π·Π΅ΡΠ΅ Π² result
.
ΠΠ°ΠΊΠ²ΠΈ ΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅? ΠΠ²Π°Π΄ΡΠ°ΡΠ½Π°ΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΌΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° ΡΡΠ΅Π·Π° a
ΠΈ b
ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΌΠΈΠ»ΠΈΠΎΠ½, ΡΠΎΠ³Π°Π²Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π½ΠΈΠΊΠΎΠ³Π° Π½ΡΠΌΠ° Π΄Π° Π²ΠΈ Π²ΡΡΠ½Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡ. ΠΠ°ΡΠΎΡΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π΅Π΄ΠΈΠ½ ΡΡΠΈΠ»ΠΈΠΎΠ½ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΠΈ Π·Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠΈ.
ΠΡΠΎΡΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΠΊΠ°ΡΡΠ°. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΊΠ°ΡΡΠ°. ΠΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π·Π° Π² ΡΠ°Π·ΠΈ ΠΊΠ°ΡΡΠ° a
. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΈΠΊΡΠ» ΠΏΡΠ΅Π· ΠΏΠ°ΡΡΠ΅ b
. Π ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ ΡΠ°Π·ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π΅ ΠΎΡ ΡΡΠ΅Π· b
Π² ΠΊΠ°ΡΡΠ°ΡΠ°. ΠΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°, Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π³ΠΎ ΠΊΡΠΌ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°.
ΠΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ°? ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π΅, ΡΠ΅ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ°. ΠΠ° Π΅Π΄ΠΈΠ½ ΠΌΠΈΠ»ΠΈΠΎΠ½Π΅Π½ ΡΡΠ΅Π· ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΡΠΈΠ»ΠΈΠΎΠ½ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊΡΠΎ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ.
Π Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ°ΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠ°Π·ΠΈ ΠΊΠ°ΡΡΠ°.
ΠΡΠΎΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π΅ Π³ΠΎΠ»ΡΠΌΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅. Π’ΠΎΠ·ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½. Π Π·Π° Π½Π°Ρ ΡΡΡΠΎ Π½Π΅ Π±Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π²ΡΠ² VictoriaMetrics Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π±Π΅ΡΠ΅ ΡΡΠ΅Π· ΠΊΠ°ΡΡΠ°. ΠΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ°ΡΡΠ°ΡΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΡΠ°Π·ΠΈ ΠΊΠ°ΡΡΠ°.
ΠΠ°ΡΠΎ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠ° Π³ΡΠ±ΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅? Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π² ΡΠ΅Π·ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Go ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ Π΅ΡΠΈΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. Π’ΠΎΠ΅ΡΡ, ΡΠΎΠΉ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ Π΅ΡΠ° ΠΎΡ ΠΊΠ»ΡΡΠ°, Π·Π° Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΠΏΡΠΈ Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π² HashMap. ΠΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Ρ Π΅Ρ ΠΎΡΠ½Π΅ΠΌΠ° Π΄Π΅ΡΠ΅ΡΠΊΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π’ΠΎΠ²Π° Π΅ Π±Π°Π²Π½ΠΎ Π·Π° VictoriaMetrics.
Π Π΅ΡΠΈΡ
Π΄Π° Π²Π½Π΅Π΄ΡΡ Π±ΠΈΡΡΠ΅Ρ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π° ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π½Π° Π΄Π²Π°ΡΠ° ΡΡΠ΅Π·Π° ΡΠ΅Π³Π°. Π’ΡΠΊ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π±ΠΈΡΡΠ΅Ρ. ΠΡΠΌ Π½Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ ΡΡΠ΅Π·. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π²ΡΠ² Π²ΡΠΎΡΠΈΡ ΡΡΠ΅Π·. Π Π³ΠΈ Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΊΡΠΌ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°. Π’ΠΎΠ΅ΡΡ ΠΏΠΎΡΡΠΈ Π½Π΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ Π½Π΅ΡΠΎ Π΅, ΡΠ΅ ΡΠΌΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π·Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΊ add
ΠΈ has
.
ΠΠ° ΠΏΡΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, Π°ΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΡΠ° Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΡΠ°ΠΌ ΠΏΡΠ΅Π΄ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ Π½ΡΠΊΠΎΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ΡΠΎ Π΅ 10 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΡΠ° Π·Π° ΡΠ»ΡΡΠ°Ρ Π½Π° VictoriaMetrics.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ°ΡΡΠ°ΡΠ°. ΠΠ°ΡΠΎΡΠΎ ΡΡΠΊ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π±ΠΈΡΠΎΠ²Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠ΅ΠΌΠ±Π°ΠΉΡΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π½Π° ΡΠ°ΠΊΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π΅, ΡΠ΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅ Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΎ.
ΠΡΡΠ³ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ, ΠΊΠΎΠΉΡΠΎ ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Ρ, Π΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅ Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ. Π’ΠΎΠ΅ΡΡ, ΡΠΎΠΉ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ, Π·Π° ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΡΠ΅Π΄ Π½Π° VictoriaMetrics. Π’ΠΎΠ²Π° Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ. ΠΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ Π»ΠΈΠΏΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π·Π°Π±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
ΠΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ°. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠΎΠΉ Π΅ Π² ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° VictoriaMetrics, Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° timeseries_id
Π΅ 64-Π±ΠΈΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΡΠ²ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΠΈ ΡΠ°ΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ.
Π’Π°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π½Π° Π΄ΠΈΡΠΊ, ΡΡ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
ΠΡΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡ API. ΠΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. API Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° VictoriaMetrics. Π’ΠΎΠ΅ΡΡ, Π½ΡΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ VictoriaMetrics.
ΠΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΈ add
, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ±Π°Π²Ρ Π½ΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ has
, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° Π½ΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ del
, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΌΠ° ΠΏΠΎΠΌΠΎΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ len
, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π½Π°Π±ΠΎΡΠ°. ΡΡΠ½ΠΊΡΠΈΡ clone
ΠΊΠ»ΠΎΠ½ΠΈΡΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°. Π ΡΡΠ½ΠΊΡΠΈΡ appendto
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΡΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ Π² ΡΡΠ΅Π· timeseries_ids
.
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°:
-
ItemsCount
Π΅ ΠΏΠΎΠΌΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π΅ Π·Π° Π±ΡΡΠ·ΠΎ Π²ΡΡΡΠ°Π½Π΅ Π½Π° Π±ΡΠΎΡ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ Π² Π½Π°Π±ΠΎΡΠ°. ΠΠΎΠΆΠ΅Ρ ΠΌΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ ΠΈ Π±Π΅Π· ΡΠΎΠ²Π° ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ»Π΅, Π½ΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΊ, Π·Π°ΡΠΎΡΠΎ VictoriaMetrics ΡΠ΅ΡΡΠΎ ΡΠ°Π·ΠΏΠΈΡΠ²Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°ΡΠ° Π½Π° bitset Π² ΡΠ²ΠΎΠΈΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ. -
ΠΡΠΎΡΠΎΡΠΎ ΠΏΠΎΠ»Π΅ Π΅
buckets
. Π’ΠΎΠ²Π° Π΅ ΠΏΠ°ΡΡΠ΅ ΠΎΡ ΡΡΡΡΠΊΡΡΡΠ°bucket32
. ΠΡΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠ° ΡΡΠ΄ΡΡΠΆΠ°hi
ΠΏΠΎΠ»Π΅. Π’ΠΎΠ²Π° ΡΠ° ΠΏΡΡΠ²ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°. Π Π΄Π²Π΅ ΡΠΈΠ»ΠΈΠΉΠΊΠΈ -b16his
ΠΈbuckets
Π½Π°bucket16
ΡΡΡΡΠΊΡΡΡΠΈ.
Π’ΡΠΊ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π³ΠΎΡΠ½ΠΈΡΠ΅ 16 Π±ΠΈΡΠ° ΠΎΡ Π²ΡΠΎΡΠ°ΡΠ° ΡΠ°ΡΡ Π½Π° 64-Π±ΠΈΡΠΎΠ²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ°. Π Π±ΠΈΡΠΎΠ²ΠΈΡΠ΅ Π½Π°Π±ΠΎΡΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΡΠΊ Π·Π° Π΄ΠΎΠ»Π½ΠΈΡΠ΅ 16 Π±ΠΈΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ Π±Π°ΠΉΡ.
Bucket64
ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΌΠ°ΡΠΈΠ² uint64
. ΠΡΠ»ΠΆΠΈΠ½Π°ΡΠ° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ. Π Π΅Π΄ΠΈΠ½ bucket16
ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 2^16=65536
ΠΌΠ°Π»ΠΊΠΎ. ΠΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈ Π½Π° 8, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° ΡΠ° 8 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°. Π Π°Π·Π΄Π΅Π»Π΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ Π½Π° 8, ΡΠΎΠ²Π° Π΅ 1000 uint64
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Ρ.Π΅. Bucket16
- ΡΠΎΠ²Π° Π΅ Π½Π°ΡΠ°ΡΠ° 8-ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠΎΠ²Π° ΡΡΡΡΠΊΡΡΡΠ°.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ.
ΠΡΠΈΡΠΊΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Ρ uint64
ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π³ΠΎΡΠ½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°, ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎΠ»Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ°. ΠΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ buckets
. Π‘ΡΠ°Π²Π½Π΅ΡΠ΅ ΠΏΡΡΠ²ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° Π²ΡΠ² Π²ΡΡΠΊΠ° ΠΊΠΎΡΠ° Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π Π°ΠΊΠΎ ΡΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ, ΡΠΎΠ³Π°Π²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° add
Π² ΡΡΡΡΠΊΡΡΡΠ° b32 buckets
. Π Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π΄ΠΎΠ»Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΡΠ°ΠΌ. Π Π°ΠΊΠΎ ΡΠ΅ Π²ΡΡΠ½Π° true
, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠΌΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΊΠ°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ°ΠΌ ΠΈ Π½Π΅ ΡΠΌΠ΅ ΠΈΠΌΠ°Π»ΠΈ ΡΠ°ΠΊΠ°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ. ΠΠΊΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ false
, ΡΠΎΠ³Π°Π²Π° ΡΠ°ΠΊΠ°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π²Π΅ΡΠ΅ Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π»Π°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΌΠ΅ Π±ΡΠΎΡ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ Π² ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°.
ΠΠΊΠΎ Π½Π΅ ΡΠΌΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ bucket
Ρ ΠΆΠ΅Π»Π°Π½Π°ΡΠ° Π²ΠΈΡΠΎΠΊΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠΎΠ³Π°Π²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° addAlloc
, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½ΠΎΠ² bucket
, Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ Π³ΠΎ ΠΊΡΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΊΠΎΡΠ°ΡΠ°.
Π’ΠΎΠ²Π° Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° b32.add
. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΅ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π²ΠΈΡΠΎΠΊΠΈ 16 Π±ΠΈΡΠ°, Π½ΠΈΡΠΊΠΈ 16 Π±ΠΈΡΠ°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π³ΠΎΡΠ½ΠΈ 16 Π±ΠΈΡΠ°. ΠΠ°ΠΌΠΈΡΠ°ΠΌΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ. Π Π°ΠΊΠΎ ΠΈΠΌΠ° ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° bucket16
.
Π ΡΡΠΊ Π΅ Π½Π°ΠΉ-Π½ΠΈΡΠΊΠΎΡΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ. ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π·Π° uint64
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΡΡΠΎ ΠΈ Π² Π±ΠΈΡΠ° Π½Π° ΡΡΠ΅Π·Π° bitmask
. Π’ΠΎΠ²Π° Π΅ ΠΌΠ°ΡΠΊΠ° Π·Π° ΡΠ°Π·ΠΈ 64-Π±ΠΈΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΡΠ΅Π· ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ Π±ΠΈΡ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅. ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ ΡΠΎΠ·ΠΈ Π±ΠΈΡ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΈ Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°ΠΌΠ΅ ΠΈ Π²ΡΡΡΠ°ΠΌΠ΅ ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ. ΠΡΠΎ Π½Π°ΡΠ°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΡΠΊΠΎΡΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Ρ 10 ΠΏΡΡΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ ΠΊΠ°ΡΡΠΈ.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, VictoriaMetrics ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΡ Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ ΠΏΡΠΈΡΠΈΠ½Π°, Π½ΠΎ ΡΠ»Π΅Π΄ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° - Π½Π΅ Π΄ΠΎΠ±Π°Π²ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΉΠΊΠΈ, ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ° ΡΡΡΠ½ΠΎ ΠΌΡΡΡΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅, ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΡΡΡΠ½ΠΎ ΠΌΡΡΡΠΎ. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²Π»ΠΎΡΠ°Π²Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ ΠΈ Π·Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠΎΠ²Π° Π΄Π° ΡΠ° ΡΠ΅Π°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° VictoriaMetrics ΠΈ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΠ΅ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ°ΠΌ.
ΠΠΌΠ°ΠΌ Π²ΡΠΏΡΠΎΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ bitset. ΠΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° C++ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²Π΅ΠΊΡΠΎΡΠ΅Π½ bool, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° bitset. ΠΡ ΡΠ°ΠΌ Π»ΠΈ Π²Π·Π΅Ρ ΡΠ΅ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ?
ΠΠ΅, Π½Π΅ ΠΎΡ ΡΠ°ΠΌ. ΠΠΎΠ³Π°ΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Ρ ΡΠΎΠ·ΠΈ Π±ΠΈΡΡΠ΅Ρ, Π±ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄Π΅Π½ ΠΎΡ ΠΏΠΎΠ·Π½Π°Π½ΠΈΡΡΠ° Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅Π·ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ² VictoriaMetrics. Π ΡΡΡ Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π΅ ΡΠ°ΠΊΠ°Π²Π°, ΡΠ΅ ΠΏΡΡΠ²ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ. ΠΠΎΠ»Π½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ Π½Π° ΠΏΡΠΎΠΌΡΠ½Π°. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-Π½ΠΈΡΡΠΊ Π΅ Π±ΠΈΡΡΡ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΡΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° C++, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π·Π½Π°ΠΌ, Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ. ΠΠΊΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡ Π½ΡΠΌΠ° Π΄Π° Π΅ Π½Π°ΠΉ-ΠΎΠΏΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ.
Π‘ΡΠ²Π΅ΡΠ²Π°ΠΌ Π²ΠΈ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠΈΠ»ΠΎΠ²ΠΈΠ΄. ΠΡΠ΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠ΅ΡΠ΅Ρ ΡΠΎΠΉ Π³ΠΎΠ²ΠΎΡΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ClickHouse Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π’ΠΎΠΉ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π² ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° C ++ ΠΈΠ»ΠΈ Π½ΡΠΊΠ°ΠΊΠ²ΠΎ Π΄ΡΡΠ³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½ΠΎ Π·Π° Π΄ΠΎΠ±ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΡΡΠ΅Π΄Π½ΠΎ Π² Π±ΠΎΠ»Π½ΠΈΡΠ°. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π»ΠΎΡΠΎ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π½Π°Π½ΠΈΡ, ΠΊΠ°ΡΠΎ Π½Π°ΡΠ°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ Π³ΠΎΡΠ½ΠΈΡΠ΅ 32 Π±ΠΈΡΠ° ΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ.
ΠΠΌΠ°ΠΌ Π²ΡΠΎΡΠΈ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΠ²Π° Π΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ InfluxDB?
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»Π½ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ. Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠΎΠ³Π°Π²Π° InfluxDB Π² ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° 10 ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»Π½ΠΎΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ VictoriaMetrics ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° 1 GB Π½Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, Π΄ΠΎΠΊΠ°ΡΠΎ InfluxDB ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° 10 GB. Π ΡΠΎΠ²Π° Π΅ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·Π»ΠΈΠΊΠ°.
ΠΡΠΎΡΠ°ΡΠ° ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»Π½Π° ΡΠ°Π·Π»ΠΈΠΊΠ° Π΅, ΡΠ΅ InfluxDB ΠΈΠΌΠ° ΡΡΡΠ°Π½Π½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ - Flux ΠΈ InfluxQL. Π’Π΅ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ
ΠΡΡΠ³Π° ΡΠ°Π·Π»ΠΈΠΊΠ° Π΅, ΡΠ΅ InfluxDB ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ°Π½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ»Π΅ΡΠ° Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°Π³ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΡΠ°Π±Π»ΠΈΡΠΈ. Π’Π΅Π·ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°Π·ΠΈ Π±Π°Π·Π°. Π’ΡΡΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°.
ΠΡΠ² VictoriaMetrics Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ. Π’Π°ΠΌ Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ Π΅ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΎΡΠΊΠΈ β (timestamp, value)
, Π° ΠΊΠ»ΡΡΡΡ Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡ label=value
. ΠΡΠΌΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»Π΅ΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΈΡ. Π’ΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅, ΠΈΠ·Π²Π°ΠΆΠ΄Π°ΡΠ΅, ΡΠΌΠ½ΠΎΠΆΠ°Π²Π°ΡΠ΅, ΡΠ°Π·Π΄Π΅Π»ΡΡΠ΅, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ InfluxDB, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π·Π½Π°ΠΌ. ΠΠΎΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ, Π΅ ΡΡΡΠ΄Π½ΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΡΠΏ ΠΊΠΎΠ΄.
ΠΠΌΠ°ΠΌ Π΅Π΄ΠΈΠ½ ΡΡΠΎΡΠ½ΡΠ²Π°Ρ Π²ΡΠΏΡΠΎΡ. ΠΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ°Π·Π±ΡΠ°Ρ , ΡΠ΅ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π·Π° ΠΊΠΎΠΉΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ°ΠΌ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅?
ΠΡΡΠ²ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°Ρ Π½Π°ΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΡΡ Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° ΠΊΠ°ΡΡΠ° Π½Π° Go. Π’Π°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ·ΠΈ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° Π½Π° Π΄ΠΈΡΠΊ, Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° Π½Π° Π΄ΠΈΡΠΊ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π΄Π° ΠΎΡΡΠ°Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΠΏΡΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅. ΠΡΠΈ ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π²Π°ΡΠΈΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π½Π΅. Π ΡΠ΅ Π·Π°Π³ΡΠ±ΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅.
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠ°Π²Π΅Π». ΠΠ· ΡΡΠΌ ΠΎΡ Wildberries. ΠΠΌΠ°ΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠΏΡΠΎΡΠ° ΠΊΡΠΌ Π²Π°Ρ. ΠΡΠΏΡΠΎΡ ΠΏΡΡΠ²ΠΈ. Π‘ΠΌΡΡΠ°ΡΠ΅ Π»ΠΈ, ΡΠ΅ Π°ΠΊΠΎ Π±ΡΡ ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ ΠΈ Π±ΡΡ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π±ΠΈΡ ΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΡΡΡΡΠ΅Π½Π΅, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° ΡΠ°ΠΌΠΎ Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π΅Π΄ΠΈΠ½ Π΄ΡΠ» ΡΡΠ΄ΡΡΠΆΠ° Π΄Π°Π½Π½ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅, Ρ.Π΅. Π² Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ ΠΎΡ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠΈΠ³ΡΡΠΈΡΠ΅ Π²ΠΈ ΡΠ° ΡΠ°Π·ΠΏΡΡΡΠ½Π°ΡΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½? ΠΡΠΏΡΠΎΡ Π½ΠΎΠΌΠ΅Ρ 2 - ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Ρ bitset ΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°? ΠΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Π»ΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ?
Π©Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΡ Π½Π° Π²ΡΠΎΡΠΎΡΠΎ. ΠΡΠ΅ Π½Π΅ ΡΠΌΠ΅ ΡΡΠΈΠ³Π½Π°Π»ΠΈ. ΠΠΎ Π°ΠΊΠΎ ΡΡΡΠ±Π²Π°, ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ. ΠΠ°ΠΊΡΠ² Π±Π΅ΡΠ΅ ΠΏΡΡΠ²ΠΈΡΡ Π²ΡΠΏΡΠΎΡ?
ΠΠΈΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΡ ΡΠ΅ Π΄Π²Π° ΡΡΠ΅Π½Π°ΡΠΈΡ. Π ΠΊΠ°Π·Π°Ρ Π°, ΡΠ΅ ΡΠ° ΠΈΠ·Π±ΡΠ°Π»ΠΈ Π²ΡΠΎΡΠΈΡ Ρ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΠΎΡ Π° ΠΏΡΡΠ²ΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅.
Π΄Π° Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΎΠ±ΡΠΈΡΡ ΠΎΠ±Π΅ΠΌ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π΄ΡΠ» ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π΄ΡΠ±Π»ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠ½Π΅Π·ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Ρ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π΄ΡΠ»ΠΎΠ²Π΅. Π Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°Π»ΡΠΊ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΎΡΡΠ΅Π³Π»ΡΠ½Π΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, ΡΠΎΠ΅ΡΡ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΡΠ΅ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ Π·Π°Π³ΡΠ±ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΅ΡΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π²ΡΠΎΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ.
Π ΡΠ°ΠΊΠ° - Π΄Π°, ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π΄ΠΎΠ±ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΡΠΎΠΌΠ΅ΡΠ΅ΠΉ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. ΠΠΎ Prometheus ΠΈΠΌΠ° Π΄ΡΡΠ³ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ. ΠΠΎΠ³Π°ΡΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° ΡΠ΅Π·ΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π°ΠΊΠΎ ΡΠ°ΡΡΠΈΡΠ΅ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°, ΡΠΎΠ³Π°Π²Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π½Π°ΡΠ°ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΠ»Π½ΠΎ ΠΏΡΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ΡΠΎ, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ VictoriaMetrics. ΠΡΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ VictoriaMetrics ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ°ΠΌ ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠ°ΡΡΠΈΡΠ΅ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ»ΠΈΠ²Π°Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ°ΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°ΠΌΠ΅Ρ. Π’ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ - ΠΌΠ°ΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π΄Π²ΠΎΠΉΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΌΠ°ΡΠΈΠ² ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΈ Π² Π΄ΡΡΠ³. Π Π²ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π΄Π°Π»ΠΈ ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎ ΠΈΠ»ΠΈ Π½Π΅. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΊΡΡΡΠΎΡΠΈ, ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΎΡΡΠ°ΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΡΠ΅Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΡΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΡΡΡΠΎΡΠΈ Π·Π° ΠΎΠ±Ρ ΠΎΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ?
ΠΠ°.
Π Π½Π°ΡΠΈΡ LevelDB ΠΈΠ»ΠΈ Π² mergeset ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΡΡΠ²ΠΈΠΌ Ρ ΠΊΡΡΡΠΎΡΠ° ΠΈ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΠΏΡΠ΅ΡΠ΅ΡΠΊΠ°ΡΠ°. ΠΠ°ΡΠΎ Π½Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅? ΠΠ°ΡΠΎΡΠΎ Π΅ Π±Π°Π²Π½ΠΎ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΡΡΡΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄. ΠΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π΅ 5 Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ 100 000 000 ΡΠ΅Π΄Π°, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠΌΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠ°ΠΌΠΎ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΌΠ° ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ, Π΄Π°. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΌΠΈ Π²ΡΠΏΡΠΎΡ. ΠΡΠΏΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠ·Π²ΡΡΠΈ ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ°Π½Π½ΠΎ. ΠΠ°ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΈΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π±ΡΠΎΡΡ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΡΠΎΡΠΌΠ°? ΠΠ°ΡΠΎ Π΄Π° ΡΠΏΠ΅ΡΡΡΠ²Π°ΡΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π² Π½ΡΠΊΠΎΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ VictoriaMetrics, ClickHouse ΠΈ Π΄Ρ., Π·Π° Π΄Π° ΠΎΡΠ΄Π΅Π»ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΡΡ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ?
Π©Π΅ Π΄Π°ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΡΠ°Π½Π΅ ΠΏΠΎ-ΡΡΠ½ΠΎ. ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ°Π»ΠΊΠ° ΠΈΠ³ΡΠ°ΡΠΊΠ° ΡΠΊΠΎΡΠΎΡΡΠΎΠΌΠ΅Ρ? Π’ΠΎΠΉ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ΅ ΠΈΠ·ΠΌΠΈΠ½Π°Π»ΠΈ, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π· ΡΡΠ»ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π³ΠΎ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΡΠΌ Π΅Π΄Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΡΠΌ Π²ΡΠΎΡΠΈ ΠΏΡΡ. Π ΡΠ°Π·Π΄Π΅Π»Ρ. Π ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΡΠ΅Π΄Π½Π° ΡΠΊΠΎΡΠΎΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΡΡΠΈ ΡΡΡΠΎΡΠΎ. ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ°ΠΊΡΠΈ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ±ΡΠ΅, ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ Π²ΡΠΏΡΠΎΡΠ°. ΠΠ°ΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ° ΠΊΡΠ΄Π΅ Π΄Π° ΠΆΠΈΠ²Π΅Π΅. ΠΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π°, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ Ρ ΠΎΡΠ°ΡΠ° Π·Π°ΠΏΠ°Π·Π²Π°Ρ ΡΠ΅Π·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, Π½ΡΠΊΠΎΠΈ Π΄Π°Π½Π½ΠΈ Π² ClickHouse, ΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ Π³ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Ρ ΠΈ ΡΠΈΠ»ΡΡΠΈΡΠ°Ρ Π² Π±ΡΠ΄Π΅ΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΎ Π°ΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅ Π½Π΅ΡΠΎ, ΡΠΎΠ³Π°Π²Π° Π·Π°ΡΠΎ Π½Π΅ Π³ΠΎ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΊΡΠΏ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΠ°ΠΌ? ΠΠΎ ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΡΠΎΡΠ½ΠΎ ΠΎΡ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π°.
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΡΠ΅Π±ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π°Π³ΡΠ΅Π³Π°ΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Prometheus ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π±ΡΠΎΠΈΡΠ΅ Π±ΡΠΎΡ Π½Π° ΡΡΠ±ΠΈΡΠΈΡΡΠ° Π² ΠΏΠ»ΡΠ·Π³Π°Ρ ΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ°Ρ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² Go, Ρ.Π΅. ΡΡΠ»ΡΠ³Π° Π·Π° ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ²Π° Π½Π΅ΡΠΎ. Π’Π°Π·ΠΈ ΡΡΠ»ΡΠ³Π° Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π±Π΅ΡΠ΅ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»Π½Π°, Π·Π°ΡΠΎΡΠΎ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π±ΡΠΎΠΈ. ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΡΠΎ, Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π±ΡΠΎΠΈΡΠ΅ Π½ΡΠΊΠΎΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ Π½Π° ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π±ΡΠΎΠΈΡΠ΅ ΡΡΠ±ΠΈΡΠΈΡ Π² ΠΏΠ»ΡΠ·Π³Π°Ρ ΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ, ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π»Π΅ΡΠ½ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°. ΠΠΈΡΠ»Ρ, ΡΠ΅ ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² ClickHouse ΠΈΠ»ΠΈ Π² Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, Π·Π°ΡΠΎΡΠΎ Π΅ ΡΡΡΠ΄Π½ΠΎ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅.
Π ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ. Π’ΡΠΊΠΌΠΎ Π³ΠΎΠ²ΠΎΡΠ΅Ρ ΠΌΠ΅ Π·Π° ΠΎΡΡΠ΅Π΄Π½ΡΠ²Π°Π½Π΅ ΠΈ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΠΈΡ , ΡΠ΅ Π½ΡΠΊΠΎΠ³Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Graphite Ρ Carbon Π±Π΅ΠΊΠ΅Π½Π΄. Π ΡΠΎΠΉ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΡΡΠ½ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Ρ.Π΅. Π΄Π° ΠΎΡΡΠ°Π²ΠΈ Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠΈΠ½ΡΡΠ°, Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ°Ρ ΠΈ Ρ.Π½. ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΡΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π·Π° Π΅Π΄ΠΈΠ½ ΠΌΠ΅ΡΠ΅Ρ, Π° Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠ½Π΅Π½ΠΎ Π½Π°Π²ΡΠ½ ΠΠΎ Prometheus, VictoriaMetrics Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. ΠΠ»Π°Π½ΠΈΡΠ° Π»ΠΈ ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅Π½ΠΎ? ΠΠΊΠΎ Π½Π΅, Π·Π°ΡΠΎ Π½Π΅?
Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π²ΡΠΏΡΠΎΡΠ° ΠΠ°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³ΠΎ Π·Π°Π΄Π°Π²Π°Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ. Π’Π΅ ΠΏΠΈΡΠ°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΡΡΠ½ΡΠ²Π°Π½Π΅ (Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅). Π’ΡΠΊ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΡΠ²ΠΎ, Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΠ°Π·Π±ΠΈΡΠ° downsampling
Π½Π΅ΡΠΎ ΡΠ²ΠΎΠ΅: Π½ΡΠΊΠΎΠΉ ΠΈΡΠΊΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° ΡΠΎΡΠΊΠ° Π½Π° Π΄Π°Π΄Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π½ΡΠΊΠΎΠΉ ΠΈΡΠΊΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅, ΡΡΠ΅Π΄Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² Π²Π°ΡΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠΎΠ³Π°Π²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΡΠ΅Π΄ΠΈΡΠ΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π·Π° Π²ΡΠΈΡΠΊΠΈ. ΠΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ Π΄Π΅ΡΠΈΠΌΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π΅ ΡΡΡΠ΄Π½ΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.
Π Π²ΡΠΎΡΠΎΡΠΎ Π½Π΅ΡΠΎ Π΅, ΡΠ΅ VictoriaMetrics, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ClickHouse, Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠ΅Π· ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΡΠ΅Π΄ΠΎΠ²Π΅ Π·Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠΈ. Π’ΠΎΡΠΊΠΎΠ²ΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π²ΡΠ² VictoriaMetrics - 50 000 000 ΡΠΎΡΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π½Π° ΡΠ΄ΡΠΎ. Π ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π΄ΠΎ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΄ΡΠ°. Π’ΠΎΠ΅ΡΡ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ 20 ΡΠ΄ΡΠ° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΡΠΊΠ°Π½ΠΈΡΠ°ΡΠ΅ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΡΠΎΡΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. Π ΡΠΎΠ²Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π° VictoriaMetrics ΠΈ ClickHouse Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΏΠΎΠ½ΠΈΠΆΠ°Π²Π°Π½Π΅.
ΠΡΡΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ Π΅, ΡΠ΅ VictoriaMetrics ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π‘ΡΠ΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ Π΅ ΠΎΡ 0,4 Π΄ΠΎ 0,8 Π±Π°ΠΉΡΠ° Π½Π° ΡΠΎΡΠΊΠ°. ΠΡΡΠΊΠ° ΡΠΎΡΠΊΠ° Π΅ ΠΊΠ»Π΅ΠΉΠΌΠΎ Π·Π° Π²ΡΠ΅ΠΌΠ΅ + ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΡΡΠ΅Π΄Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ.
Π‘Π΅ΡΠ³Π΅ΠΉ. ΠΠΌΠ°ΠΌ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΡΠ² Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡΡ ΠΎΡΡΡΠ·ΡΠΊ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π·Π°ΠΏΠΈΡ?
ΠΠ΄Π½Π° ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠ°ΡΠΊΠΎΡΠΎ ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ Ρ Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ. ΠΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ ΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. Π Π² Graphite Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠΎ Π΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. OpenTSDB ΡΡΡΠΎ ΠΈΠΌΠ° Π΅Π΄Π½Π° Π²ΡΠΎΡΠ°. Π InfluxDB, Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠΎΡΠ½ΠΎΡΡ. VictoriaMetrics ΠΈΠΌΠ° Π΅Π΄Π½Π° ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°, Π·Π°ΡΠΎΡΠΎ Prometheus ΠΈΠΌΠ° Π΅Π΄Π½Π° ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°. Π VictoriaMetrics ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Prometheus. ΠΠΎ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
Π§ΠΎΠ²Π΅ΠΊΡΡ, Ρ ΠΊΠΎΠ³ΠΎΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ , ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΈΠΌΠ°Ρ Π²ΡΠΎΡΠ° ΡΠΎΡΠ½ΠΎΡΡ - ΡΠΎΠ²Π° ΠΈΠΌ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ, Π·Π°ΡΠΎΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π²ΠΈΠ΄Π° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠΊΠΎ ΡΠΎΠ²Π° ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΎΡ DevOps ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π³ΠΈ ΡΡΠ±ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΎΡ 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π½Π° ΠΌΠΈΠ½ΡΡΠ°, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π½Π° ΡΠΎΡΠ½ΠΎΡΡ, Π½Π΅ Π²ΠΈ ΡΡΡΠ±Π²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ. Π Π°ΠΊΠΎ ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΠΈΡΠΎΠΊΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΡΡΠ³ΠΎΠ²ΠΈΡ, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠΎΡΠ½ΠΎΡΡ.
Π’ΠΎΡΠ½ΠΎΡΡΡΠ° ΠΎΡ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π²ΡΠ² VictoriaMetrics ΡΡΡΠΎ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΡΠ»ΡΡΠ°ΠΉ Π½Π° DevOps ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ Π½Π΅ΡΠΎ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ, ΡΠ° Π²ΠΈΡΠΎΠΊΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΡΡΠ³ΠΎΠ²ΠΈΡ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈ! Π ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Π² PromQL?
ΠΡΠ»Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ. VictoriaMetrics Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° PromQL. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΎΠΉ Π΄ΠΎΠ±Π°Π²Ρ ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΊΡΠΌ PromQL, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ°
Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π»
Π Π°Π½ΠΊΠ΅ΡΠ°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ°ΠΊΠ²ΠΎ Π²ΠΈ ΠΏΡΠ΅ΡΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ VictoriaMetrics ΠΊΠ°ΡΠΎ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Prometheus? (ΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅, ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΡΠΌ Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°))
-
71,4%ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Prometheus5
-
28,6%ΠΠ΅ Π·Π½Π°Π΅Ρ Π·Π° VictoriaMetrics2
7 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³Π»Π°ΡΡΠ²Π°Ρ
Π°. 12 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ Π²ΡΠ·Π΄ΡΡΠΆΠ°Ρ
Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com