添加 JFR/2_Event结构及配置.md

This commit is contained in:
8ga 2025-03-13 13:48:10 +08:00
parent 21855aee37
commit 5bd67e4184

View File

@ -0,0 +1,42 @@
### Event 结构
- Event 大小
- Event ID
- 时间戳
- 持续时间
- 相关线程 ID
- 相关堆栈 ID
每个 Event 还会有自己的 Payload承载自己要采集的数据。但不是每个 Event 都填充上面的字段,只是结构里面有,并不会采集。
### Event采集的公共配置
- enabled是否启用这个 Event 的采集true/false
- cutoff是否截断例如1d、1h、1m、1s、1ms、1ns0=不截断
- stackTrace是否启用堆栈跟踪true/false
- period采集周期
+ beginChunk在每一个 Data Chunk 写满另起一个的时候,立刻采集一次
+ everyChunk在每一个 Data Chunk 写到占用一半空间限制的时候,立刻采集一次
+ endChunk在每一个 Data Chunk 写满的时候,立刻采集一次
+ 或者配置具体时间例如1d、1h、1m、1s、1ms、1ns
- thresholdEvent 持续时间超过这个阈值才会采集例如1d、1h、1m、1s、1ms、1ns
Event采集详细配置JDK自带两个模板在 $JAVA_HOME/lib/jfr 目录下里面配置格式是一个xml文件取其中一个配置举个例子例如
```xml
<event name="jdk.OldObjectSample">
<setting name="enabled" control="memory-leak-detection-enabled">true</setting>
<setting name="stackTrace" control="memory-leak-detection-stack-trace">false</setting>
<setting name="cutoff" control="memory-leak-detection-cutoff">0 ns</setting>
</event>
```
这个就是 OldObject 采集 Event 的配置,这里配置为:
- 启用这个Event采集
- 不采集堆栈
- 不截断
你也可以加上 period 和 threshold 配置,但对这个 Event 没啥效果。**这里有个 control 属性,接下来会提到。**
### 自定义配置