Refactor diagnostics -> telemetry

This commit is contained in:
Matthew Holt
2018-03-22 18:05:31 -06:00
parent 7c868afd32
commit 52316952a5
16 changed files with 96 additions and 97 deletions

View File

@@ -25,7 +25,7 @@ import (
"strings"
"sync"
"github.com/mholt/caddy/diagnostics"
"github.com/mholt/caddy/telemetry"
)
// tlsHandler is a http.Handler that will inject a value
@@ -103,12 +103,12 @@ func (h *tlsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if checked {
r = r.WithContext(context.WithValue(r.Context(), MitmCtxKey, mitm))
if mitm {
go diagnostics.AppendUnique("http_mitm", "likely")
go telemetry.AppendUnique("http_mitm", "likely")
} else {
go diagnostics.AppendUnique("http_mitm", "unlikely")
go telemetry.AppendUnique("http_mitm", "unlikely")
}
} else {
go diagnostics.AppendUnique("http_mitm", "unknown")
go telemetry.AppendUnique("http_mitm", "unknown")
}
if mitm && h.closeOnMITM {

View File

@@ -29,7 +29,7 @@ import (
"github.com/mholt/caddy/caddyfile"
"github.com/mholt/caddy/caddyhttp/staticfiles"
"github.com/mholt/caddy/caddytls"
"github.com/mholt/caddy/diagnostics"
"github.com/mholt/caddy/telemetry"
)
const serverType = "http"
@@ -220,9 +220,9 @@ func (h *httpContext) MakeServers() ([]caddy.Server, error) {
var atLeastOneSiteLooksLikeProduction bool
for _, cfg := range h.siteConfigs {
// if we aren't sure yet whether it's a "production" server,
// continue to see if all the addresses (both sites and
// listeners) are loopback
// see if all the addresses (both sites and
// listeners) are loopback to help us determine
// if this is a "production" instance or not
if !atLeastOneSiteLooksLikeProduction {
if !caddy.IsLoopback(cfg.Addr.Host) &&
!caddy.IsLoopback(cfg.ListenHost) &&
@@ -272,17 +272,17 @@ func (h *httpContext) MakeServers() ([]caddy.Server, error) {
servers = append(servers, s)
}
// NOTE: This value is only a "good" guess. Quite often, development
// NOTE: This value is only a "good guess". Quite often, development
// environments will use internal DNS or a local hosts file to serve
// real-looking domains in local development. We can't easily tell
// which without doing a DNS lookup, so this guess is definitely naive,
// and if we ever want a better guess, we will have to do DNS lookups.
deploymentGuess := "dev"
if looksLikeProductionCA && atLeastOneSiteLooksLikeProduction {
deploymentGuess = "production"
deploymentGuess = "prod"
}
diagnostics.Set("http_deployment_guess", deploymentGuess)
diagnostics.Set("http_num_sites", len(h.siteConfigs))
telemetry.Set("http_deployment_guess", deploymentGuess)
telemetry.Set("http_num_sites", len(h.siteConfigs))
return servers, nil
}

View File

@@ -36,7 +36,7 @@ import (
"github.com/mholt/caddy"
"github.com/mholt/caddy/caddyhttp/staticfiles"
"github.com/mholt/caddy/caddytls"
"github.com/mholt/caddy/diagnostics"
"github.com/mholt/caddy/telemetry"
)
// Server is the HTTP server implementation.
@@ -347,8 +347,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}()
// TODO: Somehow report UA string in conjunction with TLS handshake, if any (and just once per connection)
go diagnostics.AppendUnique("http_user_agent", r.Header.Get("User-Agent"))
go diagnostics.Increment("http_request_count")
go telemetry.AppendUnique("http_user_agent", r.Header.Get("User-Agent"))
go telemetry.Increment("http_request_count")
// copy the original, unchanged URL into the context
// so it can be referenced by middlewares