SuperAPI AI 工具集

observability-edot-python-migrate

部署与运维

查看项目

更新于 10-16 05:07

技能介绍

用途:把 Python 应用从经典 Elastic APM 代理迁移到 EDOT Python 代理(elastic-apm 切换为 elastic-opentelemetry)。

主要步骤与要求:

  1. 迁移前先阅读迁移指南及 EDOT Python 的 setup 与 configuration 文档。
  2. 移除所有经典 APM 引用,包括 requirements 中的 elastic-apm、应用代码中的 ElasticAPM(app) 与 elasticapm.contrib.、app.config['ELASTIC_APM'] 配置块,以及全部 ELASTIC_APM_ 环境变量。
  3. 通过 pip 安装 elastic-opentelemetry,并加入 requirements.txt 或等效文件。
  4. 在镜像构建期间运行 edot-bootstrap --action=install,为检测到的库安装自动埋点包。
  5. 用 opentelemetry-instrument 包装应用入口,例如 opentelemetry-instrument gunicorn app:app;否则不会采集任何遥测数据。
  6. 设置三个必需环境变量:OTEL_SERVICE_NAME(替代 ELASTIC_APM_SERVICE_NAME)、OTEL_EXPORTER_OTLP_ENDPOINT(必须为托管 OTLP 端点或 EDOT Collector URL,不要复用旧的 ELASTIC_APM_SERVER_URL,切勿使用 APM Server URL,即不要 apm-server、:8200 或 /intake/v2/events)、OTEL_EXPORTER_OTLP_HEADERS("Authorization=ApiKey <key>" 或 "Authorization=Bearer <token>",替代 ELASTIC_APM_SECRET_TOKEN)。

限制与注意:不要设置 OTEL_TRACES_EXPORTER、OTEL_METRICS_EXPORTER、OTEL_LOGS_EXPORTER,其默认值已正确;切勿在同一应用上同时运行经典 elastic-apm 与 EDOT。完整示例见 EDOT Python 迁移指南。