# 用InfluxDB+Grafana监控Springboot应用
# 前言
Springboot
的运维监控是微服务系统必备的,不然就感觉是瞎子跑步,随时可能摔跤。本文通过Springboot
整合InfluxDB+Grafana
的方式进行监控,以保证系统可靠运行。
InfluxDB
的介绍可以参考:InfluxDB入门及使用,一个优秀的时序数据库 (opens new window)。
Springboot
监控相关文章:
用Springboot Admin监控你的微服务应用 (opens new window)
用Prometheus+Grafana监控Springboot应用 (opens new window)
# 2 Springboot整合InfluxDB
对于InfluxDB
的安装,前面已经有文章讲过,不再讲解了。Springboot
整合InfluxDB
是非常简单的,先引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-influx</artifactId>
</dependency>
需要开启actuator
,然后引入influx
的依赖。
很多东西Springboot
都会帮我们做好,我们只需要配置相关信息就可以了,配置文件application.yaml
如下:
spring:
application:
name: springboot-influxdb
server:
port: 8080
management:
metrics:
export:
influx:
enabled: true
db: pkslow
uri: http://localhost:8086
user-name:
password:
connect-timeout: 1s
read-timeout: 10s
auto-create-db: true
step: 1m
num-threads: 2
consistency: one
compressed: true
batch-size: 1000
这里我没有配置用户名和密码,因为安装的时候就没有指定,实际项目中要根据实际情况配置。
# 3 查看数据
整合启动应用后,等一段时间就会有数据源源不断地写入InfluxDB
中。会为我们自动创建相关的measurement
,如下:
> show measurements
name: measurements
name
----
jvm_buffer_count
jvm_buffer_memory_used
jvm_buffer_total_capacity
jvm_classes_loaded
jvm_classes_unloaded
jvm_gc_live_data_size
jvm_gc_max_data_size
jvm_gc_memory_allocated
jvm_gc_memory_promoted
jvm_gc_pause
jvm_memory_committed
jvm_memory_max
jvm_memory_used
jvm_threads_daemon
jvm_threads_live
jvm_threads_peak
jvm_threads_states
logback_events
process_cpu_usage
process_files_max
process_files_open
process_start_time
process_uptime
system_cpu_count
system_cpu_usage
system_load_average_1m
tomcat_sessions_active_current
tomcat_sessions_active_max
tomcat_sessions_alive_max
tomcat_sessions_created
tomcat_sessions_expired
tomcat_sessions_rejected
visits
我们随便找一个数据查看一下,如jvm_memory_used
:
# 4 通过Grafana展示
把Springboot
的运行数据写进InfluxDB
了,但通过命令行查看肯定是不方便监控运维的。所以还是需要做数据可视化,在这方面,Grafana
是非常不错的选择。
启动Grafana
:
docker run -d -p 3000:3000 grafana/grafana
登陆Grafana
,配置数据源如下:
配置图表,Grafana
提供的图表很多,我们这选择最常用的Graph
:
创建后,编辑Graph
:
关联数据:
配置数据如下:
配置完成后,展示的数据如下:
类似的流程,配置一个Gauge
如下:
# 5 总结
本文介绍了如何一步步把Springboot
指标写入InfluxDB
,再通过Grafana
展示数据。
项目的代码在:https://github.com/LarryDpk/pkslow-samples