Systemd refactor (#1254)
This reduces the system metric collection time by using a wait group and go routines to allow the systemd metric calls happen concurrently. Also, makes the start time, restarts, tasks_max, and tasks_current metrics disabled by default because these can be time consuming to gather. Signed-off-by: Paul Gier <pgier@redhat.com>
This commit is contained in:
parent
1ba436e194
commit
cb9e23c536
3 changed files with 181 additions and 195 deletions
|
|
@ -18,7 +18,6 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/coreos/go-systemd/dbus"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
)
|
||||
|
||||
// Creates mock UnitLists
|
||||
|
|
@ -87,26 +86,6 @@ func getUnitListFixtures() [][]unit {
|
|||
return [][]unit{fixture1, fixture2}
|
||||
}
|
||||
|
||||
func TestSystemdCollectorDoesntCrash(t *testing.T) {
|
||||
c, err := NewSystemdCollector()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
sink := make(chan prometheus.Metric)
|
||||
go func() {
|
||||
for {
|
||||
<-sink
|
||||
}
|
||||
}()
|
||||
|
||||
fixtures := getUnitListFixtures()
|
||||
collector := (c).(*systemdCollector)
|
||||
for _, units := range fixtures {
|
||||
collector.collectUnitStatusMetrics(sink, units)
|
||||
collector.collectSockets(sink, units)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSystemdIgnoreFilter(t *testing.T) {
|
||||
fixtures := getUnitListFixtures()
|
||||
whitelistPattern := regexp.MustCompile("^foo$")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue