介绍 NGINX 中的 Agentic Observability:实时 MCP 流量监测
原文作者:Dmitry Volyntsev - F5 Principal Software Engineer ; Michael Vernik - F5 Senior Product Manager
原文链接:介绍 NGINX 中的 Agentic Observability:实时 MCP 流量监测
转载来源:NGINX 中文社区
今天,我们宣布推出一个新的开源模块,该模块能够实现对 NGINX 处理的 Model Context Protocol (MCP) 流量进行实时的洞察。这一功能使 NGINX 运维人员能够跟踪并监控来自 AI agent 的活动,从而具备识别容易出错的 agent、高延迟的 MCP 工具、MCP 服务器之间的吞吐量差异等能力。
与传统的应用流量不同,代理式工作负载具有高度动态性和非确定性。Agent 可能会根据上下文、模型行为或上游数据调用不同的工具、分发请求或改变使用模式。此外,来自未知来源的“影子 Agent”可能会导致计划外的工作负载或扩大安全风险面。这种多变性使得仅使用传统的可观测性方法很难跟踪其性能、可靠性、成本和安全性。
MCP 为 AI agent 在分布式系统中发现、请求和使用工具及数据引入了标准化的方式。随着 AI agent 从孤立的实验演变为全天候运行的生产级客户端,这种标准化正迅速成为基础。
因此,MCP 的兴起产生了对代理式基础设施可观测性和治理的迫切需求。运维人员必须能够回答新的问题,例如:哪些 agent 正在产生流量?哪些 MCP 工具和服务器是瓶颈?错误源自何处,以及它们如何在agent 工作流中传播?如果在 MCP 层缺乏透明度,这些系统就会变得不透明,更难扩展,且运行风险更高。提供对 MCP 流量的可见性,对于确保 agent 驱动的系统在进入主流生产环境时保持可预测、安全和高性能至关重要。
为了给运维人员提供跟踪 agent 行为的合适工具,新的 Agentic 可观测性模块会实时检查 MCP 流量,并报告吞吐量、延迟、错误和追踪。至关重要的是,这些指标可以按以下类别进行分类:
- 代理式客户端
- 基于 Agent 的会话
- MCP 服务器
- MCP 工具
这些新功能直接在 NGINX 内部运行,并依托我们的原生 OpenTelemetry 模块,不需要在数据路径中安装额外的第 7 层代理,从而提供了一种无缝观察 AI agent 流量的方法。
Agentic Observability Module
Agentic 可观测性 模块是一个结合了参考实现的 NGINX JavaScript 模块。其核心功能是解析来自 MCP 客户端的流量,提取 MCP 工具名称、错误状态、客户端和服务器标识。随后,它利用原生的 NGINX OpenTelemetry (OTel) 模块将这些数据打包并作为 span 属性导出。该参考实现通过一个 OTel collector 扩展了此基础设施, collector随后将可观测性数据发送至 Prometheus 数据存储。最后,基于 Grafana 的前端从 Prometheus 中调取数据并生成一系列可视化仪表板,供实时查看和分析。
下面这个示例截图展示了收集到的数据如何帮助运维人员了解 MCP 工具、服务器以及代理型客户端(agentic client)的工作负载统计信息。接下来,让我们研究一些常见的 Agentic 基础设施(代理型)场景,看看Agentic 可观测性功能集如何帮助优化工作负载。
识别高延迟 MCP 工具调用
MCP 工具调用可能导致多种多样的下游工作负载。某些工具调用可能返回静态产物,另一些可能导致不同复杂程度的数据库查询,还有一些甚至会发起级联搜索查询。理解 MCP 工具层级的延迟对于确保高质量的用户体验至关重要,但来自单个 MCP 服务器或 HTTP 追踪的数据无法提供运维人员识别问题工作负载所需的聚合信息。通过下方的示例图表,我们可以轻松得出结论:query_db 和 resize_image 工具调用导致了体验下降,这使我们能够通过优化或增加与这些工具相关的计算资源来采取行动。
识别 MCP 服务器错误趋势
虽然 NGINX 长期以来一直具备报告后端服务器错误的能力,但 MCP 协议定义了一种针对工具调用的应用层错误响应方法。Agentic 可观测性模块能够收集并报告封装在 MCP 响应中的错误信息。下方图表中的示例显示,一个名为 “mcp-flaky” 的特别容易出错的 MCP 服务器,其高比例的 MCP 调用导致了错误,而后端池中的其他服务器则没有这种情况,这促使需要对该问题服务器进行进一步调查。
理解 Agent 吞吐量
了解 Agent 流量的来源与了解 AI agent 正在做什么同样重要。大语言模型 (LLM) 是互联网上 Agent流量的主要来源。对 MCP 吞吐量的洞察可以揭示屏蔽或限流某些 LLM 的需求——例如那些产生“影子 Agent”的 LLM,它们是未知的或未被授权访问由 NGINX 代理的应用。在其他场景中,agentic 客户端可能是受管基础设施的一部分。在这些情况下,流量差异可以为网络拓扑、路由策略或额外的基础设施投资提供参考。
立即体验
准备好深入体验并在您的基础设施中启用 agentic 流量监控了吗?我们创建了一个易于遵循的、基于 Docker Compose 的参考实现,您只需几条命令即可启动所有必要的组件。遵循本指南,您将很快掌握 AI agent 如何访问您的系统以及它们的来源。
Agentic 可观测性是 NGINX 中 AI 能力的基础层。此外,去年我们在 NGINX Gateway Fabric 中引入了 Gateway API Inference Extension 功能,为 Kubernetes 环境中的 LLM 和生成式 AI (GenAI) 工作负载实现了推理感知路由。我们计划在此基础上继续构建,在今年晚些时候为 NGINX、NGINX Ingress Controller 和 NGINX Gateway Fabric 提供基于 Agent 和推理 AI 流量的路由及其他策略决策新功能。
我们非常期待听到您对新 Agentic 可观测性功能的反馈,并欢迎您为我们的代码库贡献力量!
