请求日志
为了更深入地了解协作服务器的性能,我们构建了可用于监控的日志。 要启用这些日志,只需添加 ENABLE_METRIC_LOGS=true 环境变量。
有关更多变量详细信息,请参见 配置。
这些日志(指标)始终以 level = 30 记录(即使请求返回错误)。 它们针对所有同步请求(HTTP 和 WebSockets)打印。 在这些日志的情况下,您必须依赖于 status 或 statusCode 属性来检测任何异常。
状态的含义
success– 请求响应的 状态码<399warning– 请求响应的 状态码≥400和<499fail– 请求响应的 状态码≥500
# 日志结构
日志结构包含以下信息
handler– 操作的统一标识符。 使用此字段来标识调用。traceId– 唯一的 RPC 调用 ID。tags– 用分号分隔的标签列表。 使用此字段筛选指标日志。data– 包含附加信息的 对象。 它可能因不同的传输而异。data.duration– 以毫秒为单位的请求持续时间。data.transport– 请求传输的类型。 它可以是http或ws(websocket)。data.status– 请求状态。 它可以等于success、fail、warning。data.statusCode– HTTP 状态码标准中的响应状态。
此外,对于 HTTP 传输,还会包含以下信息
data.url– URL 路径。data.method– 请求方法。
在发生错误的情况下,data.status 将等于 failed,data.message 将包含错误消息。
HTTP 传输的示例日志
{
"level": 30,
"time": "2021-03-09T11:15:09.154Z",
"msg": "Request summary",
"handler": "v5:GET:collaborations:id:exists",
"traceId": "bd77768c-4f49-44da-b658-f765340ea643",
"data": {
"duration": 32,
"transport": "http",
"statusCode": 200,
"status": "success",
"url": "/api/v5/e2e-58a48a5ba8521b6f/collaborations/e2e-eff1945d39894534/exists",
"method": "GET"
},
"tags": "metrics"
}
WS 传输的示例日志
{
"level": 30,
"time": "2021-03-09T13:11:52.068Z",
"msg": "Request summary",
"handler": "addComment",
"traceId": "db09ba44-cb96-4db6-84f0-59eb3691b193",
"data": {
"duration": 12,
"transport": "ws",
"status": "success",
"statusCode": 200
},
"tags": "metrics"
}
# 示例图表
# 显示每种传输类型的请求速率
此信息将为您提供协作服务器处理的请求总数,按传输类型(WebSockets 和 HTTP)划分。

使用 data.transport 字段区分不同的请求类型。
# 显示每个操作的请求延迟
此图表将显示每个特定操作的请求速度,这对于衡量用户体验以及调试非常有用。

使用 data.duration 和 handler 字段来衡量操作的请求延迟。
# 每个操作的错误计数
显示每个操作类型的失败次数(5xx 代码)。

使用 handler 和 data.status 字段来计算操作的失败次数。
# 每个操作的警告计数
显示每个操作类型的警告次数(4xx 代码)。 此信息对于调试系统性能问题特别有用。

使用 data.status 和 data.statusCode 字段来计算不正确请求及其类型。