From 06b4a406617fe8399babb55959e7f5e534772ceb Mon Sep 17 00:00:00 2001 From: "Matt T. Proud" Date: Sun, 14 Jul 2013 18:48:03 +0200 Subject: [PATCH] Represent targets in a tabular interface. This commit represents a target group's endpoints in a tabular fashion for better differentiation of their state in a concise manner. --- retrieval/scheduler.go | 2 +- retrieval/target.go | 22 +++++++-------- retrieval/targetmanager_test.go | 2 +- retrieval/targetpool.go | 2 +- web/templates/status.html | 49 ++++++++++++++++++++++++--------- 5 files changed, 50 insertions(+), 27 deletions(-) diff --git a/retrieval/scheduler.go b/retrieval/scheduler.go index 062baf259..7b9a17c01 100644 --- a/retrieval/scheduler.go +++ b/retrieval/scheduler.go @@ -25,7 +25,7 @@ const ( // The base units for the exponential backoff. DEFAULT_BACKOFF_VALUE_UNIT = time.Second // The maximum allowed backoff time. - MAXIMUM_BACKOFF_VALUE = 30 * time.Minute + MAXIMUM_BACKOFF_VALUE = 2 * time.Minute ) // scheduler is an interface that various scheduling strategies must fulfill diff --git a/retrieval/target.go b/retrieval/target.go index c3354b2a6..abd767136 100644 --- a/retrieval/target.go +++ b/retrieval/target.go @@ -97,7 +97,7 @@ type Target interface { // time, but it should occur no sooner than it. // // Right now, this is used as the sorting key in TargetPool. - scheduledFor() time.Time + ScheduledFor() time.Time // Return the last encountered scrape error, if any. LastError() error // The address to which the Target corresponds. Out of all of the available @@ -176,11 +176,11 @@ func (t *target) recordScrapeHealth(results chan<- *extraction.Result, timestamp } } -func (t *target) Scrape(earliest time.Time, results chan<- *extraction.Result) (err error) { +func (t *target) Scrape(earliest time.Time, results chan<- *extraction.Result) error { now := time.Now() futureState := t.state - - if err = t.scrape(now, results); err != nil { + err := t.scrape(now, results) + if err != nil { t.recordScrapeHealth(results, now, false) futureState = UNREACHABLE } else { @@ -249,23 +249,23 @@ func (t *target) scrape(timestamp time.Time, results chan<- *extraction.Result) return processor.ProcessSingle(buf, results, processOptions) } -func (t target) State() TargetState { +func (t *target) State() TargetState { return t.state } -func (t target) scheduledFor() time.Time { +func (t *target) ScheduledFor() time.Time { return t.scheduler.ScheduledFor() } -func (t target) LastError() error { +func (t *target) LastError() error { return t.lastError } -func (t target) Address() string { +func (t *target) Address() string { return t.address } -func (t target) GlobalAddress() string { +func (t *target) GlobalAddress() string { address := t.address hostname, err := os.Hostname() if err != nil { @@ -278,7 +278,7 @@ func (t target) GlobalAddress() string { return address } -func (t target) BaseLabels() clientmodel.LabelSet { +func (t *target) BaseLabels() clientmodel.LabelSet { return t.baseLabels } @@ -299,7 +299,7 @@ func (t targets) Len() int { } func (t targets) Less(i, j int) bool { - return t[i].scheduledFor().Before(t[j].scheduledFor()) + return t[i].ScheduledFor().Before(t[j].ScheduledFor()) } func (t targets) Swap(i, j int) { diff --git a/retrieval/targetmanager_test.go b/retrieval/targetmanager_test.go index e02a12140..cee692eee 100644 --- a/retrieval/targetmanager_test.go +++ b/retrieval/targetmanager_test.go @@ -66,7 +66,7 @@ func (t fakeTarget) State() TargetState { return ALIVE } -func (t *fakeTarget) scheduledFor() (time time.Time) { +func (t *fakeTarget) ScheduledFor() (time time.Time) { time = t.schedules[t.scheduleIndex] t.scheduleIndex++ diff --git a/retrieval/targetpool.go b/retrieval/targetpool.go index 0dfbc00e8..abe376a61 100644 --- a/retrieval/targetpool.go +++ b/retrieval/targetpool.go @@ -146,7 +146,7 @@ func (p *TargetPool) runIteration(results chan<- *extraction.Result, interval ti for _, target := range p.targets { now := time.Now() - if target.scheduledFor().After(now) { + if target.ScheduledFor().After(now) { // None of the remaining targets are ready to be scheduled. Signal that // we're done processing them in this scrape iteration. continue diff --git a/web/templates/status.html b/web/templates/status.html index 9ec4eaee5..7a408db0d 100644 --- a/web/templates/status.html +++ b/web/templates/status.html @@ -42,19 +42,42 @@