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:
Aliaksandr Valialkin 2020-07-28 15:12:48 +03:00
parent ec6ed467c6
commit 0f6f0d30d3
3 changed files with 16 additions and 11 deletions

View file

@ -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,

View file

@ -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()

View file

@ -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