一、核心术语详解
1. 筛选列(Filter Columns)
- 定义:从日志中筛选出与监控目标相关的字段,排除无关信息。
- 作用:减少数据量,聚焦核心指标。
- 示例 :
日志字段:timestamp,client_ip,request_url,status_code,response_time
筛选列配置为request_url和status_code,仅保留这两个字段。
示例 :
日志字段:timestamp, client_ip, request_url, status_code, response_time
筛选列配置为 request_url 和 status_code,仅保留这两个字段。
2. 分组列(Grouping Columns)
- 定义 :按某一列或多列的值分类汇总数据(类似 SQL 的
GROUP BY)。 - 作用:支持多维分析,发现不同维度下的数据分布。
- 示例 :
按request_url分组,统计每个接口的调用次数和平均响应时间。
3. 采样列(Sampling Columns)
- 定义:按比例随机抽取部分日志数据,降低处理成本。
- 作用:优化资源利用率,适用于高吞吐量日志场景。
- 示例 :
日志量为 100 万条/天,采样 10% 后保留 10 万条/天。
4. 指标列(Metric Columns)
- 定义:定义需要计算的数值型指标(如计数、平均值、最大值等)。
- 作用:量化监控目标(如错误率、延迟、吞吐量)。
- 示例 :
指标列为response_time,计算平均值和 P99 延迟。
5. 采集配置(Data Collection Configuration)
- 定义:定义日志采集规则,包括路径、格式、解析方式等。
- 作用:确保日志能被正确解析和结构化。
- 示例 :
配置日志路径/var/log/app/*.log,定义 JSON 格式和时间戳字段。
6. 维度组合配置(Dimension Combination Configuration)
- 定义:定义多列组合分组规则,支持跨维度分析。
- 作用:定位问题根源(如接口 + 地域 + 用户类型)。
- 示例 :
组合列request_url和user_type,分析不同用户类型的接口性能差异。
二、监控产品分类与功能对比
1. 分钟统计/无 Key
- 功能:固定关键字筛选,统计单个指标(如总量)。
- 适用场景:单一维度的分钟级总量监控(如某收费站每分钟通过车辆数)。
- 示例:
-
- 日志 :
2012-11-11 11:11:11 粤A123XX,广州北收费站,G25,广州,¥50 - 配置 :关键字
广州北收费站,统计包含关键字的日志行数。 - 输出 :
时间:2012-11-11 11:11 → 广州北收费站通过车辆数:5辆。
- 日志 :
2. 分钟统计/多 Key
- 功能:按维度分组(Group By),统计各维度的分钟级数据。
- 适用场景:多维度对比监控(如每个收费站每分钟通过车辆数)。
- 示例:
-
-
日志 :
2012-11-11 11:11:11 粤A123XX,广州北收费站,G25,广州,¥50 -
配置 :维度字段
收费站名称,统计每组的行数。 -
输出:
时间:2012-11-11 11:11 →
广州北收费站:5辆
深圳南收费站:3辆
-
3. 秒级统计/无 Key
- 功能:固定关键字筛选,统计单个指标的秒级数据。
- 适用场景:高精度实时监控(如某收费站每秒通过车辆数)。
- 示例:
-
- 日志 :
2012-11-11 11:11:11 粤A123XX,广州北收费站,G25,广州,¥50 - 配置 :关键字
广州北收费站,统计每秒的行数。 - 输出 :
时间:2012-11-11 11:11:11 → 广州北收费站通过车辆数:2辆。
- 日志 :
4. 秒级统计/多 Key
- 功能:按维度分组,统计各维度的秒级数据。
- 适用场景:高精度多维度监控(如每条高速公路每秒通过车辆数)。
- 示例:
-
-
日志 :
2012-11-11 11:11:11 粤A123XX,广州北收费站,G25,广州,¥50 -
配置 :维度字段
高速公路编号,统计每组的行数。 -
输出:
时间:2012-11-11 11:11:11 →
G25:1辆
G26:1辆
-
5. 常用服务指标
- 功能:自动统计标准化指标(总量、成功量、失败量、成功率、平均耗时)。
- 适用场景:标准化监控(如收费站收费成功率、平均耗时)。
- 示例:
-
-
日志 :
2012-11-11 11:11:11 粤A123XX,广州北收费站,G25,广州,¥50 (耗时:100ms) -
配置 :维度字段
收费站名称,成功标识状态码=200,耗时字段耗时。 -
输出:
时间:2012-11-11 11:11 →
广州北收费站:
总量:5辆
成功量:5辆
失败量:0辆
成功率:100%
平均耗时:125ms
-
6. 分钟级多指标监控
- 功能:自定义多个指标(如车辆数、总金额),并支持指标运算(如平均金额)。
- 适用场景:复杂业务监控(如计算平均收费金额)。
- 示例:
-
-
日志 :
2012-11-11 11:11:11 粤A123XX,广州北收费站,G25,广州,¥50 -
配置 :维度字段
收费站名称,指标字段车辆数(行数)、总金额(求和)。 -
输出:
时间:2012-11-11 11:11 →
广州北收费站:
车辆数:5辆
总金额:¥250
平均金额:¥50
-
三、产品对比表
|----------------|--------------|-------------------|----------|----------|-------------------------|
| 产品 | 维度(Key) | 指标(Metric) | 存储成本 | 预警支持 | 适用场景 |
| 分钟统计/无 Key | 无 | 单一指标(如"车辆数") | 低 | ✅ 支持 | 单一维度的分钟级总量监控(如某收费站总流量) |
| 分钟统计/多 Key | 多(如"收费站名称") | 单一指标(如"车辆数") | 中 | ✅ 支持 | 多维度对比监控(如不同收费站流量差异) |
| 秒级统计/无 Key | 无 | 单一指标(如"车辆数") | 高 | ❌ 不支持 | 高精度实时监控(如某收费站每秒流量) |
| 秒级统计/多 Key | 多(如"高速公路编号") | 单一指标(如"车辆数") | 极高 | ❌ 不支持 | 高精度多维度监控(如每条高速公路每秒流量) |
| 常用服务指标 | 多(如"收费站名称") | 5个标准化指标(总量、成功率等) | 中 | ✅ 支持 | 标准化监控(如收费成功率、平均耗时) |
| 分钟级多指标监控 | 多(如"收费站名称") | 自定义多个指标(如车辆数、总金额) | 中 | ✅ 支持 | 复杂业务监控(如计算平均金额、总金额/车辆数) |
四、配置建议与注意事项
1. 如何选择监控产品?
- 单一指标 + 无分组 → 分钟统计/无 Key
- 单一指标 + 多分组 → 分钟统计/多 Key
- 多指标 + 复杂计算 → 分钟级多指标监控
- 高精度实时监控 → 秒级统计/无 Key 或 秒级统计/多 Key(注意存储成本)
2. 存储成本权衡
- 秒级统计:一天需存储 86,400 个数据点(24h × 60m × 60s),多维度时成本更高。
- 分钟统计:一天仅需 1,440 个数据点(24h × 60m),适合大多数场景。
3. 日志格式要求
- 时间戳 :确保统一格式(如
2012-11-11 11:11:11),便于按时间分组。 - 字段提取 :若日志未结构化,需通过正则表达式或日志解析工具提取关键字段(如
收费站名称、高速公路编号)。
4. 常见问题解答
- Q:多 Key 是多个指标吗?
A:不是!"多 Key"是 多维度分组(如按"收费站名称"分组),而指标仍是单一的(如"车辆数")。 - Q:如何统计多个指标?
A:使用 分钟级多指标监控,可自定义多个指标(如"车辆数"、"总金额")并支持运算(如平均金额 = 总金额 / 车辆数)。
五、总结
- 术语核心:
-
- 筛选列 = 关键字段过滤
- 分组列 = 多维分类
- 采样列 = 数据量优化
- 指标列 = 数值型指标计算
- 维度组合配置 = 跨维度分析
- 产品选择原则:
-
- 粒度:分钟级 vs 秒级(根据业务需求选择)
- 维度:无 Key vs 多 Key(是否需要分组对比)
- 指标:单一指标 vs 多指标(是否需要复杂计算)