我需要删除一些源自一台主机的Prometheus指标。为简单起见,我们假设需要删除主机中的所有指标。
在两个VM上执行到delete_series
端点的POST。如预期般获得204。指标并没有消失(即使在通过CTRL+R
,CTRL+F5
强制刷新缓存之后,该指标仍在Web /浏览器界面中仍然可见)。
也尝试强制clean_tombstones
,得到204,但没有变化。
重新启动两个实例,然后又等待了一天,希望“某物”能够重新加载自身。
使用的命令:
# curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={instance="my-hostname"}' -v
# curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/clean_tombstones' -v
输出:
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 9090 (#0)
> POST /api/v1/admin/tsdb/delete_series?match[]={instance="my-hostname"} HTTP/1.1
> Host: localhost:9090
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 204 No Content
< Access-Control-Allow-Headers: Accept, Authorization, Content-Type, Origin
< Access-Control-Allow-Methods: GET, OPTIONS
< Access-Control-Allow-Origin: *
< Access-Control-Expose-Headers: Date
< Date: Tue, 23 Jul 2019 07:54:30 GMT
<
* Connection #0 to host localhost left intact
我的Prometheus群集由两个运行Prometheus 2.6.1的VM组成。
admin-api
已启用:
└─28557 /opt/prometheus/prometheus-server/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus/databases --storage.tsdb.retention=15d --web.enable-admin-api --web.external-url=http://redacted --log.level=debug
答案 0 :(得分:0)
进一步检查发现,源主机上/var/spool/prometheus
目录中存在意外的node-exporter文件,导致node-exporter一遍又一遍地废弃了旧指标。删除文件并重新运行delete命令后,指标消失了。