ืกื˜ื˜ื™ืกื˜ื™ืงื” ื•ื ื™ื˜ื•ืจ ืฉืœ ืกืงืจื™ืคื˜ื™ื ืฉืœ PHP ื‘ื–ืžืŸ ืืžืช. ืงืœื™ืงื”ืื•ืก ื•ื’ืจืืคื ื” ื ื—ืœืฆื•ืช ืœืขื–ืจืชื” ืฉืœ ืคื™ื ื‘ื”

ื‘ืžืืžืจ ื–ื” ืืกืคืจ ืœื›ื ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-pinba ืขื ืงืœื™ืงื”ืื•ืก ื•ื’ืจืืคื ื” ื‘ืžืงื•ื pinba_engine ื•-pinboard.

ื‘ืคืจื•ื™ืงื˜ PHP, pinba ื”ื™ื ืื•ืœื™ ื”ื“ืจืš ื”ืืžื™ื ื” ื”ื™ื—ื™ื“ื” ืœื”ื‘ื™ืŸ ืžื” ืงื•ืจื” ืขื ื”ื‘ื™ืฆื•ืขื™ื. ื ื›ื•ืŸ, ืคื™ื ื‘ื” ืžื™ื•ืฉื ื‘ื“ืจืš ื›ืœืœ ืจืง ื›ืืฉืจ ื›ื‘ืจ ื ืฆืคื• ื‘ืขื™ื•ืช ื•ืœื ื‘ืจื•ืจ "ื”ื™ื›ืŸ ืœื—ืคื•ืจ".

ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืืฃ ืื—ื“ ืื™ืŸ ืžื•ืฉื’ ื›ืžื” ืคืขืžื™ื ื‘ืฉื ื™ื™ื”/ื“ืงื” ืงื•ืจืื™ื ืœืกืงืจื™ืคื˜ ื–ื” ืื• ืื—ืจ ื•ื”ื ืžืชื—ื™ืœื™ื ืœื‘ืฆืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” "ื‘ืžื’ืข", ื”ื—ืœ ืžืื•ืชื ืžืงื•ืžื•ืช ืฉื ืจืื™ื ื”ื’ื™ื•ื ื™ื™ื ื™ื•ืชืจ.

ื—ืœืงื ืžื ืชื—ื™ื ื™ื•ืžื ื™ nginx, ื‘ืขื•ื“ ืฉืื—ืจื™ื ืžื ืชื—ื™ื ืฉืื™ืœืชื•ืช ืื™ื˜ื™ื•ืช ืฉืœ ืžืกื“ ื ืชื•ื ื™ื.

ื›ืžื•ื‘ืŸ, ืคื™ื ื‘ื” ืœื ื™ื”ื™ื” ืžื™ื•ืชืจ, ืื‘ืœ ื™ืฉ ื›ืžื” ืกื™ื‘ื•ืช ืœื›ืš ืฉืœื ื‘ื›ืœ ืคืจื•ื™ืงื˜ ื™ืฉ ืืช ื–ื”.

ืกื˜ื˜ื™ืกื˜ื™ืงื” ื•ื ื™ื˜ื•ืจ ืฉืœ ืกืงืจื™ืคื˜ื™ื ืฉืœ PHP ื‘ื–ืžืŸ ืืžืช. ืงืœื™ืงื”ืื•ืก ื•ื’ืจืืคื ื” ื ื—ืœืฆื•ืช ืœืขื–ืจืชื” ืฉืœ ืคื™ื ื‘ื”

ื•ื”ืกื™ื‘ื” ื”ืจืืฉื•ื ื” ื”ื™ื ื”ืชืงื ื”.

ื›ื“ื™ ืœืงื‘ืœ ืคื—ื•ืช ืื• ื™ื•ืชืจ ืื™ื–ืฉื”ื• "ืžื™ืฆื•ื™" ืžื”ื˜ืžืขืช ืคื™ื ื‘ื”, ืจืฆื•ื™ ืžืื•ื“ ืœืจืื•ืช ืžื“ื“ื™ื ืœื ืจืง ืœื“ืงื•ืช ื”ืื—ืจื•ื ื•ืช, ืืœื ื’ื ืขืœ ืคื ื™ ืชืงื•ืคื” ืืจื•ื›ื” (ืžื™ืžื™ื ืขื“ ื—ื•ื“ืฉื™ื).

ื‘ืฉื‘ื™ืœ ื–ื” ืืชื” ืฆืจื™ืš:

  • ื”ืชืงืŸ ืกื™ื•ืžืช ืขื‘ื•ืจ php (ื•ืื•ืœื™ ืชืจืฆื” ืžื•ื“ื•ืœ ืขื‘ื•ืจ nginx)
  • ื”ืจื—ื‘ืช ืงื•ืžืคื™ืœ ืขื‘ื•ืจ mysql
  • ื”ืชืงืŸ ืœื•ื— ืกื™ื›ื” ื•ื”ื’ื“ืจ ืืช ื”-cron

