mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
app/vmselect: show query origin (aka remote_addr or client address) on the /api/v1/status/active_queries
page for every query
This commit is contained in:
parent
ec6ed467c6
commit
0f6f0d30d3
3 changed files with 16 additions and 11 deletions
|
@ -774,6 +774,7 @@ func QueryHandler(startTime time.Time, at *auth.Token, w http.ResponseWriter, r
|
||||||
Start: start,
|
Start: start,
|
||||||
End: start,
|
End: start,
|
||||||
Step: step,
|
Step: step,
|
||||||
|
RemoteAddr: r.RemoteAddr,
|
||||||
Deadline: deadline,
|
Deadline: deadline,
|
||||||
LookbackDelta: lookbackDelta,
|
LookbackDelta: lookbackDelta,
|
||||||
|
|
||||||
|
@ -861,6 +862,7 @@ func queryRangeHandler(startTime time.Time, at *auth.Token, w http.ResponseWrite
|
||||||
Start: start,
|
Start: start,
|
||||||
End: end,
|
End: end,
|
||||||
Step: step,
|
Step: step,
|
||||||
|
RemoteAddr: r.RemoteAddr,
|
||||||
Deadline: deadline,
|
Deadline: deadline,
|
||||||
MayCache: mayCache,
|
MayCache: mayCache,
|
||||||
LookbackDelta: lookbackDelta,
|
LookbackDelta: lookbackDelta,
|
||||||
|
|
|
@ -20,8 +20,8 @@ func WriteActiveQueries(w io.Writer) {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
for _, aqe := range aqes {
|
for _, aqe := range aqes {
|
||||||
d := now.Sub(aqe.startTime)
|
d := now.Sub(aqe.startTime)
|
||||||
fmt.Fprintf(w, "\tduration: %.3fs, id=%016X, accountID=%d, projectID=%d, query=%q, start=%d, end=%d, step=%d\n",
|
fmt.Fprintf(w, "\tduration: %.3fs, id=%016X, remote_addr=%q, accountID=%d, projectID=%d, query=%q, start=%d, end=%d, step=%d\n",
|
||||||
d.Seconds(), aqe.qid, aqe.accountID, aqe.projectID, aqe.q, aqe.start, aqe.end, aqe.step)
|
d.Seconds(), aqe.qid, aqe.remoteAddr, aqe.accountID, aqe.projectID, aqe.q, aqe.start, aqe.end, aqe.step)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,14 +33,15 @@ type activeQueries struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type activeQueryEntry struct {
|
type activeQueryEntry struct {
|
||||||
accountID uint32
|
accountID uint32
|
||||||
projectID uint32
|
projectID uint32
|
||||||
start int64
|
start int64
|
||||||
end int64
|
end int64
|
||||||
step int64
|
step int64
|
||||||
qid uint64
|
qid uint64
|
||||||
q string
|
remoteAddr string
|
||||||
startTime time.Time
|
q string
|
||||||
|
startTime time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
func newActiveQueries() *activeQueries {
|
func newActiveQueries() *activeQueries {
|
||||||
|
@ -57,6 +58,7 @@ func (aq *activeQueries) Add(ec *EvalConfig, q string) uint64 {
|
||||||
aqe.end = ec.End
|
aqe.end = ec.End
|
||||||
aqe.step = ec.Step
|
aqe.step = ec.Step
|
||||||
aqe.qid = atomic.AddUint64(&nextActiveQueryID, 1)
|
aqe.qid = atomic.AddUint64(&nextActiveQueryID, 1)
|
||||||
|
aqe.remoteAddr = ec.RemoteAddr
|
||||||
aqe.q = q
|
aqe.q = q
|
||||||
aqe.startTime = time.Now()
|
aqe.startTime = time.Now()
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,8 @@ type EvalConfig struct {
|
||||||
End int64
|
End int64
|
||||||
Step int64
|
Step int64
|
||||||
|
|
||||||
Deadline netstorage.Deadline
|
RemoteAddr string
|
||||||
|
Deadline netstorage.Deadline
|
||||||
|
|
||||||
MayCache bool
|
MayCache bool
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue