性能分析配置选项
编辑性能分析配置选项
编辑universal_profiling_integration_enabled
( [1.50.0] 在 1.50.0 版本中添加。 )
编辑如果启用,apm 代理将与其在同一主机上运行的 Elastic 通用性能分析的数据关联其事务。
默认值 | 类型 | 动态 |
---|---|---|
|
布尔型 |
false |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
universal_profiling_integration_buffer_size
( [1.50.0] 在 1.50.0 版本中添加。 )
编辑此功能需要缓冲结束的本地根跨度一小段时间,以确保已接收其所有性能分析数据。此配置选项配置缓冲区大小(以跨度数表示)。每秒的本地根跨度数越高,此缓冲区大小应设置得越高。如果由于缓冲区大小不足而无法缓冲跨度,代理将记录警告。这将导致跨度立即导出,但可能包含不完整的性能分析关联数据。
默认值 | 类型 | 动态 |
---|---|---|
|
整数 |
false |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
universal_profiling_integration_socket_dir
( [1.50.0] 在 1.50.0 版本中添加。 )
编辑扩展需要将套接字绑定到文件才能与通用性能分析主机代理通信。此配置选项可用于更改位置。请注意,由于操作系统限制,完整路径名(包括套接字)不能超过 100 个字符。如果未设置,则将使用 java.io.tmpdir
系统属性的值。
默认值 | 类型 | 动态 |
---|---|---|
|
字符串 |
false |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
profiling_inferred_spans_enabled
( [1.15.0] 在 1.15.0 版本中添加。 实验性)
编辑此功能目前处于实验阶段,这意味着它默认情况下处于禁用状态,并且不能保证在将来的版本中向后兼容。
设置为 true
以使代理基于 async-profiler(一种采样式/统计性能分析器)为方法执行创建跨度。
由于采样性能分析器的工作方式,推断出的跨度的持续时间并非完全准确,而只是估计值。profiling_inferred_spans_sampling_interval
可让您微调准确性和开销之间的权衡。
在性能分析会话结束后创建推断出的跨度。这意味着在 UI 中显示常规跨度和推断出的跨度之间存在延迟。
仅支持平台线程。不支持虚拟线程,也不会对其进行性能分析。
此功能在 Windows 和 OpenJ9 上不可用。
默认值 | 类型 | 动态 |
---|---|---|
|
布尔型 |
true |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
profiling_inferred_spans_logging_enabled
( [1.37.0] 在 1.37.0 版本中添加。 )
编辑默认情况下,async profiler 会将有关缺少 JVM 符号的警告消息打印到标准输出。将此选项设置为 true
以禁止显示此类消息。
默认值 | 类型 | 动态 |
---|---|---|
|
布尔型 |
true |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
profiling_inferred_spans_sampling_interval
( [1.15.0] 在 1.15.0 版本中添加。 )
编辑在性能分析会话中收集堆栈跟踪的频率。设置的值越低,持续时间就越准确。但这会以更高的开销和更多与操作无关的跨度为代价。推断出的性能分析跨度的最小持续时间与该设置的值相同。
支持持续时间后缀 ms
、s
和 m
。例如:50ms
。
默认值 | 类型 | 动态 |
---|---|---|
|
时间持续时间 |
true |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
profiling_inferred_spans_min_duration
( [1.15.0] 在 1.15.0 版本中添加。 )
编辑推断出的跨度的最小持续时间。请注意,最小持续时间也由采样间隔隐式设置。但是,增加采样间隔也会降低推断出的跨度持续时间的准确性。
支持持续时间后缀 ms
、s
和 m
。例如:0ms
。
默认值 | 类型 | 动态 |
---|---|---|
|
时间持续时间 |
true |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
profiling_inferred_spans_included_classes
( [1.15.0] 在 1.15.0 版本中添加。 )
编辑如果设置,代理将仅为与该列表匹配的方法创建推断出的跨度。设置值可能会稍微降低开销,并且可以通过仅为感兴趣的类创建跨度来减少混乱。例如:org.example.myapp.*
此选项支持通配符 *
,它匹配零个或多个字符。例如:/foo/*/bar/*/baz*
、*foo*
。匹配默认情况下不区分大小写。在元素前加上 (?-i)
将使匹配区分大小写。
默认值 | 类型 | 动态 |
---|---|---|
|
列表 |
true |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
profiling_inferred_spans_excluded_classes
( [1.15.0] 在 1.15.0 版本中添加。 )
编辑排除不应为其创建性能分析器推断跨度的类。
此选项支持通配符 *
,它匹配零个或多个字符。例如:/foo/*/bar/*/baz*
、*foo*
。匹配默认情况下不区分大小写。在元素前加上 (?-i)
将使匹配区分大小写。
默认值 | 类型 | 动态 |
---|---|---|
|
列表 |
true |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|
profiling_inferred_spans_lib_directory
( [1.18.0] 在 1.18.0 版本中添加。 )
编辑性能分析需要将 async-profiler 共享库导出到临时位置并由 JVM 加载。此位置的备份分区必须可执行,但是在某些服务器强化环境中,noexec
可能会设置为标准 /tmp
分区,从而导致 java.lang.UnsatisfiedLinkError
错误。将此属性设置为替代目录(例如 /var/tmp
)以解决此问题。如果未设置,则将使用 java.io.tmpdir
系统属性的值。
默认值 | 类型 | 动态 |
---|---|---|
|
字符串 |
false |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|