3. “Graphite is an enterprise-scale monitoring tool
that 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 design
to RRD)
• graphite webapp - A Django webapp that renders graphs on-demand using Cairo
• https://github.com/graphite-project
• http://graphite.readthedocs.org
29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 3
Graphite
4. “Statsd is a simple NodeJS daemon that listens
for messages on a UDP port”
• It parses the messages, extracts metrics data, and periodically flushes the
data 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 4
Statsd
7. • 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 added
examples:
• 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 7
eZ Performance Logger I
PRESENTER: GAETANO GIUNTA
8. • 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 via
rewriting 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 mode
29/5/2013 SLIDE 8
eZ Performance Logger II
PRESENTER: GAETANO GIUNTA
10. • Break down metrics reports, by content class or single node id, or ...
«average database queries per page» makes little sense when averaged
over the whole website
better: 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 interface
Integration perks
29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 10
11. • Want to send alerts on critical events?
Many tools integrate with graphite
https://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 limit
29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 11
12. Thanks for participating!
Source code
http://projects.ez.no/ezperformancelogger
These slides (soon) on slideshare
http://www.slideshare.net/gggeek
Contacting me
gaetano.giunta@ez.no
@gggeek
http://share.ez.no/blogs/gaetano-giunta
http://projects.ez.no/users/community/gaetano_giunta
29/5/2013PRESENTER: GAETANO GIUNTA SLIDE 18
Questions?