45
Coleta, armazenamento e visualização de métricas em uma arquitetura de microserviços na cloud Rafael Souza @rafael_psouza

TDC2016POA | Trilha Arquitetura - Coleta, armazenamento e visualização de métricas (Observability) em uma arquitetura de microserviços na cloud

Embed Size (px)

Citation preview

Coleta, armazenamento e visualização de métricas em uma arquitetura de

microserviços na cloud Rafael Souza

@rafael_psouza

○ Engenheiro de Computação○ Engenheiro de Software○ Arquitetura de Software, SOA, Microservices, APIs…

○ Contexto do Projeto○ Problema○ Overview○ Instrumentação ○ Coleta○ Armazenamento○ Visualização e Alertas

Agenda

Contexto do Projeto

Tecnologias

Times por Serviço/Plataforma

Stability and Performance Engineering

○ Testes de Performance○ Engenharia de Caos○ Performance tuning/troubleshooting○ Definir/Manter componentes de telemetria

O Problema

Debug

Como definir a causa raiz dos problemas?

○ Como está a saúde dos serviços/componentes?○ Quais são as características de performance○ Validar suposições e torná-las explícitas

Visibilidade de saúde e performance

Confiabilidade e eficiência

○ Até onde o sistema é confiável?○ Existe um bom uso de recursos computacionais?

Os nossos problemas

○ Responsabilidade “sem dono”○ Monitoramento ineficiente (não confiável)○ Pouca visibilidade dos serviços○ Pouca visibilidade dos componentes de infra○ Criar confidence score (Canary Release)

Observability / Telemetry

Exposição e Coleta Visualização e QueryArmazenamento

TracingAlertas Logs

Componentes comuns

Instrumentação

○ Tornar métricas visíveis○ O que expor○ Como expor○ Gauges and Counters

Servo

Outras opções no mundo Java

○ Dropwizard metrics○ Spring Boot Actuator

Infraestrutura e SO

○ Push x Coleta○ Collectd○ Sensu checks

Coleta de Métricas

Collectd

○ Open Source○ Escrito em C (performance)○ Modular e Portável○ Código sofisticado para Network

Collectd: Arquitetura

Collectd: 128 plugins catalogados

Sensu: ~160 plugins + Nagios

Armazenamento de Métricas

○ Identificador○ Tipo○ Valor○ Quando? (timestamp)

O que é uma métrica?

Sensu

Elasticsearch

○ Não é uma boa ideia○ Martelo?○ SEARCH

TSDB

“A time series database (TSDB) is a software system that is optimized for handling time series data”

○ Indexado por tempo○ Queries○ Operações matemáticas○ Dynamic thresholds

TSDB: Vantagens

○ InfluxDB○ OpenTSDB○ Graphite (Whisper)○ RIAK TS○ DalmatinerDB○ ...

TSDB: Opções

Visualização e Alertas

○ Correlacionar métricas - Informação○ Métricas multiníveis○ Relacionar dashboards e alertas

Visualização

○ Static Thresholds○ Dynamic Thresholds○ Detecção de anomalias

Alertas

○ Prometheus○ Graphana○ Riemann○ InfluxData

Opções

Aprendizados Importantes

Obrigado!

Coleta, armazenamento e visualização de métricas em uma arquitetura de

microserviços na cloudRafael Souza

@rafael_psouzahttp://rafaelsouza.eng.br