自动仪表化

使用Python进行自动仪表化的方法是使用一个Python代理,它可以附加到任何Python应用程序中。它动态注入字节码以从许多流行的库和框架中捕获遥测数据。

设置

运行以下命令以安装适当的包。

pip install opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap -a install

opentelemetry-distro 包安装了API、SDK以及 opentelemetry-bootstrapopentelemetry-instrument 工具。

opentelemetry-bootstrap -a install 命令会读取安装在您的当前site-packages文件夹中的软件包列表,并安装相应的仪表化库,如果适用的话。例如,如果您已经安装了 flask 包,运行 opentelemetry-bootstrap -a install 会自动为您安装 opentelemetry-instrumentation-flask

注意: 如果省略 -a install 参数,该命令仅会列出推荐自动仪表化包的列表。更多信息可以在此处找到。

配置代理

代理是高度配置化的。

其中一种选择是通过CLI的方式通过配置属性来配置代理:

opentelemetry-instrument \
    --traces_exporter console,otlp \
    --metrics_exporter console \
    --service_name your-service-name \
    --exporter_otlp_endpoint 0.0.0.0:4317 \
    python myapp.py

另一种选择是使用环境变量来配置代理:

OTEL_SERVICE_NAME=your-service-name \
OTEL_TRACES_EXPORTER=console,otlp \
OTEL_METRICS_EXPORTER=console \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=0.0.0.0:4317
opentelemetry-instrument \
    python myapp.py

要查看完整的配置选项范围,请参阅 代理配置

支持的库和框架

许多流行的Python库都是自动仪表化的,包括 FlaskDjango。您可以在此处找到完整的列表。

故障排除

Python软件包安装失败

Python软件包的安装需要 gccgcc-c++,如果您正在使用的是精简版本的Linux(例如CentOS),您可能需要安装它们。

CentOS:

yum -y install python3-devel
yum -y install gcc-c++

Debian/Ubuntu:

apt install -y python3-dev
apt install -y build-essential

Alpine:

apk add python3-dev
apk add build-base

gRPC连接问题

要调试Python gRPC连接问题,请设置以下gRPC调试环境变量:

export GRPC_VERBOSITY=debug
export GRPC_TRACE=http,call_error,connectivity_state
opentelemetry-instrument python <your_app>.py
最后修改 December 10, 2023: translate (a4350d6e)