You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置async-profiler与Elastic APM Agent后仍无法获取本地线程及CPU分析数据

排查Elastic APM无法收集Native线程及CPU分析细节的问题

以下是针对该场景的具体排查步骤:

1. 确认async-profiler兼容性与加载状态

  • 核对Elastic APM Agent版本与async-profiler 2.9的兼容性:部分Agent版本对async-profiler有特定版本要求,需确保二者版本匹配。
  • 验证profiling_inferred_spans_lib_directory配置的路径有效性:
    执行命令确认文件存在且可读:
    ls -l /opt/async-profiler-2.9-linux-x64/build/libasyncProfiler.so
    
  • 开启Agent debug日志排查加载问题:
    在启动参数中添加-Delastic.apm.log_level=debug,启动应用后搜索日志中包含async-profiler或inferred spans的条目,确认是否存在加载失败、权限不足等报错。

2. 检查系统权限配置

async-profiler依赖系统perf事件,需确保以下权限设置:

  • 查看当前perf_event_paranoid值:
    sysctl kernel.perf_event_paranoid
    
    若值大于1,需临时调整:
    sysctl -w kernel.perf_event_paranoid=0
    
    如需永久生效,编辑/etc/sysctl.conf添加kernel.perf_event_paranoid=0后执行sysctl -p。
  • 确认运行应用的用户拥有访问/proc/[应用PID]/maps等进程文件的权限,避免因权限限制导致无法采集线程信息。

3. 补充CPU分析相关配置

仅开启推断跨度可能不足以获取完整CPU分析细节,需添加CPU profiling配置:
在elasticapm.properties中加入:

profiling_cpu_enabled=true
profiling_cpu_sampling_interval=50ms

重启应用后观察数据采集情况。

4. 验证线程采样条件

  • 确认目标Native线程的运行时长满足profiling_inferred_spans_min_duration=250ms的设置,短生命周期线程会被过滤。
  • 确保Native线程属于当前JVM进程,APM无法追踪外部进程的Native线程。

5. 确认组件版本兼容性

检查Elastic APM Server、Elasticsearch与Agent版本是否一致,版本不匹配可能导致采集的数据无法正常解析或展示。

内容的提问来源于stack exchange,提问作者Bhanu Praveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 08:40:15