From fd65155cd6e7d846f766686d27a767f70b4cde19 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Mon, 25 May 2020 13:12:27 +0000 Subject: [PATCH 1/2] Register the metric for dropped topologies Missed earlier. --- app/multitenant/aws_collector.go | 1 + 1 file changed, 1 insertion(+) diff --git a/app/multitenant/aws_collector.go b/app/multitenant/aws_collector.go index dd630ec68b..15193e719b 100644 --- a/app/multitenant/aws_collector.go +++ b/app/multitenant/aws_collector.go @@ -113,6 +113,7 @@ func registerAWSCollectorMetrics() { prometheus.MustRegister(reportSizeHistogram) prometheus.MustRegister(reportsPerUser) prometheus.MustRegister(reportSizePerUser) + prometheus.MustRegister(topologiesDropped) prometheus.MustRegister(natsRequests) flushDuration.Register() } From a20c51e94d29153673d9c7759d6e664e017a3d00 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Mon, 25 May 2020 13:12:47 +0000 Subject: [PATCH 2/2] Higher limit on topology size for merged reports. Where a report has been merged from several probes, give it a higher limit before dropping topologies. We will already have applied the limit on each single-probe report as it came in, except for historical ones. --- app/multitenant/aws_collector.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/multitenant/aws_collector.go b/app/multitenant/aws_collector.go index 15193e719b..39b2edcede 100644 --- a/app/multitenant/aws_collector.go +++ b/app/multitenant/aws_collector.go @@ -450,8 +450,12 @@ func (c *awsCollector) getReports(ctx context.Context, userid string, reportKeys // process a report from a probe which may be at an older version or overloaded func (c *awsCollector) massageReport(userid string, report report.Report) report.Report { if c.cfg.MaxTopNodes > 0 { + max := c.cfg.MaxTopNodes + if len(report.Host.Nodes) > 1 { + max = max * len(report.Host.Nodes) // higher limit for merged reports + } var dropped []string - report, dropped = report.DropTopologiesOver(c.cfg.MaxTopNodes) + report, dropped = report.DropTopologiesOver(max) for _, name := range dropped { topologiesDropped.WithLabelValues(userid, name).Inc() }