ื‘ืฉืœ ื›ืžื•ืช ื”ืžื™ื“ืข ื”ืžื•ืขื˜ื” ืขืœ Pinba, ืœืื ืฉื™ื ืจื‘ื™ื ื™ืฉ ื”ืจื•ืฉื ืฉื”ื•ื ืขื‘ื“ ืจืง ืขืœ PHP5 ื•ื›ื‘ืจ ืžื–ืžืŸ ื”ื™ื” ื ื—ืœืช ื”ืขื‘ืจ, ืืš ื›ืคื™ ืฉื ืจืื” ื‘ื”ืžืฉืš, ื–ื” ืœื ื”ืžืงืจื”.

ื”ืฆืขื“ ื”ืจืืฉื•ืŸ ื”ื•ื ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ, ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ื”ื•ื ืœื”ืคืขื™ืœ ืืช ื”ืคืงื•ื“ื”:

apt install php-pinba

ื”ืจื—ื‘ื” ื–ื• ื–ืžื™ื ื” ื‘ืžืื’ืจื™ื ืขื“ ื•ื›ื•ืœืœ php 7.3 ื•ืื™ืŸ ืฆื•ืจืš ืœื”ื“ืจ ื›ืœื•ื.

ืœืื—ืจ ื‘ื™ืฆื•ืข ืคืงื•ื“ืช ื”ื”ืชืงื ื”, ืื ื• ืžืงื‘ืœื™ื ืžื™ื“ ืกื™ื•ืžืช ืขื‘ื•ื“ื” ืฉืื•ืกืฃ ื•ืฉื•ืœื— ืžื“ื“ื™ื ืœื›ืœ ืกืงืจื™ืคื˜ (ื–ืžืŸ ืจื™ืฆื”, ื–ื™ื›ืจื•ืŸ ื•ื›ื•') ื‘ืคื•ืจืžื˜ ืคืจื•ื˜ื•ื‘ื•ืฃ ื“ืจืš udp ืœ-127.0.0.1:30002.

ืขื“ ื›ื” ืืฃ ืื—ื“ ืœื ืชืคืก ืื• ืขื™ื‘ื“ ืืช ืžื ื•ืช ื”-UDP ื”ืœืœื•, ืื‘ืœ ื–ื” ืœื ืžืฉืคื™ืข ื‘ืฉื•ื ืื•ืคืŸ ืœืจืขื” ืขืœ ื”ืžื”ื™ืจื•ืช ืื• ื”ื™ืฆื™ื‘ื•ืช ืฉืœ ืกืงืจื™ืคื˜ื™ ื”-PHP ืฉืœืš.

ืขื“ ืœืื—ืจื•ื ื”, ื”ืืคืœื™ืงืฆื™ื” ื”ื™ื—ื™ื“ื” ืฉื™ื›ื•ืœื” ืœืชืคื•ืก ื•ืœืขื‘ื“ ืžื ื•ืช UDP ืืœื• ื”ื™ื™ืชื” pinba_engine. ืชื™ืื•ืจ "ืคืฉื•ื˜ ื•ืชืžืฆื™ืชื™"ื”ื”ืชืงื ื” ืžืจืชื™ืขื” ืืช ื”ืจืฆื•ืŸ ืœืงืจื•ื ื•ืœื”ืขืžื™ืง ื‘ื” ืฉื•ื‘. ืจืฉื™ืžื•ืช ื”ืชืœื•ืช ืืจื•ื›ื•ืช ื”ืงื™ืœื•ืžื˜ืจื™ื ืžื›ื™ืœื•ืช ื”ืŸ ืืช ืฉืžื•ืช ื”ื—ื‘ื™ืœื•ืช ื•ื”ืŸ ืืช ืฉืžื•ืช ื”ืชื•ื›ื ื™ื•ืช ื•ืงื™ืฉื•ืจื™ื ืœื“ืคื™ื ื‘ื•ื“ื“ื™ื ืขื ื”ืชืงื ืชืŸ, ื•ืœืืœื” ื™ืฉ ืงื™ืฉื•ืจื™ื ืžืฉืœื”ื ืœืชืœื•ืช ืื—ืจื•ืช. ืœืืฃ ืื—ื“ ืื™ืŸ ื–ืžืŸ ืื• ื—ืฉืง ืœื”ืชืžื•ื“ื“ ืขื ื”ืฉื˜ื•ื™ื•ืช ื”ืืœื”.

ืชื”ืœื™ืš ื”ื”ืชืงื ื” pinba2 ืœื ืงืœ ื™ื•ืชืจ ื‘ืžื™ื•ื—ื“.

ืื•ืœื™ ืžืชื™ืฉื”ื• ื™ื”ื™ื” ืืคืฉืจ ืœื”ืชืงื™ืŸ pinba10 ืขื ืคืงื•ื“ื” ืื—ืช ืื• ืฉืชื™ื™ื ื•ืœื ืฆืจื™ืš ืœืงืจื•ื ื”ืžื•ืŸ ื—ื•ืžืจ ื›ื“ื™ ืœื”ื‘ื™ืŸ ืื™ืš ืœืขืฉื•ืช ืืช ื–ื”, ืื‘ืœ ื‘ื™ื ืชื™ื™ื ื–ื” ืœื ื”ืžืงืจื”.

ืื ืืชื” ืžืชืงื™ืŸ pinba_engine, ืื– ื–ื” ืจืง ื—ืฆื™ ืžื”ืงืจื‘. ืื—ืจื™ ื”ื›ืœ, ื‘ืœื™ ืœื•ื— ืชืฆื˜ืจืš ืœื”ื’ื‘ื™ืœ ืืช ืขืฆืžืš ืœื ืชื•ื ื™ื ืžื”ื“ืงื•ืช ื”ืื—ืจื•ื ื•ืช ื‘ืœื‘ื“, ืื• ืฉืชืฆื˜ืจืš ืœืฆื‘ื•ืจ, ืœืื—ืกืŸ ื•ืœื”ืžื—ื™ืฉ ืืช ื”ื ืชื•ื ื™ื ื‘ืขืฆืžืš. ื–ื” ื˜ื•ื‘ ืฉืœื•ื— ื”ืกื™ื›ื” ื”ื•ื ื“ื™ ืคืฉื•ื˜ ืœืฉื™ืžื•ืฉ ืœื”ืชืงื™ืŸ.

ื ืจืื”, ืœืžื” ืกื‘ืœ ื›ื–ื” ืื ื›ืœ ื”ืžื“ื“ื™ื ืž-php ื›ื‘ืจ ื ืฉืœื—ื™ื ืœื™ืฆื™ืืช udp ื‘ืคื•ืจืžื˜ protobuf ื•ื›ืœ ืžื” ืฉืฆืจื™ืš ื–ื” ืœื›ืชื•ื‘ ืืคืœื™ืงืฆื™ื” ืฉืชืชืคื•ืก ืื•ืชื ื•ืชื›ื ื™ืก ืื•ืชื ืœืื—ืกื•ืŸ ื›ืœืฉื”ื•? ื›ื›ืœ ื”ื ืจืื”, ืื•ืชื ืžืคืชื—ื™ื ืฉื”ืขืœื• ืืช ื”ืจืขื™ื•ืŸ ื”ื–ื” ื™ืฉื‘ื• ืžื™ื“ ืœื›ืชื•ื‘ ืจืขื™ื•ื ื•ืช ืžืฉืœื”ื, ืฉื—ืœืงื ื”ื’ื™ืขื• ืœ-GitHub.

ืœื”ืœืŸ ืกืงื™ืจื” ืฉืœ ืืจื‘ืขื” ืคืจื•ื™ืงื˜ื™ื ื‘ืงื•ื“ ืคืชื•ื— ืฉื—ื•ืกื›ื™ื ืžื“ื“ื™ื ื‘ืื—ืกื•ืŸ, ืžื”ื ื ื™ืชืŸ ืœืื—ื–ืจ ื‘ืงืœื•ืช ืืช ื”ื ืชื•ื ื™ื ื”ืœืœื• ื•ืœื”ืžื—ื™ืฉ ืื•ืชื, ืœืžืฉืœ, ื‘ืืžืฆืขื•ืช ื’ืจืืคื ื”.

olegfedoseev/pinba-server (ื ื•ื‘ืžื‘ืจ 2017)

ืฉืจืช udp ื‘ืชื ื•ืขื” ืฉืฉื•ืžืจ ืžื“ื“ื™ื ืœ-OpenTSDB. ืื•ืœื™ ืื ืืชื” ื›ื‘ืจ ืžืฉืชืžืฉ ื‘-OpenTSDB ื‘ืคืจื•ื™ืงื˜ ืฉืœืš, ืื– ื”ืคืชืจื•ืŸ ื”ื–ื” ื™ืชืื™ื ืœืš, ืื—ืจืช ืื ื™ ืžืžืœื™ืฅ ืœืขื‘ื•ืจ ืื•ืชื•.

olegfedoseev/pinba-influxdb (ื™ื•ื ื™ 2018)

ืฉืจืช udp ื‘ืชื ื•ืขื”, ืžืื•ืชื• ื”ื“ื‘ืจ ื”ื“ืคื“ืคืŸ, ืฉืฉื•ืžืจ ื”ืคืขื ืืช ื”ืžื“ื“ื™ื ื‘-InfluxDB. ืคืจื•ื™ืงื˜ื™ื ืจื‘ื™ื ื›ื‘ืจ ืžืฉืชืžืฉื™ื ื‘-InfluxDB ืœื ื™ื˜ื•ืจ, ื›ืš ืฉื”ืคืชืจื•ืŸ ื”ื–ื” ืขืฉื•ื™ ืœื”ื™ื•ืช ืžื•ืฉืœื ืขื‘ื•ืจื.

ื™ืชืจื•ื ื•ืช:

  • InfluxDB ื”ื™ื ืžืืคืฉืจืช ืœืฆื‘ื•ืจ ืืช ื”ืžื“ื“ื™ื ืฉื”ืชืงื‘ืœื•, ื•ืœืžื—ื•ืง ืืช ื”ืžืงื•ืจ ืœืื—ืจ ื–ืžืŸ ืžื•ื’ื“ืจ.

ื—ืกืจื•ื ื•ืช:

ClickHouse-Ninja/Proton (ื™ื ื•ืืจ 2019)

ืฉืจืช udp on go, ืฉืฉื•ืžืจ ืžื“ื“ื™ื ื‘-ClickHouse. ื–ื” ื”ืคืชืจื•ืŸ ืฉืœ ื—ื‘ืจ ืฉืœื™. ืœืื—ืจ ื”ื™ื›ืจื•ืช ืขื ื–ื” ื”ื—ืœื˜ืชื™ ืฉื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ืชืžื•ื“ื“ ืขื ืคื™ื ื‘ื• ื•ืงืœื™ืงื”ืื•ืก.

ื™ืชืจื•ื ื•ืช:

  • Clickhouse ืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ืžืฉื™ืžื•ืช ื›ืืœื”; ื”ื•ื ืžืืคืฉืจ ืœืš ืœื“ื—ื•ืก ื ืชื•ื ื™ื ื›ืœ ื›ืš ื”ืจื‘ื” ืฉืืชื” ื™ื›ื•ืœ ืœืื—ืกืŸ ืืช ื›ืœ ื”ื ืชื•ื ื™ื ื”ื’ื•ืœืžื™ื™ื ื’ื ืœืœื ืฆื‘ื™ืจื”
  • ื‘ืžื™ื“ืช ื”ืฆื•ืจืš, ืชื•ื›ืœ ืœืฆื‘ื•ืจ ื‘ืงืœื•ืช ืืช ื”ืžื“ื“ื™ื ื”ืžืชืงื‘ืœื™ื
  • ืชื‘ื ื™ืช ืžื•ื›ื ื” ืœื’ืจืืคื ื”
  • ืฉื•ืžืจ ืžื™ื“ืข ืขืœ ื˜ื™ื™ืžืจื™ื

ื—ืกืจื•ื ื•ืช:

  • ืคื’ื ืงื˜ืœื ื™
  • ืื™ืŸ ืชืฆื•ืจื” ืฉื‘ื” ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืืช ืฉื ืžืกื“ ื”ื ืชื•ื ื™ื ื•ื”ื˜ื‘ืœืื•ืช, ื”ื›ืชื•ื‘ืช ื•ื”ื™ืฆื™ืื” ืฉืœ ื”ืฉืจืช.
  • ื‘ืขืช ืื—ืกื•ืŸ ื ืชื•ื ื™ื ื’ื•ืœืžื™ื™ื, ื˜ื‘ืœืช ืžื™ืœื•ืŸ ืขื–ืจ ืžืฉืžืฉืช ืœืื—ืกื•ืŸ ื›ืชื•ื‘ื•ืช ื“ืคื™ื ื•ืชื—ื•ื, ืžื” ืฉืžืงืฉื” ืขืœ ืฉืื™ืœืชื•ืช ืขื•ืงื‘ื•ืช
  • ื“ื‘ืจื™ื ืงื˜ื ื™ื ืื—ืจื™ื ื”ื‘ืื™ื ืžื”ืžื™ื ื•ืก ื”ืจืืฉื•ืŸ

pinba-server/pinba-server (ืืคืจื™ืœ 2019)

ืฉืจืช udp ื‘-php, ืฉืฉื•ืžืจ ืžื“ื“ื™ื ื‘-ClickHouse. ื–ื” ื”ืคืชืจื•ืŸ ืฉืœื™, ืฉื”ื•ื ืชื•ืฆืื” ืฉืœ ื”ื™ื›ืจื•ืช ืขื pinba, ClickHouse ื•-protobuf. ื‘ื–ืžืŸ ืฉืกื™ื“ืจืชื™ ืืช ื›ืœ ื”ื—ื‘ื•ืจื” ื”ื–ื•, ื›ืชื‘ืชื™ "ื”ื•ื›ื—ืช ืงื•ื ืกืคื˜", ืฉื‘ืื•ืคืŸ ื‘ืœืชื™ ืฆืคื•ื™ ืขื‘ื•ืจื™, ืœื ืฆืจื›ื” ืžืฉืื‘ื™ื ืžืฉืžืขื•ืชื™ื™ื (30 MB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ื•ืคื—ื•ืช ืž-1% ืžืื—ืช ืž-XNUMX ืœื™ื‘ื•ืช ื”ืžืขื‘ื“), ืื– ืื ื™ ื”ื—ืœื™ื˜ื• ืœืฉืชืฃ ืื•ืชื• ืขื ื”ืฆื™ื‘ื•ืจ.

ื”ื™ืชืจื•ื ื•ืช ื–ื”ื™ื ืœืคืชืจื•ืŸ ื”ืงื•ื“ื, ื”ืฉืชืžืฉืชื™ ื’ื ื‘ืฉืžื•ืช ื”ืจื’ื™ืœื™ื ืžื”-pinba_engine ื”ืžืงื•ืจื™. ื”ื•ืกืคืชื™ ื’ื ืชืฆื•ืจื” ืฉืžืืคืฉืจืช ืœื”ืคืขื™ืœ ื›ืžื” ืžื•ืคืขื™ ืฉืจืช Pinbase ื‘ื‘ืช ืื—ืช ืขืœ ืžื ืช ืœืฉืžื•ืจ ืžื“ื“ื™ื ื‘ื˜ื‘ืœืื•ืช ืฉื•ื ื•ืช - ื–ื” ืฉื™ืžื•ืฉื™ ืื ืืชื” ืจื•ืฆื” ืœืืกื•ืฃ ื ืชื•ื ื™ื ืœื ืจืง ืž-php, ืืœื ื’ื ืž-nginx.
ื—ืกืจื•ื ื•ืช - "ืคื’ื ืงื˜ืœื ื™" ื•ื”ื“ื‘ืจื™ื ื”ืงื˜ื ื™ื ื”ืืœื” ืฉืœื ื™ืชืื™ืžื• ืœืš ืื™ืฉื™ืช, ืื‘ืœ ื”ืคืชืจื•ืŸ ืฉืœื™ ื”ื•ื "ืคืฉื•ื˜ ื›ืžื• ื ืขืœื™ ื‘ื™ืช" ื•ืžื•ืจื›ื‘ ืžื›-100 ืฉื•ืจื•ืช ืงื•ื“ ื‘ืœื‘ื“, ื›ืš ืฉื›ืœ ืžืคืชื— PHP ื™ื›ื•ืœ ืœืฉื ื•ืช ืืช ืžื” ืฉื”ื•ื ืœื ืื•ื”ื‘ ืชื•ืš ื›ืžื” ื“ืงื•ืช.

ืขื™ืงืจื•ืŸ ื”ืคืขื•ืœื”

ืžืื–ื™ื ื™ื ืœื™ืฆื™ืืช UDP 30002. ื›ืœ ื”ื—ื‘ื™ืœื•ืช ื”ื ื›ื ืกื•ืช ืžืคื•ืขื ื—ื•ืช ืœืคื™ ืกื›ื™ืžืช ื”-protobuf ื•ืžืฆื˜ื‘ืจื•ืช. ืคืขื ื‘ื“ืงื”, ื—ื‘ื™ืœื” ืžื•ื›ื ืกืช ืœ-clickhouse ืœื˜ื‘ืœืช pinba.requests. (ื›ืœ ื”ืคืจืžื˜ืจื™ื ืžื•ื’ื“ืจื™ื ื‘ ืชืฆื•ืจื”)

ืงืฆืช ืขืœ ืงืœื™ืงื”ืื•ืก

Clickhouse ืชื•ืžืš ื‘ืžื ื•ืขื™ ืื—ืกื•ืŸ ื ืชื•ื ื™ื ืฉื•ื ื™ื. ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ ื”ื•ื MergeTree.

ืื ื‘ืฉืœื‘ ืžืกื•ื™ื ืชื—ืœื™ื˜ ืœืื—ืกืŸ ื ืชื•ื ื™ื ืžืฆื˜ื‘ืจื™ื ืœื›ืœ ื”ื–ืžืŸ, ื•ื ืชื•ื ื™ื ื’ื•ืœืžื™ื™ื ืจืง ืขื‘ื•ืจ ื”ืื—ืจื•ืŸ, ืื– ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืชืฆื•ื’ื” ืžืžื•ืžืฉืช ืขื ืงื™ื‘ื•ืฅ, ื•ืœื ืงื•ืช ืžืขืช ืœืขืช ืืช ื”ื˜ื‘ืœื” ื”ืจืืฉื™ืช pinba.requests, ื‘ืขื•ื“ ืฉื›ืœ ื”ื ืชื•ื ื™ื ื™ื™ืฉืืจื• ื‘- ื”ืฉืงืคื” ื”ืชืžืžืฉื”. ื™ืชืจื” ืžื›ืš, ื‘ืขืช ื™ืฆื™ืจืช ื˜ื‘ืœืช pinba.requests, ื ื™ืชืŸ ืœืฆื™ื™ืŸ "engine = Null", ืื– ื”ื ืชื•ื ื™ื ื”ื’ื•ืœืžื™ื™ื ืœื ื™ื™ืฉืžืจื• ื‘ื“ื™ืกืง ื›ืœืœ, ื•ื‘ืžืงื‘ื™ืœ ื”ื ืขื“ื™ื™ืŸ ื™ื’ื™ืขื• ืœืชืฆื•ื’ื” ื”ืžืžืžืฉืช ื•ื™ื™ืฉืžืจื• ืžืฆื˜ื‘ืจื™ื . ืื ื™ ืžืฉืชืžืฉ ื‘ืกื›ื™ืžื” ื”ื–ื• ืขื‘ื•ืจ ืžื“ื“ื™ nginx, ื›ื™ ื‘-nginx ื™ืฉ ืœื™ ืคื™ 50 ื™ื•ืชืจ ื‘ืงืฉื•ืช ืžืืฉืจ ื‘-php.

ืื– ืขื‘ืจืช ื“ืจืš ืืจื•ื›ื” ื•ืื ื™ ืœื ืจื•ืฆื” ืœืขื–ื•ื‘ ืื•ืชืš ื‘ืืžืฆืข ื”ื“ืจืš, ืื– ืžื” ืœื”ืœืŸ ืชื™ืื•ืจ ืžืคื•ืจื˜ ืฉืœ ื”ื”ืชืงื ื” ื•ื”ืชืฆื•ืจื” ืฉืœ ื”ืคืชืจื•ืŸ ืฉืœื™ ื•ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš, ื›ืžื• ื’ื ื”ืžืœื›ื•ื“ื•ืช ืฉื’ืจืžื• ืœื™ื•ืชืจ ืžืกืคื™ื ื” ืื—ืช ืœื”ืชืจืกืง. ืชื”ืœื™ืš ื”ื”ืชืงื ื” ื›ื•ืœื• ืžืชื•ืืจ ืขื‘ื•ืจ ืื•ื‘ื•ื ื˜ื• 18.04 LTS ื•- Centos 7; ื”ืชื”ืœื™ืš ืขืฉื•ื™ ืœื”ื™ื•ืช ืฉื•ื ื” ืžืขื˜ ื‘ื”ืคืฆื•ืช ื•ื‘ื’ืจืกืื•ืช ืื—ืจื•ืช.

ื”ืชืงื ื”

ื”ื›ื ืกืชื™ ืืช ื›ืœ ื”ืคืงื•ื“ื•ืช ื”ื“ืจื•ืฉื•ืช ื“ื•ืงืจืคื™ืœ ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ืฉื—ื–ื•ืจ ืฉืœ ื”ื•ืจืื•ืช. ืจืง ื”ืžืœื›ื•ื“ื•ืช ื™ืชื•ืืจื• ืœื”ืœืŸ.

php-pinba

ืœืื—ืจ ื”ื”ืชืงื ื”, ื•ื“ื ืฉื‘ืงื•ื‘ืฅ /etc/php/7.2/fpm/conf.d/20-pinba.ini ื‘ื™ื˜ืœืช ืืช ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช. ื‘ื”ืคืฆื•ืช ืžืกื•ื™ืžื•ืช (ืœืžืฉืœ ืกื ื˜ื•ืก) ื”ื ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืžื•ืขืจื™ื.

extension=pinba.so
pinba.enabled=1
pinba.server=127.0.0.1:30002

ื‘ื™ืช ืงืœื™ืง

ื‘ืžื”ืœืš ื”ื”ืชืงื ื”, clickhouse ื™ื‘ืงืฉ ืžืžืš ืœื”ื’ื“ื™ืจ ืกื™ืกืžื” ืขื‘ื•ืจ ืžืฉืชืžืฉ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืžืฉืชืžืฉ ื–ื” ื ื’ื™ืฉ ืžื›ืœ ื›ืชื•ื‘ื•ืช ื”-IP, ื›ืš ืฉืื ืื™ืŸ ืœืš ื—ื•ืžืช ืืฉ ื‘ืฉืจืช ืฉืœืš, ื”ืงืคื“ ืœื”ื’ื“ื™ืจ ืขื‘ื•ืจื• ืกื™ืกืžื”. ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช ื’ื ืœืื—ืจ ื”ื”ืชืงื ื” ื‘ืงื•ื‘ืฅ /etc/clickhouse-server/users.xml.

ืจืื•ื™ ื’ื ืœืฆื™ื™ืŸ ืฉ-clickhouse ืžืฉืชืžืฉ ื‘ืžืกืคืจ ื™ืฆื™ืื•ืช, ื›ื•ืœืœ 9000. ื™ืฆื™ืื” ื–ื• ืžืฉืžืฉืช ื’ื ืขื‘ื•ืจ php-fpm ื‘ื”ืคืฆื•ืช ืžืกื•ื™ืžื•ืช (ืœื“ื•ื’ืžื”, centos). ืื ืืชื” ื›ื‘ืจ ืžืฉืชืžืฉ ื‘ื™ืฆื™ืื” ื–ื•, ืชื•ื›ืœ ืœืฉื ื•ืช ืื•ืชื” ืœืื—ืจืช ื‘ืงื•ื‘ืฅ /etc/clickhouse-server/config.xml.

ื’ืจืคื ื” ืขื ืชื•ืกืฃ ืงืœื™ืงื”ืื•ืก

ืœืื—ืจ ื”ืชืงื ืช Grafana, ื”ืฉืชืžืฉ ื‘ืื“ืžื™ืŸ ื”ื”ืชื—ื‘ืจื•ืช ื•ื‘ืžื ื”ืœ ื”ืกื™ืกืžื”. ื›ืฉืชืชื—ื‘ืจ ื‘ืคืขื ื”ืจืืฉื•ื ื”, Grafana ื™ื‘ืงืฉ ืžืžืš ืœื”ื’ื“ื™ืจ ืกื™ืกืžื” ื—ื“ืฉื”.

ืœืื—ืจ ืžื›ืŸ, ืขื‘ื•ืจ ืืœ "+" -> ืชืคืจื™ื˜ ื™ื™ื‘ื•ื โ€‹โ€‹ื•ืฆื™ื™ืŸ ืืช ืžืกืคืจ ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืœื™ื™ื‘ื•ื 10011. ื”ื›ื ืชื™ ื•ื”ืขืœื™ืชื™ ืืช ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ื”ื–ื” ื›ื“ื™ ืฉืœื ืชืฆื˜ืจืš ืœืขืฉื•ืช ื–ืืช ื‘ืขืฆืžืš ืฉื•ื‘.

Grafana ืชื•ืžื›ืช ื‘ืขื‘ื•ื“ื” ืขื ืงืœื™ืงื”ืื•ืก ื“ืจืš ืชื•ืกืฃ ืฉืœ ืฆื“ ืฉืœื™ืฉื™, ืื‘ืœ ืœื’ืจืืคืื ื” ืื™ืŸ ื”ืชืจืื•ืช ืขืœ ืชื•ืกืคื™ื ืฉืœ ืฆื“ ืฉืœื™ืฉื™ (ื™ืฉ ืœื–ื” ื›ืจื˜ื™ืก ื›ื‘ืจ ื›ืžื” ืฉื ื™ื).

ืฉืจืช pinba

ื”ืชืงื ืช protobuf ื•-libevent ื”ื™ื ืื•ืคืฆื™ื•ื ืœื™ืช, ืืš ืžืฉืคืจืช ืืช ื‘ื™ืฆื•ืขื™ ืฉืจืช pinba. ืื ืืชื” ืžืชืงื™ืŸ pinba-server ื‘ืชื™ืงื™ื™ื” ืฉืื™ื ื” /opt, ืชืฆื˜ืจืš ื’ื ืœืชืงืŸ ืกืงืจื™ืคื˜ systemd ืืช ื”ืงื•ื‘ืฅ.

ืžื•ื“ื•ืœ pinba ืขื‘ื•ืจ nginx

ื›ื“ื™ ืœื”ืจื›ื™ื‘ ืžื•ื“ื•ืœ, ืืชื” ืฆืจื™ืš ืงื•ื“ื™ ืžืงื•ืจ ืฉืœ ืื•ืชื” ื’ืจืกื” ืฉืœ nginx ืฉื›ื‘ืจ ืžื•ืชืงื ืช ื‘ืฉืจืช ืฉืœืš, ื›ืžื• ื’ื ืืช ืื•ืชืŸ ืืคืฉืจื•ื™ื•ืช ืงื•ืžืคื™ืœืฆื™ื”, ืื—ืจืช ื”ื‘ื ื™ื™ื” ืชืฆืœื™ื—, ืื‘ืœ ื‘ืขืช ื—ื™ื‘ื•ืจ ื”ืžื•ื“ื•ืœ, ืชื•ืคื™ืข ืฉื’ื™ืื” ืฉ "ื”ืžื•ื“ื•ืœ ืื™ื ื• ืชื•ืื ื‘ื™ื ืืจื™." ื ื™ืชืŸ ืœื”ืฆื™ื’ ืืคืฉืจื•ื™ื•ืช ืงื•ืžืคื™ืœืฆื™ื” ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” nginx -V

ืคืจื™ืฆื•ืช ื—ื™ื™ื

ื›ืœ ื”ืืชืจื™ื ืฉืœื™ ืขื•ื‘ื“ื™ื ืจืง ืขืœ https. ืฉื“ื” ื”ืกื›ื™ืžื” ื”ื•ืคืš ื—ืกืจ ืžืฉืžืขื•ืช, ืื– ืื ื™ ืžืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ืคืจื™ื“ ื‘ื™ืŸ ืื™ื ื˜ืจื ื˜ ืœืžืกื•ืฃ.

ื‘ืกืงืจื™ืคื˜ื™ื ื”ื ื’ื™ืฉื™ื ืžื”ืื™ื ื˜ืจื ื˜ ืื ื™ ืžืฉืชืžืฉ ื‘:

if (ini_get('pinba.enabled')) {
    pinba_schema_set('web');
}

ื•ื‘ืกืงืจื™ืคื˜ื™ื ืฉืœ ืžืกื•ืฃ (ืœื“ื•ื’ืžื”, ืกืงืจื™ืคื˜ื™ื ืฉืœ ืงืจื•ืŸ):

if (ini_get('pinba.enabled')) {
    pinba_schema_set('console');
}

ื‘ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืฉืœื™ ื‘ื’ืจืคืื ื” ื™ืฉ ืžืชื’ ืื™ื ื˜ืจื ื˜/ืงื•ื ืกื•ืœื•ืช ืœืฆืคื™ื™ื” ื‘ืกื˜ื˜ื™ืกื˜ื™ืงื” ื‘ื ืคืจื“.

ืืชื” ื™ื›ื•ืœ ื’ื ืœืฉืœื•ื— ืืช ื”ืชื’ื™ื ืฉืœืš ืœ- Pinba, ืœื“ื•ื’ืžื”:

pinba_tag_set('country', $countryCode);

ื–ื” ื”ื›ืœ.

ืื ื ืขื ื• ืขืœ ื”ืกืงืจื™ื ืžืชื—ืช ืœื›ืชื‘ื”.

ื›ืจื’ื™ืœ, ืื ื™ ืžื–ื”ื™ืจ ืื•ืชืš ืฉืื ื™ ืœื ืžื™ื™ืขืฅ ืื• ืขื•ื–ืจ ื‘ืืžืฆืขื•ืช ื”ื•ื“ืขื•ืช ืื™ืฉื™ื•ืช ื‘ื”ื‘ืจ ื•ื‘ืจืฉืชื•ืช ื”ื—ื‘ืจืชื™ื•ืช.

ืฆื•ืจ ื›ืจื˜ื™ืก ื‘- Github.

ื›ืžื• ื›ืŸ ื ื ืœืชืžื•ืš ื‘ืœื™ื™ืงื™ื ื’ื™ืจืกื ืื ื’ืœื™ืช ื‘ืžืืžืจ ื–ื” ื‘- reddit.

ืจืง ืžืฉืชืžืฉื™ื ืจืฉื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืชืฃ ื‘ืกืงืจ. ืœื”ืชื—ื‘ืจื‘ื‘ืงืฉื”.

ื‘ืื™ื–ื” ืžืขืจื›ืช ื”ืคืขืœื” ืืชื” ืžืฉืชืžืฉ ื‘ืฉืจืช?

  • ืื•ื‘ื•ื ื˜ื•

  • CentOS

  • ื“ื‘ื™ืืŸ

  • ื’'ื ื˜ื•

  • ืจื“ ื”ืื˜

  • ืคื“ื•ืจื”

  • OpenSUSE

  • ืฉื•ื•ื™ืฅ

  • ื™ื•ื ื™ืงืก

  • Windows

  • ืื—ืจ

114 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 11 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ื‘ืื™ื–ื• ื’ืจืกื” ืฉืœ php ืืชื” ืžืฉืชืžืฉ ื‘ืฉืจืช?

  • 7.3

  • 7.2

  • 7.1

  • 7.0

  • 5

  • ืื—ืจ

105 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 17 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ื”ืื ืื™ ืคืขื ื”ืฉืชืžืฉืช ื‘ืคื™ื ื‘ื”?

  • ื›ืŸ

  • ืœื, ืื‘ืœ ื”ื™ื™ืชื™ ืจื•ืฆื”

  • ืœื ื•ืื ื™ ืœื ื”ื™ื™ืชื™ ืจื•ืฆื”

  • ืœื ื•ืœื ืฉืžืขืชื™ ืขืœื™ื”

100 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 14 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ืื™ื–ื• ื’ืจืกื” ืฉืœ ืฉืจืช Pinba ืชืจืฆื” ืœื ืกื•ืช?

  • pinba_engine (ืžื ื•ืข mysql)

  • pinba2 (ืžื ื•ืข mysql)

  • ืœื•ื— ืกื™ื›ื” (php + mysql)

  • olegfedoseev/pinba-server (ื’ื• + OpenTSDB)

  • olegfedoseev/pinba-influxdb (ื’ื• + influxdb)

  • pinba-server/pinba-server (go + clickhouse)

  • pinba-server/pinba-server (php + clickhouse)

  • ืื ื™ ืื›ืชื•ื‘ ืืช ืฉืœื™ ื‘ืขืฆืžื™

  • ืื—ืจ

39 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 47 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”