From 295cab36b17e8f6646e51fc0e22e810330e0b3de Mon Sep 17 00:00:00 2001 From: Jonathan Bowe Date: Fri, 16 May 2025 09:56:20 -0400 Subject: [PATCH 1/2] Update querySettings Error Return in Scrape If there are errors querying namespace mappings, the potential error from querySettings is obscured. Adding an immediate return if there are errors retreiving settings. Signed-off-by: Jonathan Bowe --- cmd/postgres_exporter/server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/postgres_exporter/server.go b/cmd/postgres_exporter/server.go index bd4e76e10..94aede463 100644 --- a/cmd/postgres_exporter/server.go +++ b/cmd/postgres_exporter/server.go @@ -119,6 +119,7 @@ func (s *Server) Scrape(ch chan<- prometheus.Metric, disableSettingsMetrics bool if !disableSettingsMetrics && s.master { if err = querySettings(ch, s); err != nil { err = fmt.Errorf("error retrieving settings: %s", err) + return err } } From af34eba7d3485c5a3277f5d6f97a0075a4cc178d Mon Sep 17 00:00:00 2001 From: Jonathan Bowe Date: Fri, 16 May 2025 09:58:46 -0400 Subject: [PATCH 2/2] Improve Verbosity of queryNamespaceMappings Errors Previously if any errors were encountered by queryNamespaceMappings, only a count of those errors was returned - making debugging those errors harder than it needs to be. I'm changing this to immediately return nil if no errors are encountered, and otherwise an error will be formatted with each of the namespaces and what the error was for that namespace. Signed-off-by: Jonathan Bowe --- cmd/postgres_exporter/server.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/postgres_exporter/server.go b/cmd/postgres_exporter/server.go index 94aede463..6b6c2300d 100644 --- a/cmd/postgres_exporter/server.go +++ b/cmd/postgres_exporter/server.go @@ -124,8 +124,12 @@ func (s *Server) Scrape(ch chan<- prometheus.Metric, disableSettingsMetrics bool } errMap := queryNamespaceMappings(ch, s) - if len(errMap) > 0 { - err = fmt.Errorf("queryNamespaceMappings returned %d errors", len(errMap)) + if len(errMap) == 0 { + return nil + } + err = fmt.Errorf("queryNamespaceMappings errors encountered") + for namespace, errStr := range errMap { + err = fmt.Errorf("%s, %s namespace had the following error: %s", err, namespace, errStr) } return err