Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

As far as I can tell, here are the main differences:

  1. OpenTSDB does not deteriorate data over time, unlike Graphite where the size of the database is pre-determined.
  2. OpenTSDB can store metrics per second, as opposed to Graphite which has minute intervals (I'm not sure of this, Graphite docs show retention policies which stores metrics every minute, but I don't know if this is the minimum unit of time we can play with)

I want to make an informed decision about which tool to use in order to store metrics, have I missed any other differences in these 2 systems? How performant/scalable are they?

Bonus Question: Is there any other time series system I should look at?

share|improve this question
add comment

2 Answers

up vote 24 down vote accepted

Disclaimer: I wrote OpenTSDB.

I would say that the biggest advantage of Graphite seems to be superior graphing capabilities. It offers more graph types and features. Deployment complexity is also probably a bit lower with Graphite, as it's not a distributed system and thus has fewer moving parts.

OpenTSDB, on the other hand, is capable of storing a significantly larger amount of fine-grained data points. This comes at the cost of deploying HBase, which isn't that big of a deal to be honest. If you want to get real-time data down to the second with >>10k new data points/s, then OpenTSDB will suit you well.

Some info about our current scale at StumbleUpon (these numbers generally double every 2-3 months):

  • Over 1B new data points per day (=12k/s on average).
  • Hundreds of billions of data points stored.
  • Less than 2TB of disk space consumed (before 3x replication by HDFS).
  • Read queries are generally capable of retrieving, munging and plotting over 500k data points per second.
share|improve this answer
    
thanks for the information @tsuna. –  vedang Feb 23 '12 at 12:20
    
Graphite's interval is configurable. I typically use 10-second monitoring periods. And the graphs are really sweet. Otherwise, I think tsuna's answer is bang-on –  Travis Bear Apr 10 '13 at 22:40
add comment

User interface

Graphite has some superb graphing tools available. The default web interface is ugly (although functional), but you then have a wealth of great graphing and dashboard options.

A few examples:

  • Grafana dashboard, with dynamic (zoomable) graphs

grafana dashboard example

graph explorer dashboard example

cubism.js chart example

Look here or here to find many more.

OpenTSDB on the other is still at the gnuplot stage: OpenTSDB web interface

Setup

In practice, Graphite is actually much more of a pain to setup than HBase + OpenTSDB. OpenTSDB has a comprehensive documentation and a few straightforward steps. These are the commands to install Graphite, things get even trickier if you build from source.

Performances

OpenTSDB does not deteriorate data over time, unlike Graphite where the size of the database is pre-determined.

True. Also Graphite uses a file format similar to RRD, in practice this means a single data point will take as much disk space as the full time serie since this space is pre-allocated. This also means plotting an empty time interval will take as much time as if there was data there (an alternative storage engine, Ceres, is in the work but I haven't tried it yet).

As tsuna said OpenTSDB will let you store significantly more data points, leveraging the power of Hadoop's HDFS. Graphite on the other hand, whose architecture is detailed in this AOSA chapter, is a more adhoc solution.

OpenTSDB can store metrics per second, as opposed to graphite which has minute intervals.

Nope, both can log down to the second.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.