LSPE Meetup talk on Graphite

9,529 views

Published on

Slides from my LSPE Meetup talk from June 16, 2011 entitled Enterprise Realtime Graphing with Graphite.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,529
On SlideShare
0
From Embeds
0
Number of Embeds
7,010
Actions
Shares
0
Downloads
27
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Not Nagios, other monitoring, fooled ya
  • Who has heard of or knows what a key value pair is? How about epoch time or unix time? Then you can use graphite.
  • Ceres does not use space for time periods which contain no datapoints, uses 33% less disk space, able to store the datapoints for a single metric across multiple servers. Dashboard trunk: Save graphs drag'n'drop reordering & merging graphs, all the composer features are there (graph options, functions, etc) plus a few more (breakout a graph with wildcards into separate graphs,
  • LSPE Meetup talk on Graphite

    1. 1. Realtime Enterprise Graphing and Visualization with Graphite Dave Mangot tech.mangot.com www.tagged.com
    2. 2. Graphite Overview <ul><li>Not monitoring, graphing!
    3. 3. Complex graph creation Web / Dashboard, “CLI” and API interfaces
    4. 4. http://graphite.wikidot.com/
    5. 5. http://graphite.readthedocs.org/
    6. 6. https://launchpad.net/graphite </li></ul>
    7. 7. Oooh...
    8. 8. Ahhh...
    9. 9. What Graphite Provides <ul><li>EASY to get data into visualization tool from any source
    10. 10. Zooming on arbitrary time periods
    11. 11. Ability to create ad-hoc graphs from ANY metric
    12. 12. Metric Storage
    13. 13. LDAP, Memcached integration </li></ul>
    14. 14. Graphite Pros <ul><li>Horizontally scalable
    15. 15. Rapid graph prototyping (CLI)
    16. 16. Graph disparate data points
    17. 17. Numerous formulas available (derive, transform, average, sum, etc... )
    18. 18. Share graphs with other users
    19. 19. Supports existing RRD databases
    20. 20. Empower any user to create their own graphs, no advance configuration required </li></ul>
    21. 21. Graphite Cons <ul><li>Not a dashboard
    22. 22. No hover details
    23. 23. No collector
    24. 24. Unfortunate name </li></ul>
    25. 25. Graphite Components
    26. 26. Demo Time!
    27. 27. Push vs. Pull/Poll
    28. 28. Getting data into Graphite <ul><li>Java: </li></ul>Socket socket = new Socket( &quot;graphite01&quot; , 2003 ); PrintStream printStream = new PrintStream(socket.getOutputStream()); printStream.println(&quot;tagged.sitemon.active_users&quot; + country + &quot; &quot; + count + &quot; &quot; + (int) (System.currentTimeMillis() / 1000)); <ul><li>Perl: </li></ul>sub graphite_submit { my $path = shift; my $values = shift; # hash ref of values by name my $time = shift; $time = time() unless defined($time); my ($host, $port) = qw(localhost 2003); my $sock = IO::Socket::INET->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp', ); die &quot;Could not connect to $host:$port : $!n&quot; unless defined($sock); foreach my $key (keys %$values) { print $sock &quot;$path.$key $values->{$key} $timen&quot;; } } <ul><li>Shell! $echo tagged.sample.data.point1 31337 `date +%s` | nc -w 3 graphite01 2003 </li></ul>
    29. 29. Coming Attractions <ul><li>Ceres – replaces Whisper
    30. 30. Dashboard – give targeted view of the data
    31. 31. Interactive Graphs (flot?)
    32. 32. API improvements
    33. 33. Multiple Y axes </li></ul>
    34. 34. Cool things folks are doing with Graphite ESNet: <ul><li>Written by John Dugan
    35. 35. Takes data from EsxSNMP and NetAlmanac
    36. 36. Integrates with Internal Java tool for event correlation </li></ul>JMXtrans: (http://code.google.com/p/jmxtrans/) <ul><li>Written by Jon Stevens
    37. 37. writers for Graphite (recommended), cacti/rrdtool and stdout </li></ul>
    38. 38. Cool things folks are doing with Graphite Esty Statsd: <ul><li>https://github.com/etsy/statsd
    39. 39. Inspired by Flickr project
    40. 40. “A network daemon for aggregating statistics, rolling them up, then sending them to graphite.”
    41. 41. Implemented in Node.js
    42. 42. Can do counting, timing, sampling
    43. 43. Flushes to Graphite on interval </li></ul>
    44. 44. Cool things folks are doing with Graphite Rocksteady: <ul><li>http://code.google.com/p/rocksteady/
    45. 45. Graphite can consume AMQP
    46. 46. Integrates with Esper (http://esper.codehaus.org/) </li></ul>
    47. 47. Special Thanks Chris Davis Jason Dixon Corey Hickey Yaakov Nemoy Gary Larsen

    ×