Optimize thread pool monitoring

pull/693/head
chen.ma 3 years ago
parent 3230f0ae1c
commit 097cc05ed7

@ -4,23 +4,11 @@ sidebar_position: 2
# 线程池监控 # 线程池监控
已完成 hippo4j-config 的 [接入工作](/docs/user_docs/getting_started/config/hippo4j-config-start) 。 ## 线程池监控配置
## 安装 Grafana + Prometheus 监控前置条件:需要先完成 hippo4j-config 的 [接入工作](/docs/user_docs/getting_started/config/hippo4j-config-start)。
```shell 接下来引入 SpringBoot Actuator。Spring 2.x 一般都有版本指定,所以这里不用写版本号。
docker run -d -p 9090:9090 --name prometheus prom/prometheus
```
```shell
docker run -d -p 3000:3000 --name=grafana grafana/grafana
```
访问 grafana 地址,[http://localhost:3000](http://localhost:3000) 用户名密码:`admin`
## 线程池监控
引入 actuator。spring 2.x 一般都有版本指定,所以这里不用写版本号。
```xml ```xml
<dependency> <dependency>
@ -34,7 +22,7 @@ docker run -d -p 3000:3000 --name=grafana grafana/grafana
</dependency> </dependency>
``` ```
添加相关配置。 添加动态线程池监控相关配置:
```yaml ```yaml
management: management:
@ -43,7 +31,7 @@ management:
prometheus: prometheus:
enabled: true enabled: true
server: server:
port: 29999 # 自选 port: 29999 # 可选配置,如果不配置该 port直接使用 ${server.port}
endpoints: endpoints:
web: web:
exposure: exposure:
@ -54,34 +42,76 @@ spring:
collect-type: micrometer collect-type: micrometer
``` ```
Prometheus 配置任务,配置成功后需重启。 项目启动,访问 `http://localhost:29999/actuator/prometheus` 出现 `dynamic_thread_pool_` 前缀的指标,即为成功。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912220401016.png)
## 配置 Prometheus
通过 Docker 启动 Prometheus 服务。
```shell
docker run -d -p 9090:9090 --name prometheus prom/prometheus
```
添加 Prometheus 抽取数据任务。
```shell
# 进入 prometheus 容器内部
docker exec -it prometheus /bin/sh
# 编辑 prometheus 配置文件
vi /etc/prometheus/prometheus.yml
```
scrape_configs 节点下新添加一个 job如果 Prometheus 是 Docker 方式部署,`{scrape_configs.static_configs.targets}` 需要写本机的 IP。
```yaml ```yaml
scrape_configs:
- job_name: 'dynamic-thread-pool-job' - job_name: 'dynamic-thread-pool-job'
scrape_interval: 5s scrape_interval: 5s
metrics_path: '/actuator/prometheus' metrics_path: '/actuator/prometheus'
static_configs: static_configs:
- targets: ['127.0.0.1:29999'] # 如果是 docker 部署,这里需要写本机的 IP - targets: [ '127.0.0.1:29999' ]
```
配置成功后 `exit` 退出容器,并进行 Prometheus 容器重启 `docker restart prometheus`
访问 Prometheus 控制台 `http://localhost:9090/graph` 路径,能够展示相关指标即为配置成功。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912221237597.png)
## 配置 Grafana
```shell
docker run -d -p 3000:3000 --name=grafana grafana/grafana
``` ```
Grafana 导入数据源。 访问 Grafana 地址,[http://localhost:3000](http://localhost:3000) 用户名密码:`admin`
Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912221646866.png)
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220328231812090.png) 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220328231849537.png) | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
| ![](https://images-machen.oss-cn-beijing.aliyuncs.com/43_65f6020ed111b6bb3808ec338576bd6b.png?x-oss-process=image/resize,h_300,w_400) | ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220327171957444.png?x-oss-process=image/resize,h_300,w_400) |
Grafana DashBoard 配置。 获取到 JSON 文件后,通过 `http://localhost:3000/dashboard/import` 将 JSON 文件导入至 Grafana DashBoard。
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 DashBoard JSON。 ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225627272.png)
![](https://images-machen.oss-cn-beijing.aliyuncs.com/43_65f6020ed111b6bb3808ec338576bd6b.png) 下拉框内动态选择创建好的 Prometheus 数据源,并点击 `Import`
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220327171957444.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
获取到 JSON 文件后,导入至 Grafana 即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220327171125638.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)
即可使用 Hippo4j 线程池监控大屏。 如果项目客户端启动多个示例,动态线程池监控效果图如下:
![](https://images-machen.oss-cn-beijing.aliyuncs.com/20220814_hippo4j_monitor.jpg) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/20220814_hippo4j_monitor.jpg)

Loading…
Cancel
Save