messen mit php
DESCRIPTION
Wenn man wissen will, was die eigene Applikation so macht, hilft messen. Als Appetizer für diejenigen, die eventuell vor einem ähnlichen Problem stehen. Vortrag bei der PHP Usergroup München.TRANSCRIPT
![Page 1: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/1.jpg)
Messen mit PHP
PHP Usergroup München10. Juli 2013
![Page 2: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/2.jpg)
Über mich
● Sven Rautenberg● Senior Developer bei Kabel Deutschland● mit Vergangenheit bei SELFHTML
![Page 3: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/3.jpg)
Motivation
„Ein Appetizer für statsd,
Live-Dashboards,Graphik,
Messungen“
![Page 4: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/4.jpg)
Motivation
![Page 5: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/5.jpg)
Etsy im Februar 2011
![Page 6: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/6.jpg)
Prämisse
● Einfach messen● Alles messen● Und visualisieren
![Page 7: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/7.jpg)
Dashboards
![Page 8: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/8.jpg)
Let's try this at home!
![Page 9: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/9.jpg)
Setup-Plan
![Page 10: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/10.jpg)
Setup-PlanSoftware
Software
Software
System
![Page 11: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/11.jpg)
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
![Page 12: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/12.jpg)
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
![Page 13: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/13.jpg)
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
ViewerGraphite
![Page 14: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/14.jpg)
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
ViewerGraphite
Backendes gibt reichlich Auswahl,
auch SaaS-Angebote
![Page 15: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/15.jpg)
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
ViewerGraphite
Implementiert innode.js, Ruby, Python, Erlang, C, Scala, Clojure
Backendes gibt reichlich Auswahl,
auch SaaS-Angebote
![Page 16: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/16.jpg)
Installieren
● Graphite einigermaßen schwierig– http://kaivanov.blogspot.de/2012/02/
how-to-install-and-use-graphite.html
● Django SECRET_KEY– „settings.py“ der Graphite Webapp
![Page 17: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/17.jpg)
![Page 18: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/18.jpg)
Installieren
● statsd supereinfach– apt-get install nodejs
– git clone https://github.com/etsy/statsd
– cd statsd
– cp exampleConfig.js yourConfig.js
– vi yourConfig.js
– node statsd.js ./yourConfig.js → läuft :)
![Page 19: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/19.jpg)
Messen in PHP
![Page 20: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/20.jpg)
Messen: Counter
foo.event:1|c
foo.event:-1|c
foo.event:20|c
![Page 21: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/21.jpg)
Messen: Timer
foo.duration:123|ms
![Page 22: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/22.jpg)
Messen: Gauges
foo.level:234|g
foo.level:+5|g
foo.level:-3|g
![Page 23: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/23.jpg)
Messen: Sets
foo.ids:15675672|s
![Page 24: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/24.jpg)
Counter vs. Gauges vs. Sets
● Counter: neu registrierte User pro Minute● Gauge: Anzahl existenter User● Set: Anzahl aktiver User
– aufgrund der UserId
– pro Zeit
![Page 25: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/25.jpg)
Timer-Features
● Auto-Statistik– lower
– upper
– mean
– median
– count...
![Page 26: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/26.jpg)
Sampling
foo.bar:1|c|@0.1
![Page 27: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/27.jpg)
PHP Clients
● packagist.org → statsd suchen● in Code integrieren ;)
– $statsd->timing("foo.bar", 320);– $statsd->increment("foo.bar");
![Page 28: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/28.jpg)
Messwerte wiederfinden
● Namensaspekte– http://matt.aimonetti.net/posts/2013/06/26/
practical-guide-to-graphite-monitoring/
● Antipattern– https://github.com/lukevenediger/statsd.net/
blob/master/statsd.net/Documentation/guidance/metric-anti-patterns.md
![Page 29: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/29.jpg)
![Page 30: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/30.jpg)
Erfahrungen aus 1 Tag rumspielen
● langweilig ohne Datenmengen● statistisch ungenau● Konfigurationsvielfalt● Funktionsvielfalt in Graphite
![Page 31: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/31.jpg)
Fragen?
Anmerkungen?
Kommentare?
![Page 32: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/32.jpg)
Kontakt
● Slideshare: http://www.slideshare.net/svenrtbg
● Twitter: @svenrtbg● http://www.rtbg.de
![Page 33: Messen mit PHP](https://reader034.vdocuments.mx/reader034/viewer/2022042606/54806336b4795969578b4683/html5/thumbnails/33.jpg)
Attribution● Background: CC-BY
– http://www.freeimageslive.co.uk/free_stock_image/numbers-background-jpg
– http://www.freeimageslive.co.uk/users/gratuit