日志服务概述
日志服务提升了系统的可观测性,帮助开发者快速定位问题,提升开发效率。
- 涵盖范围
日志服务的目标是记录系统中的所有关键信息,包括行为流、数据库访问、项目部署发布记录、AI运行记录等等。
- 存储容量
日志服务用天数来表示日志存储容量,例如1天表示存储最近1天的日志,在这个时间之前的日志会被删除。不同版本的项目容量不同:
- 免费版: 1天
- 高级版: 7天
- 专业版: 30天
请结合自身情况,选择合适的版本。
开始使用
1. 从项目详情页的“运行日志”进入服务
2. 使用以下功能模块便捷地查看日志:
日志分类:快速查看某个分类下的日志;
查询条件设置:设定时间范围和等级,自定义查询语法以获取精准的日志;
柱状图:直观显示日志统计信息,点击柱状图可快速设定时间范围;
日志详情:查看详细信息,点击字段值可将其快速添加到查询语句中;
查询语法介绍
日志服务提供了功能强大的查询语法,让用户能够快速、灵活地查询到日志。
1. 关键词查询
直接输入关键词,查询到包含该词的日志。
# 用"account"关键词查询所有和account表相关的请求
account
2. 字段查询
通过指定某个字段的具体值进行查询。
# 查询字段requestMethod的值等于POST的日志
requestMethod: POST
如果字段为文字类型,还可以结合通配符*
进行模糊查询。
# 查询traceId的值包含20241024的日志
traceId: 20241024*
如果字段为数字类型,可进行范围查询。
# 查询字段responseSize的值大于等于5000、小于等于10000的日志
responseSize: [5000 to 10000]
3. 多条件联合查询
结合运算符如 and、or、not 等联合多个条件一起查询。
# 查询所有和account相关,且status为200、requestMethod不为GET的日志
account and status:200 and not requestMethod:GET
4. 多层级查询
如果某个字段在多个层级以内,需要将它的路径完整地写出来。
# query是requestBody中的一个字段,查询它的值包含mutation的日志
requestBody.query: mutation*
5. 事件跟踪查询
事件之间经常相互关联,一个事件会引发许多其他事件,同时生成一连串日志。事件跟踪查询指将这些日志按照时间顺序排列,完整复原某个流程。基本原理是关联事件的日志有相同的 traceId 值,因此我们可以用 traceId 进行查询。
# 用 traceId 查询行为流所有节点的运行情况
traceId: "c2ecac0b-cce8-463b-b5d2-7ee7aa8f703020241128114815"
日志分类介绍
1. 行为流
日志服务中详细记录了行为流每个节点的运行情况:
每个节点生成两条日志:节点开始时日志、节点结束时日志
代码块中调用 Context.log() 时也会生成一条日志
节点日志字段说明
字段 |
字段 |
---|---|
traceId | 用于事件跟踪查询 |
nodeType | 节点的类型 |
nodeName | 节点名称 |
version | 行为流版本 |
input | 节点的输入,包含所有可引用的数据 |
output | 节点的运行结果 |
startAt | 节点开始时间 |
endAt | 节点结束时间 |
- 节点在日志中的类型
节点 |
日志中的类型 |
---|---|
输入 | FLOW_START |
获取数据 | QUERY_RECORD |
更新数据 | UPDATE_RECORD |
添加数据 | INSERT_RECORD |
删除数据 | DELETE_RECORD |
代码块 | CUSTUM_CODE |
赋予角色 | ADD_ROLE_TO_ACCOUNT |
移除角色 | REMOVE_ROLE_FROM_ACCOUN |
变量赋值 | UPDATE_GLOBAL_VARIABLES |
分支开始 | BRANCH_SEPARATION |
分支结束 | BRANCH_MERGE |
2. 数据库操作(即将开放)
该分类下记录了所有对数据库的操作(增删改),包含以下内容:
触发方式(前端请求、行为流、AI等)
操作的详细内容
3. 网关
网关是一个连接不同网络的中间设备,它负责转发数据,让不同系统之间可以顺畅交流。在Zion平台中,以下请求会经过网关:
- 前端页面发送给后端的请求;
- 通过Callback接收到的请求;
因此这个分类下的日志,包含了绝大部分请求,包括数据库的增删改查操作、API、AI等。不过由于系统限制,在网关日志中只能查看发送出去的请求,无法查看请求的结果。