我们正在处理警报,因此需要不时清除我们通过调用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有用
答案 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