アラートに対処するため、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で使用する場合に備えて、以下の回答で要約します。
まず、Prometheus 2では管理APIがデフォルトで有効になっていません。これは、サーバーをオプションで起動してアクティブにする必要があります
--web.enable-admin-api
のv2に新しいエンドポイントがあります
https://prometheus/api/v2/admin/tsdb/delete_series
これは、検索基準を指定するPOST
をとります。 ALERTS
という名前の時系列の場合、アラート名はMyTestAlert
です。次のapplication/json
からdelete_series
エンドポイント、選択したツールから(MacのPostman 6でテスト済み)
{
"matchers": [{
"type": "EQ",
"name": "__name__",
"value": "ALERTS"
},
{
"type": "EQ",
"name": "alertname",
"value": "MyTestAlert"
}]
}
完全を期し、アラートが永続化されていたディスク領域を解放するには、空のペイロードをPOST
https://prometheus/api/v2/admin/tsdb/clean_tombstones
回答の集計:
カールバリアント:
# 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