Бтатистика ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ PHP скриптов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ClickHouse ΠΈ Grafana ΠΈΠ΄ΡƒΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΊ Pinba

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pinba совмСстно с clickhouse ΠΈ grafana вмСсто pinba_engine ΠΈ pinboard.

На php-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ pinba β€” ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ СдинствСнный Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ способ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΡ€Π°Π²Π΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ pinba внСдряСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡƒΠΆΠ΅ Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Π½Π΅ понятно Β«Π³Π΄Π΅ ΠΊΠΎΠΏΠ°Ρ‚ΡŒΒ».

Часто Π½ΠΈΠΊΡ‚ΠΎ понятия Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚, сколько Ρ€Π°Π· Π² сСкунду/ΠΌΠΈΠ½ΡƒΡ‚Ρƒ вызываСтся Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ скрипт ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Β«Π½Π° ΠΎΡ‰ΡƒΠΏΡŒΒ», начиная с Ρ‚Π΅Ρ… мСст, Ρ‡Ρ‚ΠΎ каТутся Π»ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅.

ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΠΎΠ³ΠΈ nginx, Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ запросы Π² Π±Π΄.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ pinba Π½Π΅ Π±Ρ‹Π»Π° Π±Ρ‹ лишнСй, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Бтатистика ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ PHP скриптов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ClickHouse ΠΈ Grafana ΠΈΠ΄ΡƒΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΊ Pinba

И пСрвая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° это установка.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Β«Π²Ρ‹Ρ…Π»ΠΎΠΏΒ» ΠΎΡ‚ внСдрСния ΠΏΠΈΠ½Π±Ρ‹, ΠΎΡ‡Π΅Π½ΡŒ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° послСдниС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Π½ΠΎ ΠΈ Π½Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (ΠΎΡ‚ Π΄Π½Π΅ΠΉ Π΄ΠΎ мСсяцСв).

Для этого Π½ΡƒΠΆΠ½ΠΎ:

  • ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½ для php (ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для nginx)
  • ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½ для mysql
  • ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ pinboard ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ cron

Из-Π·Π° нСбольшого количСства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΈΠ½Π±Π΅ Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… слоТилось Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° php5 ΠΈ Π΄Π°Π²Π½ΠΎ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ, Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ дальшС β€” это Π½Π΅ Ρ‚Π°ΠΊ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг β€” самый простой, всСго Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

apt install php-pinba

Π’ рСпозиториях этот ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½ Π΅ΡΡ‚ΡŒ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ php 7.3 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ установки ΠΌΡ‹ сразу ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ собираСт ΠΈ ΡˆΠ»Ρ‘Ρ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ скрипта (Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Ρ‚.Π΄.) Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ protobuf ΠΏΠΎ udp Π½Π° 127.0.0.1:30002.

Π­Ρ‚ΠΈ udp-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π»ΠΎΠ²ΠΈΡ‚ ΠΈ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚, Π½ΠΎ это Π½ΠΈΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡ…ΠΎ Π½Π΅ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π°ΡˆΠΈΡ… php-скриптов.

Π”ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² качСствС прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ эти udp-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π±Ρ‹Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ pinba_engine. ОписаниС «ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠΉ» установки ΠΎΡ‚Π±ΠΈΠ²Π°Π΅Ρ‚ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Ρ‘ Ρ€Π°Π· это Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ. Π’ ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ²Ρ‹Ρ… списках зависимостСй Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ названия ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ названия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ссылки Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ страницы с ΠΈΡ… установкой, Π° Ρƒ Ρ‚Π΅Ρ… свои ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ зависимости. Π Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с этой Π»Π°Π±ΡƒΠ΄ΠΎΠΉ Π½ΠΈ Ρƒ ΠΊΠΎΠ³ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΈ ТСлания.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ установки pinba2 Π½Π΅ стал особо Π»Π΅Π³Ρ‡Π΅.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ pinba10 ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ-двумя ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ Π½Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΡƒΡ‡Ρƒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΠΎΠΊΠ°-Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ.

Если Π²Ρ‹ всё-Ρ‚Π°ΠΊΠΈ установили pinba_engine, Ρ‚ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄Π΅Π»Π°. Π’Π΅Π΄ΡŒ Π±Π΅Π· pinboard Π²Π°ΠΌ придётся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° послСдниС нСсколько ΠΌΠΈΠ½ΡƒΡ‚ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ pinboard достаточно прост Π² установкС.

Казалось Π±Ρ‹, Π·Π°Ρ‡Π΅ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ страдания Ссли всС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈΠ· php ΡƒΠΆΠ΅ ΠΈΠ΄ΡƒΡ‚ Π½Π° udp-ΠΏΠΎΡ€Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ protobuf ΠΈ всё Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, это Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅? Π’ΠΈΠ΄ΠΈΠΌΠΎ Ρ‚Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»Π° эта ΠΌΡ‹ΡΠ»ΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ, сразу садились Π·Π° написаниС своих вСлосипСдов, Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΏΠ°Π»Π° Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±.

Π”Π°Π»Π΅Π΅ слСдуСт ΠΎΠ±Π·ΠΎΡ€ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… опСнсурсных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… эти Π΄Π°Π½Π½Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ grafana.

olegfedoseev/pinba-server (Π½ΠΎΡΠ±Ρ€ΡŒ 2017)

udp сСрвСр Π½Π° go, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² OpenTSDB. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ссли OpenTSDB Ρƒ вас ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‚ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΈΠ½Π°Ρ‡Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΌΠΈΠΌΠΎ.

olegfedoseev/pinba-influxdb (июнь 2018)

udp сСрвСр Π½Π° go, ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° сСй Ρ€Π°Π· сохраняСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² InfluxDB. На ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΡƒΠΆΠ΅ сСйчас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 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, Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивах ΠΈ вСрсиях процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Установка

ВсС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ я вынСс Π² Dockerfile для облСгчСния воспроизводимости инструкций. НиТС Π±ΡƒΠ΄ΡƒΡ‚ описаны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ.

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 ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Π° для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° 10011. Π­Ρ‚ΠΎΡ‚ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ я ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» ΠΈ Π·Π°Π»ΠΈΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Ρ‰Ρ‘ Ρ€Π°Π·.

Π“Ρ€Π°Ρ„Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с кликхаусом Ρ‡Π΅Ρ€Π΅Π· сторонний ΠΏΠ»Π°Π³ΠΈΠ½, Π½ΠΎ для сторонних ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Ρƒ Π³Ρ€Π°Ρ„Π°Π½Ρ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π°Π»Π΅Ρ€Ρ‚Ρ‹ (Ρ‚ΠΈΠΊΠ΅Ρ‚ Π½Π° это вСсит ΡƒΠΆΠ΅ нСсколько Π»Π΅Ρ‚).

pinba-server

Установка protobuf ΠΈ libevent β€” Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°, Π½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ pinba-server. Если Π²Ρ‹ установитС pinba-server Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ /opt, Ρ‚ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ systemd скрипт Ρ„Π°ΠΉΠ».

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