From 3c9a0052f2d8dd2af99f7515521e3a7d39c6f743 Mon Sep 17 00:00:00 2001
From: Hector <dev@hsmith.org>
Date: Fri, 24 Sep 2021 15:53:10 +0100
Subject: [PATCH] feat: render basic html page at root url

Add a new request handler for the root URL (`/`) to render a simple HTML
page with a link to the metrics page. This follows the convention of other
metric exporters.
---
 src/exporter.go | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/exporter.go b/src/exporter.go
index 6cc8793..59874e6 100644
--- a/src/exporter.go
+++ b/src/exporter.go
@@ -40,6 +40,15 @@ func main() {
 		exporter := export.NewExporter(appSettings, version)
 		prometheus.MustRegister(exporter)
 
+		http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+			w.Write([]byte(`<html>
+			<head><title>Fail2Ban Exporter</title></head>
+			<body>
+			<h1>Node Exporter</h1>
+			<p><a href="` + metricsPath + `">Metrics</a></p>
+			</body>
+			</html>`))
+		})
 		http.Handle(metricsPath, promhttp.Handler())
 		log.Printf("metrics available at '%s'", metricsPath)