概要描述
DBAService监控quark的所有TASK, 当task执行时间超出配置(默认30分钟, 最小分钟粒度)的executor自动打jstack, 保存到/var/log/dbaserviceSid/executor-stack目录下。
支持版本:DBAService 9.4.6 + patch1 及以上版本
详细说明
jstack收集策略
DBAService配置页面新增了动态配置LONG_TASK_MIN_EXECUTOR_STACK_DUMP, 默认30分钟, 则对超出30分钟的所有task的executor, 按执行间隔时间减半,即每15分钟执行自动打executor的jstack (最小可设为1分钟, 即30s左右触发一次, 设置为0时, 关闭该功能)

jstack存储位置
收集的jstack文件,默认存储在 DBAService角色部署节点的 /var/log/dbaserviceSid/executor-stack/{quarkSid}/executor_{executorHost-Port}_{executorId}_{yyyyMMdd_HHmmss}.jstack ,参考截图:

jstack文件的第一行会存相关的task信息如下:
//stack文件第一行存taskId关联stageIds,sqlIds
sqlId:{sqlId},stageIds:{stageIds},taskIds:{taskIds};
jstack文件清理策略
DBAService配置页面增加动态配置LONG_TASK_EXECUTOR_STACK_NUM, 默认5000, 表示/var/log/dbaserviceSid/executor-stack目录下jstack文件总数不超过5000, 默认每天执行一次清理操作, 超出数量的文件按时间顺序清理旧的

[root@lc-search-01 executor-stack]# pwd
/var/log/dbaservice7/executor-stack
[root@lc-search-01 executor-stack]# find ./* -name *jstack | wc -l
5324
如何关闭该功能?
manager页面,DBAService新增自定义参数 task.executor.auto.stack.enabled,值为false,配置文件为 application.yml,配置服务重启DBAService。
