프로메테우스 시계열 데이터 삭제하기

최대 1 분 소요

프로메테우스(Prometheus)에서 시계열(Time series) 데이터를 삭제하는 방법에 대해서 알아보겠습니다.

디스크 용량이 부족하거나 필요없는 시계열 데이터가 있을 경우, 데이터를 삭제할 필요가 있습니다. 프로메테우스의 시계열 데이터를 삭제하려면 관리 API를 사용해야합니다. 이 관리 API는 기본적으로 비활성화 되어 있습니다.

관리 API 활성화 하기

이 기능을 활성화 하기 위해서는, 프로메테우스를 기동할때 --web.enable-admin-api 파라메터를 추가해줘야합니다.

시계열 데이터 삭제하기

시계열 데이터를 삭제하는 API는 delete_series 입니다. 아래 명령어를 실행하면, 레이블과 일치하는 시계열 데이터를 모두 삭제할 수 있습니다.

curl -X POST \
	-g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={foo="bar"}'

예를 들어 잡(job)이나 인스턴스(instance)에 해당하는 데이터를 삭제하려면, 다음과 같이 실행하면 됩니다.

curl -X POST \
	-g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={job="node_exporter"}'

curl -X POST \
	-g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={instance="172.22.0.1:9100"}'

전체 시계열 데이터를 모두 삭제하려면, 다음과 같이 실행하면 됩니다.

curl -X POST \
	-g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={__name__=~".+"}'

참고로 delete_series API를 호출해도, 데이터가 즉시 삭제되지는 않는다. 실제 데이터는 디스크에 남아있고, 다음번 컴팩션(compaction)이 실행될때 정리된다. 바로 정리 하고 싶다면, 다음과 같이 clean_tombstones API를 호출하면 된다.

curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/clean_tombstones'