Upload
sven-rautenberg
View
400
Download
3
Embed Size (px)
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.
Citation preview
Messen mit PHP
PHP Usergroup München10. Juli 2013
Über mich
● Sven Rautenberg● Senior Developer bei Kabel Deutschland● mit Vergangenheit bei SELFHTML
Motivation
„Ein Appetizer für statsd,
Live-Dashboards,Graphik,
Messungen“
Motivation
Etsy im Februar 2011
Prämisse
● Einfach messen● Alles messen● Und visualisieren
Dashboards
Let's try this at home!
Setup-Plan
Setup-PlanSoftware
Software
Software
System
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
ViewerGraphite
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
ViewerGraphite
Backendes gibt reichlich Auswahl,
auch SaaS-Angebote
Setup-PlanSoftware
Software
Software
System
Aggregatorstatsd
StorageCarbon
ViewerGraphite
Implementiert innode.js, Ruby, Python, Erlang, C, Scala, Clojure
Backendes gibt reichlich Auswahl,
auch SaaS-Angebote
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
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 :)
Messen in PHP
Messen: Counter
foo.event:1|c
foo.event:-1|c
foo.event:20|c
Messen: Timer
foo.duration:123|ms
Messen: Gauges
foo.level:234|g
foo.level:+5|g
foo.level:-3|g
Messen: Sets
foo.ids:15675672|s
Counter vs. Gauges vs. Sets
● Counter: neu registrierte User pro Minute● Gauge: Anzahl existenter User● Set: Anzahl aktiver User
– aufgrund der UserId
– pro Zeit
Timer-Features
● Auto-Statistik– lower
– upper
– mean
– median
– count...
Sampling
foo.bar:1|c|@0.1
PHP Clients
● packagist.org → statsd suchen● in Code integrieren ;)
– $statsd->timing("foo.bar", 320);– $statsd->increment("foo.bar");
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
Erfahrungen aus 1 Tag rumspielen
● langweilig ohne Datenmengen● statistisch ungenau● Konfigurationsvielfalt● Funktionsvielfalt in Graphite
Fragen?
Anmerkungen?
Kommentare?
Kontakt
● Slideshare: http://www.slideshare.net/svenrtbg
● Twitter: @svenrtbg● http://www.rtbg.de
Attribution● Background: CC-BY
– http://www.freeimageslive.co.uk/free_stock_image/numbers-background-jpg
– http://www.freeimageslive.co.uk/users/gratuit