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

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

应用编排与外部知识接入 · 聚焦本章的模块关系、源码依据与实现要点。

项目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

可观测性与大语言模型运维(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 定义。

追踪提供方架构
Dify · 追踪提供方架构 · 图 1
Dify · 追踪提供方架构 · 图 1

来源: 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 提供方设置。

前端到后端的可观测性映射
Dify · 前端到后端的可观测性映射 · 图 2
Dify · 前端到后端的可观测性映射 · 图 2

来源: 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