背景
随着业务发展,服务的健康指标变得越来越重要,监控服务的健康指标成为很多公司必要需求。
Prometheus 介绍
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支持多种数据源,包括
Prometheus
、InfluxDB、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