自动仪表化
使用Python进行自动仪表化的方法是使用一个Python代理,它可以附加到任何Python应用程序中。它动态注入字节码以从许多流行的库和框架中捕获遥测数据。
设置
运行以下命令以安装适当的包。
pip install opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap -a install
opentelemetry-distro
包安装了API、SDK以及 opentelemetry-bootstrap
和 opentelemetry-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库都是自动仪表化的,包括 Flask 和 Django。您可以在此处找到完整的列表。
故障排除
Python软件包安装失败
Python软件包的安装需要 gcc
和 gcc-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)