自学内容网 自学内容网

Spring Boot 3.4.x 和 Micrometer 2.0 的结合 案例 以及使用方法

Spring Boot 3.4.x 和 Micrometer 2.0 的结合,主要是为了更好地进行应用性能监控。Micrometer 是一个应用性能监控工具,它可以与 Spring Boot 集成,提供一个统一的度量系统,并与各种监控系统(如 Prometheus, Graphite, Datadog, etc.)集成。

以下是一个使用 Spring Boot 3.4.x 和 Micrometer 2.0 的示例,包括基本配置和应用代码。

  1. 添加依赖
    首先,需要在 pom.xml 文件中添加 Micrometer 和相关的监控系统支持依赖。
<dependencies>
    <!-- Spring Boot 3.4.x 依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <!-- Micrometer core 依赖 -->
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-core</artifactId>
    </dependency>

    <!-- 如果使用 Prometheus 作为监控系统 -->
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>
</dependencies>

如果你使用的是其他监控系统(如 Datadog、Graphite),可以添加相应的 Micrometer 依赖。

  1. 配置 application.yml 或 application.properties
    在 Spring Boot 项目的配置文件中,设置 Micrometer 和监控系统的相关配置。

application.yml

management:
  metrics:
    export:
      prometheus:
        enabled: true
  endpoint:
    prometheus:
      enabled: true
```### application.properties
```bash
management.metrics.export.prometheus.enabled=true
management.endpoint.prometheus.enabled=true

这将使 Prometheus 能够收集 Spring Boot 应用的监控数据。

  1. 创建一个 Spring Boot 应用并暴露指标
    接下来,创建一个简单的 Spring Boot 应用并使用 Micrometer 来暴露指标。
package com.example.demo;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import io.micrometer.core.instrument.MeterRegistry;

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {

    private final MeterRegistry meterRegistry;

    public DemoApplication(MeterRegistry meterRegistry) {
        this.meterRegistry = meterRegistry;
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    @Override
    public void run(String... args) throws Exception {
        // 注册一个简单的计数器
        meterRegistry.counter("my_custom_metric", "type", "example");
    }
}

在这个例子中,我们通过 MeterRegistry 对象来注册一个自定义计数器,表示应用的某些业务度量。

  1. 查看暴露的指标
    启动 Spring Boot 应用后,Micrometer 将会自动生成默认的指标并暴露到 /actuator/metrics 和 /actuator/prometheus(如果配置了 Prometheus)。你可以通过浏览器访问 http://localhost:8080/actuator/prometheus 来查看 Prometheus 格式的指标。

  2. 在 Prometheus 中收集数据
    Prometheus 配置示例如下,假设你已经在 Prometheus 中设置了合适的抓取规则。

scrape_configs:
  - job_name: 'spring-boot-app'
    static_configs:
      - targets: ['localhost:8080']
    metrics_path: '/actuator/prometheus'

Prometheus 将会从 Spring Boot 应用中抓取指标数据。

  1. 可视化和分析
    你可以使用 Grafana 等工具,连接到 Prometheus 并创建仪表板来可视化这些度量数据。

  2. 其他常见度量
    除了计数器,还可以使用其他类型的指标,如:

Gauge:表示一个浮动值,比如当前的连接数。
Timer:用于度量时间的延迟,如 HTTP 请求的处理时间。
DistributionSummary:用于计算如请求大小等度量的分布情况。
示例:使用 Timer 记录方法执行时间

import io.micrometer.core.instrument.Timer;

@Component
public class MyService {
    private final Timer timer;
    public MyService(MeterRegistry meterRegistry) {
        this.timer = meterRegistry.timer("method.execution.time");
    }
    public void execute() {
        timer.record(() -> {
            // 这里是你的业务逻辑
            try { Thread.sleep(1000); } catch (InterruptedException e) {}
        });
    }
}

通过这种方式,可以监控方法的执行时间。
使用 Micrometer 2.0 集成到 Spring Boot 3.4.x 中,可以轻松实现应用的性能监控。
配置合适的监控系统(如 Prometheus、Datadog 等),将性能指标导出。
通过定义合适的指标类型(计数器、计时器、仪表等),对应用的各项指标进行监控。
这种结合的优势在于它简化了监控的集成和管理,使得开发者可以更专注于业务逻辑,而不是复杂的监控代码。


原文地址:https://blog.csdn.net/weimeilayer/article/details/145240884

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!