Hi,
I’m working on a Datadog plugin, but I’m facind a weird issue. all request forwarded to a proxy give a status = 0 and error = nil even if, in the browser, I get a 200 and the right page displayed.
demo.local:80 {
tls off
header / -Server
proxy / 127.0.0.1:9090 {
transparent
}
datadog {
statsd 127.0.0.1:8125
tags sandbox caddy
rate 1.0
}
log /tmp/caddy-access-demo.log {
rotate_size 10
rotate_age 30
rotate_keep 5
}
errors /tmp/caddy-error-demo.log {
rotate_size 10
rotate_age 30
rotate_keep 5
}
}
Here the handler:
func (datadog DatadogModule) ServeHTTP(responseWriter http.ResponseWriter, request *http.Request) (int, error) {
rw := httpserver.NewResponseRecorder(responseWriter)
status, err := datadog.Next.ServeHTTP(rw, request)
fmt.Println(status) // Print 0
fmt.Println(err) // Print nill
switch status / 100 {
case 1:
glDatadogMetrics.response1xxCount += 1
break
case 2:
glDatadogMetrics.response2xxCount += 1
break
case 3:
glDatadogMetrics.response3xxCount += 1
break
case 4:
glDatadogMetrics.response4xxCount += 1
break
default:
glDatadogMetrics.response5xxCount += 1
break
}
return status, err
}