From b2df1c375afc44c39cfb16833da906ad966a939a Mon Sep 17 00:00:00 2001 From: "Matt T. Proud" Date: Fri, 25 Jan 2013 13:45:21 +0100 Subject: [PATCH] A few parameterizations. --- main.go | 14 +++++++++----- retrieval/target.go | 6 ++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index d57f228149..3cdd142ba4 100644 --- a/main.go +++ b/main.go @@ -32,8 +32,11 @@ import ( // Commandline flags. var ( - configFile = flag.String("configFile", "prometheus.conf", "Prometheus configuration file name.") - metricsStoragePath = flag.String("metricsStoragePath", "/tmp/metrics", "Base path for metrics storage.") + configFile = flag.String("configFile", "prometheus.conf", "Prometheus configuration file name.") + metricsStoragePath = flag.String("metricsStoragePath", "/tmp/metrics", "Base path for metrics storage.") + scrapeResultsQueueCapacity = flag.Int("scrapeResultsQueueCapacity", 4096, "The size of the scrape results queue.") + ruleResultsQueueCapacity = flag.Int("ruleResultsQueueCapacity", 4096, "The size of the rule results queue.") + concurrentRetrievalAllowance = flag.Int("concurrentRetrievalAllowance", 15, "The number of concurrent metrics retrieval requests allowed.") ) func main() { @@ -59,12 +62,13 @@ func main() { defer persistence.Close() - scrapeResults := make(chan format.Result, 4096) + // Queue depth will need to be exposed + scrapeResults := make(chan format.Result, *scrapeResultsQueueCapacity) - targetManager := retrieval.NewTargetManager(scrapeResults, 1) + targetManager := retrieval.NewTargetManager(scrapeResults, *concurrentRetrievalAllowance) targetManager.AddTargetsFromConfig(conf) - ruleResults := make(chan *rules.Result, 4096) + ruleResults := make(chan *rules.Result, *ruleResultsQueueCapacity) ast.SetPersistence(persistence, nil) ruleManager := rules.NewRuleManager(ruleResults, conf.Global.EvaluationInterval) diff --git a/retrieval/target.go b/retrieval/target.go index 660e06506a..f6fbe1ff21 100644 --- a/retrieval/target.go +++ b/retrieval/target.go @@ -134,6 +134,10 @@ func (t *target) Scrape(earliest time.Time, results chan format.Result) (err err done := make(chan bool) request := func() { + defer func() { + done <- true + }() + resp, err := http.Get(t.Address()) if err != nil { return @@ -157,8 +161,6 @@ func (t *target) Scrape(earliest time.Time, results chan format.Result) (err err if err != nil { return } - - done <- true } accumulator := func(d time.Duration) {