Banco temporal Influxdb + Grafana: Operando sua Plataforma

40
InfluxDB + Grafana Telemetria na sua plataforma Celso Crivelaro @celsocrivelaro

Transcript of Banco temporal Influxdb + Grafana: Operando sua Plataforma

Page 1: Banco temporal Influxdb + Grafana: Operando sua Plataforma

InfluxDB + GrafanaTelemetria na sua plataforma

Celso Crivelaro@celsocrivelaro

Page 2: Banco temporal Influxdb + Grafana: Operando sua Plataforma

DEVELOPER @

Page 3: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 4: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 5: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Por quê?

Page 6: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Crise da Plataforma

Page 7: Banco temporal Influxdb + Grafana: Operando sua Plataforma

"O software está lento..."

Page 8: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 9: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Healthcheck OK!

Logs OK!

Testes manuais OK!

Page 10: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Corrigimos o problema, mas ainda ficou a falta de visibilidade…

Page 11: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Healthcheck: OK / NOK

Não tínhamos números dos tempos da plataforma

Era muito difícil perceber tendências e casos estranhos

Logs apenas mostram operações

Clientes percebiam problemas antes da gente

Page 12: Banco temporal Influxdb + Grafana: Operando sua Plataforma

1a IDEIA Fazer um teste de carga

Page 13: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Dev / QA / Produção Diferentes

Não dá para quebrar Produção

Iria querer muito tempo de dev/ops

O número iria mostrar apenas o teto da plataforma

Page 14: Banco temporal Influxdb + Grafana: Operando sua Plataforma

2a IDEIA Monitorações das máquinas

Page 15: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Monitoramento de memória / carga / disco / filas

As máquinas estavam OK, a app não

Qualquer variação da métrica causava alvoroço

Page 16: Banco temporal Influxdb + Grafana: Operando sua Plataforma

3a IDEIA Telemetria

Page 17: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Inspirações

Page 18: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 19: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 20: Banco temporal Influxdb + Grafana: Operando sua Plataforma

https://www.youtube.com/watch?v=czes-oa0yik

Page 21: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Com o quê?

Page 22: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Appinfluxdb-ruby

influxdb-python

Page 23: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Série Temporal

SQL Like / Schemaless

Boa documentação

Funções nativas com tempo

Page 24: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Estrutura do dado

Page 25: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Equivale a uma tabela SQL

Chave primáriaTime

Measurement

Values

Tags

Chaves-valor da medida, não indexados

Metadados indexados, sempre strings

cpu_load

load=30,temperature=50

server=name1,region=EMEA

POINT

Page 26: Banco temporal Influxdb + Grafana: Operando sua Plataforma

> SELECT * FROM policy_entry

name: policy_entry

------------------

time cache_hit host success time

1464013724 1 saasauth0005 1 0.35

Fetching data

Page 27: Banco temporal Influxdb + Grafana: Operando sua Plataforma

> SELECT * FROM policy_entry

name: policy_entry

------------------

time cache_hit host success time

1464013724 1 saasauth0005 1 0.35

Fetching data

Page 28: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Funções

Page 29: Banco temporal Influxdb + Grafana: Operando sua Plataforma

count percentil

sum

mean

top

max

derivative

difference

moving_average

Aggregations Selectors Transformations

Page 30: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Funções de tempo

Page 31: Banco temporal Influxdb + Grafana: Operando sua Plataforma

> SELECT * FROM messages where time < now() - 1h

Page 32: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Várias bases

Gráficos + Plugins

Page 33: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 34: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Como representar os dados?

Page 35: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Série Temporal

Padrões

Média de 1 min

Valores Absolutos

Valores Absolutos

Série Temporal

Page 36: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Percentil -> Para tempo e medidas

Percentil 95%

Page 37: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Percentil 95%

Média (1 min)

Percentil x Média

Page 38: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 39: Banco temporal Influxdb + Grafana: Operando sua Plataforma
Page 40: Banco temporal Influxdb + Grafana: Operando sua Plataforma

Obrigado!

@celsocrivelarohttp://crivelaro.me