方案对照
| 方案 | 强项 | 边界 |
|---|---|---|
| Prometheus | 指标采集、PromQL、告警生态 | 本地 TSDB 不面向长期海量明细,需要远程存储 |
| InfluxDB | 开箱即用的写入、保留策略与降采样任务 | 查询语言版本演进较大,迁移要核对语法 |
| ClickHouse | SQL、高基数明细、压缩与聚合性能 | 不自带采集与告警,需要自建管道 |
| TimescaleDB | Postgres 生态、完整 SQL、连续聚合 | 大规模写入要按超表设计分片与块 |
降采样思路(InfluxDB 任务示例)
降采样思路(InfluxDB 任务示例)
option task = { name: "downsample_1h", every: 1h }
from(bucket: "metrics")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu")
|> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
|> to(bucket: "metrics_1h", org: "ops")分层保留减少长期成本:原始精度短期保留(数天到数周),降采样数据长期保留;降采样窗口与保留周期要和查询需求对齐。