释放观测云超能力:在Azure App Service中实现无侵入式应用性能监测

    一、App Service

    Azure App Service 是微软全托管的 PaaS 级应用托管平台,秒级弹性、自动补丁、内建 CI/CD,支持 Windows/Linux 双引擎与 .NET、Java、Node.js、Python、PHP 等多语言运行时,一键即可将 Web/API 部署到全球 60+ 区域,并自带负载均衡、自动扩缩、SSL 续期、蓝绿发布和企业级安全合规。

    • Azure App Service(Linux)
      • 不是可 SSH 控制的 VM , 是平台托管的 Linux Sandbox
      • 代码运行在 Oryx 自动生成的 Python 虚拟环境中(默认名:antenv
    • Python 包的正确安装路径:/home/site/wwwroot/antenv/

    二、接入说明

    • 可以在 Azure App Service(Linux,代码模式,非容器)中稳定接入 DDTrace
    • 不需要自建主机 / VM
    • 不需要 Docker
    • DDTrace 可通过 Oryx build 正常安装到虚拟环境(antenv)
    • 链路数据可正常上报到观测云
    • 关键点:DDTrace 必须在 App Service 的 Python 虚拟环境中安装成功

    三、最终可验证的最小代码

    #执行
    mkdir ~/appservice-demo
    cd ~/appservice-demo
    
    
    #创建代码
    cat > app.py << 'EOF'
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/ping")
    def ping():
        return "pong"
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=8000)
    EOF
    #创建 requirements.txt
    cat > requirements.txt << 'EOF'
    flask
    gunicorn
    EOF
    #确认
    ls
    cat app.py
    cat requirements.txt
    #打包
    zip app.zip app.py requirements.txt
    

    四、进行部署

    4.1 部署应用

    4.2 修改环境变量

    如果应用没有拉起来,看看是不是 DDTrace 问题,有报错

    有可能是没有重新 build 成功,可以通过 SCM_DO_BUILD_DURING_DEPLOYMENT 试试强制 build,然后看看 SCM_DO_BUILD_DURING_DEPLOYMENT 。

    4.3 查看 Python 版本

    4.4 启动、重启、查看应用状态、登录

    4.5 找一台主机部署 DataKit

    开启 DDTrace

    cp /usr/local/datakit/conf.d/samples/ddtrace.conf.sample /usr/local/datakit/conf.d/ddtrace.conf
    vim /usr/local/datakit/conf.d/datakit.conf
    

    修改 DataKit 配置文件

    [http_api]
      rum_origin_ip_header = "X-Forwarded-For"
      listen_socket = ""
      listen = "0.0.0.0:9529"
      disable_404page = false
      rum_app_id_white_list = []
      public_apis = ["/v1/write/tracing","/v1/write/metrics","/v1/write/logging"]
      
     #重启datakit
     datakit service -R
    

    4.6 访问应用

    https://sutt-xxxxxx.xxxxxx.azurewebsites.net/ping (按照实际域名地址来)

    4.7 查看观测云

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

    在线开通,按量计费,真正的云服务!

    立即开始

    选择观测云版本

    代码托管平台