菜单

cuilinsu
cuilinsu
发布于 2025-05-07 / 4 阅读
0

langfuse可观测平台

1. 背景

随着 LLM / AI Agent / RAG 系统进入生产环境,**可观测性(Observability)**成为核心基础设施问题:

● 需要记录 Prompt / Response / Latencies / Errors

● 需要支持 Trace(链路级分析)

● 需要评估(Evaluation / Scoring)

● 需要支持高吞吐(日志级别数据量)

传统日志系统(ELK / Prometheus)无法直接覆盖:

● 语义级 tracing

● Prompt 版本管理

● AI 评估链路

因此需要专门的 LLM Observability 平台。

2. 行业解决方案对比

​​

2.1 方案背景概览

Langfuse

● 类型:开源 / 自建部署

● 现状:GitHub 开源,可自建 Kubernetes / Docker Compose

● 是否免费:核心版本免费

● 设计目标:企业级 LLM Observability,覆盖 Prompt / Response / Trace / Evaluation

● 使用场景:

○ 高吞吐 LLM 系统(百万级/日 trace)

○ 私有化部署,高安全 / 合规要求

● 特点:异步 ingestion、OLAP 存储、对象存储解耦、可水平扩展

LangSmith

● 类型:SaaS / 官方

● 现状:OpenAI 官方提供,集成 OpenAI 产品

● 是否免费:免费试用额度有限

● 设计目标:快速可用的 LLM observability 和实验追踪

● 使用场景:PoC、小团队调试

● 限制:数据不可控,扩展性受限

Helicone

● 类型:SaaS + 部分开源

● 现状:提供 API 级指标采集

● 是否免费:免费额度有限,高 QPS 需付费

● 设计目标:快速收集 API 使用指标

● 使用场景:轻量监控、PoC 项目

● 限制:功能轻量,无法深度 trace / Evaluation,大规模生产受限

2.2 对比表格

方案

类型

可控性

功能完整度

可扩展性

高吞吐

使用场景

工程点评

Langfuse

开源 / 自建

企业内部 LLM 生产

可直接构建高吞吐生产环境,支持 trace / eval / prompt 管理

LangSmith

SaaS

PoC / 小团队

快速实验使用,数据不可控,企业生产受限

Helicone

SaaS + 部分开源

API 监控 / PoC

功能轻量,历史数据受限,不适合大规模生产

自研方案

自定义

核心研发团队

成本高,风险大,需长期运维和性能调优

2.3工程总结

  1. Langfuse

● 企业生产级首选

● 可自建、可扩展、高吞吐

● 支持完整 trace / evaluation / Prompt 管理

  1. LangSmith

● SaaS 快速 PoC / SDK 调试

● 不适合企业生产

  1. Helicone

● API 指标采集轻量方案

● 适合 PoC 或快速试验

● 功能受限,历史数据管理不便

  1. 自研方案

● 仅适合长期研发投入团队

● 成本高、维护复杂

结论:👉结合背景 + 对比表 + Radar 图,Langfuse 是企业 LLM Observability 的最优解。

3.  为什么选择 Langfuse

3.1 核心优势

① 专为 LLM 设计

● Trace / Span / Observation 模型

● Prompt 管理

● Evaluation 内建

② 架构天然支持高吞吐

● 异步 ingestion

● OLAP 分析(ClickHouse)

● 对象存储解耦

③ 可完全自托管

● 数据安全

● 支持私有化部署

● 可接入公司基础设施

④ 可水平扩展

● ingestion 层无状态

● worker 可扩展

● ClickHouse 支持集群

4. 总体架构

Langfuse 不是“主从架构”,而是:👉 事件驱动 + 异步解耦架构

数据流:

Client SDK
   ↓
Ingestion API(Web)
   ↓
对象存储(S3/COS) ←(原始数据)
   ↓
Redis Queue
   ↓
Worker(异步消费)
   ↓
ClickHouse(分析数据)
   ↓
PostgreSQL(元数据)

5. 核心依赖组件(必须)

5.1 必选组件

组件

作用

PostgreSQL

事务数据(用户/项目/API Key)

ClickHouse

Trace / Observation(核心分析数据)

Redis

队列 + 缓存

S3兼容对象存储

原始日志 / 大对象

Langfuse Web

API + UI

Langfuse Worker

异步处理

5.2 对象存储支持

支持所有 S3 API:

● AWS S3

● MinIO

● 腾讯云 COS(✔支持)

● Cloudflare R2

👉 你只需要配置:

S3_ENDPOINT
S3_ACCESS_KEY
S3_SECRET_KEY
S3_BUCKET

6. 部署方式(推荐)

6.1 开发:Docker Compose

6.2 生产:Kubernetes(推荐)

部署组件:

- langfuse-web (Deployment)
- langfuse-worker (Deployment)
- redis (StatefulSet)
- postgres (StatefulSet)
- clickhouse (StatefulSet / Cluster)
- object storage(外部)

6.3 对外访问方式(关键)

在 K8S 中:

👉 不会直接暴露 Pod IP

而是:

Client
  ↓
LoadBalancer / Ingress(统一入口)
  ↓
Service(ClusterIP)
  ↓
Pods(多个副本)

👉 外部只需要一个地址:我们使用ETCD/LB7. 高并发是如何解决的(重点)

❗关键结论:

👉 Langfuse 不内置“自动集群负载均衡”

👉 吞吐能力 = 架构设计 + 基础设施能力

7.1 ingestion 层(接收请求)

● 无状态

● 可水平扩展

👉 扩容方式:

replicas: N

👉 由:

● Kubernetes Service

● 或 Nginx / LB

做负载均衡

7.2 解耦核心:异步队列

API → Redis Queue → Worker

👉 好处:

● API 不阻塞

● 支持突发流量

● 削峰填谷

7.3 Worker 扩展

worker replicas ↑ → 吞吐 ↑

7.4 ClickHouse(关键瓶颈)

优化方式:

● 写读分离:

○ CLICKHOUSE_URL

○ CLICKHOUSE_READONLY_URL

● 使用集群(分片 + 副本)

7.5 S3 并发优化

关键参数:

LANGFUSE_S3_CONCURRENT_WRITES

8. 数据淘汰策略

8.1 ClickHouse(推荐 TTL)

ALTER TABLE traces
MODIFY TTL timestamp + INTERVAL 7 DAY DELETE;

👉 自动淘汰,无需人工

8.2 PostgreSQL

无 TTL:👉 用 cron:

DELETE FROM traces WHERE created_at < now() - interval '7 days';

8.3 对象存储(COS / S3)

使用:

👉 Lifecycle Policy

例如:

● 7天后删除

● 或转低频存储

腾讯云 COS ✔支持

9. 最终推荐方案

架构选型:

● K8S 部署

● COS 作为对象存储

● ClickHouse 集群

● Redis 队列

● PostgreSQL

数据策略:

● ClickHouse TTL(主方案)

● COS 生命周期

● PG 定期清理

参考资料

GitHub - langfuse/langfuse: 🪢 Open source LLM engineering platform: LLM Observability, metrics, evals, prompt management, playground, datasets. Integrates with OpenTelemetry, Langchain, OpenAI SDK, LiteLLM, and more. 🍊YC W23 · GitHubLangfuse - 中文概述 - Langfuse