
本文字数:12221;估计阅读时间:31 分钟
作者:Dale McDiarmid & Lionel Palacin
本文在公众号【ClickHouseInc】首发

在过去两年里,LLM(大语言模型)可观测性迅速成为热门话题,围绕这一领域的工具生态系统不断壮大,帮助开发者更好地理解与优化 AI 驱动的应用。从 LangChain 内置的 ClickHouse 集成,到各大 AI 工具包对 OpenTelemetry 的原生支持,关于模型行为、使用情况以及成本的透明度需求从未如此迫切。
ClickHouse 以其在高性能 LLM 分析领域的卓越表现而闻名[https://clickhouse.com/blog/langchain-why-we-choose-clickhouse-to-power-langchain],最近又推出了基于 ClickHouse 的开源可观测性栈——ClickStack。基于此背景,我们希望探索:利用 ClickStack 构建 LLM 可观测性到底有多容易。
本文将以 LibreChat 为例,介绍如何通过 OpenTelemetry(OTel)对这个集成了 MCP 服务器的 LLM 聊天界面进行埋点接入。我们的目标是:在尽量少改动代码的前提下,捕获有价值的追踪与指标,并评估基于 ClickStack 的方案在 LLM 应用的可观测性上能做到什么程度。
为什么这件事重要?在生产环境中,LLM 因 Token 消耗带来的成本往往十分可观。缺乏可观测性,团队就如同在盲飞——既无法洞察使用模式,也难以及时发现性能瓶颈或评估成本效益。可观测性不仅是“锦上添花”,更是成本管理、用户体验(UX)优化,以及投资回报率(ROI)验证的基础。接下来就让我们一探究竟。
什么是 LibreChat?

LibreChat 是一个 AI 聊天平台,汇集了来自 OpenAI、Anthropic、Google 等提供商的模型,统一呈现在一个界面中。它被设计为 ChatGPT 或 Claude Desktop 的强大开源替代品,支持丰富的自定义选项、插件集成以及多语言访问。凭借简洁易用的界面和模块化架构,LibreChat 让自托管、功能扩展以及个性化定制的 AI 聊天体验变得轻而易举。
什么是 MCP?
MCP(Model Context Protocol)是一项新兴标准,旨在将数据库、API 以及各类工具等第三方服务接入语言模型。通过搭建 MCP 服务器,开发者可以定义服务供大语言模型(LLM)客户端调用的方式。相应地,MCP 客户端——如 Claude Desktop、ChatGPT 和 LibreChat——使模型能够以结构化的方式与这些服务交互。
MCP 正快速成为 LLM 集成的默认标准,它提供了一种轻量且与编程语言无关的服务访问接口。今年早些时候,我们发布了 mcp-clickhouse 服务器,让 ClickHouse 能够被任何 MCP 客户端无缝调用。
MCP 的价值在于它赋予 LLM 更强的能力——不再只是被动回答,而是充当实时系统的主动接口。这样,模型不仅能查询数据库,还能触发操作,或通过自然对话的方式挖掘洞察。在这些 AI 智能体工作流中,响应速度和交互体验尤为关键。ClickHouse 在此类场景中尤为擅长,凭借其低延迟的分析引擎,可以在对话的几秒钟内给出响应,而无需等待数小时。MCP 正是促成这种连接的桥梁。
在本示例中,我们将把 ClickHouse MCP 服务器连接到 LibreChat。与此同时,以下的埋点接入过程同样适用于任何基于 FastMCP 框架的实现(ClickHouse MCP 便是基于此开发)。我们的 MCP 服务器会进一步连接到演示环境 sql.clickhouse.com[http://sql.clickhouse.com/],该环境包含 35 个以上的数据集,可用于回答用户的各类问题。
部署 LibreChat
LibreChat 提供了一个 docker compose 文件[https://github.com/danny-avila/LibreChat/blob/main/docker-compose.yml],能够帮助用户轻松启动并运行所有相关组件。本节将介绍我们是如何在此基础上扩展 docker compose 文件,实现对 LibreChat 和 ClickHouse MCP Server 的埋点接入。完整的示例代码已发布在这个 Github 仓库[https://github.com/ClickHouse/examples/tree/main/clickstack/librechat-llm-observability]。
配置 LibreChat 连接 ClickHouse MCP
LibreChat 开箱即用支持 MCP,官方文档中提供了多种集成 MCP 服务器的示例[https://www.librechat.ai/docs/features/mcp#basic-configuration]。在本示例中,我们会将 ClickHouse MCP Server 作为独立服务部署,LibreChat 则通过 SSE 协议与其通信[https://en.wikipedia.org/wiki/Server-sent_events]。
ClickHouse MCP Server 提供了官方 Docker 镜像[https://hub.docker.com/r/mcp/clickhouse],方便我们在部署时实现独立运行。
下方展示了用于将 ClickHouse MCP Server 作为独立服务部署的 Docker Compose 配置,可直接追加到 LibreChat 官方提供的 docker compose 文件中[https://github.com/danny-avila/LibreChat/blob/main/docker-compose.yml]。
mcp-clickhouse:
image: mcp/clickhouse
container_name: mcp-clickhouse
ports:
- 8001:8000
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
- CLICKHOUSE_USER=demo
- CLICKHOUSE_PASSWORD=
- CLICKHOUSE_MCP_SERVER_TRANSPORT=sse
- CLICKHOUSE_MCP_BIND_HOST=0.0.0.0
在 LibreChat 的配置文件 librechat.yml 中,MCP 客户端配置为通过 SSE 协议连接 MCP 服务器。
mcpServers:
clickhouse-playground:

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



