pkslow.com 南瓜慢说

  • AllArticles
  • Container
  • Spring
  • Life
  • Cloud
  • Collections
  • About
  • GitHub

  • Search
Terraform101 English Terraform Middleware config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac Plan Stream MongoDB Spring DevOps JVM String Map Set List Performance Email Springboot JavaCollections ArrayList Java

用InfluxDB+Grafana监控Springboot应用

Created on: 2020-09-20 | Category: Springboot | 2 | View: 1279

1 前言

Springboot的运维监控是微服务系统必备的,不然就感觉是瞎子跑步,随时可能摔跤。本文通过Springboot整合InfluxDB+Grafana的方式进行监控,以保证系统可靠运行。

InfluxDB的介绍可以参考:InfluxDB入门及使用,一个优秀的时序数据库。

Springboot监控相关文章:

用Springboot Admin监控你的微服务应用

用Prometheus+Grafana监控Springboot应用

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


Code for all: GitHub

欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

file

Recommendations:
Cloud Native
Terraform
Container: Docker/Kubernetes
Spring Boot / Spring Cloud
Https
如何制定切实可行的计划并好好执行

  • Author 作者: LarryDpk 南瓜慢说
  • Link 链接: https://www.pkslow.com/archives/springboot-monitored-by-influxdb-grafana
  • 版权声明: 本博客所有文章除特别声明外,不可转载!
# Terraform101 # English # Terraform # Middleware # config # Go # Private # Kubernetes # pkslow # Test # HTTPS # Redis # Docker # Mac # Plan # Stream # MongoDB # Spring # DevOps # JVM # String # Map # Set # List # Performance # Email # Springboot # JavaCollections # ArrayList # Java
Terraform101 English Terraform Middleware config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac Plan Stream MongoDB Spring DevOps JVM String Map Set List Performance Email Springboot JavaCollections ArrayList Java
用Prometheus+Grafana监控Springboot应用
Terraform插件Provider管理,搜索、定义、下载
  • Contents
  • Site Overview
南瓜慢说

南瓜慢说

多年Java开发,主要专注后端技术:Java/Spring/Springboot/微服务/大数据等。

多读书,多分享;多写作,多整理。

241 Posts
9 Categories
30 Tags
RSS
0%
© 2020 — 2022 南瓜慢说 pkslow The WebSite keeping alive:   粤ICP备20036375号