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

Python应用对接AppDynamics无数据上报问题排查及端口咨询

AppDynamics无数据上报排查及端口确认方法

一、ENTRYPOINT配置导致的进程追踪问题

你的核心问题大概率出在ENTRYPOINT的shell执行模式导致AppDynamics Agent无法正确追踪Python主进程:

  • 当Docker的ENTRYPOINT使用字符串形式(如"first.sh && python3 second")时,Docker会启动一个sh进程作为PID 1,后续命令都在这个shell子进程中执行。AppDynamics Agent通常需要附着到PID 1进程或明确的主应用进程,这种情况下Agent无法正确采集Python应用的数据。
  • 原CMD指令虽也是shell模式,但参考模板可能使用了exec形式的ENTRYPOINT/CMD,让Python进程直接成为PID 1,确保Agent能正确关联应用。

修复方案

将ENTRYPOINT改为exec模式,让Python进程替换shell成为PID 1:

ENTRYPOINT ["sh", "-c", "first.sh && exec python3 second"]

同时将APP_ENTRY_POINT变量同步修改为相同值:

APP_ENTRY_POINT="sh -c 'first.sh && exec python3 second'"

添加exec关键字后,python3 second会直接取代当前shell进程,成为容器的PID 1,AppDynamics Agent就能正常追踪应用进程并上报数据。

二、确认APPDYNAMICS_CONTROLLER_PORT的正确值

有两种可靠方式查询端口:

  1. 控制器界面查询
    登录AppDynamics控制器后台,依次进入:

    设置(Settings)→ 控制器信息(Controller Information)
    在页面中可直接看到控制器的HTTP端口(默认8090)和HTTPS端口(默认443),APPDYNAMICS_CONTROLLER_PORT的值需根据你使用的协议选择(HTTPS用443,HTTP用8090)。

  2. 控制器服务器端查询(On-Prem部署)
    登录控制器所在服务器,查看配置文件:

    cat <controller_install_dir>/conf/controller.xml | grep -i port
    

    或通过启动脚本查看状态:

    <controller_install_dir>/bin/controller.sh status
    

    输出中会明确显示当前监听的端口。

额外排查点

  • 检查容器内AppDynamics Agent的日志(通常路径为/opt/appdynamics/logs),确认是否存在连接控制器的超时、认证失败等错误。
  • 核对所有AppDynamics环境变量(如APPDYNAMICS_CONTROLLER_HOST_NAME、APPDYNAMICS_AGENT_APPLICATION_NAME等)是否与参考模板完全一致,避免拼写或配置错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:45:17