Monitoring Cassandra with Riemann

46
Real-time Monitoring with Riemann Patricia Gorla @patriciagorla Cassandra Consultant www.thelastpickle.com OSCON

description

Monitor your Cassandra cluster using Riemann

Transcript of Monitoring Cassandra with Riemann

Page 1: Monitoring Cassandra with Riemann

Real-time Monitoring with Riemann

Patricia Gorla@patriciagorlaCassandra Consultantwww.thelastpickle.com

OSCON

Page 2: Monitoring Cassandra with Riemann

About Us

• Work with clients to deliver and improve Apache Cassandra services

• Apache Cassandra committer, Datastax MVP, Hector maintainer, Apache Usergrid committer

• Based in New Zealand & USA

Page 3: Monitoring Cassandra with Riemann

Overview

Setting up Riemann

Simple Monitoring

Aggregate Monitoring

Page 4: Monitoring Cassandra with Riemann

Monitoring a cluster

Page 5: Monitoring Cassandra with Riemann

database Compactions Pending!Data Size!Read/Write Requests!Read/Write Latency!CF SSTable Size

Page 6: Monitoring Cassandra with Riemann

database Compactions Pending!Data Size!Read/Write Requests!Read/Write Latency!CF SSTable Size

Read/Write Request Timeouts!Dropped Messages!Hints Stored

networking

Page 7: Monitoring Cassandra with Riemann

database Compactions Pending!Data Size!Read/Write Requests!Read/Write Latency!CF SSTable Size

Read/Write Request Timeouts!Dropped Messages!Hints Stored

networking

JVM CMS Collection Time!ParNew Collection Time

Page 8: Monitoring Cassandra with Riemann

org.apache.cassandra.metrics

• Codahale metrics library first introduced in CASSANDRA-3671 (v 1.1)

• Pluggable reporters introduced in CASSANDRA-4430 (v 2.0.2)

• Complete description in Apache documentation

Dropped MessagesCache

Commit LogCompactionConnection

Client RequestStorage

Page 9: Monitoring Cassandra with Riemann

Riemann• Real-time

copyright Kyle Kingsbury, used with permission

Page 10: Monitoring Cassandra with Riemann

Riemann• Real-time

• Streams are successions of filters

copyright Kyle Kingsbury, used with permission

Page 11: Monitoring Cassandra with Riemann

Riemann• Real-time

• Streams are successions of filters

• Expressive programming language

copyright Kyle Kingsbury, used with permission

Page 12: Monitoring Cassandra with Riemann

Monitoring Ecosystem

Page 13: Monitoring Cassandra with Riemann

Download package from riemann.io

Page 14: Monitoring Cassandra with Riemann

/etc/riemann/riemann.config

Page 15: Monitoring Cassandra with Riemann

Modified version of https://github.com/addthis/metrics-reporter-config

Page 16: Monitoring Cassandra with Riemann

Specify the metrics to send from Cassandra

Page 17: Monitoring Cassandra with Riemann

cassandra-env.sh

Page 18: Monitoring Cassandra with Riemann

Starting Cassandra

Page 19: Monitoring Cassandra with Riemann

INFO [2014-07-15 21:44:50,712] pool-1-thread-1 - riemann.config - average event #riemann.codec.Event{ :host x.x.x.x, :service org.apache.cassandra.metrics ClientRequest Write Latency .95, :state “ok”, :description nil, :metric 19514.037499999988, :tags nil, :time 1405482287, :ttl nil }

Page 20: Monitoring Cassandra with Riemann

INFO [2014-07-15 21:44:50,712] pool-1-thread-1 - riemann.config - average event #riemann.codec.Event{ :host x.x.x.x, :service org.apache.cassandra.metrics ClientRequest Write Latency .95, :state “ok”, :description nil, :metric 19514.037499999988, :tags nil, :time 1405482287, :ttl nil }

Page 21: Monitoring Cassandra with Riemann

INFO [2014-07-15 21:44:50,712] pool-1-thread-1 - riemann.config - average event #riemann.codec.Event{ :host x.x.x.x, :service org.apache.cassandra.metrics ClientRequest Write Latency .95, :state “ok”, :description nil, :metric 19514.037499999988, :tags nil, :time 1405482287, :ttl nil }

Page 22: Monitoring Cassandra with Riemann

INFO [2014-07-15 21:44:50,712] pool-1-thread-1 - riemann.config - average event #riemann.codec.Event{ :host x.x.x.x, :service org.apache.cassandra.metrics ClientRequest Write Latency .95, :state “ok”, :description nil, :metric 19514.037499999988, :tags nil, :time 1405482287, :ttl nil }

Page 23: Monitoring Cassandra with Riemann

INFO [2014-07-15 21:44:50,712] pool-1-thread-1 - riemann.config - average event #riemann.codec.Event{ :host x.x.x.x, :service org.apache.cassandra.metrics ClientRequest Write Latency .95, :state “ok”, :description nil, :metric 19514.037499999988, :tags nil, :time 1405482287, :ttl nil }

package name class module

Page 24: Monitoring Cassandra with Riemann

INFO [2014-07-15 21:44:50,712] pool-1-thread-1 - riemann.config - average event #riemann.codec.Event{ :host x.x.x.x, :service org.apache.cassandra.metrics ClientRequest Write Latency .95, :state “ok”, :description nil, :metric 19514.037499999988, :tags nil, :time 1405482287, :ttl nil }

Page 25: Monitoring Cassandra with Riemann

/etc/riemann/riemann.config

Page 26: Monitoring Cassandra with Riemann

• Flexible

• Simple to set up

• Keyboard shortcuts

riemann-dash

Page 27: Monitoring Cassandra with Riemann

Edit graphs with keyboard shortcuts

Page 28: Monitoring Cassandra with Riemann
Page 29: Monitoring Cassandra with Riemann

Mean 95th Percentile Latency across all nodes

Page 30: Monitoring Cassandra with Riemann

Mean 95th Percentile Latency across all nodes

Page 31: Monitoring Cassandra with Riemann

Can also use fixed-event-window for less regular occurrences

Page 32: Monitoring Cassandra with Riemann

Mean 95th Percentile Latency across all nodes++

Page 33: Monitoring Cassandra with Riemann

Mean 95th Percentile Latency across all nodes++

Page 34: Monitoring Cassandra with Riemann

Mean 95th Percentile Latency across all nodes++

Page 35: Monitoring Cassandra with Riemann

(avg)

Chart in riemann-dash

Page 36: Monitoring Cassandra with Riemann

(avg)

Chart in riemann-dash

Page 37: Monitoring Cassandra with Riemann
Page 38: Monitoring Cassandra with Riemann
Page 39: Monitoring Cassandra with Riemann

(avg)

Detecting threshold breaches

Page 40: Monitoring Cassandra with Riemann

Generalise which metrics to monitor

Page 41: Monitoring Cassandra with Riemann
Page 42: Monitoring Cassandra with Riemann
Page 43: Monitoring Cassandra with Riemann

Call the custom function in the (streams …) section

Page 44: Monitoring Cassandra with Riemann
Page 45: Monitoring Cassandra with Riemann
Page 46: Monitoring Cassandra with Riemann

Patricia Gorla@patriciagorlaCassandra Consultantwww.thelastpickle.com

OSCONQ&A