抓取间隔决定分辨率
抓取间隔决定数据分辨率:间隔越短曲线越细,但目标压力、存储写入与查询负担同步上升。抓取超时必须小于间隔,否则会出现难以解释的失败,排查时容易被误判为网络问题。
取值要看端点耗时
取值的主要依据是目标端点的响应耗时:端点越慢,超时留的余量越要大。端点耗时贴近超时阈值时会出现间歇性失败,表现为偶发的抓取失败与曲线缺口,这类问题的根因通常不在网络,而在端点本身。
基本信息
| 默认值 | 抓取间隔默认一分钟,超时默认十秒 |
|---|---|
| 局部覆盖 | 单个任务可以覆盖全局设置 |
| 失败判定 | 超过超时时间即判定本次抓取失败 |
| 窗口配合 | 查询窗口需要随间隔一起调整 |
典型使用场景
- 常规业务指标:十五到六十秒是常见区间
- 慢端点:单独放宽间隔与超时,避免拖累其他任务
- 关键指标:只对少数指标缩短间隔,控制整体成本
- 批量任务指标:间隔可以放宽到分钟级以上
- 新任务接入:先用较宽间隔观察耗时,再逐步收紧
为慢端点单独放宽超时
为慢端点单独放宽超时
scrape_configs:
- job_name: slow-batch-metrics
scrape_interval: 60s # 覆盖全局值
scrape_timeout: 30s # 留出足够余量
static_configs:
- targets: ['10.0.2.30:9100']参数与取舍
| 参数 | 作用 | 取值考虑 |
|---|---|---|
| 抓取间隔 | 决定数据分辨率 | 越短成本越高 |
| 抓取超时 | 单次抓取的最长等待 | 必须小于间隔并留出余量 |
| 查询窗口 | 速率与聚合的时间跨度 | 需覆盖多个采样点 |
| 局部覆盖 | 为单个任务单独设置 | 用于慢端点或高频指标 |
调整时的做法
- 改完间隔后同步检查看板窗口与告警表达式
- 端点耗时接近超时的任务,优先优化端点而不是无限放宽超时
- 一次只改一个变量,便于判断影响来自哪里
超时必须小于抓取间隔,否则会出现看似随机的失败;配置校验通常也会拒绝这种组合。
把所有任务的间隔统一压短会让目标与存储同时承压:抓取成本与写入量都会随频率线性上升。