| 知乎专栏 |
监控指标
neo@MacBook-Pro-M2 ~> curl -s http://www.netkiller.cn:8080/actuator/metrics | jq | grep executor
"executor.active",
"executor.completed",
"executor.pool.core",
"executor.pool.max",
"executor.pool.size",
"executor.queue.remaining",
"executor.queued",
获取指标
neo@MacBook-Pro-M2 ~> curl -s http://www.netkiller.cn:8080/actuator/metrics/executor.active | jq
{
"name": "executor.active",
"description": "The approximate number of threads that are actively executing tasks",
"baseUnit": "threads",
"measurements": [
{
"statistic": "VALUE",
"value": 0
}
],
"availableTags": [
{
"tag": "name",
"values": [
"asyncExecutor"
]
}
]
}
@Autowired
ThreadPoolTaskExecutor threadPoolTaskExecutor;
@GetMapping("/pool")
public String pool() {
int activeCount = threadPoolTaskExecutor.getActiveCount();
long completedTaskCount = threadPoolTaskExecutor.getThreadPoolExecutor().getCompletedTaskCount();
long taskCount = threadPoolTaskExecutor.getThreadPoolExecutor().getTaskCount();
int queue = threadPoolTaskExecutor.getThreadPoolExecutor().getQueue().size();
String monitor = String.format("Task: %d, Queue: %d, Active: %d, Completed: %d\n", taskCount, queue, activeCount, completedTaskCount);
log.info(monitor);
return monitor;
}