简介
本文档介绍如何使用Docker容器中的AppDynamics Python代理来检测基本的Python Flask应用程序。
先决条件
要求
-
已安装Docker和Docker Compose
-
AppDynamics控制器(SaaS或内部部署)
-
访问凭证(帐户名称、访问密钥、控制器主机)
-
包含Python代理支持的AppDynamics许可证
-
正在运行的应用程序或使用“相关信息”部分中GitHub链接中的应用程序
使用的组件
- Python:3.9
- AppDynamics Python代理:25.6
- 基础Docker映像:python:3.9-slim(基于Debian)
- 平台:linux/amd64(如果您在ARM MAC计算机上运行,请确保与AppDynamics二进制文件兼容)
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
AppDynamics Python代理通过包装pyagent启动Python入口点来检测您的应用。代理收集有关HTTP请求、功能计时和错误的遥感勘测,并将其报告给AppDynamics控制器。
配置
步骤 1:安装代理并准备代码
app.py
from flask import Flask
import os
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!";
if __name__ == "__main__":
port = int(os.environ.get("PORT", 3000))
app.run(debug=True,host='0.0.0.0',port=port)
appdynamics.cfg
[controller-info]
host=your-controller-url
port=443
ssl=true
account=your-account-name
accesskey=your-access-key
application=Hello_World_Python
tier=Hello_World_Python_Tier
node=Hello_World_Python_Node
步骤 2:Dockerfile设置
FROM --platform=linux/amd64 python:3.9-slim
ENV APPD_AGENT_VERSION=25.6.0.7974
COPY . /app
WORKDIR /app
RUN chmod +x ./app.py
RUN pip install -U "appdynamics==${APPD_AGENT_VERSION}" -r requirements.txt
CMD pyagent run -c appdynamics.cfg -- python ./app.py
步骤 3:Docker合成文件
version: "2"
services:
apps:
build:
context: .
image: python-flask-appdynamics-demo
platform: linux/amd64
ports:
- "3000:3000"
验证
步骤 1:构建和运行
docker build --no-cache -t python-flask-appdynamics-demo .
docker run -p 3000:3000 python-flask-appdynamics-demo
步骤 2:转到AppDynamics仪表板

故障排除
问题
|
可能的原因
|
分辨率
|
应用未显示在控制面板中
|
错误的访问密钥或控制器信息
|
检查appdynamics.cfg凭据
|
AppDynamics未日志记录
|
未触发PYAGENT
|
检查CMD是否使用pyagent run ...
|
相关信息
AppDynamics文档
安装Python代理
GitHub Python AppDynamics演示
需要进一步的帮助?
如果您遇到问题或遇到问题,请使用以下详细信息创建asupport票证:
- 错误详细信息或屏幕截图:提供特定错误消息或问题的屏幕截图。
- 使用的命令:指定发生问题时正在运行的确切命令。
- Python代理日志:如果生成,请从/tmp/appd/*/logs/提供代理日志。