事件流与可观测性管道
现代系统会产生海量的遥测数据——包括日志、指标、追踪、安全事件以及大型语言模型(LLM)交互数据。本文将阐述可观测性管道如何帮助团队实时收集、处理、路由和评估这些数据,以及Datadog和Galileo在其中扮演的角色。
为何可观测性管道至关重要
原始遥测数据成本高昂、噪声大且结构不一致。可观测性管道位于您的应用程序与监控工具之间,通过以下方式解决这些问题:
- 降低成本:在海量日志到达昂贵的存储或安全信息与事件管理(SIEM)工具之前,对其进行过滤或采样。
- 提升数据质量:通过解析、标准化和元数据增强来优化数据。
- 保护隐私:在管道早期对个人身份信息(PII)进行屏蔽或移除。
- 呈现高质量信号:在捕获运营遥测数据的同时,记录并评估大型语言模型(LLM)的交互情况。
无论是工程团队、站点可靠性工程(SRE)团队还是 AI 团队,都能从更快、更干净且更具可操作性的数据中获益。
现代可观测性的双层架构
在同时包含传统云服务和 LLM 驱动功能的架构中,您需要处理两个截然不同的遥测层——每层都需要不同的工具。
基于 Datadog 的运维遥测
Datadog 负责基础设施和应用层:日志采集、指标收集、告警以及管道路由。 在此,您可以发送 payment-gateway 错误日志,应用 Grok 解析器提取 transaction_id,并将 status:error 事件路由至 Slack 警报或 S3 归档。
Datadog 的 日志管理 产品包含用于大规模处理和路由日志数据的 可观测性管道,以及用于实时搜索和 Live Tail 的 日志探索器。
使用 Galileo 进行模型遥测
Galileo 负责处理 LLM 层:追踪单个模型调用、捕获输入和输出、测量每个跨度(span)的延迟,并使用评估指标对响应进行评分。通过此功能,您可以了解您的 payment-query LLM 函数是否返回了准确、有依据且恰到好处的简洁答案——以及这些结果在不同部署中是否存在变化。
Galileo 是一个评估与可观测性平台,旨在帮助开发人员和 AI 工程师改进其 AI 应用,支持 Python 和 TypeScript SDK,并可与主流 LLM 提供商集成。
这两层并非冗余,而是相辅相成。Datadog 告诉您 发生了 什么问题;Galileo 则告诉您 为何 模型的响应质量下降。
高级管道架构
- Mermaid (图片)
- Mermaid (代码)
- ASCII 文本
flowchart TD
A[事件源<br/>• 云应用<br/>• 容器<br/>• 大型语言模型服务] --> B[采集层]
B --> B1[Datadog<br/>日志采集 API]
B --> B2[Galileo SDK]
B1 --> C[处理层<br/>• 解析<br/>• 增强<br/>• 屏蔽]
C --> D[路由引擎<br/>• 过滤器<br/>• 采样<br/>• 规则]
D --> E{{运维目标}}
E --> E1[S3 归档]
E --> E2[SIEM]
E --> E3[警报与仪表盘]
B2 --> F[Galileo 日志流<br/>• 跟踪<br/>• 跨度<br/>• 会话]
F --> G{{AI 评估}}
G --> G1[指标与评分]
G --> G2[实验]
[事件源]
(应用、容器、大型语言模型服务)
|
v
[采集层]
/ \
v v
[Datadog API] [Galileo SDK]
| |
v v
[处理] [日志流]
(解析、屏蔽) (追踪、跨度)
| |
v v
[路由引擎] [AI 评估]
(过滤器、规则) (指标、评分)
| |
v v
[运维] [AI 质量]
(S3、SIEM、警报) (实验)
事件流概念
事件流 是指连续且按时间顺序排列的遥测数据流。在现代 应用架构中,事件流同时来自多个来源:
- 应用日志(例如
payment-gateway错误事件) - 基础设施指标(CPU、内存、延迟)
- 分布式追踪跨度(应用性能监控 (APM) 数据)
- 安全审计和身份验证日志
- LLM 调用记录——提示词、生成结果、延迟和令牌计数
- 容器和 Kubernetes 事件
- IoT 设备遥测数据
LLM 调用记录是此列表中的最新成员。随着越来越多的应用集成 AI 功能,捕获和评估这些交互已变得与捕获传统应用日志同样重要。
核心管道组件
1. 采集层
采集层是原始遥测数据首次进入系统的入口。
对于运维数据,这意味着将 JSON 有效载荷发送至 https://http-intake.logs.datadoghq.com/api/v2/logs 上的 Datadog 日志采集 API,并通过 DD-API-KEY 标头进行身份验证。
对于 LLM 数据,这意味着需在应用代码中集成 Galileo SDK,当您使用 @log 装饰器或 GalileoLogger 包裹函数时,它会自动捕获跟踪信息。
这两种路径均通过适合其数据类型的不同机制处理身份验证、数据验证和缓冲。
2. 处理层
数据进入 Datadog 管道后,处理器会在路由前对其进行转换:
- 敏感数据扫描器——在数据到达下游工具之前,检测并模糊化电子邮件地址、信用卡号或客户 ID 等个人身份信息 (PII)。
- Grok 解析器——从原始日志字符串中提取结构化字段。
- 重映射器——将嵌套属性(例如
meta.customer_id)提升为 顶级维度,以便于过滤。 - 查找处理器——利用外部参考数据丰富日志内容,例如
将
service名称映射到team_owner标签。
在 Galileo 中,对应的层级通过日志流层级的 指标配置 实现。Luna-2 评估器会在您记录 LLM 响应时,自动对其正确性、事实依据和语气进行评分。
3. 路由层
路由层根据内容、业务规则或合规要求,决定处理后的事件流向。在 Datadog 中,您可通过 日志管道 和 索引 配置路由:
- 将
status:error日志同时路由至值班警报和 S3 归档。 - 应用采样规则,以减少进入索引的
status:info日志量。 - 将与安全相关的事件转发至 SIEM 集成。
- 使用 日志转发 功能,将特定的日志子集发送至外部 HTTP 端点。
在 Galileo 中,您通过按项目和日志流对数据进行结构化处理,在 项目和日志流级别 管理路由。这种方法使您能够评估和比较 dev、staging 和 production 追踪。
4. 目标层
处理后的事件最终存储的位置:
| 目标类型 | 示例 |
|---|---|
| 对象存储 | S3, Google Cloud Platform (GCP), Azure Blob |
| SIEM | Splunk, Chronicle, QRadar |
| 搜索与分析 | Elastic, OpenSearch, Snowflake |
| 监控与告警 | Datadog Log Explorer, dashboards, monitors |
| AI 评估 | Galileo Log streams, experiment results |
路由越清晰、目标越明确,目标系统的运行成本就越低、速度就越快。将未经处理的原始日志发送到 SIEM,是导致可观测性成本不必要增加的最常见原因之一。
常见用例
使用 Datadog 进行运维遥测
- 错误告警:将
payment-gateway中的status:error日志实时路由到 PagerDuty 或 Slack。 - 成本优化:在索引前对
status:info日志应用 10% 的采样规则。 - 安全分析:将身份验证失败和审计日志转发至 SIEM。
- 数据标准化:使用 Grok 解析器,统一不同语言编写的服务间的日志格式。
借助 Galileo 获取质量指标
- LLM 追踪:捕获 AI 功能中的每个提示和生成结果,并按会话和追踪记录进行组织。
- 响应评估:应用 Luna-2 指标,自动对模型输出进行质量、正确性和基于事实性的评分。
- 提示实验:在部署到
production日志流之前,通过 Galileo Experiments 对提示变更进行 A/B 测试。 - 跨环境对比:使用相同的评估标准,对比
staging和production环境中的模型行为。
关键要点
- 现代应用程序会产生两种截然不同的遥测数据流:运维日志和 LLM 交互记录。
- Datadog 通过专为高吞吐量基础设施数据设计的 基于管道的模型,处理运维数据的采集、处理和路由。
- Galileo 负责处理 AI 遥测数据——包括 SDK 插桩的追踪以及针对 LLM 驱动功能的基于指标的评估。
- 处理环节对数据进行清理和增强;路由环节实现精准分发;目标端则高效消费数据。
- 设计良好的管道可降低成本、提高可靠性,并在单一可观测性策略中同时呈现基础设施和 AI 质量信号。