summaryrefslogtreecommitdiff
path: root/lib/gitlab/metrics
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-01-12 13:12:50 -0500
committerRémy Coutable <remy@rymai.me>2017-01-12 23:15:25 -0500
commit892ff3a3ae640272f8712fb190242f2b1fe010a0 (patch)
treec62ce2cfb477839e94ce3899e061b96e7776bd93 /lib/gitlab/metrics
parent707570ac7de4867a62ad4c94c95e43e8ca0afbcb (diff)
downloadgitlab-ce-892ff3a3ae640272f8712fb190242f2b1fe010a0.tar.gz
Check for env[Grape::Env::GRAPE_ROUTING_ARGS] instead of endpoint.route26587-metrics-middleware-endpoint-is-nil
`endpoint.route` is calling `env[Grape::Env::GRAPE_ROUTING_ARGS][:route_info]` but `env[Grape::Env::GRAPE_ROUTING_ARGS]` is `nil` in the case of a 405 response Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'lib/gitlab/metrics')
-rw-r--r--lib/gitlab/metrics/rack_middleware.rb15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/gitlab/metrics/rack_middleware.rb b/lib/gitlab/metrics/rack_middleware.rb
index d01d47a6a7a..47f88727fc8 100644
--- a/lib/gitlab/metrics/rack_middleware.rb
+++ b/lib/gitlab/metrics/rack_middleware.rb
@@ -71,10 +71,17 @@ module Gitlab
def tag_endpoint(trans, env)
endpoint = env[ENDPOINT_KEY]
- # endpoint.route is nil in the case of a 405 response
- if endpoint.route
- path = endpoint_paths_cache[endpoint.route.request_method][endpoint.route.path]
- trans.action = "Grape##{endpoint.route.request_method} #{path}"
+ begin
+ route = endpoint.route
+ rescue
+ # endpoint.route is calling env[Grape::Env::GRAPE_ROUTING_ARGS][:route_info]
+ # but env[Grape::Env::GRAPE_ROUTING_ARGS] is nil in the case of a 405 response
+ # so we're rescuing exceptions and bailing out
+ end
+
+ if route
+ path = endpoint_paths_cache[route.request_method][route.path]
+ trans.action = "Grape##{route.request_method} #{path}"
end
end