په ریښتیني وخت کې د PHP سکریپټونو احصایې او څارنه. ClickHouse او Grafana د پنبا مرستې ته راځي

پدې مقاله کې به زه تاسو ته ووایم چې څنګه د pinba_engine او pinboard پرځای د کلک هاؤس او ګرافانا سره پنبا وکاروئ.

په پی ایچ پی پروژه کې، پنبا شاید یوازینۍ معتبره لاره وي چې پوه شي چې د فعالیت سره څه پیښیږي. ریښتیا، پنبا معمولا یوازې هغه وخت پلي کیږي کله چې ستونزې لا دمخه لیدل شوي وي او دا روښانه نده چې "چیرې کیندل شي."

ډیری وختونه هیڅوک نه پوهیږي چې په هره ثانیه / دقیقه کې څو ځله دا یا هغه سکریپټ ویل کیږي او دوی د "لمس" کولو لپاره غوره کول پیل کوي، له هغه ځایونو څخه پیل کیږي چې ډیر منطقي ښکاري.

ځینې ​​​​د نګینکس لاګونه تحلیلوي، پداسې حال کې چې نور د ډیټابیس سست پوښتنې تحلیلوي.

البته، پنبا به بې ګټې نه وي، مګر ډیری دلیلونه شتون لري چې ولې هره پروژه دا نلري.

په ریښتیني وخت کې د PHP سکریپټونو احصایې او څارنه. ClickHouse او Grafana د پنبا مرستې ته راځي

او لومړی دلیل نصب دی.

د دې لپاره چې لږ یا لږ د پنبا پلي کولو څخه یو ډول "اخراج" ترلاسه کړئ ، دا خورا مطلوب دی چې میټریکونه نه یوازې د وروستي دقیقو لپاره وګورئ ، بلکه د اوږدې مودې لپاره (له ورځو څخه تر میاشتو پورې).

د دې لپاره تاسو اړتیا لرئ:

  • د پی ایچ پی لپاره توسیع نصب کړئ (او تاسو ممکن د نګینکس لپاره ماډل غواړئ)
  • د mysql لپاره توسیع تالیف کړئ
  • پنبورډ نصب کړئ او کرون تنظیم کړئ

د پنبا په اړه د لږ مقدار معلوماتو له امله، ډیری خلک داسې انګیرل کیږي چې دا یوازې په PHP5 کې کار کوي او د تیر وخت خبره ده، مګر لکه څنګه چې موږ به وروسته وګورو، دا قضیه نده.

لومړی ګام خورا ساده دی، ټول هغه څه چې تاسو یې کولو ته اړتیا لرئ کمانډ چلول دي:

apt install php-pinba

دا تمدید د php 7.3 پورې او په شمول په ذخیره کې شتون لري او تاسو اړتیا نلرئ کوم څه تنظیم کړئ.

د نصب کولو کمانډ اجرا کولو وروسته، موږ سمدلاسه یو کاري توسیع ترلاسه کوو چې د هر سکریپټ لپاره میټریکونه راټولوي او لیږي (د چلولو وخت، حافظه، او نور) په بڼه کې. protobuf 127.0.0.1:30002 ته د udp له لارې.

تر دې دمه هیچا دا UDP پاکټونه نه دي نیولي یا پروسس کړي ، مګر دا په هیڅ ډول ستاسو د PHP سکریپټونو سرعت یا ثبات باندې منفي اغیزه نه کوي.

تر دې وروستیو پورې، یوازینی غوښتنلیک چې کولی شي دا UDP پاکټونه ونیسي او پروسس کړي pinba_engine. توضیحات "ساده او لنډنصب کول هغه لیوالتیا هڅوي چې هیڅکله یې لوستل او بیا یې لوستلو ته زړه ښه کړي. د انحصارونو کیلومتره اوږد لیست دواړه د کڅوړو نومونه او د برنامو نومونه او د انفرادي پا pagesو لینکونه د دوی نصب کولو سره لري ، او دا د نورو انحصارونو سره خپلې اړیکې لري. هیڅوک د دې خندا سره معامله کولو لپاره وخت یا لیوالتیا نلري.

د نصبولو پروسه pinba2 نه په ځانګړې توګه اسانه.

شاید یوه ورځ به دا ممکنه وي چې د یو یا دوه کمانډونو سره pinba10 نصب کړئ او د دې کولو څرنګوالي پوهیدو لپاره د موادو یوه ډله لوستلو ته اړتیا نلري ، مګر د اوس لپاره دا قضیه نده.

