Quelle est la différence entre OpenTSDB et Graphite?

28

Pour autant que je sache, voici les principales différences:

  1. OpenTSDB ne détériore pas les données au fil du temps, contrairement à Graphite où la taille de la base de données est prédéterminée.
  2. OpenTSDB peut stocker des métriques par seconde, contrairement à Graphite qui a des intervalles de minutes (je ne suis pas sûr de cela, les documents Graphite affichent des politiques de rétention qui stockent des métriques toutes les minutes, mais je ne sais pas si c'est l'unité de temps minimale que nous peut jouer avec)

Je veux prendre une décision éclairée sur quel outil utiliser pour stocker les métriques, ai-je oublié d'autres différences dans ces 2 systèmes? Comment sont-ils performants / évolutifs?

Question bonus: Existe-t-il un autre système de séries chronologiques que je devrais examiner?

vedang
la source

Réponses:

46

Avertissement: j'ai écrit OpenTSDB .

Je dirais que le plus grand avantage du graphite semble être des capacités graphiques supérieures . Il offre plus de types de graphiques et de fonctionnalités. La complexité du déploiement est également probablement un peu plus faible avec Graphite, car ce n'est pas un système distribué et a donc moins de pièces mobiles.

OpenTSDB , d'autre part, est capable de stocker une quantité beaucoup plus importante de points de données à grain fin. Cela se fait au détriment du déploiement de HBase , ce qui n'est pas si grave pour être honnête. Si vous souhaitez obtenir des données en temps réel jusqu'à la seconde avec >> 10 000 nouveaux points / s de données, OpenTSDB vous conviendra parfaitement.

Quelques informations sur notre échelle actuelle chez StumbleUpon (ces chiffres doublent généralement tous les 2-3 mois):

  • Plus de 1B de nouveaux points de données par jour (= 12k / s en moyenne).
  • Des centaines de milliards de points de données stockés.
  • Moins de 2 To d'espace disque consommé (avant la réplication 3x par HDFS).
  • Les requêtes de lecture sont généralement capables de récupérer, de connecter et de tracer plus de 500 000 points de données par seconde.
tsuna
la source
3
L'intervalle de graphite est configurable. J'utilise généralement des périodes de surveillance de 10 secondes. Et les graphiques sont vraiment adorables. Sinon, je pense que la réponse de tsuna est frappante
Travis Bear
19

Interface utilisateur

Le graphite dispose de superbes outils graphiques disponibles. L'interface Web par défaut est moche (bien que fonctionnelle), mais vous disposez alors d'une multitude d'options graphiques et de tableau de bord.

Quelques exemples:

exemple de tableau de bord grafana

exemple de tableau de bord de l'explorateur de graphiques

exemple de graphique cubism.js

Regardez ici ou ici pour en trouver bien d'autres.

OpenTSDB de l'autre est toujours au stade gnuplot: Interface Web OpenTSDB

Installer

En pratique, Graphite est en réalité beaucoup plus pénible à installer que HBase + OpenTSDB. OpenTSDB dispose d'une documentation complète et de quelques étapes simples. Ce sont les commandes pour installer Graphite , les choses deviennent encore plus compliquées si vous construisez à partir des sources.

Les performances

OpenTSDB ne détériore pas les données au fil du temps, contrairement à Graphite où la taille de la base de données est prédéterminée.

Vrai. Graphite utilise également un format de fichier similaire à RRD, dans la pratique, cela signifie qu'un seul point de données prendra autant d'espace disque que la série à temps plein car cet espace est pré-alloué. Cela signifie également que le traçage d'un intervalle de temps vide prendra autant de temps que s'il y avait des données (un moteur de stockage alternatif, Ceres , est en cours mais je ne l'ai pas encore essayé).

Comme tsuna l'a dit, OpenTSDB vous permettra de stocker beaucoup plus de points de données, en tirant parti de la puissance du HDFS d'Hadoop. Le graphite d'autre part, dont l'architecture est détaillée dans ce chapitre AOSA , est une solution plus adhoc.

OpenTSDB peut stocker des métriques par seconde, contrairement au graphite qui a des intervalles d'une minute.

Non, les deux peuvent se connecter à la seconde.

MasterScrat
la source
1
il semble que opentsdb soit idéal pour stocker des données et le graphite est préférable pour représenter graphiquement. Est-il possible de pointer graphite vers opentsdb pour le backend. Je serais curieux de voir si quelqu'un pouvait se connecter à opentsdb à partir de graphite.
user1471980
4
Notez que Grafana prend également en charge OpenTSDB, et il existe d'autres frontaux attrayants pour OpenTSDB tels que metrilyx .
Wilfred Hughes
@WilfredHughes fait un bon point sur la prise en charge d'OpenTSDB par Grafana. Notez également que OpenTSDB peut stocker jusqu'à une précision en millisecondes.
Nicholas