83

如何做好大模型应用的日志记录和链路追踪?

编程能力与工程实践中等

📋 面试问题

如何做好大模型应用的日志记录和链路追踪?

✅ 期望回答

三层日志体系: 应用日志(结构化JSON):
import structlog

logger = structlog.get_logger()

logger.info('llm_call',

request_id='req_123',

user_id='user_456',

model='gpt-4',

prompt_tokens=250,

completion_tokens=180,

total_tokens=430,

latency_ms=1234,

cost=0.0035,

)

LLM调用日志(关键字段):
  • 请求ID(贯穿全链路)
  • 用户ID
  • 模型名称、参数(temperature/max_tokens)
  • Token数(prompt/completion/total)
  • 延迟(TTFT/total_time)
  • 成本(按token计费)
  • 截断的Prompt和Response(采样存储)

链路追踪:
  • OpenTelemetry + Jaeger/Zipkin
  • 每条请求打上trace_id -> 追踪在API Gateway、推理引擎、工具调用之间的完整路径
  • 关键Span:User Request -> Auth -> API Gateway -> LLM Service -> Tool -> LLM -> Response

存储方案:
  • 实时日志 -> ElasticSearch + Kibana
  • 长期存档 -> S3/对象存储(成本低)
  • 聚合指标 -> Prometheus + Grafana
#日志#链路追踪#可观测性