metropolis/node/core/metrics: allow exporters without executables

Change-Id: I8f05c5a2a59018e8979c48a0253f2c068a71e5cd
Reviewed-on: https://review.monogon.dev/c/monogon/+/1949
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/node/core/metrics/metrics.go b/metropolis/node/core/metrics/metrics.go
index 631a9d1..05377b5 100644
--- a/metropolis/node/core/metrics/metrics.go
+++ b/metropolis/node/core/metrics/metrics.go
@@ -110,6 +110,10 @@
 
 	// Start all exporters as sub-runnables.
 	for _, exporter := range s.Exporters {
+		if exporter.Executable == "" {
+			continue
+		}
+
 		cmd := exec.CommandContext(ctx, exporter.Executable, exporter.Arguments...)
 		err := supervisor.Run(ctx, exporter.Name, func(ctx context.Context) error {
 			return supervisor.RunCommand(ctx, cmd)
@@ -117,7 +121,6 @@
 		if err != nil {
 			return fmt.Errorf("running %s failed: %w", exporter.Name, err)
 		}
-
 	}
 
 	// And register all exporter forwarding functions on a mux.