که تاسو pinba_engine نصب کړئ، نو دا یوازې نیمه جګړه ده. په هرصورت، پرته پنبورډ تاسو باید خپل ځان یوازې د تیرو څو دقیقو معلوماتو پورې محدود کړئ، یا تاسو باید پخپله ډاټا راټول کړئ، ذخیره کړئ او لیدل یې کړئ. دا ښه ده چې پنبورډ د کارولو لپاره خورا ساده دی لګول.

داسې بریښي چې ولې دا ډول رنځ که چیرې د php ټول میټریکونه دمخه د پروټوبف ب formatه کې د udp بندر ته لیږل شوي وي او تاسو ټول ورته اړتیا لرئ یو غوښتنلیک ولیکئ چې دوی یې ونیسي او په یو ډول ذخیره کې یې واچوي؟ په ښکاره ډول ، هغه پراختیا کونکي چې د دې مفکورې سره راغلي سمدلاسه د خپلو نظرونو لیکلو لپاره ناست و ، چې ځینې یې په GitHub کې پای ته ورسیدل.

لاندې د خلاصې سرچینې څلور پروژې یوه عمومي کتنه ده چې په ذخیره کې میټریکونه خوندي کوي ، له کوم څخه چې دا ډاټا په اسانۍ سره ترلاسه کیدی شي او لیدل کیدی شي ، د مثال په توګه ، د ګرافانا کارول.

olegfedoseev/pinba-server (نومبر ۲۰۱۷)

د udp سرور په تګ کې چې میټریکونه OpenTSDB ته خوندي کوي. شاید که تاسو دمخه په خپله پروژه کې OpenTSDB کاروئ ، نو دا حل به تاسو ته مناسب وي ، که نه نو زه وړاندیز کوم چې دا تیر کړئ.

olegfedoseev/pinba-influxdb (جون ۲۰۱۸)

udp سرور په تګ کې، له ورته څخه هبروزر، کوم چې دا ځل په InfluxDB کې میټریک ذخیره کوي. ډیری پروژې دمخه د نظارت لپاره InfluxDB کاروي ، نو دا حل ممکن د دوی لپاره مناسب وي.

پرو:

  • InfluxDB دا اجازه ورکوي ترلاسه شوي میټریکونه راټول کړئ، او د یو ټاکلي وخت وروسته اصلي حذف کړئ.

ضمیمه:

کلک هاؤس-ننجا/پروتون (جنوري ۲۰۱۹)

په تګ کې د udp سرور، کوم چې په ClickHouse کې میټریکونه خوندي کوي. دا زما د ملګري حل دی. دا د دې سره آشنا کیدو وروسته و چې ما پریکړه وکړه چې دا د پنبو او کلیک هاوس سره د لیدو وخت دی.

پرو:

  • کلک هاؤس د داسې کارونو لپاره مثالی دی؛ دا تاسو ته اجازه درکوي دومره ډیټا کمپریس کړئ چې تاسو کولی شئ ټول خام ډیټا حتی د راټولولو پرته ذخیره کړئ
  • که اړتیا وي، تاسو کولی شئ په اسانۍ سره پایله شوي میټریکونه راټول کړئ
  • د ګرافانا لپاره چمتو شوی ټیمپلیټ
  • په ټایمرونو کې معلومات خوندي کوي

ضمیمه:

  • وژونکې نیمګړتیا
  • دلته هیڅ ترتیب شتون نلري چې تاسو کولی شئ د ډیټابیس او میزونو نوم، د سرور پته او بندر ترتیب کړئ.
  • کله چې د خامو معلوماتو ذخیره کول، د معاون لغت میز د پاڼې او ډومین پتې ذخیره کولو لپاره کارول کیږي، کوم چې وروسته پوښتنې پیچلې کوي
  • نور کوچني شیان چې د لومړي منفي څخه تعقیب کیږي

pinba-server/pinba-server (اپریل ۲۰۱۹)

په پی ایچ پی کې د udp سرور، کوم چې په ClickHouse کې میټریکونه خوندي کوي. دا زما حل دی، کوم چې د pinba، ClickHouse او protobuf پیژندلو پایله ده. پداسې حال کې چې زه دا ټوله ډله ترتیبوم، ما د "مفکورې ثبوت" لیکلی و، کوم چې په غیر متوقع ډول زما لپاره، د پام وړ سرچینې نه مصرفوي (د 30 MB RAM او د اتو پروسیسر کورونو څخه 1٪ څخه کم)، نو زه پریکړه وکړه چې له خلکو سره یې شریک کړي.

