对于网关类应用,主要关注的监控和统计内容如下:
指标 | 维度 | 说明 |
---|---|---|
交易量 | 来源方、目的方 | |
TPS | 来源方、目的方 | |
耗时 | 来源方、目的方 | 交易耗时,调用耗时 |
峰值 | 来源方、目的方 | 交易量、TPS、耗时 |
成功率 | 来源方、目的方 |
网关类应用一般先把采集交易数据写入到日志文件中,常用的主要属性包括以下内容:
属性名 | 中文名 | 描述 |
---|---|---|
tran_time | 交易开始时间 | 格式:YYYY-MM-DD HH:mm:ss.SSS,单位ms |
tran_id | 交易流水号 | 本地流水号 |
app_id | 应用编号 | |
node_id | 应用实例编号 | 应用的实例 |
tran_type | 交易类型 | |
src_service | 源服务名 | |
dst_service | 目标服务名 | |
tran_api | 交换接口 | 提供的HTTP请求URL |
tran_cost | 交易耗时 | 从交易开始被调用到交易返回的时间 |
tran_ret_code | 交易返回码 | 交易HTTP响应状态码 |
call_cost | 调用耗时 | 调用外部交易时HTTP调用的耗时 |
call_ret_code | 调用返回码 | 调用外部交易时HTTP响应状态码 |
fail_type | 交易失败类型 |
app fail:应用自身处理异常、交易请求方主动中断连接等 call fail:调用外部交易时HTTP调用失败或超时 |
err_info | 交易失败错误信息 |
为了减少日志量,应用也可以基于上述交易信息,做一些初步的统计工作,然后再输入到日志文件中,此时日志属性主要包括以下内容,以下的统计时间是以分钟计算:
分类 | 属性名 | 中文名 | 描述 |
---|---|---|---|
基本信息 | log_time | 统计时间 | 格式:YYYY-MM-DD HH:mm:00,精确到分钟 |
app_id | 应用编号 | ||
node_id | 应用实例编号 | ||
tran_type | 交易类型 | ||
src_service | 源服务名 | ||
dst_service | 目标服务名 | ||
统计结果 | tran_num | 交易数 | |
tran_cost_sum | 交易耗时合计 | ||
max_tran_cost_api | 最长交易耗时对应的api | ||
max_tran_cost | 最长交易耗时 | ||
call_num | 调用数 | ||
call_cost_sum | 调用耗时合计 | ||
max_call_cost_api | 最长调用耗时对应的api | ||
max_call_cost | 最长调用耗时 | ||
app_fail_num | 应用自身处理交易数 | 应用自身处理异常、交易请求方主动中断连接等 | |
call_fail_num | 调用失败交易数 | 调用外部交易时HTTP调用失败或超时 | |
call_bad_num | 调用返回码非200交易数 | 调用外部交易时HTTP返回状态码非200时 |
最终统计结果主要包含2部分:
1、基本统计
分类 | 属性 | 属性名 | 描述 |
---|---|---|---|
基本信息 | app_id | 应用名 | |
tran_type | 交易类型 | ||
stat_level | 统计级别 | 应用级、实例级 | |
time_unit | 统计时间单位 | 按月、按周、按天、按小时、按分钟 | |
begin_time | 统计开始时间 | ||
end_time | 统计结束时间 | ||
src_service | 源服务名 | ||
dst_service | 目标服务名 | ||
统计结果 | node_id | 应用实例名 | |
tran_num | 交易数 | ||
tran_cost_sum | 交易耗时合计 | ||
avg_tran_cost | 平均交易耗时 | tran_cost_sum / tran_num | |
max_tran_cost_api | 最长交易耗时对应的api | ||
max_tran_cost | 最长交易耗时 | ||
call_num | 调用数 | ||
call_cost_sum | 调用耗时合计 | ||
avg_call_cost | 平均调用耗时 | call_cost_sum / call_num | |
max_call_cost_api | 最长调用耗时对应的api | ||
max_call_cost | 最长调用耗时 | ||
app_fail_num | 应用处理失败交易数 | ||
call_fail_num | 调用失败交易数 | ||
call_bad_num | 调用返回码非200交易数 | ||
tps | 每秒交易量 | tran_num / 时长 | |
fail_rate | 失败率 | (app_fail_num + call_fail_num) / tran_num | |
bad_rate | 非200率 | call_bad_num / tran_num |
2、峰值统计
主要包含峰值相关统计数据
分类 | 属性 | 属性名 | 描述 |
---|---|---|---|
基本信息 | app_id | 应用名 | |
tran_type | 交易类型 | ||
stat_level | 统计级别 | 应用级、实例级 | |
time_unit | 统计时间单位 | 按月、按周、按天、按小时、按分钟 | |
begin_time | 统计开始时间 | ||
end_time | 统计结束时间 | ||
src_service | 源服务名 | ||
dst_service | 目标服务名 | ||
峰值结果 | peak_tps | tps峰值 | |
peak_tps_occur_time | 发生tps峰值的时间 | ||
peak_tps_occur_node_id | 发生tps峰值的实例号 | 为“实例级”时才有值 | |
peak_tran_num | 交易量峰值 | ||
peak_tran_num_occur_time | 发生交易量峰值的时间 | ||
peak_tran_num_occur_node_id | 发生交易量峰值的实例号 | 为“实例级”时才有值 | |
peak_call_num | 调用量峰值 | ||
peak_call_num_occur_time | 发生调用量峰值的时间 | ||
peak_call_num_occur_node_id | 发生调用量峰值的实例号 | 为“实例级”时才有值 | |
peak_fail_num | 失败量峰值 | ||
peak_fail_num_occur_time | 发生失败量峰值的时间 | ||
peak_fail_num_occur_node_id | 发生失败量峰值的实例号 | 为“实例级”时才有值 | |
peak_bad_num | 非200交易数峰值 | ||
peak_bad_num_occur_time | 发生非200交易数峰值的时间 | ||
peak_bad_num_occur_node_id | 发生非200交易数峰值的实例号 | 为“实例级”时才有值 | |
peak_tran_cost | 交易耗时峰值 | ||
peak_tran_cost_occur_time | 发生交易耗时峰值的时间 | ||
peak_tran_cost_occur_node_id | 发生交易耗时峰值的实例号 | 为“实例级”时才有值 | |
peak_call_cost | 调用耗时峰值 | ||
peak_call_cost_occur_time | 发生调用耗时峰值的时间 | ||
peak_call_cost_occur_node_id | 发生调用耗时峰值的实例号 | 为“实例级”时才有值 |
以上是网关类应用交易统计的主要内容,提供给大家参考,不同应用可根据自身实际情况,在此基础上添加和裁剪一些内容。