Add metrics for Redis usage during web requests
What does this MR do?
Adds metrics to measure the amount of calls and request time spent in Redis during web requests (e.g. Rails, Grape):
-
http_redis_requests_total
- Counts the amount of calls to Redis servers during web requests -
http_redis_requests_duration_seconds
- Measures query time for Redis servers during web requests
Example with requests for web and API:
http_redis_requests_duration_seconds_bucket{controller="SessionsController",action="new",le="0.05"} 2
http_redis_requests_duration_seconds_bucket{controller="SessionsController",action="new",le="0.1"} 3
http_redis_requests_duration_seconds_bucket{controller="SessionsController",action="new",le="0.25"} 3
http_redis_requests_duration_seconds_bucket{controller="SessionsController",action="new",le="0.5"} 3
http_redis_requests_duration_seconds_bucket{controller="",action="",le="+Inf"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.001"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.0025"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.005"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.01"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.025"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.05"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.1"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.25"} 16
http_redis_requests_duration_seconds_bucket{controller="",action="",le="0.5"} 16
http_redis_requests_duration_seconds_count{controller="Grape",action="GET /api/users"} 2
http_redis_requests_duration_seconds_count{controller="MetricsController",action="index"} 4
http_redis_requests_duration_seconds_count{controller="Peek::ResultsController",action="show.json"} 2
http_redis_requests_duration_seconds_count{controller="RootController",action="index"} 3
http_redis_requests_duration_seconds_count{controller="SessionsController",action="create"} 3
http_redis_requests_duration_seconds_count{controller="SessionsController",action="new"} 3
http_redis_requests_duration_seconds_count{controller="",action=""} 16
http_redis_requests_duration_seconds_sum{controller="Grape",action="GET /api/users"} 0.29093399999999997
http_redis_requests_duration_seconds_sum{controller="MetricsController",action="index"} 0
http_redis_requests_duration_seconds_sum{controller="Peek::ResultsController",action="show.json"} 1.0350250000000001
http_redis_requests_duration_seconds_sum{controller="RootController",action="index"} 3.5390730000000001
http_redis_requests_duration_seconds_sum{controller="SessionsController",action="create"} 0.12648100000000001
http_redis_requests_duration_seconds_sum{controller="SessionsController",action="new"} 0.12587999999999999
http_redis_requests_duration_seconds_sum{controller="",action=""} 0
# HELP http_redis_requests_total Multiprocess metric
# TYPE http_redis_requests_total counter
http_redis_requests_total{controller="Grape",action="GET /api/users"} 128
http_redis_requests_total{controller="MetricsController",action="index"} 0
http_redis_requests_total{controller="Peek::ResultsController",action="show.json"} 15
http_redis_requests_total{controller="RootController",action="index"} 793
http_redis_requests_total{controller="SessionsController",action="create"} 51
http_redis_requests_total{controller="SessionsController",action="new"} 81
Part of gitlab-com/gl-infra/scalability#315 (closed)
Screenshots
Does this MR meet the acceptance criteria?
Conformity
Edited by Oswaldo Ferreira