安利一款好用的谷歌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