最新消息:

prometheus删除指定数据

IT技术 ipcpu 2417浏览 0评论

prometheus删除指定数据.md

Prometheus 在2.X版本后提供了数据删除功能、数据清理功能,想要使用 API 需要先添加启动参数 --web.enable-admin-api 打开这个接口,默认这个接口是关闭的。

一、数据删除

/api/v1/admin/tsdb/delete_series
如果成功,则返回204状态码。
该接口有以下三个参数

match[]=:选择要删除的系列的重复标签匹配器参数。match[]必须至少提供一个参数。
start=: 开始时间戳。可选,默认为最短时间。
end=: 结束时间戳。可选,默认为最大可能时间。
如果没有指定开始和结束时间将删除数据库中匹配的所有数据。
例子

# 删除匹配数据
curl -X POST -g 'http://xxx.com/api/v1/admin/tsdb/delete_series?match[]={wanip="10.244.2.158:9090"}' 

# 删除所有数据
curl -X POST -g 'http://xxx.com/api/v1/admin/tsdb/delete_series?match[]={__name__=~".+"}' 

# 删除指定的Metric
curl -X POST -g 'http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series?match[]=node_cpu_seconds_total'

# 删除指定 Metric 名称和特定 label 名称的全部数据
curl -X POST -g 'http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series?match[]=node_cpu_seconds_total{mode="idle"}'

#删除指定时间范围内的 Metric 数据
curl -X POST -g 'http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series?start=1578301194&end=1578301694&match[]=node_cpu_seconds_total{mode="idle"}'

此接口会将样本标记为已删除,标记内容存储在block文件夹中的tombstones,Prometheus发生Block压缩时或者调用clean_tombstones接口时才会真正删除数据。

二、删除数据的清理

上面我们说过使用delete_series接口仅会将数据标识为"删除", 并没有从磁盘中真正删除,clean_tombstones接口就是触发清理删除的。
/api/v1/admin/tsdb/clean_tombstones
如果删除成功,会返回 204 。
这个接口不需要参数。示例,

curl -X POST http://127.0.0.1:9090/api/v1/admin/tsdb/clean_tombstones

三、关于Prometheus中删除数据的推荐办法

  1. 如果Prometheus中的数据错误造成查询时的一些困扰,建议使用delete_series接口删除。
  2. 根据Prometheus默认规则,若是tombstone数据占据了Block块中series数量的5%,会启动压缩流程进行清理。
  3. Prometheus删除数据响应比较慢,如果Prometheus中数据量过多,需要释放空间的话,建议直接删除Block块,或者进行分片存储,不建议使用接口删除。
  4. Thanos的Sidecar组件默认不识别tombstone数据,这里需要注意下,如果需要删除数据,可以手动调用接口清理以后再上传一份。

参考资料

https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis

转载请注明:IPCPU-网络之路 » prometheus删除指定数据

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址