diff options
author | Stan Hu <stanhu@gmail.com> | 2019-02-11 03:43:44 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2019-02-12 17:58:55 +0300 |
commit | 51ca79228bc2d22b12d47ba177610d228793dc94 (patch) | |
tree | be4b156aa088aeb78eca6c198dd78810a1db5fc8 /lib/gitlab/middleware | |
parent | d29e81b2aa7fc26736eb09309bbbf2ab5a5d5050 (diff) |
Log queue duration in production_json.log
`queue_duration` is a useful metric that is currently in api_json.log
but not in production_json.log. We should add it because it tells us how
long the request sat in Workhorse before Unicorn processed it. Having
this field enables the support team to better troubleshoot when delays
began to happen.
Diffstat (limited to 'lib/gitlab/middleware')
-rw-r--r-- | lib/gitlab/middleware/rails_queue_duration.rb | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/gitlab/middleware/rails_queue_duration.rb b/lib/gitlab/middleware/rails_queue_duration.rb index 96c6a0a7d28..a147e165262 100644 --- a/lib/gitlab/middleware/rails_queue_duration.rb +++ b/lib/gitlab/middleware/rails_queue_duration.rb @@ -7,6 +7,8 @@ module Gitlab module Middleware class RailsQueueDuration + GITLAB_RAILS_QUEUE_DURATION_KEY = 'GITLAB_RAILS_QUEUE_DURATION' + def initialize(app) @app = app end @@ -19,6 +21,7 @@ module Gitlab duration = Time.now.to_f * 1_000 - proxy_start.to_f / 1_000_000 trans.set(:rails_queue_duration, duration) metric_rails_queue_duration_seconds.observe(trans.labels, duration / 1_000) + env[GITLAB_RAILS_QUEUE_DURATION_KEY] = duration.round(2) end @app.call(env) |