南瓜慢说官方网站

  • 首页
  • 所有文章
  • 容器技术
  • SpringBoot-Cloud
  • 程序人生
  • 其它
  • 整理
  • 关于

  • 搜索
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
技术之前,先读诗书:

用InfluxDB+Grafana监控Springboot应用

发表于 2020-09-20 | 分类于 Springboot | 0 | 阅读次数 264

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


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

file

推荐阅读:
如何制定切实可行的计划并好好执行
容器技术(Docker-Kubernetes)
SpringBoot-Cloud相关
Https专题

  • 本文作者: 南瓜慢说
  • 本文链接: https://www.pkslow.com/archives/springboot-monitored-by-influxdb-grafana
  • 版权声明: 本博客所有文章除特别声明外,不可转载!
# 中间件 # config # Go # Private # Kubernetes # pkslow # Test # HTTPS # Redis # Docker # Mac # 计划 # Stream # MongoDB # Spring # DevOps # JVM # String # Map # Set # List # 性能 # Email # Springboot # 集合类 # ArrayList # Java
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
InfluxDB入门及使用,一个优秀的时序数据库
IT界的名言名语
  • 文章目录
  • 站点概览
南瓜慢说

南瓜慢说

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

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

153 日志
7 分类
27 标签
RSS
0%
© 2020 — 2021 南瓜慢说 本站已挣扎运行:   粤ICP备20036375号