From b9c8cf6998302020d59a139de5c1ed8c2cc09baa Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Sun, 28 Mar 2021 13:59:25 +0100 Subject: [PATCH] Add flag for querier to talk to collectors --- app/multitenant/aws_collector.go | 1 + prog/app.go | 5 +++-- prog/main.go | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/multitenant/aws_collector.go b/app/multitenant/aws_collector.go index 5f141e938..868c0a91a 100644 --- a/app/multitenant/aws_collector.go +++ b/app/multitenant/aws_collector.go @@ -142,6 +142,7 @@ type AWSCollectorConfig struct { MemcacheClient *MemcacheClient Window time.Duration MaxTopNodes int + CollectorAddr string } // if StoreInterval is set, reports are merged into here and held until flushed to store diff --git a/prog/app.go b/prog/app.go index 5648b57d9..dff8a88da 100644 --- a/prog/app.go +++ b/prog/app.go @@ -90,7 +90,7 @@ func router(collector app.Collector, controlRouter app.ControlRouter, pipeRouter } func collectorFactory(userIDer multitenant.UserIDer, collectorURL, s3URL string, storeInterval time.Duration, natsHostname string, - memcacheConfig multitenant.MemcacheConfig, window time.Duration, maxTopNodes int, createTables bool) (app.Collector, error) { + memcacheConfig multitenant.MemcacheConfig, window time.Duration, maxTopNodes int, createTables bool, collectorAddr string) (app.Collector, error) { if collectorURL == "local" { return app.NewCollector(window), nil } @@ -134,6 +134,7 @@ func collectorFactory(userIDer multitenant.UserIDer, collectorURL, s3URL string, MemcacheClient: memcacheClient, Window: window, MaxTopNodes: maxTopNodes, + CollectorAddr: collectorAddr, }, ) if err != nil { @@ -248,7 +249,7 @@ func appMain(flags appFlags) { Service: flags.memcachedService, CompressionLevel: flags.memcachedCompressionLevel, }, - flags.window, flags.maxTopNodes, flags.awsCreateTables) + flags.window, flags.maxTopNodes, flags.awsCreateTables, flags.collectorAddr) if err != nil { log.Fatalf("Error creating collector: %v", err) return diff --git a/prog/main.go b/prog/main.go index 30e9e1f86..66eb5c4c7 100644 --- a/prog/main.go +++ b/prog/main.go @@ -162,7 +162,8 @@ type appFlags struct { containerName string dockerEndpoint string - collectorURL string + collectorURL string // how collector talks to backing store (or "local" if none) + collectorAddr string // how to find collectors if deployed as microservices s3URL string storeInterval time.Duration controlRouterURL string @@ -376,6 +377,7 @@ func setupFlags(flags *flags) { flag.Var(&flags.containerLabelFilterFlagsExclude, "app.container-label-filter-exclude", "Add container label-based view filter that excludes containers with the given label, specified as title:label. Multiple flags are accepted. Example: --app.container-label-filter-exclude='Database Containers:role=db'") flag.StringVar(&flags.app.collectorURL, "app.collector", "local", "Collector to use (local, dynamodb, or file/directory)") + flag.StringVar(&flags.app.collectorAddr, "app.collector-addr", "", "Address to look up collectors when deployed as microservices") flag.StringVar(&flags.app.s3URL, "app.collector.s3", "local", "S3 URL to use (when collector is dynamodb)") flag.DurationVar(&flags.app.storeInterval, "app.collector.store-interval", 0, "How often to store merged incoming reports. If 0, reports are stored unmerged as they arrive.") flag.StringVar(&flags.app.controlRouterURL, "app.control.router", "local", "Control router to use (local or sqs)")