agentic_huge_data_base / wiki
页面 Dify · 12 可观测性与 LLMOps·DeepWiki 中文全文译文

12 · 可观测性与 LLMOps(Observability and LLMOps)

应用编排与外部知识接入 · 本章是 Dify DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Dify 章节12 状态全文译文 模块测试、发布与运维、界面与交互、系统架构、工作流与编排
源码线索
  • api/core/ops/entities/config_entity.py
  • api/core/ops/entities/trace_entity.py
  • api/core/ops/ops_trace_manager.py
  • api/core/ops/utils.py
  • api/services/ops_service.py
  • api/tasks/ops_trace_task.py
  • api/tests/unit_tests/core/ops/__init__.py
  • api/tests/unit_tests/core/ops/test_config_entity.py
  • api/tests/unit_tests/core/ops/test_ops_trace_manager.py
  • api/tests/unit_tests/core/ops/test_utils.py
模块标签
  • 测试、发布与运维
  • 界面与交互
  • 系统架构
  • 工作流与编排
  • 模型调用与提供方适配

中文译文

可观测性与 LLMOps(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/langgenius/dify/12-observability-and-llmops
翻译时间:2026-05-27T08:44:21.196Z
翻译模型:deepseek-chat
原文字符数:9042
项目:Dify (dify)

---

可观测性与大语言模型运维(LLMOps)

相关源文件

以下文件为本 Wiki 页面的生成提供了上下文:

  • api/core/ops/entities/config_entity.py
  • api/core/ops/entities/trace_entity.py
  • api/core/ops/ops_trace_manager.py
  • api/core/ops/utils.py
  • api/services/ops_service.py
  • api/tasks/ops_trace_task.py
  • api/tests/unit_tests/core/ops/__init__.py
  • api/tests/unit_tests/core/ops/test_config_entity.py
  • api/tests/unit_tests/core/ops/test_ops_trace_manager.py
  • api/tests/unit_tests/core/ops/test_utils.py
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/page.tsx](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/page.tsx)
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx)
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config.ts](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config.ts)
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/field.tsx](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/field.tsx)
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx)
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx)
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/tracing-icon.tsx](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/tracing-icon.tsx)
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/type.ts](web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/type.ts)
  • web/app/components/base/icons/src/public/tracing/index.ts

本页面从高层次概述了 Dify 的可观测性功能及其与各类大语言模型运维(LLMOps)工具的集成。内容涵盖 Dify 如何实现追踪、运维监控,以及如何利用外部平台来增强生产级 AI 应用的开发与部署。关于特定追踪提供方和运维功能的详细信息,请参见链接的子页面。

追踪集成

Dify 内置了强大的追踪系统,用于提供 AI 应用执行过程的可视性,特别是工作流和大语言模型(LLM)交互。该系统由 OpsTraceManager api/core/ops/ops_trace_manager.py:53-53 管理,它作为追踪数据的中枢调度器,将数据分发到各个已配置的提供方。系统支持多种主流的大语言模型运维(LLMOps)和可观测性平台,用户可以根据现有基础设施和需求选择合适的工具。

OpsTraceManager 通过 decrypt_tracing_config api/core/ops/ops_trace_manager.py:328-348encrypt_tracing_config api/core/ops/ops_trace_manager.py:305-326 等方法处理追踪凭证的配置、加密和解密。它还提供了 _lookup_app_and_workspace_names api/core/ops/ops_trace_manager.py:75-90_lookup_llm_credential_info api/core/ops/ops_trace_manager.py:113-191 等工具函数来解析上下文,从而用相关元数据丰富追踪数据。

关于 OpsTraceManager 架构和具体提供方实现的详细信息,请参见追踪管理器与提供方集成

支持的追踪提供方

Dify 支持与多个追踪提供方集成,每个提供方都具备独特的监控和分析大语言模型(LLM)应用的能力。这些提供方由 TracingProviderEnum api/core/ops/entities/config_entity.py:8-19 定义。

