文章目录
前言
前面一篇文章中介绍了如何对Java线程池中的一些核心数据进行监控(Java线程池监控应用),本文将结合使用Prometheus让这些核心数据能够实时的可视化监控起来。
一、构建SpringBoot、Prometheus、Grafana环境
首先,需要你已经整合好SpringBoot、Prometheus、Grafana
环境,如果需要帮助,可参考此篇文章(【Prometheus+SpringBoot+Grafana】快速入门教程),它可以帮助你快速的完成基础环境搭建。
二、监控说明
1.线程池参数说明
private static final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(4, 8, 0,
TimeUnit.SECONDS, new LinkedBlockingQueue<>(100),
new ThreadFactoryBuilder().setNameFormat("my_thread_pool_%d").build(), new ThreadPoolExecutor.DiscardOldestPolicy());
2.线程池工作说明
后台一共准备500个任务,服务启动后每隔500毫秒生成一个任务并移交给线程池处理,线程池中的线程每次处理一个任务需要5秒。
3.监控效果展示
每隔5秒监控一次线程池状况,以下是500个任务执行完毕后,最终监控效果。
3.1 总体结果
3.2 活跃线程数
3.3 队列任务数
3.4 已完成任务数
3.5 当前线程数
不知道通过对线程池的实时监控,你能否了解到线程池的具体运行机制。
三、代码示例
package com.springboot.micrometer.monitor;
import com.google.