ProHoster > Блог > administratio > Statistics et vigilantia litterarum PHP in tempore reali. ClickHouse et Grafana subvenire Pinba
Statistics et vigilantia litterarum PHP in tempore reali. ClickHouse et Grafana subvenire Pinba
In hoc articulo indicabo tibi quomodo uti pinba cum strepita et grafana loco pinba_engine et pinboard.
In a PHP project, pinba fortasse sola certa via est ad intelligendum quid agatur cum effectu. Vera, pinba plerumque solum impletur cum problemata iam observata sunt et ubi fodere non liquet.
Saepe nemo ideam habet quotiens hoc vel illud scriptum dicitur per secundo/minutum et "tactu" optimize incipiunt, ex locis illis quae magis logica videntur.
Aliae tigna enucleant ngingem, alii lentum datorum quaestionem resolvent.
Nempe pinba non esset superflua, sed plures sunt causae cur non omne consilium habeat.
Ac prima ratio est institutionis.
Ut plus minusve aliquam ex exsecutione Pinba "exhaustam" accipiamus, valde optandum est videre metrica non solum pro ultimis minutis, sed etiam per longum tempus (ab diebus ad menses).
Ad hoc:
install extensionem pro php (ac moduli pro nginx vis)
ordinare extensio pro mysql
install pinboard et configurare cron
Propter minimam informationem de Pinba, multi impressionem habent quod solum in PHP5 laboraverunt et iam pridem res fuerunt, sed ut postea videbimus, hoc non est.
Primus gradus est simplicissimus, omne quod debes facere, currite mandatum;
apt install php-pinba
Haec extensio praesto est in repositoriis usque ad et ad php 7.3 et nihil opus est ad componendum.
Post institutionem mandati exsequendam statim extensionem operantes, qui orationes metricas ad singulas scripturas (cursus tempus, memoriam, etc.) recipimus in forma. protobuf * via udp ad 127.0.0.1:30002.
Hactenus nemo has UDP fasciculas prehendit aut discessit, sed hoc nullo modo negate afficit celeritatem vel stabilitatem scriptorum tuorum PHP.
Usque recens, sola applicatio quae capere potuit ac processus has UDP packets erat pinba_engine. Descriptio "simplex et breve" institutionem dehortatur cupiditatem legendi semper ac denuo in eam introeundi. Indices clientium longi chiliometrorum continent nomina fasciculorum et nomina programmatum et nexus ad singulas paginas cum institutione sua, et qui proprios nexus aliis dependentiis habent. Hoc lutum agere nemo aut tempus habet.
Forsitan aliquando licebit pinba10 cum uno vel duobus praeceptis instituere nec fasciculum materiae legere ad intellegendum quomodo id faciendum sit, sed nunc hoc non ita est.
Si pinba_engine install facis, hoc solum est dimidium proelium. Etenim sine pinboard te ipsum limitare ad notitias ex proximis minutis paucis habebis, aut habebis aggregati, thesaurizandi, et data tibi visualize. Quod pinboard bonum est, satis simplex est ad usum installation.
Videretur, cur talis dolor, si omnes metrici a php iam ad udp portum in forma protobufu missi sunt et omne opus tuum applicationis scribendae sunt, qui eas capiet et eas in aliqua repositione collocabit? Apparet, tincidunt qui cum hac idea accesserunt statim sederunt ad proprias scribendas ideas, quarum nonnulla in GitHub finivit.
Sequens est perceptio quattuor fontium apertorum quae in repositione metrice salvantur, e quibus haec notitia facile recuperari et subjici potest, exempli gratia, grafana adhibito.
udp server on go that salvet metrics to OpenTSDB. Fortasse si iam uteris OpenTSDB in incepto tuo, haec solutio tibi conveniet, secus praeteriens suadeo.
udp server on go, from the same habrowserquem hic metri in InfluxDB reponit. Multae inceptae iam utentes InfluxDB ad vigilantiam sunt, ut haec solutio illis perfecta sit.
pros,
InfluxDB Non concedit metri receptacula aggregata, et originalis post tempus praefinitum deleat.
nulla config in qua configurare potes nomen datorum ac tabularum, inscriptionis et portus servientis.
cum rudis notitia reponenda, auxilia dictionarii mensa ad paginas et inscriptiones domain reponendas adhibetur, quae quaestionibus subsequentibus implicantur.
udp server in php, which saves metrics in ClickHouse. Haec mea solutio est, quae oritur ut sciatur pinba, strepita et protobuf. Dum totum hunc fasciculum digererem, scripsi "probationem conceptus", quae, inopinate mihi, opes significantes non absumit (30 MB de RAM et minus quam 1% unius e octo processuum nucleorum), sic ego cum publico communicare placuit.
Commoda eaedem sunt cum solutione praecedenti, nomina etiam usitatis ab originali pinba_engine adhibita. Adieci etiam config quod permittit ut plures instantiae pinbase servo statim mitteret ut metricas in diversis tabulis servaret - hoc autem utile est si datas colligere vis non solum ex php, sed etiam ex nginx.
Incommoda - "vitium fatale" et illae res parvae quae tibi ipsi non conveniunt, sed solutio mea "similis est sicut socco" et consistit in tantum circa 100 lineas codicis, ita quaelibet PHP elit mutare potest quod non placet. in duobus minutis.
How it works
UDP portus 30002 auscultatur, omnes fasciculi advenientes decocti sunt secundum schema protobufum et aggregatur. Semel minutum fasciculum in cliccum in tabula pinba.requestibus inseritur. (Omnes parametri configurantur aboutconfig)
Paulo de clickhouse
Clickhouse sustinet varias notitias repositionis machinas. Unus est MergeTree usitatis.
Si in aliquo puncto notitias aggregatas in omne tempus condere volueris, et notitia rudis solum ultimo, tunc potes creare conspectum materialem cum copula, et periodice purga tabulam principalem, dum omnia data manebunt in materiata sententia. Praeterea, cum pinba.requestarum tabulam creando, "machinam = Null" denotare potes, notitia rudis in disco omnino non servabitur, et simul adhuc in intuitu materiali terminabitur et aggregata salvabitur. . Hoc schemate pro nginx metricis utor, quod in nginx L temporibus plus peto quam in php habeo.
Longe igitur iter ingressus es et te medio relinquere nolim, itaque quod sequitur accuratiorem descriptionem institutionis et schematismi solutionis et omnium quae tibi necessaria sunt ac foveae quae plus quam unam navem attulerunt. ad fragorem. Processus institutionis totus descriptus est pro Ubuntu 18.04 LTS et Centos 7, processus leviter in aliis distributionibus et versionibus differre potest.
occasum
Ego omnia mandata necessaria Dockerfile mandatorum faciliorem reproducibilitatem. Cautiones tantum infra describentur.
php-pinba
Post institutionem fac ut in /etc/php/7.2/fpm/conf.d/20-pinba.ini fasciculus incomprehensibilis omnia bene habeas. De quibusdam distributionibus (exempli centos) commentari possunt.
Per institutionem, premehouse rogabit te ut tesseram usoris defaltam facias. Defalta, hic usor ab omnibus IPS accessibilis est, ut si firewall in servo tuo non habes, scito tesseram pro eo ponere. Hoc quoque fieri potest post institutionem in tabella /etc/clickhouse-server/users.xml.
Notatu etiam dignum est quod clickhouse pluribus portibus utitur, inter 9000. Portus hic etiam in quibusdam distributionibus php-fpm ponitur (exempli gratia centos). Si iam hoc portu uteris, eam in /etc/clickhouse-server/config.xml lima alteri mutare potes.
grafana cum clickhouse plugin
Grafana insertis, login admin ac tessera admin utere. Cum primum aperi, Grafana rogabit ut tesseram novam constituas.
Deinde, vade ad "+" -> tabulam importandam et indica numerum ashboardday pro import 10011. Hoc ashboardday paravi et imposuisti ut iterum te ipsum facere non debeas.
Grafana subsidia cum clickhouse laborat per plugin tertia factio, sed Grafana summis in plugins tertii factionis non habet ( tessera huic aliquot annis facta est).
pinba-servo
Protobufus et libevent inaugurari ad libitum est, sed pinba-ministro perficiendi meliorem. Si pinba-servo install in folder aliud quam / opt, tunc etiam emendare debes systemd scriptor fasciculus.
pinba moduli ad nginx
Ad modulum componendum, principium codicis desideras eiusdem versionis nginx quae iam in servo tuo inauguratus est, necnon optiones eiusdem compilation, secus aedificatum erit felix, sed cum moduli iungens, error mittetur qui "Modulus non est compatible binarii". Compilation optiones considerari possunt per mandatum nginx -V
vita hacks
Omnes meae sites tantum in https operantur. Schematismus campus vanitas fit, eo utimur ad separandum telam/consolationem.
In scriptis quae pervia e interreti utimur:
if (ini_get('pinba.enabled')) {
pinba_schema_set('web');
}
Et in console scripta (exempli gratia cron scripta);
if (ini_get('pinba.enabled')) {
pinba_schema_set('console');
}
In mea ashboardday in Grafana interretialem / consolatorium transitum pro statisticis videndis.
Potes etiam tags mittere ad Pinba, exempli gratia:
pinba_tag_set('country', $countryCode);
Id omne.
Quaeso responde repulsam infra articulum.
Ut solet, moneo me per nuntios personales in Habr et in retiacula socialia non monere vel adiuvare.