В чем разница между OpenTSDB и Graphite?

Насколько я могу судить, вот основные отличия:

  1. OpenTSDB не портит данные с течением времени, в отличие от Graphite, где размер базы данных заранее определен.
  2. OpenTSDB может хранить метрики в секунду, в отличие от Graphite, у которой есть минутные интервалы (я не уверен в этом, документы Graphite показывают политики хранения, которые хранят метрики каждую минуту, но я не знаю, является ли это минимальной единицей времени, которую мы можно поиграть)

Я хочу принять обоснованное решение о том, какой инструмент использовать для хранения метрик, пропустил ли я какие-либо другие различия в этих двух системах? Насколько они производительны / масштабируемы?

Бонусный вопрос: есть ли какая-нибудь другая система временных рядов, на которую я должен обратить внимание?

2 ответа

Решение

Отказ от ответственности: я написал OpenTSDB.

Я бы сказал, что самое большое преимущество Graphite - это превосходные графические возможности. Он предлагает больше типов графиков и функций. Сложность развертывания также, вероятно, немного ниже в Graphite, поскольку она не является распределенной системой и поэтому имеет меньше движущихся частей.

OpenTSDB, с другой стороны, способен хранить значительно больший объем точных данных. Это происходит за счет развертывания HBase, что не так уж и сложно, если честно. Если вы хотите получать данные в режиме реального времени до секунды с >>10k новых точек данных / с, то OpenTSDB вам подойдет.

Некоторая информация о нашей текущей шкале на StumbleUpon (эти цифры обычно удваиваются каждые 2-3 месяца):

  • Более 1B новых точек данных в день (в среднем =12k/s).
  • Сотни миллиардов точек хранения данных.
  • Меньше 2 ТБ дискового пространства (до 3x репликации HDFS).
  • Запросы чтения обычно способны извлекать, обрабатывать и отображать более 500 тыс. Точек данных в секунду.

Пользовательский интерфейс

В графите есть несколько превосходных графических инструментов. Веб-интерфейс по умолчанию уродлив (хотя и функционален), но тогда у вас есть множество отличных графических и инструментальных панелей.

Несколько примеров:

  • Панель инструментов Grafana, с динамическими (масштабируемыми) графиками

пример графической панели

пример панели инструментов графического обозревателя

Пример диаграммы cubism.js

Посмотрите здесь или здесь, чтобы найти еще много.

OpenTSDB с другой стороны все еще находится на стадии gnuplot: Веб-интерфейс OpenTSDB

Настроить

На практике Graphite на самом деле гораздо сложнее в настройке, чем HBase + OpenTSDB. OpenTSDB имеет исчерпывающую документацию и несколько простых шагов. Это команды для установки Graphite, все становится еще сложнее, если вы строите из исходного кода.

Выступления

OpenTSDB не портит данные с течением времени, в отличие от Graphite, где размер базы данных заранее определен.

Правда. Кроме того, Graphite использует формат файла, аналогичный RRD, на практике это означает, что одна точка данных будет занимать столько же места на диске, сколько и полная серия, так как это пространство предварительно выделено. Это также означает, что построение пустого временного интервала займет столько же времени, как если бы там находились данные (работает альтернативный механизм хранения, Ceres, но я еще не пробовал).

Как сказал Цуна, OpenTSDB позволит вам хранить значительно больше точек данных, используя мощь HDFS Hadoop. С другой стороны, графит, архитектура которого подробно описана в этой главе AOSA, является более быстрым решением.

OpenTSDB может хранить метрики в секунду, в отличие от графита, который имеет минутные интервалы.

Нет, оба могут войти ко второму.

Другие вопросы по тегам