From 67511d4165611adf06e90f768e9ef81febb029e8 Mon Sep 17 00:00:00 2001 From: DexterZhang <1105367836@qq.com> Date: Thu, 30 Apr 2020 07:00:32 +0800 Subject: [PATCH] feat(vmagent): add promscrap config reload suppport via http (#450) * feat(vmagent): add promscrap config reload suppport via http endpoint `/-/reload` * fix: typo fix --- app/vmagent/main.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/vmagent/main.go b/app/vmagent/main.go index b7fc4630e9..7b8501031f 100644 --- a/app/vmagent/main.go +++ b/app/vmagent/main.go @@ -5,6 +5,7 @@ import ( "fmt" "net/http" "strings" + "syscall" "time" "github.com/VictoriaMetrics/VictoriaMetrics/app/vmagent/csvimport" @@ -157,6 +158,15 @@ func requestHandler(w http.ResponseWriter, r *http.Request) bool { w.Header().Set("Content-Type", "text/plain") promscrape.WriteHumanReadableTargetsStatus(w) return true + case "/-/reload": + promscrapeConfigReloadRequests.Inc() + if err := syscall.Kill(syscall.Getpid(), syscall.SIGHUP); err != nil { + promscrapeConfigReloadErrors.Inc() + httpserver.Errorf(w, "Fail to reload config file, %s", err) + return true + } + w.WriteHeader(http.StatusNoContent) + return true } return false } @@ -177,4 +187,7 @@ var ( influxQueryRequests = metrics.NewCounter(`vmagent_http_requests_total{path="/query", protocol="influx"}`) promscrapeTargetsRequests = metrics.NewCounter(`vmagent_http_requests_total{path="/targets"}`) + + promscrapeConfigReloadRequests = metrics.NewCounter(`vmagent_http_requests_total{path="/-/reload"}`) + promscrapeConfigReloadErrors = metrics.NewCounter(`vmagent_http_request_errors_total{path="/-/reload"}`) )