- 背景
为了保障线上每条日志耗时情况可以定位,需要针对每个查询新增qid来标识,并且记录每条查询的每个shard在每台机器上的耗时情况。 - ClassFileTransformer
主要分成三步:
2.1 SearchRequestTransformer
该类实现自ClassFileTransformer, 主要是在elasticsearch的SearchRequest类加上一个qid属性,并生成getQid和setQid方法
2.2 RestSearchActionTransformer
该类实现自ClassFileTransformer, 获取到parseSearchRequest方法,把request中的qid参数赋值给searchRequest对象中的Qid
2.3 AbstractSearchAsyncActionTransformer
该类实现自ClassFileTransformer, 获取AbstractSearchAsyncAction类,在onShardResult中insetBefore方法获取到每个shard执行的耗时情况。并且生成一个Logger对象(LogManager.getLogger(name) ,name为log4j2.properties中logger的名称,这样可以保证日志写入到指定文件中)
javassist 增强es日志
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、前言 1、本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core ...
- 以下内容翻译整理自logback官方手册,地址:logback官方手册 logback 的架构 logback的基...