From 2f9632141f9e0dc250eefcb37f100b3eb3c09024 Mon Sep 17 00:00:00 2001
From: Cyrill Troxler <cyrilltroxler@gmail.com>
Date: Sat, 28 Sep 2024 20:23:51 +0200
Subject: [PATCH] debug metrics collection

---
 e2e/setup_test.go            | 8 ++++++--
 manager/metrics_collector.go | 2 ++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/e2e/setup_test.go b/e2e/setup_test.go
index 75c9edd..cc5ce92 100644
--- a/e2e/setup_test.go
+++ b/e2e/setup_test.go
@@ -705,11 +705,15 @@ func getNodeMetrics(c client.Client, cfg *rest.Config) (map[string]*dto.MetricFa
 	if err != nil {
 		return nil, err
 	}
+	b, err := io.ReadAll(resp.Body)
+	if err != nil {
+		return nil, err
+	}
 
 	var parser expfmt.TextParser
-	mfs, err := parser.TextToMetricFamilies(resp.Body)
+	mfs, err := parser.TextToMetricFamilies(bytes.NewReader(b))
 	if err != nil {
-		return nil, err
+		return nil, fmt.Errorf("reading metrics body: %s", b)
 	}
 
 	return mfs, nil
diff --git a/manager/metrics_collector.go b/manager/metrics_collector.go
index f5886f0..9e8070f 100644
--- a/manager/metrics_collector.go
+++ b/manager/metrics_collector.go
@@ -2,6 +2,7 @@ package manager
 
 import (
 	"context"
+	"fmt"
 	"io"
 	"log/slog"
 	"net"
@@ -39,6 +40,7 @@ func fetchMetricsAndMerge(w io.Writer) {
 		shimMetrics, err := getMetricsOverTTRPC(context.Background(), sockName)
 		if err != nil {
 			slog.Error("getting metrics", "err", err)
+			fmt.Fprintf(w, "getting metrics error: %s", err)
 			// we still want to read the rest of the sockets
 			continue
 		}