如何从Prometheus v2中删除时间序列,特别是一系列警报

时间:2018-04-16 14:09:38

标签: prometheus

我们正在处理警报,因此需要不时清除我们通过调用HTTP API所做的旧警报,以删除存储警报的伪时间序列,例如:

DELETE https://prometheus/api/v1/series?match[]={__name__="ALERTS"}

我们最近将Prometheus服务器从1.8升级到2.2.1。

现在调用此端点

{
    "status": "error",
    "errorType": "internal",
    "error": "not implemented"
}

我做了一些研究,并在不同地点找到了解决方案,我将在下面的答案中总结,以防它对我的同伴StackOverflowers有用

2 个答案:

答案 0 :(得分:5)

首先,默认情况下,Prometheus 2中未启用admin API。必须通过使用

选项启动服务器来激活此API。
--web.enable-admin-api

中的v2中有一个新端点
https://prometheus/api/v2/admin/tsdb/delete_series

这需要POST指定搜索条件,例如对于名称为ALERTS且警报名称为MyTestAlert的时间序列,请将以下application/json发布到delete_series端点,从所选工具(使用Postman 6测试)在Mac上)

{
    "matchers": [{
        "type": "EQ",
        "name": "__name__",
        "value": "ALERTS"
    },
    {
        "type": "EQ",
        "name": "alertname",
        "value": "MyTestAlert"
    }]
} 

为了完整性并释放保留警报的磁盘空间,POST空载荷

https://prometheus/api/v2/admin/tsdb/clean_tombstones

汇总来自:

答案 1 :(得分:0)

卷曲变体:

# delete alerts series
curl -g -XPOST 'http://prometheus:9090/api/v2/admin/tsdb/delete_series?match[]=ALERTS'

# delete data from disk
curl -XPOST http://prometheus:9090/api/v2/admin/tsdb/clean_tombstones