Date post: | 17-Jan-2015 |
Category: |
Technology |
Upload: | david-lutz |
View: | 2,061 times |
Download: | 0 times |
Overview
• Architecture
• Strengths
• Weaknesses
• Example Usage
Graphite ArchitecturePython based
http://graphite.wikidot.com/
Web UI == Django
Run under Apache mod_python
Graphics library == Cairo
http://cairographics.org/
Processing backend (Carbon) == Twisted Python
Storage Engine (Whisper) •Fixed size •Can insert data out of order
Storage Engine (Whisper)• Flexible configuration of precision
/opt/graphite/conf/storage-schemas.conf
[default_1min_for_1day_5min_for_1_year_1hr_for_5years]pattern = .*retentions = 60s:1d, 5m:365d, 1h:5y
1.8 megabyte whisper file/opt/graphite/storage/whisper/
Strengths
Flexible data storage (configurable precision)
Easy to get data in
• telnet to port 2003• enter three values metric.name value unixtime
• Explore data by combining, aggregating, or performing calculations
• Build dashboards by tweaking URLs
Weaknesses
• Not so nice out of the box (as Ganglia for example)
• Not packaged
Example usage• Apache logs into Graphite• Count 200s 300s 500s etc (RPMs)• Calculate average response times
How to visualize data from 50 web servers?
cron job runs every minute on the web servers
Tail the apache logsAdd up the requests for each range of
return codes 1xx 2xx 3xx 4xx 5xxCustom apache log format that records time to
serve requests %DSend results to Graphite
Logtail
Implemented in several languagesI used the perl one
Logster
From Etsyhttps://github.com/etsy/logster
Plug in your own parser for any log fileOutput to Graphite or Ganglia