# task-tool接口调用统计工具 **Repository Path**: asgards/task-tool ## Basic Information - **Project Name**: task-tool接口调用统计工具 - **Description**: 服务内统计接口方法的执行次数,时间,最近错误,最大执行时长等看每个需要监控的方法的执行情况,以便于快速发现性能问题。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: http://task-tool-demo.opendfl.org.cn/index.html - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 3 - **Created**: 2022-10-06 - **Last Updated**: 2025-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # task-tool java spring接口调用统计工具 服务内统计接口方法的执行次数,时间,最近错误,最大执行时长等看每个需要监控的方法的执行情况,以便于快速发现性能问题。 ## 目的 1,在系统开发完后,接口的使用情况,没办法直观的知道使用情况。 2,通过这个工具来统计,调用次数,异常次数,异常发生时间,异常信息,最大执行时长等,最大执行时长发生成的时间等,来方便查看接口的运行情况。 3,统计后台任务如Schedule定时任务,自动任务,mq任务等的调用情况 4,异常访问系统接口,部份管理员在非正常时间,调用非正常权限接口,也可以快速查出来,透过接口可以分析用户行为是否正常 5,统计分析性能问题的接口,快速找出性能瓶颈点。 ## 功能特性 * 支持springboot,springmvc * 统计信息含(调用次数,最近调用时间,最长执行时间(执行时长、发生时间、对应ID)异常错误(次数、最近发生时间,对应ID)) * 支持按分钟,小时、天等维度统计相关信息。 * 支持uri接口的计用次数统计(可以分别计算每个来源的调用次数) * 支持Controller调用统计(不用加注解,根据配置的包名生效) * 支持TaskCompute的spring内部调用次数统计,来源默认为空 * 支持TaskComputeServlet统计servlet调用次数 * 支持scheduler任务的次数统计 * 支持mq的消费次数统计 * 有控制台显示执行信息 * 用hashmap当缓存,性能超好,并且异步进行保存避免影响功能本身的性能。 ## Quick Start http://localhost:8080/index.html http://task-tool-demo.opendfl.org.cn/index.html ## 使用 * 1 maven引入依赖包 ```xml cn.org.opendfl task-tool 2.3 ``` 如果需要定时自动保存到数据库可引入下面这个 ```xml cn.org.opendfl task-tool-db 2.2 ``` * 2,在要统计方法上加上@TaskCompute注解 ```java @Service public class TaskTestBiz implements ITaskTestBiz { @TaskCompute @Override public String hello(String name) { try { Thread.sleep(4000L); } catch (InterruptedException e) { throw new RuntimeException(e); } return "hello " + name; } } ``` * 3,配置 * springboot支持任务统计,加scanBasePackages={"cn.org.opendfl.tasktool"} ```java @SpringBootApplication(scanBasePackages = {"cn.org.opendfl.tasktool"}) ``` * springboot支持保存到数据库,加scanBasePackages = {"cn.org.opendfl.task", "cn.org.opendfl.tasktool"} ```java @SpringBootApplication(scanBasePackages = {"cn.org.opendfl.task", "cn.org.opendfl.tasktool") @MapperScan(basePackages = "cn.org.opendfl.task") * 4,接口有调用后查看结果加scanBasePackages=cn.org.opendfl.tasktool, http://localhost:8080/taskInfo/runInfo?key=tasktooltest * 5,查看配置信息 http://localhost:8080/taskInfo/config?key=tasktooltest