aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorGravatar Rudolf Schönecker <79903553+rschone@users.noreply.github.com> 2022-02-17 14:37:40 +0100
committerGravatar GitHub <noreply@github.com> 2022-02-17 08:37:40 -0500
commitc121aaab344545487420cfb8192841eb13f096d7 (patch)
treec3aa415ff9088bbd69f1c6b4a883e381f676c31d /core
parente5626a77bbda8fa4c7526753fe9ab78dc21e3220 (diff)
downloadcoredns-c121aaab344545487420cfb8192841eb13f096d7.tar.gz
coredns-c121aaab344545487420cfb8192841eb13f096d7.tar.zst
coredns-c121aaab344545487420cfb8192841eb13f096d7.zip
Add metric counting DNS-over-HTTPS responses (#5130)
Signed-off-by: Rudolf Schonecker <rudolf.schonecker@jamf.com>
Diffstat (limited to 'core')
-rw-r--r--core/dnsserver/server_https.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/dnsserver/server_https.go b/core/dnsserver/server_https.go
index b8bdbc66d..ba6097215 100644
--- a/core/dnsserver/server_https.go
+++ b/core/dnsserver/server_https.go
@@ -10,6 +10,7 @@ import (
"time"
"github.com/coredns/caddy"
+ "github.com/coredns/coredns/plugin/metrics/vars"
"github.com/coredns/coredns/plugin/pkg/dnsutil"
"github.com/coredns/coredns/plugin/pkg/doh"
"github.com/coredns/coredns/plugin/pkg/response"
@@ -128,12 +129,14 @@ func (s *ServerHTTPS) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if !s.validRequest(r) {
http.Error(w, "", http.StatusNotFound)
+ s.countResponse(http.StatusNotFound)
return
}
msg, err := doh.RequestToMsg(r)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
+ s.countResponse(http.StatusBadRequest)
return
}
@@ -157,6 +160,7 @@ func (s *ServerHTTPS) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// handler has not provided any response message.
if dw.Msg == nil {
http.Error(w, "No response", http.StatusInternalServerError)
+ s.countResponse(http.StatusInternalServerError)
return
}
@@ -169,10 +173,15 @@ func (s *ServerHTTPS) ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%f", age.Seconds()))
w.Header().Set("Content-Length", strconv.Itoa(len(buf)))
w.WriteHeader(http.StatusOK)
+ s.countResponse(http.StatusOK)
w.Write(buf)
}
+func (s *ServerHTTPS) countResponse(status int) {
+ vars.HTTPSResponsesCount.WithLabelValues(s.Addr, strconv.Itoa(status)).Inc()
+}
+
// Shutdown stops the server (non gracefully).
func (s *ServerHTTPS) Shutdown() error {
if s.httpsServer != nil {