目錄

簡介

必要條件

需求

採用元件

背景資訊

設定

步驟 1:安裝代理並準備代碼

步驟 2:Dockerfile安裝程式

步驟 3:Docker撰寫檔案

驗證

步驟 1:構建和運行

步驟 2:轉到AppDynamics儀表板

疑難排解

相關資訊

需要進一步協助？

簡介

本文介紹如何使用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控制器。

- 導覽至Applications > Hello_World_Python。

- 在5分鐘內查詢度量和流圖。

疑難排解

問題

可能起因

解析

未在儀表板中顯示應用

錯誤的訪問金鑰或控制器資訊

檢查appdynamics.cfg憑據

AppDynamics未記錄

未觸發Pyagent

檢查CMD是否使用pyagent run ...

相關資訊

AppDynamics文檔

安裝Python代理

GitHub Python AppDynamics演示

需要進一步協助？

如果您遇到問題或遇到問題，請建立包含以下詳細資訊的asupport票證：

- 錯誤詳細資訊或螢幕截圖：提供特定錯誤消息或問題的螢幕截圖。

- 使用的命令：指定發生問題時正在運行的確切命令。

- Python代理日誌：如果生成，則從/tmp/appd/*/logs/提供代理日誌。