Add internal metric IDs, add nameserver request metric

This commit is contained in:
Daniel 2023-09-05 14:44:40 +02:00
parent 40798df6e4
commit 58e467ac82
5 changed files with 38 additions and 5 deletions

2
go.mod
View file

@ -18,7 +18,7 @@ require (
github.com/miekg/dns v1.1.55
github.com/oschwald/maxminddb-golang v1.12.0
github.com/safing/jess v0.3.1
github.com/safing/portbase v0.17.2
github.com/safing/portbase v0.17.3
github.com/safing/portmaster-android/go v0.0.0-20230605085256-6abf4c495626
github.com/safing/spn v0.6.17
github.com/shirou/gopsutil v3.21.11+incompatible

2
go.sum
View file

@ -210,6 +210,8 @@ github.com/safing/portbase v0.15.2/go.mod h1:5bHi99fz7Hh/wOsZUOI631WF9ePSHk57c4f
github.com/safing/portbase v0.16.2/go.mod h1:mzNCWqPbO7vIYbbK5PElGbudwd2vx4YPNawymL8Aro8=
github.com/safing/portbase v0.17.2 h1:HzJkURMmXkv30wMHB7xJ+Z5U5aTMe+EzvlHavKoKkos=
github.com/safing/portbase v0.17.2/go.mod h1:1cVgDZIsPiqM5b+K88Kshir5PGIvsftYkx7y1x925+8=
github.com/safing/portbase v0.17.3 h1:LLV2kq4mli2phHFHxigTkIoOjConieMTWsDyi9kJd00=
github.com/safing/portbase v0.17.3/go.mod h1:1cVgDZIsPiqM5b+K88Kshir5PGIvsftYkx7y1x925+8=
github.com/safing/portmaster-android/go v0.0.0-20230605085256-6abf4c495626 h1:olc/REnUdpJN/Gmz8B030OxLpMYxyPDTrDILNEw0eKs=
github.com/safing/portmaster-android/go v0.0.0-20230605085256-6abf4c495626/go.mod h1:abwyAQrZGemWbSh/aCD9nnkp0SvFFf/mGWkAbOwPnFE=
github.com/safing/spn v0.6.17 h1:3Lu1cpTcy8zYhA/2UEfeG08Rx1nlwIj1aobSfNXXgUI=

View file

@ -6,7 +6,10 @@ import (
"github.com/safing/portbase/metrics"
)
var requestsHistogram *metrics.Histogram
var (
requestsHistogram *metrics.Histogram
totalHandledRequests *metrics.Counter
)
func registerMetrics() (err error) {
requestsHistogram, err = metrics.NewHistogram(
@ -15,7 +18,25 @@ func registerMetrics() (err error) {
&metrics.Options{
Permission: api.PermitUser,
ExpertiseLevel: config.ExpertiseLevelExpert,
})
},
)
if err != nil {
return err
}
return err
totalHandledRequests, err = metrics.NewCounter(
"nameserver/request/total",
nil,
&metrics.Options{
InternalID: "handled_dns_requests",
Permission: api.PermitUser,
ExpertiseLevel: config.ExpertiseLevelExpert,
Persist: true,
},
)
if err != nil {
return err
}
return nil
}

View file

@ -84,6 +84,9 @@ func handleRequest(ctx context.Context, w dns.ResponseWriter, request *dns.Msg)
defer tracer.Submit()
tracer.Tracef("nameserver: handling new request for %s from %s:%d", q.ID(), remoteAddr.IP, remoteAddr.Port)
// Count request.
totalHandledRequests.Inc()
// Setup quick reply function.
reply := func(responder nsutil.Responder, rrProviders ...nsutil.RRProvider) error {
err := sendResponse(ctx, w, request, responder, rrProviders...)

View file

@ -37,6 +37,7 @@ func registerMetrics() (err error) {
return float64(conns.active())
},
&metrics.Options{
InternalID: "active_connections",
Permission: api.PermitUser,
ExpertiseLevel: config.ExpertiseLevelUser,
})
@ -58,7 +59,13 @@ func registerMetrics() (err error) {
"direction": "out",
"blocked": "true",
},
connCounterOpts,
&metrics.Options{
Name: "Connections",
InternalID: "blocked_outgoing_connections",
Permission: api.PermitUser,
ExpertiseLevel: config.ExpertiseLevelUser,
Persist: true,
},
)
if err != nil {
return err