Latency Monitoring
Latency Monitoring 是监控 AI 应用各环节延迟的机制,包括首 token 延迟、LLM 推理延迟、工具执行延迟和端到端延迟。
#type / concept
#status / evergreen
#tech / ai
#tech / ops
[!info] related notes
- 所属 MOC: Observability Engineering MOC
- 相关: OpenTelemetry, AI 服务可观测性
Latency Monitoring
一句话定义
Latency Monitoring 是监控 AI 应用各环节延迟的机制。用户感知的延迟不只是 LLM 推理时间,还包括网络传输、上下文组装、工具执行等环节。
核心原理
延迟分解
端到端延迟 =
上下文组装 (50ms)
+ LLM 首 token 延迟 (500ms)
+ LLM 推理 (2000ms)
+ 工具执行 (300ms)
+ 网络传输 (100ms)
+ 前端渲染 (50ms)
─────────────────
总计: ~3000ms
关键指标
| 指标 | 说明 | 目标 |
|---|---|---|
| TTFT (Time to First Token) | 首 token 延迟 | < 1s |
| LLM Latency | LLM 推理延迟 | < 5s |
| Tool Latency | 工具执行延迟 | < 3s |
| E2E Latency | 端到端延迟 | < 10s |
Python 实现
class LatencyTracker:
def __init__(self):
self.marks = {}
def mark(self, name: str):
self.marks[name] = time.time()
def measure(self, start: str, end: str) -> float:
return (self.marks[end] - self.marks[start]) * 1000 # ms
# 使用
tracker = LatencyTracker()
tracker.mark("start")
response = await llm.chat(messages)
tracker.mark("llm_done")
print(f"LLM latency: {tracker.measure('start', 'llm_done')}ms")
常见坑
- 只监控 LLM 延迟: 忽略了上下文组装和工具执行
- 不做 P95/P99: 只看平均值,忽略了长尾延迟
- 不做告警: 延迟异常时没有通知