“Graphite is an enterprise-scale monitoring toolthat runs well on cheap hardware”• Architecture• carbon - a Twisted daemon that listens for time-series data• whisper - a simple database library for storing time-series data (similar in designto RRD)• graphite webapp - A Django webapp that renders graphs on-demand using Cairo• https://github.com/graphite-project• http://graphite.readthedocs.org29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 3Graphite
“Statsd is a simple NodeJS daemon that listensfor messages on a UDP port”• It parses the messages, extracts metrics data, and periodically flushes thedata to graphite• By default: every 10 seconds• https://github.com/etsy/statsd/• http://codeascraft.com/2011/02/15/measure-anything-measure-everything/29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 4Statsd
• Allows the developer to define a set of variables (KPI) to be measured• Each variable is measured for every page view• rest / ajax pages as well• Common KPIs are available; custom ones can be addedexamples:• Memory usage [bytes]• Time taken [ms]• Number of database queries executed [#]• Time taken by database queries [ms]• Time of longest database query [ms]29/5/2013 SLIDE 7eZ Performance Logger IPRESENTER: GAETANO GIUNTA
• Measured KPIs can be sent to multiple logging systems• csv formatted log probably the easiest to later parse• Apache’s own access log - better suited to avoid any performance hit• supports logging directly to Odoscope, Google Analytics or Piwik viarewriting of html pages• or to network servers using either udp packets or syslog protocol• Extension does NOT come with a nice GUI of its own• Integrates with Munin to visualize the measured data• And - since yesterday - with Graphite as well !• Disclaimer: only works with eZ 5 when in legacy mode29/5/2013 SLIDE 8eZ Performance Logger IIPRESENTER: GAETANO GIUNTA
• Break down metrics reports, by content class or single node id, or ...«average database queries per page» makes little sense when averagedover the whole websitebetter: avg. number of db queries per page for content class «article»can stack graphs, making it easy to identify a single bad behaving node• Flexible aggregation interval – down to one second• Flexible retention interval• Access graphite directly from within eZ admin interfaceIntegration perks29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 10
• Want to send alerts on critical events?Many tools integrate with graphitehttps://graphite.readthedocs.org/en/latest/tools.html• Full installation and configuration guide is in the works• Have more ideas? Raise your hand!The sky’s the limit29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 11
Thanks for participating!Source codehttp://projects.ez.no/ezperformanceloggerThese slides (soon) on slidesharehttp://www.slideshare.net/gggeekContacting email@example.com@gggeekhttp://share.ez.no/blogs/gaetano-giuntahttp://projects.ez.no/users/community/gaetano_giunta29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 18Questions?