使用 OpenTelemetry Operator 注入自动检测

如果您在 Kubernetes 中运行 Python 服务,您可以利用 OpenTelemetry Operator 来注入自动检测,而无需直接修改每个服务。 有关更多详细信息,请参阅 OpenTelemetry Operator 自动检测文档。

Python 相关主题

带有二进制 wheel 的库

我们检测或在检测库中需要的某些 Python 包可能包含一些二进制代码。例如,grpciopsutil(用于 opentelemetry-instrumentation-system-metrics)就是这种情况。

二进制代码与特定的 C 库版本(glibc 或 musl)和特定的 Python 版本绑定。 OpenTelemetry Operator 提供了基于 glibc C 库的单一 Python 版本的镜像。如果您想使用它,可能需要构建自己的 Python 自动检测的镜像 Operator Docker 镜像。

自 operator v0.113.0 起,可以构建一个同时包含 glibc 和 musl 基础的自动检测的镜像,并在运行时进行配置

Django 应用

像 Django 这样从自己的可执行文件中运行的应用程序需要在您的部署文件中设置两个环境变量

  • PYTHONPATH,指向 Django 应用程序的根目录,例如“/app”
  • DJANGO_SETTINGS_MODULE,指定 Django 设置模块的名称,例如“myapp.settings”

gevent 应用

自 OpenTelemetry Python 1.37.0/0.58b0 版本发布以来,如果您在部署文件中将 OTEL_PYTHON_AUTO_INSTRUMENTATION_EXPERIMENTAL_GEVENT_PATCH 环境变量设置为 patch_all,则自动检测代码将在初始化自身之前调用同名的 gevent monkeypatch 方法。