请求日志
为了更深入地了解协作服务器的性能,我们构建了可用于监控的日志。 要启用这些日志,只需添加 ENABLE_METRIC_LOGS=true
环境变量。
有关更多变量详细信息,请参见 配置。
这些日志(指标)始终以 level = 30
记录(即使请求返回错误)。 它们针对所有同步请求(HTTP 和 WebSockets)打印。 在这些日志的情况下,您必须依赖于 status
或 statusCode
属性来检测任何异常。
状态的含义
success
– 请求响应的 状态码<399
warning
– 请求响应的 状态码≥400
和<499
fail
– 请求响应的 状态码≥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
字段来计算不正确请求及其类型。