在 Prometheus 中删除指定的历史数据
在 Prometheus 中删除指定的历史数据可以通过以下步骤完成:
1. 启用 Prometheus 的管理 API
默认情况下,Prometheus 的管理 API 是禁用的。要启用它,需要在 Prometheus 启动参数中添加 --web.enable-admin-api。
./prometheus --config.file=prometheus.yml --web.enable-admin-api --web.enable-lifecycle
2. 使用 API 删除指定数据
Prometheus 提供了一个 HTTP API 接口来删除指定的时间序列数据。
删除指定 Metric 的全部数据
curl -X POST -g 'http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series?match[]=metric_name{label="value"}'
删除指定时间范围内的数据
curl -X POST -g 'http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series?start=1660723273&end=1667894433&match[]=metric_name{label="value"}'
start和end参数是 Unix 时间戳,可以通过date +%s获取。
删除所有数据
curl -X POST -g 'http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series?match[]={__name__=~".+"}'
3. 清理磁盘上的数据
删除操作不会立即释放磁盘空间,数据仍然存在于磁盘上,直到 Prometheus 的下一次压缩操作。可以通过以下命令显式清理磁盘上的数据:
curl -X POST 'http://127.0.0.1:9090/api/v1/admin/tsdb/clean_tombstones'
注意事项
- 数据保留时间
可以通过 Prometheus 启动参数--storage.tsdb.retention设置数据保留时间,默认为 15 天。 - 谨慎操作
删除操作是不可逆的,建议在操作前备份相关数据。
关于链接解析问题
如果你在尝试访问上述 API 时遇到问题,可能是由于以下原因之一:
- 链接格式错误:请确保 URL 格式正确,特别是引号和特殊字符的使用。
- 网络问题:请检查 Prometheus 服务是否正常运行,以及网络连接是否正常。
- 权限问题:确保 Prometheus 的管理 API 已启用,并且你有足够的权限访问相关接口。
如果问题仍然存在,建议检查 Prometheus 的日志以获取更多错误信息,或者尝试重新启动 Prometheus 服务。





Comments | NOTHING