lspe meetup talk on graphite

Download LSPE Meetup talk on Graphite

If you can't read please download the document

Upload: dave-mangot

Post on 16-Apr-2017

9.600 views

Category:

Technology


0 download

TRANSCRIPT

Realtime Enterprise Graphing and Visualization with Graphite

Dave Mangot

tech.mangot.comwww.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

Not Nagios, other monitoring, fooled ya

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

Who has heard of or knows what a key value pair is?

How about epoch time or unix time?

Then you can use graphite.

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} $time\n"; } }

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

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 graphsdrag'n'drop reordering & merging graphs, all the composer featuresare there (graph options, functions, etc) plus a few more (breakout agraph with wildcards into separate graphs,

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 NemoyGary Larsen