Python语言接入
限制条件
使用Python 3.9 及以上版本。
环境准备
- 安装Python,命令如下:
sudo apt update sudo apt install python3 python3-pip python3-venv
- 环境验证,命令如下:
python3 --version pip3 --version
示例demo
以flask框架实现一个简单的掷骰子应用。
- 创建运行环境,命令如下:
mkdir demo cd demo python3 -m venv demo source ./demo/bin/activate
- 下载依赖,命令如下:
pip install flask
- 编写业务代码。
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) - 启动,命令如下:
flask run -p 8080 & curl http://localhost:8080/rolldice
操作步骤
- 登录APM控制台。
- 单击左侧
,选择“管理与监管 > 应用性能管理 APM”,进入APM服务页面。 - 在左侧导航栏中选择“应用监控 > 应用列表”。
- 单击“接入应用”,进入接入应用页面。
- 选择“区域”和“应用”。单击“创建应用”,弹出“创建应用”弹窗,可以具体操作参见创建应用。
- “接入方式”选择OpenTelemetry。
- “服务端语言”选择Python。
- 非侵入式接入,相关参数与操作步骤如下。
表1 参数说明 参数
说明
是否必填
应用名称
应用显示的名称。一个应用代表一个逻辑单元,是一个全局概念,各个region都可以看到相同的应用信息,比如一个租户下面比较独立的功能模块可以定义为一个应用。
必填
组件名称
组件名称,代表一个组件,需要使用英文字符开头。同一个应用下,组件名称不能重复。一个组件可以包含多个环境。不能重复,如果要重复,使用instanceName区分。
必填
环境名称
环境名称,代表一个应用在一个地方的部署。一个应用程序根据配置不同可以部署多个环境,比如测试环境,现网环境。每个环境都在一个region部署,具有唯一的region属性。该参数可以为空,代表默认环境。
选填
非侵入安装
- 下载依赖,命令如下:
pip install opentelemetry-distro pip install opentelemetry-exporter-otlp opentelemetry-bootstrap -a install
- 启动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
- 在APM控制台链路追踪中查看应用的监控数据。详细操作参见指标。
- 下载依赖,命令如下: