跳到主要内容

OpenTelemetry 集成

OpenTelemetry 是一个 CNCF 支持的项目,它提供与供应商无关的可观测性 API 和 SDK,用于以一致的方式检测应用程序并收集遥测数据。MLflow 跟踪与 OpenTelemetry 完全兼容,使其免受供应商锁定的影响。

OpenTelemetry

将 OpenTelemetry 跟踪摄取到 MLflow 中

MLflow 服务器在 /v1/traces 处暴露一个 OTLP 端点。此端点允许您从使用任何支持 OpenTelemetry 协议的语言(如 Java、Go、Rust 等)编写的应用程序中收集跟踪。

将 MLflow 跟踪导出到 OpenTelemetry 后端

由 MLflow SDK 生成的跟踪与 OpenTelemetry 跟踪规范完全兼容,允许您将跟踪导出到任何支持 OpenTelemetry 协议的可观测性平台,如 Datadog、Grafana、Prometheus 等。

理解语义约定

MLflow 理解流行的 OpenTelemetry 语义约定,用于 GenAI,例如 GenAI 语义约定、OpenInference、OpenLLMetry 等。使用这些约定生成的跟踪在 MLflow 中被视为一等公民,可以被引导到其他 MLflow 功能。

OpenTelemetry 原生 MLflow 跟踪 SDK

要快速开始使用与供应商无关的跟踪,您可以使用 OpenTelemetry 原生的 MLflow 跟踪 SDK。该 SDK 为流行的 GenAI 库提供了便捷的单行自动跟踪体验,并使用丰富的特定于 AI 的元数据(如提示、令牌使用情况、模型名称等)增强了通用的 OpenTelemetry 跟踪。请参阅快速入门以开始使用 MLflow 跟踪 SDK。

python
import mlflow
from openai import OpenAI

mlflow.openai.autolog()

client = OpenAI()
response = client.responses.create(model="gpt-5", input="Hello, world!")

MLflow 跟踪 SDK 也可与已使用 OpenTelemetry 进行检测的应用程序无缝协作。使用 MLflow 的 AI 跟踪功能增强您现有的 HTTP 框架、数据库、网络调用等的遥测数据。

将 OpenTelemetry 跟踪摄取到 MLflow 中

MLflow 服务器在 /v1/traces 处暴露一个 OTLP 端点(OTLP)。此端点允许您从使用任何支持 OpenTelemetry 协议的语言(如 Java、Go、Rust 等)编写的应用程序中收集跟踪。

有关如何将跟踪收集到 MLflow 服务器的更多详细信息,请参阅将 OpenTelemetry 跟踪收集到 MLflow 中

通过 OTLP 导出 MLflow 跟踪/指标

MLflow 跟踪和指标可以导出到其他 OpenTelemetry 兼容的后端,如 Datadog、Grafana、Prometheus 等,以与您现有的可观测性平台集成。您还可以使用双向导出同时将跟踪发送到 MLflow 和 OpenTelemetry 兼容的后端。

有关更多详细信息,请参阅通过 OTLP 导出 MLflow 跟踪/指标