tdc2016sp - trilha bigdata
TRANSCRIPT
Globalcode – Open4education
InfluxDB: Como monitorar milhares de dados por segundo em real time.
Marcos Vinicius Ribeiro ArtigasSoftware Engineer na Umbler
Globalcode – Open4education
O início, o cenário...
Globalcode – Open4education
1 ano e 3 meses :)
+ de 26 mil usuários+ de 23 mil sites hospedados+ de 20 mil contas de e-mail+ de 3 mil servidores liberados+ de 15 mil bancos de dados criados
Previsão para o próximo ano é de triplicar esses valores.
Globalcode – Open4education
Encontramos uma necessidade
Globalcode – Open4education
EIIITA!!
Globalcode – Open4education
Então,
o que é um banco de dados de série temporal?
(TSDB)
Globalcode – Open4education
Time Series Data???
• Time Series Data, é nada mais do que, uma sequência de pontos de dados temporais, geralmente constituídos por sucessivas medições feitas a partir da mesma fonte ao longo de um intervalo de tempo.
• Seria algo como... •Data/Hora -> Valor•Data/Hora -> Valor•Data/Hora -> Valor
Globalcode – Open4education
Ok, quais TSDB existem?
e muitos outros ...
Atlas
Globalcode – Open4education
Globalcode – Open4education
Principais características
● Alta performance para gravação de dados.● Escrita e leituras realizadas através de uma HTTP API.● Linguagem de consulta (InfluxQL) parecida com SQL.● Tags, permitem indexação de séries para consultas
rápidas e eficientes.● Políticas de retenção e consultas contínuas.● Bibliotecas de client desenvolvidas para as principais
linguagens.
Globalcode – Open4education
Escrevendo no InfluxDB
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu,host=server01 value=9.64 143405556200’
URL da HTTP API de escrita + nome do banco.
Globalcode – Open4education
Escrevendo no InfluxDB
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu,host=server01 value=9.64 14340555620’
cpu = measurement
Globalcode – Open4education
Escrevendo no InfluxDB
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu,host=server01 value=9.64 14340555620’
host = tagserver01 = valor da tag
Globalcode – Open4education
Escrevendo no InfluxDB
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu,host=server01 value=9.64 143405556200’
value = field9.64 = valor da medição
Globalcode – Open4education
Escrevendo no InfluxDB
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu,host=server01 value=9.64 143405556200’
Data e hora em formato Epoch Time
Globalcode – Open4education
Consultando no InfluxDb
curl -GET 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT * FROM cpu WHERE host='server01'"
Globalcode – Open4education
T.I.C.K
Telegraf
InfluxDB
Chronograf
Kapacitor
Globalcode – Open4education
Telegraf
• + 50 plugins de inputex: Docker, Linux, Redis, Apache, PHP-FPM, Windows e etc.
• + 15 plugins de outputex: InfluxDB, Datadog, File, OpenTSDB, Prometheus e etc.
Globalcode – Open4education
Chronograf
Globalcode – Open4education
Kapacitor
Kapacitor é uma estrutura de processamento de dados Open Source que facilita a criação de alertas sobre estruturas de dados temporais e detecção de anomalias.
Globalcode – Open4education
Exemplo de um .tickstream |from() .measurement('cpu')
|window() .period(10m) .every(5m) |alert()
.warn(lambda: "value" > 80) .crit(lambda: "value" > 90) .log('/tmp/alerts.log')
.email() .slack()
.channel(“#alerts”)
Globalcode – Open4education
InfluxDb + Kapacitor
Globalcode – Open4education
Mais informações
Documentação e Slack da InfluxData:
https://docs.influxdata.com/
https://gophers.slack.com/messages/influxdb/