ګټې د تیر حل په څیر دي، ما د اصلي pinba_engine څخه معمول نومونه هم کارولي. ما یو ترتیب هم اضافه کړ چې تاسو ته اجازه درکوي په یوځل کې د پنبیس سرور ډیری مثالونه په مختلف جدولونو کې د میټریکونو خوندي کولو لپاره په لاره واچوئ - دا ګټور دی که تاسو غواړئ نه یوازې د php څخه ، بلکه له نګینکس څخه هم ډاټا راټول کړئ.
نیمګړتیاوې - "وژونکي نیمګړتیا" او هغه کوچني شیان چې تاسو ته به په شخصي توګه مناسب نه وي، مګر زما حل "د چپل په څیر ساده" دی او یوازې د کوډ شاوخوا 100 لینونه لري، نو د PHP هر جوړونکی کولی شي هغه څه بدل کړي چې هغه یې نه خوښوي. په څو دقیقو کې

دا څنګه کار کوي

د UDP پورټ 30002 لیست شوی دی ټول راتلونکی پاکټونه د پروټوبف سکیم سره سم ډیکوډ شوي او راټول شوي. په دقیقه کې یو ځل، یو کڅوړه د pinba.requests جدول کې د کلک هاؤس ته داخلیږي. (ټول پیرامیټونه ترتیب شوي دي تشکیل)

د کلک هاؤس په اړه لږ څه

کلیک هاؤس د مختلف ډیټا ذخیره کولو انجنونو ملاتړ کوي. ترټولو عام کارول شوی MergeTree دی.

که په یو وخت کې تاسو پریکړه وکړئ چې د ټولو وختونو لپاره راټول شوي ډاټا ذخیره کړئ، او یوازې د وروستي لپاره خام ډاټا، نو تاسو کولی شئ د ګروپ کولو سره یو مادي لید رامینځته کړئ، او په وخت سره د اصلي pinba.requests جدول پاک کړئ، پداسې حال کې چې ټول معلومات به پاتې وي. مادي لید. سربیره پردې ، کله چې د pinba.requests جدول رامینځته کړئ ، تاسو کولی شئ "انجن = نول" مشخص کړئ ، نو خام ډیټا به په ډیسک کې خوندي نشي ، او په ورته وخت کې به دا لاهم په مادي لید کې پای ته ورسیږي او په ټولیز ډول خوندي شي. . زه دا سکیم د نګینکس میټریکونو لپاره کاروم، ځکه چې په نګینکس کې زه د php په پرتله 50 ځله ډیرې غوښتنې لرم.

نو ، تاسو اوږده لاره تللې یاست او زه نه غواړم چې تاسو نیمه لاره پریږدم ، نو هغه څه چې لاندې یې زما د حل نصبولو او تنظیم کولو تفصيلي توضیحات دي او هرڅه چې تاسو ورته اړتیا لرئ ، په بیله بیا هغه زیانونه چې له یو څخه ډیر کښتۍ رامینځته کړي. ټکر کول د نصب کولو ټوله پروسه د اوبنټو 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

کلک هاؤس

د نصبولو په جریان کې، کلیک هاؤس به تاسو څخه وغواړي چې د ډیفالټ کارونکي لپاره پټنوم تنظیم کړي. په ډیفالټ ، دا کارن د ټولو IPs څخه د لاسرسي وړ دی ، نو که تاسو په خپل سرور کې فایر وال نلرئ ، ډاډ ترلاسه کړئ چې د دې لپاره پاسورډ تنظیم کړئ. دا په /etc/clickhouse-server/users.xml فایل کې د نصبولو وروسته هم ترسره کیدی شي.

دا هم د یادولو وړ ده چې کلک هاوس د 9000 په ګډون ډیری بندرونه کاروي. دا پورټ په ځینو توزیعونو کې د php-fpm لپاره هم کارول کیږي (د مثال په توګه، سینټو). که تاسو دمخه دا پورټ کاروئ، تاسو کولی شئ دا په /etc/clickhouse-server/config.xml فایل کې بل ته بدل کړئ.

grafana د کلک هاؤس پلگ ان سره

د ګرافانا نصبولو وروسته، د ننوتلو اډمین او پاسورډ اډمین وکاروئ. کله چې تاسو د لومړي ځل لپاره لاګ ان شئ ، ګرافانا به تاسو څخه د نوي پټنوم تنظیم کولو غوښتنه وکړي.

