mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
lib/httpserver: expose command-line flags at /flags
page
This should simplify debugging. Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1695
This commit is contained in:
parent
676ad70d9f
commit
8ad95f0db7
6 changed files with 24 additions and 0 deletions
|
@ -95,6 +95,7 @@ func requestHandler(w http.ResponseWriter, r *http.Request) bool {
|
||||||
{"/api/v1/targets", "advanced information about discovered targets in JSON format"},
|
{"/api/v1/targets", "advanced information about discovered targets in JSON format"},
|
||||||
{"/config", "-promscrape.config contents"},
|
{"/config", "-promscrape.config contents"},
|
||||||
{"/metrics", "available service metrics"},
|
{"/metrics", "available service metrics"},
|
||||||
|
{"/flags", "command-line flags"},
|
||||||
{"/api/v1/status/tsdb", "tsdb status page"},
|
{"/api/v1/status/tsdb", "tsdb status page"},
|
||||||
{"/api/v1/status/top_queries", "top queries"},
|
{"/api/v1/status/top_queries", "top queries"},
|
||||||
{"/api/v1/status/active_queries", "active queries"},
|
{"/api/v1/status/active_queries", "active queries"},
|
||||||
|
|
|
@ -161,6 +161,7 @@ func requestHandler(w http.ResponseWriter, r *http.Request) bool {
|
||||||
{"/api/v1/targets", "advanced information about discovered targets in JSON format"},
|
{"/api/v1/targets", "advanced information about discovered targets in JSON format"},
|
||||||
{"/config", "-promscrape.config contents"},
|
{"/config", "-promscrape.config contents"},
|
||||||
{"/metrics", "available service metrics"},
|
{"/metrics", "available service metrics"},
|
||||||
|
{"/flags", "command-line flags"},
|
||||||
{"/-/reload", "reload configuration"},
|
{"/-/reload", "reload configuration"},
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -28,6 +28,7 @@ func initLinks() {
|
||||||
{path.Join(pathPrefix, "api/v1/groups"), "list all loaded groups and rules"},
|
{path.Join(pathPrefix, "api/v1/groups"), "list all loaded groups and rules"},
|
||||||
{path.Join(pathPrefix, "api/v1/alerts"), "list all active alerts"},
|
{path.Join(pathPrefix, "api/v1/alerts"), "list all active alerts"},
|
||||||
{path.Join(pathPrefix, "api/v1/groupID/alertID/status"), "get alert status by ID"},
|
{path.Join(pathPrefix, "api/v1/groupID/alertID/status"), "get alert status by ID"},
|
||||||
|
{path.Join(pathPrefix, "flags"), "command-line flags"},
|
||||||
{path.Join(pathPrefix, "metrics"), "list of application metrics"},
|
{path.Join(pathPrefix, "metrics"), "list of application metrics"},
|
||||||
{path.Join(pathPrefix, "-/reload"), "reload configuration"},
|
{path.Join(pathPrefix, "-/reload"), "reload configuration"},
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ sort: 15
|
||||||
* FEATURE: add trigonometric functions, which are going to be added in [Prometheus 2.31](https://github.com/prometheus/prometheus/pull/9239): [acosh](https://docs.victoriametrics.com/MetricsQL.html#acosh), [asinh](https://docs.victoriametrics.com/MetricsQL.html#asinh), [atan](https://docs.victoriametrics.com/MetricsQL.html#atan), [atanh](https://docs.victoriametrics.com/MetricsQL.html#atanh), [cosh](https://docs.victoriametrics.com/MetricsQL.html#cosh), [deg](https://docs.victoriametrics.com/MetricsQL.html#deg), [rad](https://docs.victoriametrics.com/MetricsQL.html#rad), [sinh](https://docs.victoriametrics.com/MetricsQL.html#sinh), [tan](https://docs.victoriametrics.com/MetricsQL.html#tan), [tanh](https://docs.victoriametrics.com/MetricsQL.html#tanh). Also add `atan2` binary operator. See [this pull request](https://github.com/prometheus/prometheus/pull/9248).
|
* FEATURE: add trigonometric functions, which are going to be added in [Prometheus 2.31](https://github.com/prometheus/prometheus/pull/9239): [acosh](https://docs.victoriametrics.com/MetricsQL.html#acosh), [asinh](https://docs.victoriametrics.com/MetricsQL.html#asinh), [atan](https://docs.victoriametrics.com/MetricsQL.html#atan), [atanh](https://docs.victoriametrics.com/MetricsQL.html#atanh), [cosh](https://docs.victoriametrics.com/MetricsQL.html#cosh), [deg](https://docs.victoriametrics.com/MetricsQL.html#deg), [rad](https://docs.victoriametrics.com/MetricsQL.html#rad), [sinh](https://docs.victoriametrics.com/MetricsQL.html#sinh), [tan](https://docs.victoriametrics.com/MetricsQL.html#tan), [tanh](https://docs.victoriametrics.com/MetricsQL.html#tanh). Also add `atan2` binary operator. See [this pull request](https://github.com/prometheus/prometheus/pull/9248).
|
||||||
* FEATURE: consistently return the same set of time series from [limitk](https://docs.victoriametrics.com/MetricsQL.html#limitk) function. This improves the usability of periodically refreshed graphs.
|
* FEATURE: consistently return the same set of time series from [limitk](https://docs.victoriametrics.com/MetricsQL.html#limitk) function. This improves the usability of periodically refreshed graphs.
|
||||||
* FEATURE: [vmui](https://docs.victoriametrics.com/#vmui): varios UX improvements. See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1711).
|
* FEATURE: [vmui](https://docs.victoriametrics.com/#vmui): varios UX improvements. See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1711).
|
||||||
|
* FEATURE: add `/flags` page to all the VictoriaMetrics components. This page contains command-line flags passed to the component.
|
||||||
|
|
||||||
* BUGFIX: vmstorage: fix `unaligned 64-bit atomic operation` panic on 32-bit architectures (arm and 386). The panic has been introduced in v1.67.0.
|
* BUGFIX: vmstorage: fix `unaligned 64-bit atomic operation` panic on 32-bit architectures (arm and 386). The panic has been introduced in v1.67.0.
|
||||||
* BUGFIX: vmalert, vmauth: prevent from frequent closing of TCP connections established to backends under high load. This should reduce the number of TCP sockets in `TIME_WAIT` state at `vmalert` and `vmauth` under high load. See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1704).
|
* BUGFIX: vmalert, vmauth: prevent from frequent closing of TCP connections established to backends under high load. This should reduce the number of TCP sockets in `TIME_WAIT` state at `vmalert` and `vmauth` under high load. See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1704).
|
||||||
|
|
15
lib/flagutil/flag.go
Normal file
15
lib/flagutil/flag.go
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
package flagutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
)
|
||||||
|
|
||||||
|
// WriteFlags writes all the explicitly set flags to w.
|
||||||
|
func WriteFlags(w io.Writer) {
|
||||||
|
flag.Visit(func(f *flag.Flag) {
|
||||||
|
value := f.Value.String()
|
||||||
|
fmt.Fprintf(w, "-%s=%q\n", f.Name, value)
|
||||||
|
})
|
||||||
|
}
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/fasttime"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/fasttime"
|
||||||
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/flagutil"
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logger"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logger"
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/netutil"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/netutil"
|
||||||
"github.com/VictoriaMetrics/metrics"
|
"github.com/VictoriaMetrics/metrics"
|
||||||
|
@ -279,6 +280,10 @@ func handlerWrapper(s *server, w http.ResponseWriter, r *http.Request, rh Reques
|
||||||
WritePrometheusMetrics(w)
|
WritePrometheusMetrics(w)
|
||||||
metricsHandlerDuration.UpdateDuration(startTime)
|
metricsHandlerDuration.UpdateDuration(startTime)
|
||||||
return
|
return
|
||||||
|
case "/flags":
|
||||||
|
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
|
||||||
|
flagutil.WriteFlags(w)
|
||||||
|
return
|
||||||
default:
|
default:
|
||||||
if strings.HasPrefix(r.URL.Path, "/debug/pprof/") {
|
if strings.HasPrefix(r.URL.Path, "/debug/pprof/") {
|
||||||
pprofRequests.Inc()
|
pprofRequests.Inc()
|
||||||
|
|
Loading…
Reference in a new issue