服务调用日志
📋 概述
使用云开发的资源(HTTP 访问服务、云函数、数据库、云存储)时,会自动产生对应的服务调用日志,供开发者在云开发控制台进行检索和分析。通过服务调用日志,您可以:
- 🔍 追踪请求链路 - 完整记录服务调用的全链路信息
- 📊 性能分析 - 监控各服务的响应时间和性能表现
- 🐛 问题排查 - 快速定位错误和异常问题
- 📈 业务洞察 - 分析用户行为和系统使用情况
📝 日志信息
通过 SDK 或者 HTTP 访问服务使用云开发的资源时,会产生一条服务调用日志。每条服务调用日志包含以下核心信息:
| 信息类别 | 说明 | 用途 |
|---|---|---|
| 📊 日志元数据 | traceId、spanId、childOf | 链路追踪和关联分析 |
| 🎯 调用服务&事件 | service、event | 识别服务类型和操作类型 |
| 🗂️ 资源信息 | function、file_path 等 | 定位具体访问的资源 |
| 👤 调用者信息 | invoker、source、ua、ip | 识别请求来源和用户 |
| ⏰ 时间信息 | startTime、timeCost | 性能分析和时序追踪 |
| ❌ 错误信息 | errorCode、errorMsg | 问题诊断和错误分析 |
📊 日志元数据
日志元数据是实现分布式链路追踪的核心,包含以下字段:
| 字段 | 说明 | 示例值 |
|---|---|---|
| traceId | 全链路唯一标识符 | 8f431b7e-bfcc-423e-99d8-cda72471ff49 |
| spanId | 当前调用的唯一标识符 | bbe75687-fffb-6cb8 |
| childOf | 父级调用的 spanId | abc12345-defg-6789 |
🔗 链路追踪原理
在一次完整的服务调用中,可能访问多个云开发资源,产生多条服务调用日志:
- 🆔 相同 traceId:同一次请求的所有日志共享相同的 traceId
- 🏷️ 不同 spanId:每 个服务调用都有唯一的 spanId
- 🔗 childOf 关联:记录调用的父子关系,构建完整调用链
📖 调用链示例
场景:通过 SDK 调用云函数 A,云函数 A 调用云函数 B
SDK --> 云函数 A --> 云函数 B
日志记录:
- 日志 A:
traceId: abc123,spanId: span001,childOf: null - 日志 B:
traceId: abc123,spanId: span002,childOf: span001
通过 traceId 可以查询到完整调用链,通过 childOf 可以还原调用关系。