Guia completo do Micrometer para Java com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Guia completo do Micrometer para Java com exemplos práticos

1. O que é e para que serve

Micrometer é uma biblioteca para coleta de métricas de aplicações Java (e linguagens JVM), que fornece uma fachada sobre sistemas populares de monitoramento, como Prometheus, Graphite, Datadog, InfluxDB, New Relic e outros. Ela implementa a especificação Micrometer Observation API e é o padrão de fato para coleta de métricas no ecossistema Spring Boot (a partir da versão 2.0).

Para que serve? Em arquiteturas modernas de microsserviços, é fundamental entender o que acontece com a aplicação: quantas requisições estão sendo processadas, qual a latência das respostas, quanta memória está sendo consumida, com que frequência ocorrem erros. O Micrometer permite unificar a coleta desses dados sem ficar preso a um backend específico de monitoramento. Você escreve o código uma vez e alterna entre Prometheus, Graphite ou CloudWatch apenas alterando a dependência no pom.xml ou build.gradle.

A biblioteca oferece um conjunto rico de ferramentas: contadores (Counter), histogramas (Histogram), temporizadores (Timer), distribuições (DistributionSummary), além de suporte a tags para agregação multidimensional de métricas. A integração nativa com a JVM (coletor de lixo, threads, memória) e frameworks populares (Spring, Hibernate, Jetty, Tomcat) a torna indispensável para monitoramento em produção.

2. Instalação

O Micrometer é distribuído via Maven Central. Para projetos Java, utiliza-se Maven ou Gradle. Abaixo estão os comandos exatos para adicionar as dependências.

Maven (pom.xml)

<!-- Módulo principal do Micrometer -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-core</artifactId>
    <version>1.14.5</version> <!-- Verifique a versão mais recente no mvnrepository.com -->
</dependency>

<!-- Registro para Prometheus -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.14.5</version>
</dependency>

Gradle (build.gradle)

dependencies {
    implementation 'io.micrometer:micrometer-core:1.14.5'
    implementation 'io.micrometer:micrometer-registry-prometheus:1.14.5'
}

Importante: Se você usa Spring Boot, basta adicionar spring-boot-starter-actuator e micrometer-registry-prometheus — o Spring Boot configurará automaticamente o MeterRegistry.

3. Início rápido — exemplo mínimo funcional

Vamos criar uma aplicação de console simples que coleta métricas e as exporta no formato Prometheus.

import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;

public class QuickStart {
    public static void main(String[] args) throws InterruptedException {
        // 1. Cria o registro de métricas para Prometheus
        PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);

        // 2. Cria um contador
        Counter counter = Counter.builder("my.counter")
                .description("Exemplo de contador")
                .tag("env", "test")
                .register(registry);

        // 3. Incrementa o contador em um loop
        for (int i = 0; i < 5; i++) {
            counter.increment();
            Thread.sleep(1000);
        }

        // 4. Exibe as métricas no formato Prometheus
        System.out.println("=== Prometheus Metrics ===");
        System.out.println(registry.scrape());
    }
}

Saída no console:

=== Prometheus Metrics ===
# HELP my_counter_total Exemplo de contador
# TYPE my_counter_to

Recommendations