Prometheus删除指定数据

发布于 2022-07-01  3 次阅读


在 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"}'
  • startend 参数是 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'

注意事项

  1. 数据保留时间
    可以通过 Prometheus 启动参数 --storage.tsdb.retention 设置数据保留时间,默认为 15 天。
  2. 谨慎操作
    删除操作是不可逆的,建议在操作前备份相关数据。

关于链接解析问题

如果你在尝试访问上述 API 时遇到问题,可能是由于以下原因之一:

  1. 链接格式错误:请确保 URL 格式正确,特别是引号和特殊字符的使用。
  2. 网络问题:请检查 Prometheus 服务是否正常运行,以及网络连接是否正常。
  3. 权限问题:确保 Prometheus 的管理 API 已启用,并且你有足够的权限访问相关接口。

如果问题仍然存在,建议检查 Prometheus 的日志以获取更多错误信息,或者尝试重新启动 Prometheus 服务。


【马摇金辔破香尘,我自御剑乘风去】