Qual é a diferença entre OpenTSDB e Graphite?

28

Tanto quanto eu posso dizer, aqui estão as principais diferenças:

  1. O OpenTSDB não deteriora os dados ao longo do tempo, ao contrário do Graphite, onde o tamanho do banco de dados é predeterminado.
  2. O OpenTSDB pode armazenar métricas por segundo, ao contrário do Graphite, que possui intervalos de minutos (não tenho certeza disso, os documentos do Graphite mostram políticas de retenção que armazenam métricas a cada minuto, mas não sei se essa é a unidade de tempo mínima que pode brincar com)

Desejo tomar uma decisão informada sobre qual ferramenta usar para armazenar métricas. Perdi outras diferenças nesses 2 sistemas? Qual é o desempenho / escalabilidade deles?

Pergunta bônus: Existe algum outro sistema de séries temporais que eu deva examinar?

vedang
fonte

Respostas:

46

Disclaimer: Eu escrevi o OpenTSDB .

Eu diria que a maior vantagem do Graphite parece ser uma capacidade superior de representação gráfica . Oferece mais tipos e recursos de gráficos. A complexidade da implantação também é provavelmente um pouco menor com o Graphite, pois não é um sistema distribuído e, portanto, possui menos partes móveis.

O OpenTSDB , por outro lado, é capaz de armazenar uma quantidade significativamente maior de pontos de dados refinados. Isso implica o custo da implantação do HBase , o que não é grande coisa para ser honesto. Se você deseja obter dados em tempo real para o segundo com >> 10k novos pontos / s de dados, o OpenTSDB é adequado para você.

Algumas informações sobre nossa escala atual no StumbleUpon (esses números geralmente dobram a cada 2-3 meses):

  • Mais de 1 bilhão de novos pontos de dados por dia (= 12k / s em média).
  • Centenas de bilhões de pontos de dados armazenados.
  • Menos de 2 TB de espaço em disco consumido (antes da replicação de 3x pelo HDFS).
  • As consultas de leitura geralmente são capazes de recuperar, filtrar e plotar mais de 500 mil pontos de dados por segundo.
tsuna
fonte
3
O intervalo de grafite é configurável. Eu normalmente uso períodos de monitoramento de 10 segundos. E os gráficos são realmente bons. Caso contrário, eu acho que a resposta do tsuna é bang-on
Urso Travis
19

Interface de usuário

Grafite tem algumas excelentes ferramentas gráficas disponíveis. A interface da web padrão é feia (embora funcional), mas você tem várias opções excelentes de gráficos e painéis.

Alguns exemplos:

  • Painel Grafana , com gráficos dinâmicos (com zoom)

exemplo de painel grafana

exemplo de painel do graph explorer

Exemplo de gráfico cubism.js

Olhe aqui ou aqui para encontrar muito mais.

O OpenTSDB, por outro lado, ainda está no estágio gnuplot: Interface da web do OpenTSDB

Configuração

Na prática, o Grafite é realmente muito mais complicado de configurar do que o HBase + OpenTSDB. O OpenTSDB possui uma documentação abrangente e algumas etapas diretas. Estes são os comandos para instalar o Graphite ; as coisas ficam ainda mais complicadas se você construir a partir do código-fonte.

Performances

O OpenTSDB não deteriora os dados ao longo do tempo, ao contrário do Graphite, onde o tamanho do banco de dados é predeterminado.

Verdade. O Graphite também usa um formato de arquivo semelhante ao RRD, na prática, isso significa que um único ponto de dados ocupa tanto espaço em disco quanto a série em tempo integral, pois esse espaço é pré-alocado. Isso também significa que a plotagem de um intervalo de tempo vazio levará tanto tempo quanto se houvesse dados (um mecanismo de armazenamento alternativo, Ceres , está em funcionamento, mas eu ainda não o tentei).

Como o tsuna disse, o OpenTSDB permitirá armazenar significativamente mais pontos de dados, aproveitando o poder do HDFS do Hadoop. Por outro lado, a grafite, cuja arquitetura é detalhada neste capítulo da AOSA , é uma solução mais adhoc.

O OpenTSDB pode armazenar métricas por segundo, em oposição à grafite que possui intervalos de minutos.

Não, ambos podem fazer logon no segundo.

MasterScrat
fonte
1
parece que o opentsdb é ótimo para armazenar dados e a grafite é melhor para gráficos. É possível apontar grafite para opentsdb para back-end. Eu ficaria curioso para ver se alguém foi capaz de se conectar ao opentsdb a partir de grafite.
user1471980
4
Observe que o Grafana também suporta o OpenTSDB e existem outras interfaces atraentes para o OpenTSDB, como o metrilyx .
Wilfred Hughes
@WilfredHughes makes a good point about Grafana supporting OpenTSDB. Also note that OpenTSDB can store down to millisecond precision.
Nicholas