安利一款好用的谷歌json格式化插件 jsonview,地址 https://jsonview.com/
搭建 springboot 项目 引入 actuator 组件
<dependency> |
actuator 目的:监控并管理应用程序,详情见官方文档 https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready
一些常用的 Endpoint
| id | 说明 | 默认开启 | 默认HTTP | 默认JMX |
|---|---|---|---|---|
| beans | 显示容器的Bean | Y | N | Y |
| health | 显示健康信息 | Y | Y | Y |
| info | 应用信息 | Y | Y | Y |
| cache | 应用缓存 | Y | N | Y |
application.properties 配置打开所有监控
management.endpoints.web.exposure.include=* |
浏览器输入 http://localhost:8080/actuator/health 打印
{ |
进入 安装的JDK/bin 目录 ,cmd 输入 jconsole 可以看到 Actuator EndPoint 信息Spring boot 健康检查 通过实现 HealthIndicator 接口
|
举个例子 数据库的健康检查 DataSourceHealthIndicator 类,构造的时候传入 DataSource
public DataSourceHealthIndicator(DataSource dataSource) { |
健康检查
|
doDataSourceHealthCheck 方法判断当前数据库健康状态
private void doDataSourceHealthCheck(Health.Builder builder) throws Exception { |
实现自己程序的健康状态 定义 HealthIndicatorTest 类
|
浏览器输入 http://localhost:8080/actuator/health 查看结果
healthIndicatorTest: { |
上面通过 Actuator Health 了解程序是否健康,在程序中还需要收集更多的度量指标,比如操作系统 或者 JVM、业务指标 等,通过 Micrometer 收集这些信息,官方网站 https://micrometer.io/ ,应用在 Spring Boot, 查看文档 https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-metrics
利用 Micrometer 后端埋点 统计接口请求次数pom 引入组件
<dependency> |
新建 Test 类
|
浏览器 输入 http://localhost:8081/test/ 请求服务
输入 http://localhost:8081/actuator/metrics/counter.number 查看请求次数
{
name: "counter.number",
description: null,
baseUnit: null,
measurements: [
{
statistic: "COUNT",
value: 1
}
],
availableTags: [ ]
}
windows 安装 grafana ,地址 : https://grafana.com/grafana/download?platform=windows
安装之后,打开 \grafana\conf 文件 查看配置
- 默认配置文件是在/conf/defaults.ini
- 用户配置文件是在/conf/custom.ini
更改 端口更改 账号密码[server]
http_port = 8888[security]
# default admin user, created on startup
admin_user = admin
# default admin password, can be changed before first start of grafana, or in profile settings
admin_password = admin
进入目录 grafana\bin 运行 grafana-server.exe
浏览器输入 http://localhost:8888/ ,输入 admin admin
windows 安装 prometheus ,地址 :https://prometheus.io/download/
配置 任务和实例,打开 prometheus.yml 文件,详情见 任务和实例
scrape_configs: |
浏览器输入 http://localhost:9090/targets ,prometheus 默认端口 9090,看到这两个实例都是 down 状态
了解下 prometheus 架构,prometheus 主要是通过定时拉取应用程序中暴露的时间序列进行工作的,可以在 prometheus.yml 文件配置 Jobs/Exporters
为什么要监控应用程序的各个指标,推荐文章 度量驱动开发 感兴趣的可以看下
springboot 引入 micrometer-jvm-extras 组件,查看 JVM 相关信息
<dependency> |
启动项目,看到 springboot 项目实例 状态是 up
点击 Endpoint 可以看到 JVM 各项指标
通过 grafana 图形化展示,JVM 堆内存 进程内存 HTTP请求持续时间 详情见 4701 指标
https://grafana.com/grafana/dashboards
参考文章
Spring Boot Actuator:健康检查、审计、统计和监控
Spring Boot Metrics监控之Prometheus&Grafana