Merge pull request #10 from brian-brazil/initial-collect

Do an initial run of the collectors
This commit is contained in:
juliusv 2014-05-23 14:20:28 +02:00
commit a5f541a559
1 changed files with 16 additions and 9 deletions

View File

@ -50,6 +50,9 @@ func main() {
go serveStatus(registry) go serveStatus(registry)
log.Printf("Starting initial collection")
collect(collectors)
tick := time.Tick(*interval) tick := time.Tick(*interval)
for { for {
select { select {
@ -63,15 +66,7 @@ func main() {
case <-tick: case <-tick:
log.Printf("Starting new interval") log.Printf("Starting new interval")
wg := sync.WaitGroup{} collect(collectors)
wg.Add(len(collectors))
for _, c := range collectors {
go func(c collector.Collector) {
Execute(c)
wg.Done()
}(c)
}
wg.Wait()
case <-sigUsr1: case <-sigUsr1:
log.Printf("got signal") log.Printf("got signal")
@ -120,6 +115,18 @@ func serveStatus(registry prometheus.Registry) {
http.ListenAndServe(*listeningAddress, exp.DefaultCoarseMux) http.ListenAndServe(*listeningAddress, exp.DefaultCoarseMux)
} }
func collect(collectors []collector.Collector) {
wg := sync.WaitGroup{}
wg.Add(len(collectors))
for _, c := range collectors {
go func(c collector.Collector) {
Execute(c)
wg.Done()
}(c)
}
wg.Wait()
}
func Execute(c collector.Collector) { func Execute(c collector.Collector) {
begin := time.Now() begin := time.Now()
updates, err := c.Update() updates, err := c.Update()