当前位置: 首页 > article >正文

使用 Grafana 监控 Spring Boot 应用

随着软件开发领域的不断发展,监控和可观测性已成为确保系统可靠性和性能的关键实践。Grafana 是一个功能强大的开源工具,能够为来自各种来源的监控数据提供丰富的可视化功能。在本篇博客中,我们将探讨如何将 Grafana 与 Spring Boot 应用程序集成,以创建一个能够跟踪重要应用指标的监控系统。

为什么选择 Grafana 进行监控?

Grafana 在以下方面表现出色:

  • • 可视化:Grafana 提供了多种可视化图表,如图形、热图和仪表盘。

  • • 告警:基于收集的指标设置告警,帮助您在问题升级之前发现它们。

  • • 自定义仪表盘:构建自定义仪表盘,实时跟踪应用程序的健康状态。

通过将 Grafana 与 Spring Boot 应用程序结合,您可以跟踪性能指标,如内存使用率、CPU 负载、响应时间以及其他自定义指标。

先决条件

在深入探讨如何将 Grafana 与 Spring Boot 集成之前,请确保已设置以下内容:

  1. 1. Spring Boot 应用程序(版本 2.5 或更高)。

  2. 2. Prometheus 用于指标收集。

  3. 3. Grafana 已安装(可以通过 Docker 或直接在机器上安装)。

步骤 1:在 Spring Boot 中添加依赖项

首先,我们需要配置 Spring Boot 应用程序以暴露指标。这是通过 Micrometer 库实现的,该库与 Spring Boot 集成。Prometheus 将收集这些指标,然后可以在 Grafana 中进行可视化。

在 pom.xml 中添加以下依赖项:

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • • Micrometer 是指标收集库,Prometheus 注册表帮助收集和存储指标。

  • • Actuator 提供了生产就绪的端点,如 /metrics,用于暴露应用程序指标。

步骤 2:在 Spring Boot 中暴露指标

通过在 application.properties 或 application.yml 文件中添加以下属性,启用 Spring Boot 的指标端点:

management.endpoints.web.exposure.include=*
management.metrics.export.prometheus.enabled=true
management.endpoint.metrics.enabled=true

这将允许 /actuator/prometheus 端点以 Prometheus 可以抓取的格式暴露指标。

步骤 3:配置 Prometheus

接下来,您需要配置 Prometheus 以从 Spring Boot 应用程序中抓取指标。如果尚未安装 Prometheus,可以通过 Docker 或直接下载安装。您可以使用以下 prometheus.yml 配置文件从 Spring Boot 应用程序中抓取指标:

global:
  scrape_interval: 15s # Prometheus 抓取指标的频率。

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

在此配置中:

  • • scrape_interval 定义了 Prometheus 抓取指标的频率。

  • • metrics_path 是 Spring Boot Actuator 暴露指标的端点。

  • • targets 定义了 Prometheus 可以找到 Spring Boot 应用程序的位置(在本例中为 localhost:8080)。

配置完成后,通过以下命令启动 Prometheus:

./prometheus --config.file=prometheus.yml

现在,您应该可以在 http://localhost:9090 访问 Prometheus,并验证它是否正在从 Spring Boot 应用程序中抓取指标。

步骤 4:设置 Grafana

现在 Prometheus 正在收集您的指标,我们可以设置 Grafana 来可视化这些指标。

1. 安装 Grafana:如果尚未安装,可以通过以下 Docker 命令运行 Grafana:

docker run -d -p 3000:3000 grafana/grafana

2. 添加 Prometheus 作为数据源

  • • 访问 http://localhost:3000 进入 Grafana UI。

  • • 使用默认凭据(admin/admin)登录。

  • • 在 Configuration 菜单下,选择 Data Sources,并添加 Prometheus 作为数据源,URL 为 http://localhost:9090

3. 创建仪表盘

  • • 添加数据源后,创建一个新的仪表盘。

  • • 您可以通过查询 Prometheus 指标来向仪表盘添加面板。例如,要监控 JVM 内存使用情况,可以使用查询 jvm_memory_used_bytes

步骤 5:可视化指标

Grafana 允许您创建自定义可视化图表。以下是一些常见指标的监控示例:

内存使用情况

jvm_memory_used_bytes

CPU 负载

system_cpu_usage

HTTP 请求

http_server_requests_seconds_count

添加面板后,您将拥有一个功能齐全的仪表盘,能够实时可视化 Spring Boot 应用程序的指标。

步骤 6:设置告警(可选)

Grafana 的告警系统允许您根据收集的指标配置告警。您可以创建一个告警,当应用程序的内存使用率超过某个阈值时通知您。

  1. 1. 在仪表盘中,点击面板并选择 Edit

  2. 2. 在 Alert 选项卡下,配置您的告警条件。

  3. 3. 设置通知渠道,如电子邮件或 Slack,以便发送告警。

结论

将 Grafana 与 Spring Boot 应用程序集成,为监控和可视化应用程序性能提供了一个强大的解决方案。通过使用 Prometheus 收集指标并在 Grafana 中进行可视化,您可以确保系统健康,并快速解决出现的问题。通过此设置,您将拥有一个强大的可观测性堆栈,能够随着 Spring Boot 应用程序的扩展而扩展,确保性能优化和主动监控。


http://www.kler.cn/a/559363.html

相关文章:

  • 离子阱量子计算机的原理与应用:开辟量子计算的新天地
  • 分布式服务注册与发现
  • Maxscript血管网络分形的算法实现
  • Golang学习笔记_36——装饰器模式
  • DeepSeek本地搭建 和 Android
  • 后门慈善家
  • Leetcode 3464. Maximize the Distance Between Points on a Square
  • C#素数判定算法
  • Java-01-源码篇-04集合-05-ConcurrentHashMap(1)
  • 模型评测:基于Python和PyTorch的深度学习模型性能评估
  • Redis的弊端
  • vue3 Props的使用
  • SwinTransformer 改进:添加SimAM轻量级注意力机制
  • 第十八天 WebView深度优化指南
  • PH热榜 | 2025-02-23
  • 记录一个ES分词器不生效的解决过程
  • PHP课程预约小程序源码
  • ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
  • 孜然单授权系统V2.0PHP授权系统
  • 《Mycat核心技术》第17章:实现MySQL的读写分离