Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrasimir Angelov <kangelov@gitlab.com>2020-02-27 03:56:42 +0300
committerKrasimir Angelov <kangelov@gitlab.com>2020-02-28 04:38:10 +0300
commitd12e59eefc3ce15ba9dac808c5e345bf26ad5d45 (patch)
tree542ab5ae19f0c8a8696f0761e307f5ae7b993cba /internal/logging
parent70879969bde8aaf97d5ed97d15b904747a44bfb0 (diff)
Extract health check in its own middleware
This way we short-circuit health check requests and avoid doing domain lookup for them. We also do not report them in exported Prometheus metrics and this way avoid trigger alerts during deploys. Related to: * https://gitlab.com/gitlab-org/gitlab-pages/issues/350 * https://gitlab.com/gitlab-com/gl-infra/production/issues/1681
Diffstat (limited to 'internal/logging')
-rw-r--r--internal/logging/logging.go21
1 files changed, 17 insertions, 4 deletions
diff --git a/internal/logging/logging.go b/internal/logging/logging.go
index 28c43c2e..4ba86985 100644
--- a/internal/logging/logging.go
+++ b/internal/logging/logging.go
@@ -65,20 +65,33 @@ func getExtraLogFields(r *http.Request) log.Fields {
}
}
-// AccessLogger configures the GitLab pages HTTP access logger middleware
-func AccessLogger(handler http.Handler, format string) (http.Handler, error) {
-
+// BasicAccessLogger configures the GitLab pages basic HTTP access logger middleware
+func BasicAccessLogger(handler http.Handler, format string, extraFields log.ExtraFieldsGeneratorFunc) (http.Handler, error) {
accessLogger, err := getAccessLogger(format)
if err != nil {
return nil, err
}
+ if extraFields == nil {
+ extraFields = func(r *http.Request) log.Fields {
+ return log.Fields{
+ "pages_https": request.IsHTTPS(r),
+ "pages_host": r.Host,
+ }
+ }
+ }
+
return log.AccessLogger(handler,
- log.WithExtraFields(getExtraLogFields),
+ log.WithExtraFields(extraFields),
log.WithAccessLogger(accessLogger),
), nil
}
+// AccessLogger configures the GitLab pages HTTP access logger middleware with extra log fields
+func AccessLogger(handler http.Handler, format string) (http.Handler, error) {
+ return BasicAccessLogger(handler, format, getExtraLogFields)
+}
+
// LogRequest will inject request host and path to the logged messages
func LogRequest(r *http.Request) *logrus.Entry {
return log.WithFields(log.Fields{