• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LSPE Meetup talk on Graphite
 

LSPE Meetup talk on Graphite

on

  • 9,361 views

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

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

Statistics

Views

Total Views
9,361
Views on SlideShare
2,541
Embed Views
6,820

Actions

Likes
1
Downloads
22
Comments
0

30 Embeds 6,820

http://blog.tagged.com 6147
http://tech.mangot.com 447
http://blog.tag-dev.com 99
http://blog.tag-stage.com 64
http://translate.googleusercontent.com 11
http://stigdb.org 7
http://74.6.238.252 5
http://74.6.117.48 5
http://stigblog.tag-stage.com 3
http://www.bing.com 3
http://webcache.googleusercontent.com 3
http://stig.tag-stage.com 2
http://207.46.192.232 2
http://hghltd.yandex.net 2
http://131.253.14.98 2
http://translate.yandex.net 2
http://comet02.tagged.com 2
http://72.30.186.176 2
http://www.slashdocs.com 1
http://74.6.116.71 1
http://isearch.fantastigames.com 1
http://web.archive.org 1
http://revolusionline.com 1
http://about.tagged.com 1
http://dblog01.tag-dev.com 1
http://66.163.168.225 1
http://74.6.238.254 1
http://www.stigdb.org 1
http://www.google.com 1
http://131.253.14.66 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 LSPE Meetup talk on Graphite Presentation Transcript

  • Realtime Enterprise Graphing and Visualization with Graphite Dave Mangot tech.mangot.com www.tagged.com
  • Graphite Overview
    • Not monitoring, graphing!
    • Complex graph creation Web / Dashboard, “CLI” and API interfaces
    • http://graphite.wikidot.com/
    • http://graphite.readthedocs.org/
    • https://launchpad.net/graphite
  • Oooh...
  • Ahhh...
  • What Graphite Provides
    • EASY to get data into visualization tool from any source
    • Zooming on arbitrary time periods
    • Ability to create ad-hoc graphs from ANY metric
    • Metric Storage
    • LDAP, Memcached integration
  • Graphite Pros
    • Horizontally scalable
    • Rapid graph prototyping (CLI)
    • Graph disparate data points
    • Numerous formulas available (derive, transform, average, sum, etc... )
    • Share graphs with other users
    • Supports existing RRD databases
    • Empower any user to create their own graphs, no advance configuration required
  • Graphite Cons
    • Not a dashboard
    • No hover details
    • No collector
    • Unfortunate name
  • Graphite Components
  • Demo Time!
  • Push vs. Pull/Poll
  • Getting data into Graphite
    • Java:
    Socket socket = new Socket( "graphite01" , 2003 ); PrintStream printStream = new PrintStream(socket.getOutputStream()); printStream.println("tagged.sitemon.active_users" + country + " " + count + " " + (int) (System.currentTimeMillis() / 1000));
    • Perl:
    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 "Could not connect to $host:$port : $!n" unless defined($sock); foreach my $key (keys %$values) { print $sock "$path.$key $values->{$key} $timen"; } }
    • Shell! $echo tagged.sample.data.point1 31337 `date +%s` | nc -w 3 graphite01 2003
  • Coming Attractions
    • Ceres – replaces Whisper
    • Dashboard – give targeted view of the data
    • Interactive Graphs (flot?)
    • API improvements
    • Multiple Y axes
  • Cool things folks are doing with Graphite ESNet:
    • Written by John Dugan
    • Takes data from EsxSNMP and NetAlmanac
    • Integrates with Internal Java tool for event correlation
    JMXtrans: (http://code.google.com/p/jmxtrans/)
    • Written by Jon Stevens
    • writers for Graphite (recommended), cacti/rrdtool and stdout
  • Cool things folks are doing with Graphite Esty Statsd:
    • https://github.com/etsy/statsd
    • Inspired by Flickr project
    • “A network daemon for aggregating statistics, rolling them up, then sending them to graphite.”
    • Implemented in Node.js
    • Can do counting, timing, sampling
    • Flushes to Graphite on interval
  • Cool things folks are doing with Graphite Rocksteady:
    • http://code.google.com/p/rocksteady/
    • Graphite can consume AMQP
    • Integrates with Esper (http://esper.codehaus.org/)
  • Special Thanks Chris Davis Jason Dixon Corey Hickey Yaakov Nemoy Gary Larsen