بیا، "+" -> واردولو مینو ته لاړ شئ او د واردولو لپاره د ډشبورډ شمیره په ګوته کړئ 10011. ما دا ډشبورډ چمتو او اپلوډ کړ ترڅو تاسو اړتیا نلرئ دا پخپله ترسره کړئ.

ګرافانا د دریمې ډلې پلگ ان له لارې د کلک هاؤس سره کار کولو ملاتړ کوي ، مګر ګرافانا د دریمې ډلې پلگ انونو لپاره خبرتیاوې نلري (د څو کلونو لپاره د دې لپاره ټیکټ شتون لري).

pinba-server

د پروټوبف او لیبیونټ نصب کول اختیاري دي، مګر د پنبا سرور فعالیت ښه کوي. که تاسو د /opt څخه پرته په بل فولډر کې pinba-server نصب کړئ، نو تاسو به هم سمولو ته اړتیا ولرئ سیسټمډ سکریپټ دوتنه.

د نګینکس لپاره پنبا ماډل

د ماډل تالیف کولو لپاره ، تاسو د نګینکس د ورته نسخې سرچینې کوډونو ته اړتیا لرئ چې دمخه ستاسو په سرور کې نصب شوی ، او همدارنګه د ورته تالیف اختیارونه ، که نه نو جوړونه به بریالۍ وي ، مګر کله چې ماډل وصل کړئ ، نو یوه تېروتنه به وغورځول شي. "ماډول د بائنری سره مطابقت نلري." د تالیف اختیارونه د nginx -V کمانډ په کارولو سره لیدل کیدی شي

ژوند هیکونه

زما ټول سایټونه یوازې په https کې کار کوي. د سکیما ساحه بې معنی کیږي، نو زه یې د ویب / کنسول جلا کولو لپاره کاروم.

په سکریپټونو کې چې د ویب څخه د لاسرسي وړ دي زه یې کاروم:

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

او په کنسول سکریپټونو کې (د مثال په توګه، کرون سکریپټونه):

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

په ګرافانا کې زما په ډشبورډ کې په جلا توګه د احصایو لیدو لپاره ویب / کنسول سویچ شتون لري.

تاسو کولی شئ خپل ټاګونه پنبا ته هم واستوئ، د بیلګې په توګه:

pinba_tag_set('country', $countryCode);

بس نور څه نه.

مهرباني وکړئ د مقالې لاندې نظر پوښتنو ته ځواب ووایاست.

د معمول په څیر، زه تاسو ته خبرداری درکوم چې زه په هابر او ټولنیزو شبکو کې د شخصي پیغامونو له لارې مشوره یا مرسته نه کوم.

په ګیتوب کې ټکټ جوړ کړئ.

د لایکونو سره هم ملاتړ وکړئ انګلیسي نسخه دا مقاله په reddit.

یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي. ننوزئمهرباني وکړئ

تاسو په سرور کې کوم OS کاروئ؟

  • د وبنټو

  • CentOS

  • Debian

  • ګینټو

  • سره خولۍ

  • فیډورا

  • OpenSUSE

  • سویس

  • یونس

  • Windows

  • نور

114 کاروونکو رایه ورکړه. 11 کاروونکي منع شوي.

تاسو په سرور کې د php کومه نسخه کاروئ؟

  • 7.3

  • 7.2

  • 7.1

  • 7.0

  • 5

  • نور

105 کاروونکو رایه ورکړه. 17 کاروونکي منع شوي.

ایا تاسو کله هم پنبه کارولې ده؟

  • هو

  • نه، مګر زه غواړم

  • نه او زه نه غواړم

  • نه او د هغې په اړه یې نه دي اوریدلي

100 کاروونکو رایه ورکړه. 14 کاروونکي منع شوي.

د پنبا سرور کومه نسخه غواړئ هڅه وکړئ؟

  • pinba_engine (mysql انجن)

  • pinba2 (mysql انجن)

  • پنبورډ (php + mysql)

  • olegfedoseev/pinba-server (لاړ + OpenTSDB)

  • olegfedoseev/pinba-influxdb (go + influxdb)

  • pinba-server/pinba-server (لاړ + کلیک هاوس)

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

  • زه به خپله لیکم

  • نور

39 کاروونکو رایه ورکړه. 47 کاروونکي منع شوي.

سرچینه: www.habr.com

Add a comment