追踪提供方架构
graph TD
    subgraph "Dify 后端(代码空间)"
        OTM["OpsTraceManager [api/core/ops/ops_trace_manager.py]"]
        PTT["process_trace_tasks [api/tasks/ops_trace_task.py]"]
        OS["OpsService [api/services/ops_service.py]"]

        OS --> OTM
        PTT --> OTM
    end

    subgraph "任务队列"
        CELERY["Celery 队列:ops_trace"]
    end

    subgraph "外部大语言模型运维(LLMOps)平台"
        LF["Langfuse"]
        LS["LangSmith"]
        PHX["Arize Phoenix"]
        OPK["Opik"]
        WV["Weave"]
        AL["阿里云 ARMS"]
        TC["腾讯云 APM"]
        MF["MLflow"]
        DB["Databricks"]
    end

    OTM -- "保存到存储" --> CELERY
    CELERY --> PTT
    PTT --> LF
    PTT --> LS
    PTT --> PHX
    PTT --> OPK
    PTT --> WV
    PTT --> AL
    PTT --> TC
    PTT --> MF
    PTT --> DB

来源:

  • api/core/ops/ops_trace_manager.py:53-53
  • api/core/ops/entities/config_entity.py:8-19
  • api/services/ops_service.py:11-135
  • api/tasks/ops_trace_task.py:41-47

每个提供方都有自己从 BaseTracingConfig api/core/ops/entities/config_entity.py:21-54 派生的配置模型。Dify 前端在应用概览页面提供了专用用户界面(UI)来管理这些配置 [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx:28-141]()。

追踪实体与任务处理

追踪数据被封装在专门的实体中,例如 WorkflowTraceInfo api/core/ops/entities/trace_entity.py:86-106MessageTraceInfo api/core/ops/entities/trace_entity.py:108-120WorkflowNodeTraceInfo api/core/ops/entities/trace_entity.py:196-236。这些对象确保了不同提供方之间数据结构的一致性。

数据向外部平台的实际传输是通过 Celery 任务异步执行的。process_trace_tasks 函数 api/tasks/ops_trace_task.py:47-127 从存储中加载追踪数据 api/tasks/ops_trace_task.py:56-57,通过 get_ops_trace_instance api/tasks/ops_trace_task.py:61 实例化相应的追踪提供方,然后执行 trace() 方法 api/tasks/ops_trace_task.py:92

运维监控

除了追踪功能外,Dify 还与通用运维监控工具集成,以确保平台的稳定性和性能。

OpenTelemetry 与企业遥测

Dify 利用 OpenTelemetry 实现标准化的仪表化。在任务处理管线中,Dify 通过 is_ee_telemetry_enabled api/tasks/ops_trace_task.py:77-79 检查企业遥测是否启用。如果启用,它会使用 EnterpriseOtelTrace api/tasks/ops_trace_task.py:80-83 导出遥测数据,从而实现对追踪和指标与供应商无关的采集。

关于 OpenTelemetry 仪表化和配置的详细说明,请参见OpenTelemetry 与 Sentry 集成

前端可观测性用户界面(UI)

前端通过 TracingPanel [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx:28-141]() 管理可观测性提供方的状态和配置。它通过 API 调用使用 OpsService 来获取 [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx:90-140]() 和更新 [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx:42-48]() 提供方设置。

前端到后端的可观测性映射
graph LR
    subgraph "前端用户界面(UI) [web/app/.../tracing/]"
        PANEL["panel.tsx [Panel]"]
        POPUP["config-popup.tsx [ConfigPopup]"]
        PROV["provider-panel.tsx [ProviderPanel]"]
    end

    subgraph "后端 API [api/services/]"
        SVC["ops_service.py [OpsService]"]
    end

    subgraph "数据库模型 [api/models/]"
        TAC["TraceAppConfig [api/models/model.py]"]
    end

    PANEL --> POPUP
    POPUP --> PROV
    PROV -- "doFetchTracingConfig" --> SVC
    SVC -- "select" --> TAC

来源:

  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx:28-141]()
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx:41-90]()
  • api/services/ops_service.py:11-24
  • api/models/model.py:44-44

关于 Sentry 设置和错误追踪的更多信息,请参见OpenTelemetry 与 Sentry 集成

来源:

  • api/core/ops/ops_trace_manager.py:53-191
  • api/core/ops/entities/config_entity.py:8-19
  • api/core/ops/entities/trace_entity.py:86-236
  • api/tasks/ops_trace_task.py:41-127
  • api/services/ops_service.py:11-137
  • [web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx:28-141]()