springboot项目接入prometheus并展示到grafana

发布于:2024-07-03 ⋅ 阅读:(9) ⋅ 点赞:(0)

背景

随着业务发展,服务的健康指标变得越来越重要,监控服务的健康指标成为很多公司必要需求。

Prometheus 介绍

img

Prometheus是一个开源的监控和警报工具集,最初由SoundCloud构建。它自2012年以来已成为许多公司和组织监控其IT基础设施的首选解决方案。由于其简单性、高效性和适应性,Prometheus已经成为云原生计算基金会(CNCF)的一部分,与Kubernetes等其他技术紧密集成。
Prometheus的主要特点包括:

  • 多维数据模型:Prometheus使用时间序列数据来存储信息,每个时间序列由唯一的指标名和一组键值对(称为标签)标识。
  • 灵活的查询语言PromQL(Prometheus Query Language)允许用户检索和聚合数据,以便进行详细的分析和可视化。
  • 无依赖存储:Prometheus存储其数据本地,并提供时间序列压缩以节省空间,同时也支持远程存储集成。
  • 服务发现:Prometheus可以自动发现目标,支持多种服务发现机制,如Kubernetes、Consul和静态配置,以适应不同的环境。
  • 内置警报:Prometheus的警报规则允许定义警报条件,并通过Alertmanager进行处理,支持多种通知方式,如电子邮件、Slack等。
    Prometheus广泛用于监控微服务架构、虚拟机、容器等,能够帮助开发和运维团队检测和解决问题,优化性能。

Grafana 介绍

Grafana是一个开源的指标分析和可视化工具,广泛用于显示和监控云基础设施和应用程序的实时数据。它特别擅长处理时间序列数据,如来自Prometheus、InfluxDB、Graphite、Elasticsearch等多种数据源的指标。Grafana允许用户创建丰富的仪表板界面,展示图表、统计、图形等多种视图,以直观的方式展示数据。

Grafana的主要特点包括:

  • 多数据源支持:Grafana支持多种数据源,包括PrometheusInfluxDB、MySQL、PostgreSQL、Graphite、Elasticsearch等,用户可以在同一个仪表板中整合来自不同数据源的数据。

  • 灵活的可视化选项:Grafana提供了丰富的图表类型,如时间序列图、柱状图、饼图、热图、地理地图等,支持高度自定义,满足不同的可视化需求。

  • 强大的仪表板功能:用户可以创建和配置仪表板,以展示关键性能指标(KPIs)、警报状态、日志数据等。仪表板支持模板和变量,使得动态查询和交互式分析成为可能。

  • 警报功能:Grafana提供了一个警报引擎,允许用户定义警报规则和通知渠道(如电子邮件、Slack、PagerDuty等),当数据触发警报条件时,能够及时通知到相关人员。

  • 安全性和访问控制:Grafana支持多用户环境,提供了基于角色的访问控制(RBAC),确保数据的安全性和访问的合理性。

  • 社区和插件:Grafana拥有一个活跃的社区和丰富的插件生态系统,用户可以找到大量的插件来扩展Grafana的功能,包括新的数据源、新的面板类型、应用程序等。

    Grafana因其强大的功能、灵活性和易用性,成为了许多组织和企业监控和可视化数据的首选工具。它不仅适用于技术人员进行故障排查和性能分析,也适用于业务人员查看业务指标和趋势。

如何接入

注:项目springboot版本2.6.13
引入maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

配置actuator

management:
  server:
    port: ${server.port}
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: ${spring.application.name}
  endpoints:
    web:
      exposure:
        include: health,prometheus # 暴露prometheus端口

访问应用暴露的端口

在这里插入图片描述

这时候prometheus客户端已经启动了

监听应用客户端端口

在这里插入图片描述

配置完成后,重启prometheus,这是我们打开prometheus界面,应用监听成功

在这里插入图片描述

prometheus提供了很多自带的函数,用于支持应用相关固定指标,比如应用启动时间和jvm相关的信息

在这里插入图片描述

在这里插入图片描述

将Prometheus数据源展示到Grafana

添加数据源

在这里插入图片描述
在这里插入图片描述

添加dashbord
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述