diff options
Diffstat (limited to 'plugin/template/metrics.go')
-rw-r--r-- | plugin/template/metrics.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/plugin/template/metrics.go b/plugin/template/metrics.go new file mode 100644 index 000000000..f602548f4 --- /dev/null +++ b/plugin/template/metrics.go @@ -0,0 +1,43 @@ +package template + +import ( + "sync" + + "github.com/coredns/coredns/plugin" + + "github.com/prometheus/client_golang/prometheus" +) + +// Metrics for template. +var ( + TemplateMatchesCount = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: plugin.Namespace, + Subsystem: "template", + Name: "matches_total", + Help: "Counter of template regex matches.", + }, []string{"regex"}) + TemplateFailureCount = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: plugin.Namespace, + Subsystem: "template", + Name: "template_failures_total", + Help: "Counter of go template failures.", + }, []string{"regex", "section", "template"}) + TemplateRRFailureCount = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: plugin.Namespace, + Subsystem: "template", + Name: "rr_failures_total", + Help: "Counter of mis-templated RRs.", + }, []string{"regex", "section", "template"}) +) + +// OnStartupMetrics sets up the metrics on startup. +func OnStartupMetrics() error { + metricsOnce.Do(func() { + prometheus.MustRegister(TemplateMatchesCount) + prometheus.MustRegister(TemplateFailureCount) + prometheus.MustRegister(TemplateRRFailureCount) + }) + return nil +} + +var metricsOnce sync.Once |