Resolve #715 Metric for unknown probe (#716)
authorgavk34 <gavhomeltp@gmail.com>
Fri, 27 Nov 2020 20:55:49 +0000 (20:55 +0000)
committerGitHub <noreply@github.com>
Fri, 27 Nov 2020 20:55:49 +0000 (20:55 +0000)
Co-authored-by: Gavin Kelly <gkelly@newsweaver.com>
main.go

diff --git a/main.go b/main.go
index 0fab28d95518790a559c867ea503c84b8a51a492..24e5504e044a5f4e5fad65b17a97cc5d3ad53b47 100644 (file)
--- a/main.go
+++ b/main.go
@@ -65,6 +65,11 @@ var (
                "icmp": prober.ProbeICMP,
                "dns":  prober.ProbeDNS,
        }
+
+       moduleUnknownCounter = prometheus.NewCounter(prometheus.CounterOpts{
+               Name: "blackbox_module_unknown_total",
+               Help: "Count of unknown modules requested by probes",
+       })
 )
 
 func probeHandler(w http.ResponseWriter, r *http.Request, c *config.Config, logger log.Logger, rh *resultHistory) {
@@ -75,6 +80,8 @@ func probeHandler(w http.ResponseWriter, r *http.Request, c *config.Config, logg
        module, ok := c.Modules[moduleName]
        if !ok {
                http.Error(w, fmt.Sprintf("Unknown module %q", moduleName), http.StatusBadRequest)
+               level.Debug(logger).Log("msg", "Unknown module", "module", moduleName)
+               moduleUnknownCounter.Add(1)
                return
        }
 
@@ -96,6 +103,7 @@ func probeHandler(w http.ResponseWriter, r *http.Request, c *config.Config, logg
                Name: "probe_duration_seconds",
                Help: "Returns how long the probe took to complete in seconds",
        })
+
        params := r.URL.Query()
        target := params.Get("target")
        if target == "" {
@@ -194,6 +202,7 @@ func DebugOutput(module *config.Module, logBuffer *bytes.Buffer, registry *prome
 
 func init() {
        prometheus.MustRegister(version.NewCollector("blackbox_exporter"))
+       prometheus.MustRegister(moduleUnknownCounter)
 }
 
 func main() {