ΠΠ°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ (TSDB) Π²ΠΎ Prometheus 2 Π΅ ΠΎΠ΄Π»ΠΈΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΅ Π½ΡΠ΄ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ° Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Prometheus 2 v1 Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π±Π°ΡΠ°ΡΠ°ΡΠ°, ΠΊΠ°ΠΊΠΎ ΠΈ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎΡΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅. ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π²ΠΌΠ΅ Prometheus 2 Π²ΠΎ Percona Monitoring and Management (PMM) ΠΈ ΠΈΠΌΠ°Π² ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ°ΠΌ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π° Prometheus 2 TSDB. ΠΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ° ΡΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌ Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ Π½Π°Π±ΡΡΠ΄ΡΠ²Π°ΡΠ°.
ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ ΠΡΠΎΡΠ΅ΡΠ΅Π½ ΠΎΠ±Π΅ΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ°
ΠΠ° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ ΡΠ΅ Π½Π°Π²ΠΈΠΊΠ½Π°ΡΠΈ Π΄Π° ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Π°Ρ ΡΠΎ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° ΠΎΠΏΡΡΠ° Π½Π°ΠΌΠ΅Π½Π°, ΡΠΈΠΏΠΈΡΠ½ΠΈΠΎΡ ΠΎΠ±Π΅ΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Prometheus Π΅ Π΄ΠΎΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½. Π‘ΡΠ°ΠΏΠΊΠ°ΡΠ° Π½Π° Π°ΠΊΡΠΌΡΠ»Π°ΡΠΈΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈΠΌΠ° ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΡΡΠ°Π±ΠΈΠ»Π½Π°: ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΡΠΎ Π³ΠΈ ΡΠ»Π΅Π΄ΠΈΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ°Π°Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΈΡΡΠ° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π° Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠ°, Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π° ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ Π±Π°Π²Π½ΠΎ.
ΠΠ°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ°ΡΠ°Π°Ρ ΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·Π²ΠΎΡΠΈ. ΠΠ΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½ΠΈΠ², ΠΊΠ°ΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ°ΡΠ°, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ°Π°Ρ Π·Π° ΡΠ΅Π» ΡΡΠ°Π±ΠΈΠ»Π½Π° ΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ. ΠΡΡΠ³ΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π°Ρ ΡΠΊΠΎΠΊΠΎΠ²ΠΈ, ΠΈΠ°ΠΊΠΎ ΡΠΎΠ° Π½Π΅ Π΅ ΡΠ»ΡΡΠ°Ρ Π·Π° ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°.
Π’Π΅ΡΡ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅
ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ, ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π² Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ° Π΄Π° ΡΠ΅ Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈΠ² Prometheus 2.3.2 ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π½ ΡΠΎ Go 1.10.1 (ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ PMM 1.14) Π½Π° ΡΡΠ»ΡΠ³Π° Linode ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° ΠΎΠ²Π°Π° ΡΠΊΡΠΈΠΏΡΠ°:
Π‘ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π±Π΅Π° ΠΈΠ·Π²ΡΡΠ΅Π½ΠΈ Π½Π° Linode ΡΠ΅ΡΠ²Π΅Ρ ΡΠΎ ΠΎΡΡΠΌ vCres ΠΈ 32 GB ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°, ΡΠΎ 20 ΡΠΈΠΌΡΠ»Π°ΡΠΈΠΈ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π΅ΡΡΠΈ 800 MySQL ΠΏΡΠΈΠΌΠ΅ΡΠΈ. ΠΠ»ΠΈ, Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° Prometheus, 440 ΡΠ΅Π»ΠΈ (ΡΠ΅Π»ΠΈ), 380 ΡΠ°ΠΊΡΠΈ (Π³ΡΠ΅Π±Π΅ΡΠ΅) Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°, 1,7 ΠΈΠ»ΡΠ°Π΄ΠΈ Π·Π°ΠΏΠΈΡΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ) Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΈ XNUMX ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ.
ΠΠΈΠ·Π°ΡΠ½
ΠΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΈΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΎ ΠΈ ΠΎΠ½ΠΎΡ ΡΡΠΎ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ Prometheus 1.x, Π΅ Π΄Π° storage.tsdb.min-block-duration
, ΡΡΠΎ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΠΊΠΎΠ»ΠΊΡ Π΄ΠΎΠ»Π³ΠΎ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΡΠ²Π°Π°Ρ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»Π°Ρ Π½Π° Π΄ΠΈΡΠΊΠΎΡ (ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ Π΅ 2 ΡΠ°ΡΠ°). ΠΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±Π½Π°ΡΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΡΠ΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ Π±ΡΠΎΡΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ, ΠΎΠ·Π½Π°ΠΊΠΈ ΠΈ Π³ΡΠ΅Π±Π½Π°ΡΠΈΠ½ΠΈ, ΠΏΠ»ΡΡ Π½Π΅ΡΠΎ-Π²Π»Π΅Π·ΠΎΡ. ΠΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΏΡΠΎΡΡΠΎΡΠΎΡ Π½Π° Π΄ΠΈΡΠΊΠΎΡ, Prometheus ΠΈΠΌΠ° Π·Π° ΡΠ΅Π» Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈ 3 Π±Π°ΡΡΠΈ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΠ΅ (ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΊ). ΠΠ΄ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ²ΠΈΡΠΎΠΊΠΈ.
ΠΠ°ΠΊΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΡ, Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° ΡΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΎΡΡΠ°Π½ΡΠ²Π° ΡΠΎ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΄Π° ΠΌΡ Π΄Π°Π΄Π΅ΡΠ΅ Π½Π° Prometheus ΠΎΠ½ΠΎΠ»ΠΊΡ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΊΠΎΠ»ΠΊΡ ΡΡΠΎ ΠΌΡ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° Π²Π°ΡΠΈΠΎΡ ΠΎΠ±Π΅ΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠΊΠΎ Π½Π΅ΠΌΠ° Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π° Π΄ΠΎΡΠ΄ΠΎΠ²Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠΎΠΊ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠ°, ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ ΡΠ΅ ΠΈΡΠΏΠ°Π΄Π½Π΅ ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΡΠ°ΡΠ΅Π½ ΠΎΠ΄ ΡΠ±ΠΈΠ΅Ρ Π½Π° OOM.
ΠΠΎΠ΄Π°Π²Π°ΡΠ΅ΡΠΎ swap Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ΄Π»ΠΎΠΆΠΈ ΠΏΠ°Π΄ΠΎΡ ΠΊΠΎΠ³Π° Prometheus ΡΠ½Π΅ΠΌΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π½Π΅ ΠΏΠΎΠΌΠ°Π³Π°, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ·ΠΈΠΈ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°. ΠΠΈΡΠ»Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π·Π° Go, Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΡΠΎΠ±ΠΈΡΠ°Ρ Π½Π° ΡΡΠ±ΡΠ΅ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ swap.
ΠΡΡΠ³ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΅ Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΡ Π·Π° Π³Π»Π°Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠΈΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½Π°ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ Π±ΡΠΎΠΈ ΠΎΠ΄ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΡ ΠΊΠΎΠ³Π° Π·Π°ΠΏΠΎΡΠ½Π°Π» ΠΏΡΠΎΡΠ΅ΡΠΎΡ.
ΠΠ°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΎΡ, ΠΈΡΠΏΠΈΡΠ°ΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°Π°Ρ Π½Π° ΡΠ΅ΠΊΠΎΠΈ Π΄Π²Π° ΡΠ°ΡΠ°. ΠΠΊΠΎ Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ ΠΌΠΈΠ½-Π±Π»ΠΎΠΊ-ΡΡΠ°Π΅ΡΠ΅ Π½Π° Π΅Π΄Π΅Π½ ΡΠ°Ρ, ΡΠΎΠ³Π°Ρ ΠΎΠ²ΠΈΠ΅ ΡΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°Π°Ρ ΡΠ΅ΠΊΠΎΡ ΡΠ°Ρ, ΠΏΠΎΡΠ½ΡΠ²Π°ΡΡΠΈ ΠΎΠ΄ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΠ°Ρ.
ΠΠΊΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΎΠ²ΠΎΡ ΠΈ Π΄ΡΡΠ³ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΈ Π²ΠΎ Π²Π°ΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° Π½Π° Prometheus, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΎΠ²Π°
ΠΠΌΠ°ΠΌΠ΅ Π°ΠΊΡΠΈΠ²Π΅Π½ Π±Π»ΠΎΠΊ, Π½Π°ΡΠ΅ΡΠ΅Π½ head block, ΠΊΠΎΡ ΡΠ΅ ΡΡΠ²Π° Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°; Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠΎ ΠΏΠΎΡΡΠ°ΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ ΠΏΡΠ΅ΠΊΡ mmap()
. ΠΠ²Π° ΡΠ° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠ΅ΡΠΎΡ ΠΏΠΎΡΠ΅Π±Π½ΠΎ, Π½ΠΎ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΏΡΠΎΡΡΠΎΡ Π·Π° ΠΊΠ΅ΡΠΎΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π°ΠΊΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° Π±Π°ΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΠΎΡΡΠ°ΡΠΈ ΠΎΠ΄ Π±Π»ΠΎΠΊΠΎΡ Π·Π° Π³Π»Π°Π²Π°.
Π’ΠΎΠ° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π½Π° Prometheus ΡΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π° Π΄ΠΎΡΡΠ° Π²ΠΈΡΠΎΠΊΠ°, ΡΡΠΎ Π½Π΅ Π΅ Π½ΠΈΡΡΠΎ Π·Π° Π³ΡΠΈΠΆΠ°.
ΠΡΡΠ³Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠΎΡΠΊΠ° Π½Π° Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°ΡΠ΅ Π΅ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° WAL (Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΎΠ΄Π½Π°ΠΏΡΠ΅Π΄ Π΄Π½Π΅Π²Π½ΠΈΠΊ). ΠΠ°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΠ΄ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ, Prometheus ΠΊΠΎΡΠΈΡΡΠΈ WAL Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΠ°Π΄ΠΎΠ²ΠΈ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠΏΡΡΠ°Π½ΠΎΠΊΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅, Π·Π° ΠΆΠ°Π», Π½Π΅ ΡΠ΅ Π΄ΠΎΠ±ΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ. Prometheus 2.3.2 Π³ΠΎ ΠΈΡΠΏΡΡΡΠ° WAL Π½Π° Π΄ΠΈΡΠΊΠΎΡ Π½Π° ΡΠ΅ΠΊΠΎΠΈ 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΈ ΠΎΠ²Π°Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΎΠ΄ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ.
ΠΠ΅ΡΠ°ΡΠΈ
Prometheus TSDB Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ»ΠΈΠΊΠ°ΡΠ° Π½Π° LSM ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ (Log Structured merge - log-structured merge tree): Π±Π»ΠΎΠΊΠΎΡ Π½Π° Π³Π»Π°Π²Π°ΡΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΌΠΈΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ, Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΡ Π·Π° Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ ΡΠΏΠΎΡΡΠ²Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π½Π° Π±Π°ΡΠ°ΡΠ°. ΠΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΡΠΎ Π³ΠΈ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π² Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎ Π΅Π΄Π΅Π½ Π΄Π΅Π½ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅.
ΠΠΊΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° Π΄ΠΎΠ·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° meta.json, ΠΊΠΎΡΠ° ΠΈΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΈ ΠΊΠ°ΠΊΠΎ Π½Π°ΡΡΠ°Π½Π°Π»Π΅.
{
"ulid": "01CPZDPD1D9R019JS87TPV5MPE",
"minTime": 1536472800000,
"maxTime": 1536494400000,
"stats": {
"numSamples": 8292128378,
"numSeries": 1673622,
"numChunks": 69528220
},
"compaction": {
"level": 2,
"sources": [
"01CPYRY9MS465Y5ETM3SXFBV7X",
"01CPYZT0WRJ1JB1P0DP80VY5KJ",
"01CPZ6NR4Q3PDP3E57HEH760XS"
],
"parents": [
{
"ulid": "01CPYRY9MS465Y5ETM3SXFBV7X",
"minTime": 1536472800000,
"maxTime": 1536480000000
},
{
"ulid": "01CPYZT0WRJ1JB1P0DP80VY5KJ",
"minTime": 1536480000000,
"maxTime": 1536487200000
},
{
"ulid": "01CPZ6NR4Q3PDP3E57HEH760XS",
"minTime": 1536487200000,
"maxTime": 1536494400000
}
]
},
"version": 1
}
ΠΠ»ΠΎΠΌΠ±ΠΈΡΠ΅ Π²ΠΎ ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ ΡΠ΅ Π²ΡΠ·Π°Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΊΠΎΠ³Π° Π±Π»ΠΎΠΊΠΎΡ Π½Π° Π³Π»Π°Π²Π°ΡΠ° Π΅ ΠΈΡΠΏΠ»Π°ΠΊΠ½Π°Ρ Π½Π° Π΄ΠΈΡΠΊΠΎΡ. ΠΠΎ ΠΎΠ²ΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠ°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
Π‘Π΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° Π½Π°Π±ΠΈΠ²Π°ΡΠ°ΡΠ° Π½Π΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ Π½Π°ΡΠΈΠ½ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π°Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΊΠΎΠΊΠΎΠ²ΠΈ Π½Π° Π²Π»Π΅Π·/ΠΈΠ·Π»Π΅Π· Π½Π° Π΄ΠΈΡΠΊΠΎΡ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ.
Π‘ΠΊΠΎΠΊΠΎΠ²ΠΈ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ
Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΎΠ²Π° ΠΈΠΌΠ° ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π½Π΅Π³Π°ΡΠΈΠ²Π΅Π½ Π΅ΡΠ΅ΠΊΡ Π²ΡΠ· Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΡΠ΅ΡΠΈΠΎΠ·Π΅Π½ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°ΡΠ° Π½Π° LSM: ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Ρ Π²ΠΈΡΠΎΠΊΠΈΡΠ΅ Π±ΡΠ·ΠΈΠ½ΠΈ Π½Π° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π°Ρ ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ ΡΡΠΎΡΠΎΡΠΈ?
Π£ΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΡΠ±ΠΎΠΏΠΈΡΠ½ΠΎ.
ΠΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠ°ΠΊΠΎ, ΠΏΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ΡΠΎ, ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΡΠ° ΠΌΠ΅Π½ΡΠ²Π° ΡΠΎΡΡΠΎΡΠ±Π°ΡΠ° ΠΎΠ΄ ΠΠ΅ΡΠΈΡΠ°Π½Π° Π²ΠΎ ΠΠ΅ΡΠΏΠ»Π°ΡΠ½Π°: ΡΠΎΠ° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΎ Π²ΡΠ΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ΅ ΠΎΡΡΡΡΠ°Π½Π΅ΡΠΈ ΠΎΠ΄ ΡΠ°ΠΌΡ. ΠΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ° Π΄Π°Π»ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ²Π΄Π΅ fadvice()
ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠ° Π΄ΡΡΠ³Π° ΡΠ΅Ρ
Π½ΠΈΠΊΠ° Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅, ΠΈΠ»ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ° ΡΡΠΎ ΠΊΠ΅ΡΠΎΡ Π΅ ΠΈΡΠΏΡΠ°Π·Π½Π΅Ρ ΠΎΠ΄ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠ½ΠΈΡΡΠ΅Π½ΠΈ ΡΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅?
ΠΠ±Π½ΠΎΠ²Π° Π½Π° Π½Π΅ΡΡΠΏΠ΅Ρ
ΠΠ° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΎΠ΄ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠΈ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΈ ΡΠΎΠ° ΠΈΠΌΠ° Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π°. ΠΠ° Π΄ΠΎΡΠ΄ΠΎΠ²Π΅Π½ ΠΏΠΎΡΠΎΠΊ ΠΎΠ΄ ΠΌΠΈΠ»ΠΈΠΎΠ½ Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°, ΠΌΠΎΡΠ°Π² Π΄Π° ΡΠ΅ΠΊΠ°ΠΌ ΠΎΠΊΠΎΠ»Ρ 25 ΠΌΠΈΠ½ΡΡΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ΡΠΎ Π³ΠΎ Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ SSD-ΡΡΠ΅Π΄ΠΎΡ.
level=info ts=2018-09-13T13:38:14.09650965Z caller=main.go:222 msg="Starting Prometheus" version="(version=2.3.2, branch=v2.3.2, revision=71af5e29e815795e9dd14742ee7725682fa14b7b)"
level=info ts=2018-09-13T13:38:14.096599879Z caller=main.go:223 build_context="(go=go1.10.1, user=Jenkins, date=20180725-08:58:13OURCE)"
level=info ts=2018-09-13T13:38:14.096624109Z caller=main.go:224 host_details="(Linux 4.15.0-32-generic #35-Ubuntu SMP Fri Aug 10 17:58:07 UTC 2018 x86_64 1bee9e9b78cf (none))"
level=info ts=2018-09-13T13:38:14.096641396Z caller=main.go:225 fd_limits="(soft=1048576, hard=1048576)"
level=info ts=2018-09-13T13:38:14.097715256Z caller=web.go:415 component=web msg="Start listening for connections" address=:9090
level=info ts=2018-09-13T13:38:14.097400393Z caller=main.go:533 msg="Starting TSDB ..."
level=info ts=2018-09-13T13:38:14.098718401Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536530400000 maxt=1536537600000 ulid=01CQ0FW3ME8Q5W2AN5F9CB7R0R
level=info ts=2018-09-13T13:38:14.100315658Z caller=web.go:467 component=web msg="router prefix" prefix=/prometheus
level=info ts=2018-09-13T13:38:14.101793727Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536732000000 maxt=1536753600000 ulid=01CQ78486TNX5QZTBF049PQHSM
level=info ts=2018-09-13T13:38:14.102267346Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536537600000 maxt=1536732000000 ulid=01CQ78DE7HSQK0C0F5AZ46YGF0
level=info ts=2018-09-13T13:38:14.102660295Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536775200000 maxt=1536782400000 ulid=01CQ7SAT4RM21Y0PT5GNSS146Q
level=info ts=2018-09-13T13:38:14.103075885Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536753600000 maxt=1536775200000 ulid=01CQ7SV8WJ3C2W5S3RTAHC2GHB
level=error ts=2018-09-13T14:05:18.208469169Z caller=wal.go:275 component=tsdb msg="WAL corruption detected; truncating" err="unexpected CRC32 checksum d0465484, want 0" file=/opt/prometheus/data/.prom2-data/wal/007357 pos=15504363
level=info ts=2018-09-13T14:05:19.471459777Z caller=main.go:543 msg="TSDB started"
level=info ts=2018-09-13T14:05:19.471604598Z caller=main.go:603 msg="Loading configuration file" filename=/etc/prometheus.yml
level=info ts=2018-09-13T14:05:19.499156711Z caller=main.go:629 msg="Completed loading of configuration file" filename=/etc/prometheus.yml
level=info ts=2018-09-13T14:05:19.499228186Z caller=main.go:502 msg="Server is ready to receive web requests."
ΠΠ»Π°Π²Π½ΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ Π΅ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°. ΠΠ°ΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΡΠΎ ΠΈΡΡΠ° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π²ΠΎ Π½ΠΎΡΠΌΠ°Π»Π½Π° ΡΠΈΡΡΠ°ΡΠΈΡΠ°, Π°ΠΊΠΎ ΡΠ΅ ΡΡΡΡΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ OOM. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎ Π³ΠΎ Π½Π°ΡΠ΄ΠΎΠ² Π΅ Π΄Π° Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΠΌ ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΈΠ³Π½Π°ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ, Π΄Π° Π³ΠΎ ΠΎΡΡΠ°Π²Π°ΠΌ Π΄Π° ΡΠ΅ ΠΎΠΏΠΎΡΠ°Π²ΠΈ ΠΈ Π΄Π° ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° ΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅.
ΠΠ°Π³ΡΠ΅Π²Π°ΡΠ΅
ΠΡΡΠ³ΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΈΠΌΠ° Π½Π° ΡΠΌ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π·Π°Π³ΡΠ΅Π²Π°ΡΠ΅ΡΠΎ Π΅ ΠΎΠ΄Π½ΠΎΡΠΎΡ Π½Π° Π½ΠΈΡΠΊΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΠΈ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π²Π΅Π΄Π½Π°Ρ ΠΏΠΎ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ. ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠΈ, Π½ΠΎ Π½Π΅ ΡΠΈΡΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΠΈ, Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π² ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°.
ΠΠ°ΠΌΠ°Π»ΡΠ²Π°ΡΠ°ΡΠ° Π²ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Π°Ρ Π΄Π΅ΠΊΠ° Prometheus Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΡΠΈΡΠ΅ Π½Π°Π΄ΠΎΠΌΠ΅ΡΡΠΎΡΠΈ ΠΎΠ΄ ΡΠ°ΠΌΠΈΠΎΡ ΠΏΠΎΡΠ΅ΡΠΎΠΊ, Π° Π½Π΅ΠΊΠΎΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π³ΡΠ±Π΅Π½ΠΈ.
ΠΠ΅ Π³ΠΈ Π΄ΠΎΠ·Π½Π°Π² ΡΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°. Π‘Π΅ ΡΠΎΠΌΠ½Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΠΎΠ° ΡΠ΅ Π΄ΠΎΠ»ΠΆΠΈ Π½Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ Π²ΠΎ Π³Π»Π°Π²Π½ΠΈΠΎΡ Π±Π»ΠΎΠΊ ΡΠΎ Π²ΠΈΡΠΎΠΊΠ° ΡΡΠ΅ΠΊΠ²Π΅Π½ΡΠΈΡΠ°.
ΠΠΎΡΠΊΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ
ΠΠΎΠΊΡΠ°Ρ Π·Π³ΡΡΠ½ΡΠ²Π°ΡΠ°ΡΠ°, ΠΊΠΎΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π²ΠΈΡΠΎΠΊΠΎ I/O ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅, Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π² ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΡΠΊΠΎΠΊΠΎΠ²ΠΈ Π²ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ Π½Π° ΡΠ΅ΠΊΠΎΠΈ Π΄Π²Π΅ ΠΌΠΈΠ½ΡΡΠΈ. Π Π°ΡΠ°Π»ΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ»Π³ΠΈ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌ Π΄ΠΎΡΠ΄ΠΎΠ²Π΅Π½ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΠ΄ ΡΠΎΠ±ΠΈΡΠ°ΡΠΎΡ Π½Π° ΡΡΠ±ΡΠ΅ Go, Π±Π°ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΠΈ ΡΠ°Π΄ΡΠ° ΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π½Π°ΠΏΠΎΠ»Π½Π΅ΡΠΈ.
ΠΠ²ΠΈΠ΅ ΡΠΊΠΎΠΊΠΎΠ²ΠΈ Π½Π΅ ΡΠ΅ ΡΠΎΠ»ΠΊΡ Π±Π΅Π·Π½Π°ΡΠ°ΡΠ½ΠΈ. Π‘Π΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ°Π²Π°Ρ, Π²Π½Π°ΡΡΠ΅ΡΠ½Π°ΡΠ° Π²Π»Π΅Π·Π½Π° ΡΠΎΡΠΊΠ° ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ ΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ, ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π°ΡΡΠΈ ΠΏΠ°Π΄ΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΠΎ ΠΈΡΡΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ.
ΠΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅ ΠΈ Π΄Π΅ΠΊΠ° ΠΈΠ·Π²ΠΎΠ·Π½ΠΈΠΊΠΎΡ Prometheus ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΡΠ²Π° Π½Π° Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠΎΡΠ΅Π»Π°ΡΠΈΠΈ ΡΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅ ΡΡΠ±ΡΠ΅ (GC).
ΠΠ°ΠΊΠ»ΡΡΠΎΠΊ
TSDB Π²ΠΎ Prometheus 2 Π΅ Π±ΡΠ·, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° ΡΠ°ΠΊΡΠ²Π° ΡΠΎ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ ΠΈ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠ»ΡΠ°Π΄Π½ΠΈΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠΊΡΠΎΠΌΠ΅Π½ Ρ Π°ΡΠ΄Π²Π΅Ρ. Π£ΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΈ Π²Π»Π΅Π·ΠΎΡ/ΠΈΠ·Π»Π΅Π·ΠΎΡ Π½Π° Π΄ΠΈΡΠΊΠΎΡ Π΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠΏΡΠ΅ΡΠΈΠ²Π½Π°. ΠΠΎΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄ΠΎ 200 ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΏΠΎ ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΎ ΡΠ°Π΄ΡΠΎ.
ΠΠ° Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΡΠ΅, ΡΡΠ΅Π±Π° Π΄Π° Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°. ΠΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°, ΡΡΠΎ ΡΠ° Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π², Π±Π΅ΡΠ΅ ΠΎΠΊΠΎΠ»Ρ 5 GB Π½Π° 100 Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΎΠ΄ Π΄ΠΎΡΠ΄ΠΎΠ²Π½ΠΈΠΎΡ ΡΡΡΠΈΠΌ, ΡΡΠΎ, Π²ΠΊΡΠΏΠ½ΠΎ ΡΠΎ ΠΊΠ΅ΡΠΎΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, Π΄Π°Π΄Π΅ ΠΎΠΊΠΎΠ»Ρ 000 GB Π·Π°ΡΠ°ΡΠ΅Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°.
Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΈΠΌΠ° ΡΡΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π±ΠΎΡΠ° Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π·Π° Π΄Π° ΡΠ΅ ΡΠΊΡΠΎΡΠ°Ρ ΡΠΊΠΎΠΊΠΎΠ²ΠΈΡΠ΅ Π½Π° CPU ΠΈ I/O Π½Π° Π΄ΠΈΡΠΊΠΎΡ, ΠΈ ΡΠΎΠ° Π½Π΅ Π΅ ΠΈΠ·Π½Π΅Π½Π°Π΄ΡΠ²Π°ΡΠΊΠΈ, ΡΠΎ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠΎΠ° ΠΊΠΎΠ»ΠΊΡ ΠΌΠ»Π°Π΄ΠΈΠΎΡ TSDB Prometheus 2 ΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π° ΡΠΎ InnoDB, TokuDB, RocksDB, WiredTiger, Π½ΠΎ ΡΠΈΡΠ΅ ΡΠΈΠ΅ ΠΈΠΌΠ°Π° ΡΠ»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° Π½ΠΈΠ²Π½ΠΈΠΎΡ ΠΆΠΈΠ²ΠΎΡΠ΅Π½ ΡΠΈΠΊΠ»ΡΡ.
ΠΠ·Π²ΠΎΡ: www.habr.com