mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-01-20 07:19:17 +01:00
app/vmalert: do not show system links at http://vmalert:8880/ page when it is requested via proxy
The system links are absolute, e.g. they start from `/`, so there are high chances they won't work as expected when requested via proxy such as vmselect with -vmalert.proxyURL command-line flag. Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/3424
This commit is contained in:
parent
385d082bca
commit
650d1d1ae5
@ -8,7 +8,6 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/notifier"
|
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/notifier"
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/tpl"
|
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/tpl"
|
||||||
@ -18,20 +17,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
once = sync.Once{}
|
|
||||||
apiLinks [][2]string
|
|
||||||
navItems []tpl.NavItem
|
|
||||||
)
|
|
||||||
|
|
||||||
func initLinks() {
|
|
||||||
apiLinks = [][2]string{
|
apiLinks = [][2]string{
|
||||||
// api links are relative since they can be used by external clients,
|
// api links are relative since they can be used by external clients,
|
||||||
// such as Grafana, and proxied via vmselect.
|
// such as Grafana, and proxied via vmselect.
|
||||||
{"api/v1/rules", "list all loaded groups and rules"},
|
{"api/v1/rules", "list all loaded groups and rules"},
|
||||||
{"api/v1/alerts", "list all active alerts"},
|
{"api/v1/alerts", "list all active alerts"},
|
||||||
{fmt.Sprintf("api/v1/alert?%s=<int>&%s=<int>", paramGroupID, paramAlertID), "get alert status by group and alert ID"},
|
{fmt.Sprintf("api/v1/alert?%s=<int>&%s=<int>", paramGroupID, paramAlertID), "get alert status by group and alert ID"},
|
||||||
|
}
|
||||||
// system links
|
systemLinks = [][2]string{
|
||||||
{"/flags", "command-line flags"},
|
{"/flags", "command-line flags"},
|
||||||
{"/metrics", "list of application metrics"},
|
{"/metrics", "list of application metrics"},
|
||||||
{"/-/reload", "reload configuration"},
|
{"/-/reload", "reload configuration"},
|
||||||
@ -43,7 +36,7 @@ func initLinks() {
|
|||||||
{Name: "Notifiers", Url: "notifiers"},
|
{Name: "Notifiers", Url: "notifiers"},
|
||||||
{Name: "Docs", Url: "https://docs.victoriametrics.com/vmalert.html"},
|
{Name: "Docs", Url: "https://docs.victoriametrics.com/vmalert.html"},
|
||||||
}
|
}
|
||||||
}
|
)
|
||||||
|
|
||||||
type requestHandler struct {
|
type requestHandler struct {
|
||||||
m *manager
|
m *manager
|
||||||
@ -57,10 +50,6 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (rh *requestHandler) handler(w http.ResponseWriter, r *http.Request) bool {
|
func (rh *requestHandler) handler(w http.ResponseWriter, r *http.Request) bool {
|
||||||
once.Do(func() {
|
|
||||||
initLinks()
|
|
||||||
})
|
|
||||||
|
|
||||||
if strings.HasPrefix(r.URL.Path, "/vmalert/static") {
|
if strings.HasPrefix(r.URL.Path, "/vmalert/static") {
|
||||||
staticServer.ServeHTTP(w, r)
|
staticServer.ServeHTTP(w, r)
|
||||||
return true
|
return true
|
||||||
|
@ -16,11 +16,16 @@
|
|||||||
<p>
|
<p>
|
||||||
API:<br>
|
API:<br>
|
||||||
{% for _, p := range apiLinks %}
|
{% for _, p := range apiLinks %}
|
||||||
{%code
|
{%code p, doc := p[0], p[1] %}
|
||||||
p, doc := p[0], p[1]
|
<a href="{%s p %}">{%s p %}</a> - {%s doc %}<br/>
|
||||||
%}
|
|
||||||
<a href="{%s p %}">{%s p %}</a> - {%s doc %}<br/>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% if r.Header.Get("X-Forwarded-For") == "" %}
|
||||||
|
System:<br>
|
||||||
|
{% for _, p := range systemLinks %}
|
||||||
|
{%code p, doc := p[0], p[1] %}
|
||||||
|
<a href="{%s p %}">{%s p %}</a> - {%s doc %}<br/>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
{%= tpl.Footer(r) %}
|
{%= tpl.Footer(r) %}
|
||||||
{% endfunc %}
|
{% endfunc %}
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user