更新时间:2025-10-27 GMT+08:00
分享

Python语言接入

限制条件

使用Python 3.9 及以上版本。

环境准备

  1. 安装Python,命令如下:
    sudo apt update 
    sudo apt install python3 python3-pip python3-venv
  2. 环境验证,命令如下:
    python3 --version
    pip3 --version

示例demo

以flask框架实现一个简单的掷骰子应用。

  1. 创建运行环境,命令如下:
    mkdir demo 
    cd demo 
    python3 -m venv demo 
    source ./demo/bin/activate
  2. 下载依赖,命令如下:
    pip install flask
  3. 编写业务代码。

    创建app.py文件,内容如下:

    from random import randint
    from flask import Flask, request
    import logging
    
    app = Flask(__name__)
    logging.basicConfig(level=logging.INFO)
    logger = logging.getLogger(__name__)
    
    @app.route("/rolldice")
    def roll_dice():
        player = request.args.get('player', default=None, type=str)
        result = str(roll())
        if player:
            logger.warning("%s is rolling the dice: %s", player, result)
        else:
            logger.warning("Anonymous player is rolling the dice: %s", result)
        return result
    
    def roll():
        return randint(1, 6)
  4. 启动,命令如下:
    flask run -p 8080 &
    curl http://localhost:8080/rolldice

操作步骤

  1. 登录APM控制台
  2. 单击左侧,选择“管理与监管 > 应用性能管理 APM”,进入APM服务页面。
  3. 在左侧导航栏中选择“应用监控 > 应用列表”。
  4. 单击“接入应用”,进入接入应用页面。
  5. 选择“区域”和“应用”。单击“创建应用”,弹出“创建应用”弹窗,可以具体操作参见创建应用
  6. “接入方式”选择OpenTelemetry。
  7. “服务端语言”选择Python。
  8. 非侵入式接入,相关参数与操作步骤如下。

    表1 参数说明

    参数

    说明

    是否必填

    应用名称

    应用显示的名称。一个应用代表一个逻辑单元,是一个全局概念,各个region都可以看到相同的应用信息,比如一个租户下面比较独立的功能模块可以定义为一个应用。

    必填

    组件名称

    组件名称,代表一个组件,需要使用英文字符开头。同一个应用下,组件名称不能重复。一个组件可以包含多个环境。不能重复,如果要重复,使用instanceName区分。

    必填

    环境名称

    环境名称,代表一个应用在一个地方的部署。一个应用程序根据配置不同可以部署多个环境,比如测试环境,现网环境。每个环境都在一个region部署,具有唯一的region属性。该参数可以为空,代表默认环境。

    选填

    非侵入安装

    1. 下载依赖,命令如下:
      pip install opentelemetry-distro
      pip install opentelemetry-exporter-otlp 
      opentelemetry-bootstrap -a install
    2. 启动python应用,命令如下:
      opentelemetry-instrument  \
      --traces_exporter otlp  \
      --metrics_exporter none \
      --service_name 应用名称.组件名称.环境名称  \  
      --resource_attributes host.name=hostName  \
      --exporter_otlp_endpoint http://**.**.**.**:****  \
      --exporter_otlp_headers Authentication=8e****04x    \
      flask run -p 8080  &
      
      curl  http://localhost:8080/rolldice
    3. 在APM控制台链路追踪中查看应用的监控数据。详细操作参见指标

相关文档