Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pinba ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ clickhouse ΠΈ grafana Π²ΠΌΠ΅ΡΡΠΎ pinba_engine ΠΈ pinboard.
ΠΠ° php-ΠΏΡΠΎΠ΅ΠΊΡΠ΅ pinba β ΠΏΠΎΠΆΠ°Π»ΡΠΉ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π΄ΡΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. ΠΡΠ°Π²Π΄Π° ΠΎΠ±ΡΡΠ½ΠΎ pinba Π²Π½Π΅Π΄ΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠΆΠ΅ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ Β«Π³Π΄Π΅ ΠΊΠΎΠΏΠ°ΡΡΒ».
Π§Π°ΡΡΠΎ Π½ΠΈΠΊΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ/ΠΌΠΈΠ½ΡΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Β«Π½Π° ΠΎΡΡΠΏΡΒ», Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅Ρ ΠΌΠ΅ΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΡΡΡΡ Π»ΠΎΠ³ΠΈΡΠ½Π΅Π΅.
ΠΡΠΎ-ΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π»ΠΎΠ³ΠΈ nginx, Π° ΠΊΡΠΎ-ΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π² Π±Π΄.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ pinba Π½Π΅ Π±ΡΠ»Π° Π±Ρ Π»ΠΈΡΠ½Π΅ΠΉ, Π½ΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° Π΅ΡΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
Π ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Β«Π²ΡΡ Π»ΠΎΠΏΒ» ΠΎΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΏΠΈΠ½Π±Ρ, ΠΎΡΠ΅Π½Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΌΠΈΠ½ΡΡΡ, Π½ΠΎ ΠΈ Π½Π° Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΎΡ Π΄Π½Π΅ΠΉ Π΄ΠΎ ΠΌΠ΅ΡΡΡΠ΅Π²).
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ:
- ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΊΡΡΠ΅Π½ΡΠ½ Π΄Π»Ρ php (ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ nginx)
- ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΡΠ΅Π½ΡΠ½ Π΄Π»Ρ mysql
- ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ pinboard ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ cron
ΠΠ·-Π·Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΈΠ½Π±Π΅ Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° php5 ΠΈ Π΄Π°Π²Π½ΠΎ ΠΎΡΡΠ°Π»Π°ΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ, Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π»ΡΡΠ΅ β ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ β ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ, Π²ΡΠ΅Π³ΠΎ ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
apt install php-pinba
Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ ΡΡΠΎΡ ΡΠΊΡΡΠ΅Π½ΡΠ½ Π΅ΡΡΡ Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ php 7.3 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΈ ΡΠ»ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° (Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΠ°ΠΌΡΡΡ ΠΈ Ρ.Π΄.) Π² ΡΠΎΡΠΌΠ°ΡΠ΅
ΠΡΠΈ udp-ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΠΎΠΊΠ° ΡΡΠΎ Π΅ΡΡ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π»ΠΎΠ²ΠΈΡ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, Π½ΠΎ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡ ΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π²Π°ΡΠΈΡ php-ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π»ΠΎΠ²ΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠΈ udp-ΠΏΠ°ΠΊΠ΅ΡΡ Π±ΡΠ» ΡΠΎΠ»ΡΠΊΠΎ
ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ pinba10 ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ-Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ Π½Π΅ ΡΠΈΡΠ°ΡΡ ΠΊΡΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½ΠΎ ΠΏΠΎΠΊΠ°-ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡ-ΡΠ°ΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ pinba_engine, ΡΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄Π΅Π»Π°. ΠΠ΅Π΄Ρ Π±Π΅Π·
ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π·Π°ΡΠ΅ΠΌ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠ°Π΄Π°Π½ΠΈΡ Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈΠ· php ΡΠΆΠ΅ ΠΈΠ΄ΡΡ Π½Π° udp-ΠΏΠΎΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ protobuf ΠΈ Π²ΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠ²ΠΈΡΡ ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π² ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅? ΠΠΈΠ΄ΠΈΠΌΠΎ ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΠΌΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»Π° ΡΡΠ° ΠΌΡΡΠ»Ρ Π² Π³ΠΎΠ»ΠΎΠ²Ρ, ΡΡΠ°Π·Ρ ΡΠ°Π΄ΠΈΠ»ΠΈΡΡ Π·Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ΠΎΠ², ΡΠ°ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΏΠ°Π»Π° Π½Π° Π³ΠΈΡΡ Π°Π±.
ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±Π·ΠΎΡ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ ΠΎΠΏΠ΅Π½ΡΡΡΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡΠ°ΡΡ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ grafana.
olegfedoseev/pinba-server (Π½ΠΎΡΠ±ΡΡ 2017)
udp ΡΠ΅ΡΠ²Π΅Ρ Π½Π° go, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² OpenTSDB. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ΡΠ»ΠΈ OpenTSDB Ρ Π²Π°Ρ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΡΠΎ Π²Π°ΠΌ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ ΠΈΠ½Π°ΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΠΉΡΠΈ ΠΌΠΈΠΌΠΎ.
olegfedoseev/pinba-influxdb (ΠΈΡΠ½Ρ 2018)
udp ΡΠ΅ΡΠ²Π΅Ρ Π½Π° go, ΠΎΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅
ΠΠ»ΡΡΡ:
- InfluxDB
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» ΡΠ΄Π°Π»ΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠΈΠ½ΡΡΡ:
- ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌ.
- InfluxDB Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΡΠ° ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΈ ΠΈ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
Π°Π΄ΡΠ΅ΡΠΎΠ² ΡΡΡΠ°Π½ΠΈΡ, ΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ
ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΌΡ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠ½ «Π½Π°ΡΠ½ΡΡ ΠΆΡΠ°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ Π² ΡΠ΅Π±Ρ «. (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ )
ClickHouse-Ninja/Proton (ΡΠ½Π²Π°ΡΡ 2019)
udp ΡΠ΅ΡΠ²Π΅Ρ Π½Π° go, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ClickHouse. ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΅Π³ΠΎ Π΄ΡΡΠ³Π°. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ Π½ΠΈΠΌ Ρ ΡΠ΅ΡΠΈΠ», ΡΡΠΎ ΠΏΠΎΡΠ° Π²Π·ΡΡΡΡΡ Π·Π° ΠΏΠΈΠ½Π±Ρ ΠΈ ΠΊΠ»ΠΈΠΊΡ Π°ΡΡ.
ΠΠ»ΡΡΡ:
- ΠΊΠ»ΠΈΠΊΡ Π°ΡΠ· ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΆΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π°ΠΆΠ΅ Π±Π΅Π· Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΉ
- Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ
- Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π³ΡΠ°ΡΠ°Π½Ρ
- ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌ
ΠΠΈΠ½ΡΡΡ:
ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ - Π½Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±Π΄ ΠΈ ΡΠ°Π±Π»ΠΈΡ, Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
- ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°-ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΡΡΡΠ°Π½ΠΈΡ ΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΡΡΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΡ
- ΠΏΡΠΎΡΠΈΠ΅ ΠΌΠ΅Π»ΠΎΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠ΅ΠΊΠ°ΡΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠΈΠ½ΡΡΠ°
pinba-server/pinba-server (Π°ΠΏΡΠ΅Π»Ρ 2019)
udp ΡΠ΅ΡΠ²Π΅Ρ Π½Π° php, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ClickHouse. ΠΡΠΎ ΠΌΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ pinba, ClickHouse ΠΈ protobuf. ΠΠΎΠΊΠ° Ρ ΡΠ°Π·Π±ΠΈΡΠ°Π»ΡΡ ΡΠΎ Π²ΡΠ΅ΠΉ ΡΡΠΎΠΉ ΡΠ²ΡΠ·ΠΊΠΎΠΉ Ρ Π½Π°ΠΏΠΈΡΠ°Π» Β«proof of conceptΒ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ» Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ (30 ΠΌΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠ΅Π½Π΅Π΅ 1% ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°), ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠΌ Ρ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΡ.
ΠΠ»ΡΡΡ β ΡΠ΅ ΠΆΠ΅, ΡΡΠΎ ΠΈ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ pinba_engine. ΠΡΡ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠ½ΡΠΈΠ³, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² ΠΏΠΈΠ½Π±Π°ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΡΠ°Π·Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ β ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· php, Π½ΠΎ ΠΈ ΠΈΠ· nginx.
ΠΠΈΠ½ΡΡΡ β Β«ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊΒ» ΠΈ ΡΠ΅ ΠΌΠ΅Π»ΠΎΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΡΡΡΠΎΡΡ Π»ΠΈΡΠ½ΠΎ Π²Π°Ρ, Π½ΠΎ ΠΌΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β Β«ΠΏΡΠΎΡΡΠΎΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΠΏΠΎΠΊΒ» ΠΈ ΡΠΎΡΡΠΎΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΈΠ· ΠΎΠΊΠΎΠ»ΠΎ 100 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ php-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π° ΠΏΠ°ΡΡ ΠΌΠΈΠ½ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΡΠΎ Π΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ
ΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅ΡΡΡ udp-ΠΏΠΎΡΡ 30002. ΠΡΠ΅ Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ protobuf-ΡΡ
Π΅ΠΌΠ΅ ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΡΡ. Π Π°Π· Π² ΠΌΠΈΠ½ΡΡΡ Π΄Π΅Π»Π°Π΅ΡΡΡ Π²ΡΡΠ°Π²ΠΊΠ° ΠΏΠ°ΡΠΊΠΈ Π² ΠΊΠ»ΠΈΠΊΡ
Π°ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ pinba.requests. (Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π²
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΊΠ»ΠΈΠΊΡ Π°ΡΡΠ΅
Clickhouse ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ β MergeTree.
ΠΡΠ»ΠΈ Π²Ρ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅ΡΠΈΡΠ΅, Ρ ΡΠ°Π½ΠΈΡΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π·Π° Π²ΡΡ Π²ΡΠ΅ΠΌΡ, Π° ΡΡΡΡΠ΅ β ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ materialized view Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΎΠΉ, Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ pinba.requests ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΡΡΠΈΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π² materialized view. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ pinba.requests Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Β«engine = NullΒ», ΡΠΎΠ³Π΄Π° ΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ Π½Π° Π΄ΠΈΡΠΊ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄ΡΡ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² materialized view ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. Π’Π°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ Ρ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π΄Π»Ρ ΠΌΠ΅ΡΡΠΈΠΊ nginx, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π° nginx Ρ ΠΌΠ΅Π½Ρ ΡΠ°Π· Π² 50 Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ΅ΠΌ Π½Π° php.
ΠΡΠ°ΠΊ, Π²Ρ ΠΏΡΠΎΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΏΡΡΡ ΠΈ ΠΌΠ½Π΅ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²Π°Ρ Π½Π° ΠΏΠΎΠ»ΠΏΡΡΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·Π±ΠΈΠ»ΡΡ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΡΠ°Π±Π»Ρ. ΠΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠΏΠΈΡΠ°Π½ Π΄Π»Ρ Ubuntu 18.04 LTS ΠΈ Centos 7, Π½Π° Π΄ΡΡΠ³ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ ΠΈ Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ Π²ΡΠ½Π΅Ρ Π²
php-pinba
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΡΠ°ΠΉΠ»Π΅ /etc/php/7.2/fpm/conf.d/20-pinba.ini Ρ Π²Π°Ρ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, centos) ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ.
extension=pinba.so
pinba.enabled=1
pinba.server=127.0.0.1:30002
clickhouse
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ clickhouse ΠΏΠΎΠΏΡΠΎΡΠΈΡ Π²Π°Ρ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ default. ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎ Π²ΡΠ΅Ρ ip, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠ°Π΅ΡΠ²ΠΎΠ»Π°, ΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π΄Π°ΠΉΡΠ΅ Π΅ΠΌΡ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ /etc/clickhouse-server/users.xml.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ clickhouse ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, 9000. ΠΡΠΎΡ ΠΏΠΎΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ php-fpm Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, centos). ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΡΠΎΡ ΠΏΠΎΡΡ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π² ΡΠ°ΠΉΠ»Π΅ /etc/clickhouse-server/config.xml.
grafana Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Π΄Π»Ρ clickhouse
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π³ΡΠ°ΡΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π»ΠΎΠ³ΠΈΠ½ admin ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ admin. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π³ΡΠ°ΡΠ°Π½Π° ΠΏΠΎΠΏΡΠΎΡΠΈΡ Π²Π°Ρ Π·Π°Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΠ°Π»Π΅Π΅ Π·Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΠΌΠ΅Π½Ρ «+» -> import ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄Π° Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°
ΠΡΠ°ΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ»ΠΈΠΊΡ Π°ΡΡΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Ρ Π³ΡΠ°ΡΠ°Π½Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π»Π΅ΡΡΡ (ΡΠΈΠΊΠ΅Ρ Π½Π° ΡΡΠΎ Π²Π΅ΡΠΈΡ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ).
pinba-server
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° protobuf ΠΈ libevent β Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°, Π½ΠΎ ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ pinba-server. ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ pinba-server Π² ΠΏΠ°ΠΏΠΊΡ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ /opt, ΡΠΎ Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΡΡ
pinba-ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄ nginx
ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π½ΡΠΆΠ½Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ nginx, ΡΡΠΎ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Ρ Π²Π°Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΎΠΉΠ΄ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΡΠΎ Β«ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΎ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΒ». ΠΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ nginx -V
ΠΠ°ΠΉΡΡ Π°ΠΊΠΈ
Π£ ΠΌΠ΅Π½Ρ Π²ΡΠ΅ ΡΠ°ΠΉΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ https. ΠΠΎΠ»Π΅ schema ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ web/console.
Π ΡΠΊΡΠΈΠΏΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· Π²Π΅Π±Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ:
if (ini_get('pinba.enabled')) {
pinba_schema_set('web');
}
Π Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΡΠΎΠ½-ΡΠΊΡΠΈΠΏΡΡ):
if (ini_get('pinba.enabled')) {
pinba_schema_set('console');
}
Π ΠΌΠΎΡΠΌ Π΄Π°ΡΠ±ΠΎΡΠ΄Π΅ Π² Π³ΡΠ°ΡΠ°Π½Π΅ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ web/console Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ.
Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΠΈΠ½Π±Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅Π³ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
pinba_tag_set('country', $countryCode);
ΠΠ° ΡΡΠΎΠΌ Π²ΡΡ.
ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΎΡΡΠ±Π° ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΎΠΏΡΠΎΡΡ ΠΏΠΎΠ΄ ΡΡΠ°ΡΡΡΠΉ.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Ρ, ΡΡΠΎ Ρ Π½Π΅ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠΈΡΡΡ ΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Ρ ΡΠ΅ΡΠ΅Π· Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π₯Π°Π±ΡΠ° ΠΈ ΡΠΎΡΡΠ΅ΡΠΈ.
ΠΠ°Π²ΠΎΠ΄ΠΈΡΠ΅ ΡΠΈΠΊΠ΅Ρ Π½Π° Π³ΠΈΡΡ Π°Π±Π΅.
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΡΠ±Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ Π»Π°ΠΉΠΊΠ°ΠΌΠΈ
Π’ΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΡΠΎΡΠ΅.
ΠΠ°ΠΊΡΡ ΠΠ‘ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅?
-
Ubuntu
-
CentOS
-
Debian
-
Gentoo
-
Red Hat
-
Fedora
-
OpenSUSE
-
SuSE
-
Unix
-
Windows
-
Π΄ΡΡΠ³ΠΎΠ΅
ΠΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΈ 114 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΠΈΡΡ 11 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ php Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅?
-
7.3
-
7.2
-
7.1
-
7.0
-
5
-
Π΄ΡΡΠ³ΠΎΠ΅
ΠΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΈ 105 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΠΈΡΡ 17 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π²Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ pinba?
-
Π΄Π°
-
Π½Π΅Ρ, Π½ΠΎ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ
-
Π½Π΅Ρ ΠΈ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ
-
Π½Π΅Ρ ΠΈ Π½Π΅ ΡΠ»ΡΡΠ°Π» ΠΏΡΠΎ Π½Π΅Ρ
ΠΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΈ 100 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΠΈΡΡ 14 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΠΈΠ½Π±Π°-ΡΠ΅ΡΠ²Π΅ΡΠ° Π²Ρ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ?
-
pinba_engine (mysql engine)
-
pinba2 (mysql engine)
-
pinboard (php + mysql)
-
olegfedoseev/pinba-server (go + OpenTSDB)
-
olegfedoseev/pinba-influxdb (go + influxdb)
-
pinba-server/pinba-server (go + clickhouse)
-
pinba-server/pinba-server (php + clickhouse)
-
Π½Π°ΠΏΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°ΠΌ
-
Π΄ΡΡΠ³ΠΎΠ΅
ΠΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΈ 39 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΠΈΡΡ 47 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com