aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/rpcserver
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-11-07 16:01:01 +0100
committerDmitry Vyukov <dvyukov@google.com>2024-11-07 16:50:40 +0000
commit179b040e9d2068ccf2d0e0d3b084dd2293d85e04 (patch)
tree0817c1661fd4fc28eedaa7ccdc1a81bd4177414b /pkg/rpcserver
parent6410b21bc162fd5f9527bda7484828c53cd872d0 (diff)
pkg/rpcserver: export modules stat
We have a /modules link in the manager, but it's not exposed anywhere. Add a stat with this link.
Diffstat (limited to 'pkg/rpcserver')
-rw-r--r--pkg/rpcserver/rpcserver.go15
1 files changed, 8 insertions, 7 deletions
diff --git a/pkg/rpcserver/rpcserver.go b/pkg/rpcserver/rpcserver.go
index 10455cee7..69fd9e179 100644
--- a/pkg/rpcserver/rpcserver.go
+++ b/pkg/rpcserver/rpcserver.go
@@ -101,6 +101,7 @@ type Stats struct {
StatExecs *stat.Val
StatNumFuzzing *stat.Val
StatVMRestarts *stat.Val
+ StatModules *stat.Val
}
func NewStats() Stats {
@@ -108,13 +109,10 @@ func NewStats() Stats {
}
func NewNamedStats(name string) Stats {
- suffix := name
- if suffix != "" {
- suffix = " [" + suffix + "]"
- }
- vmsLink := "/vms"
+ suffix, linkSuffix := "", ""
if name != "" {
- vmsLink += "?pool=" + url.QueryEscape(name)
+ suffix = " [" + name + "]"
+ linkSuffix = "?pool=" + url.QueryEscape(name)
}
return Stats{
StatExecs: stat.New("exec total"+suffix, "Total test program executions",
@@ -122,10 +120,12 @@ func NewNamedStats(name string) Stats {
),
StatNumFuzzing: stat.New("fuzzing VMs"+suffix,
"Number of VMs that are currently fuzzing", stat.Graph("fuzzing VMs"),
- stat.Link(vmsLink),
+ stat.Link("/vms"+linkSuffix),
),
StatVMRestarts: stat.New("vm restarts"+suffix, "Total number of VM starts",
stat.Rate{}, stat.NoGraph),
+ StatModules: stat.New("modules"+suffix, "Number of loaded kernel modules",
+ stat.NoGraph, stat.Link("/modules"+linkSuffix)),
}
}
@@ -306,6 +306,7 @@ func (serv *server) handleMachineInfo(infoReq *flatrpc.InfoRequestRawT) (handsha
return handshakeResult{}, errors.New("machine check failed")
}
serv.infoOnce.Do(func() {
+ serv.StatModules.Add(len(modules))
serv.canonicalModules = cover.NewCanonicalizer(modules, serv.cfg.Cover)
serv.coverFilter = serv.mgr.CoverageFilter(modules)
globs := make(map[string][]string)