mirror of
https://github.com/coredns/coredns.git
synced 2025-11-02 02:03:13 -05:00
plugin/template: update metrics to include server (#1731)
Add server label to the metrics and update the README.
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
gotmpl "text/template"
|
||||
|
||||
"github.com/coredns/coredns/plugin"
|
||||
"github.com/coredns/coredns/plugin/metrics"
|
||||
"github.com/coredns/coredns/plugin/pkg/fall"
|
||||
"github.com/coredns/coredns/plugin/pkg/upstream"
|
||||
"github.com/coredns/coredns/request"
|
||||
@@ -66,7 +67,7 @@ func (h Handler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
|
||||
continue
|
||||
}
|
||||
|
||||
TemplateMatchesCount.WithLabelValues(data.Zone, data.Class, data.Type).Inc()
|
||||
templateMatchesCount.WithLabelValues(metrics.WithServer(ctx), data.Zone, data.Class, data.Type).Inc()
|
||||
|
||||
if template.rcode == dns.RcodeServerFailure {
|
||||
return template.rcode, nil
|
||||
@@ -78,7 +79,7 @@ func (h Handler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
|
||||
msg.Rcode = template.rcode
|
||||
|
||||
for _, answer := range template.answer {
|
||||
rr, err := executeRRTemplate("answer", answer, data)
|
||||
rr, err := executeRRTemplate(metrics.WithServer(ctx), "answer", answer, data)
|
||||
if err != nil {
|
||||
return dns.RcodeServerFailure, err
|
||||
}
|
||||
@@ -89,14 +90,14 @@ func (h Handler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
|
||||
}
|
||||
}
|
||||
for _, additional := range template.additional {
|
||||
rr, err := executeRRTemplate("additional", additional, data)
|
||||
rr, err := executeRRTemplate(metrics.WithServer(ctx), "additional", additional, data)
|
||||
if err != nil {
|
||||
return dns.RcodeServerFailure, err
|
||||
}
|
||||
msg.Extra = append(msg.Extra, rr)
|
||||
}
|
||||
for _, authority := range template.authority {
|
||||
rr, err := executeRRTemplate("authority", authority, data)
|
||||
rr, err := executeRRTemplate(metrics.WithServer(ctx), "authority", authority, data)
|
||||
if err != nil {
|
||||
return dns.RcodeServerFailure, err
|
||||
}
|
||||
@@ -114,16 +115,16 @@ func (h Handler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
|
||||
// Name implements the plugin.Handler interface.
|
||||
func (h Handler) Name() string { return "template" }
|
||||
|
||||
func executeRRTemplate(section string, template *gotmpl.Template, data templateData) (dns.RR, error) {
|
||||
func executeRRTemplate(server, section string, template *gotmpl.Template, data templateData) (dns.RR, error) {
|
||||
buffer := &bytes.Buffer{}
|
||||
err := template.Execute(buffer, data)
|
||||
if err != nil {
|
||||
TemplateFailureCount.WithLabelValues(data.Zone, data.Class, data.Type, section, template.Tree.Root.String()).Inc()
|
||||
templateFailureCount.WithLabelValues(server, data.Zone, data.Class, data.Type, section, template.Tree.Root.String()).Inc()
|
||||
return nil, err
|
||||
}
|
||||
rr, err := dns.NewRR(buffer.String())
|
||||
if err != nil {
|
||||
TemplateRRFailureCount.WithLabelValues(data.Zone, data.Class, data.Type, section, template.Tree.Root.String()).Inc()
|
||||
templateRRFailureCount.WithLabelValues(server, data.Zone, data.Class, data.Type, section, template.Tree.Root.String()).Inc()
|
||||
return rr, err
|
||||
}
|
||||
return rr, nil
|
||||
|
||||
Reference in New Issue
Block a user