Skip to content

Add metrics for Redis usage during web requests

Oswaldo Ferreira requested to merge osw-add-redis-metrics-to-web-requests into master

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

Merge request reports