Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Métricas e alertas de aplicações com Micrometer...

Métricas e alertas de aplicações com Micrometer e Prometheus

Um tópico muito importante dentro de observabilidade de aplicações é o monitoramento e a capacidade de gerar alertas de determinadas situações. Nesta palestra pretendo mostrar como utilizar o Micrometer para expor as métricas de sua aplicação java, como configurar o Prometheus para coletar estas métricas possibilitando gerar alertas e como acompanhar o monitoramento em tempo real de CPU, memória, threads, etc. utilizando o Grafana.

Avatar for Caio Santarossa

Caio Santarossa

April 23, 2019
Tweet

Other Decks in Technology

Transcript

  1. Caio Santarossa Software Architect | Software Engineer +10 anos trabalhando

    com desenvolvimento Foco em APIs e Microservices [email protected] caiosantarossa @caiosantarossa
  2. ▪ Micrometer ▪ Monitomento com Prometheus ▪ Visualização de Métricas

    ▪ Alertas são necessários? ▪ Alertmanager ▪ Demo Agenda
  3. Sobre o Micrometer https://micrometer.io Biblioteca de instrumentação para aplicações JVM

    Interface que fornece timers, gauges, counters, distribution summaries, e long task timers
  4. Micrometer Counter counter = Counter .builder("counter") .description( "counter description" )

    // optional .tags("region", "test") // optional .register(registry); counter.increment(); Criando um contador
  5. Micrometer @Bean public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags () { return registry ->

    registry.config() .commonTags("application", "sample-spring-service" ); } Tags customizadas
  6. +

  7. Sobre Alertas Criando alertas: Devem ser urgentes, importantes, acionáveis e

    reais Excesso de alertas é mais difícil de resolver do que a falta deles Emita um alerta com base nos sintomas e não na causa
  8. Sobre o Alertmanager Alertmanager Solução para gerenciamento de alertas Faz

    desduplicação, agrupamento, envio, silenciamento e inibição de alertas
  9. Alertas no Prometheus - alert: APIHighRequestLatency expr: http_server_requests_seconds_max > 3

    annotations: summary: "High request latency on {{ $labels.instance }}" description: "{{ $labels.instance }} has a request latency above 3s (current value: {{ $value }}s)" Criando um alerta
  10. Notificações no Alertmanager global: slack_api_url: 'https://hooks.slack.com/foo' route: receiver: 'slack-notifications' group_by:

    [alertname, datacenter, app] receivers: - name: 'slack-notifications' slack_configs: - channel: '#alerts' text: 'https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ .GroupLabels.alertname }}' Criando um receiver