Module: Labkit::RateLimit::Metrics

Defined in:
lib/labkit/rate_limit/metrics.rb

Class Method Summary collapse

Class Method Details

.calls_totalObject

Emitted once per matched rule, not once per check: every rule that matches is evaluated, so summing this by rate_limiter counts rule evaluations rather than requests. rule="unmatched", action="allow" is emitted only when no rule matched at all.



12
13
14
15
16
17
18
# File 'lib/labkit/rate_limit/metrics.rb', line 12

def calls_total
  Labkit::Metrics::Client.counter(
    :gitlab_labkit_rate_limiter_calls_total,
    'Total number of successful rate limit checks',
    { rate_limiter: nil, rule: nil, action: nil }
  )
end

.errors_totalObject



20
21
22
23
24
25
26
# File 'lib/labkit/rate_limit/metrics.rb', line 20

def errors_total
  Labkit::Metrics::Client.counter(
    :gitlab_labkit_rate_limiter_errors_total,
    'Total number of rate limit check errors',
    { rate_limiter: nil }
  )
end

.limit_gaugeObject



28
29
30
31
32
33
34
35
# File 'lib/labkit/rate_limit/metrics.rb', line 28

def limit_gauge
  Labkit::Metrics::Client.gauge(
    :gitlab_labkit_rate_limiter_limit,
    'The configured rate limit threshold',
    { rate_limiter: nil, rule: nil },
    :max
  )
end

.period_gaugeObject



37
38
39
40
41
42
43
44
# File 'lib/labkit/rate_limit/metrics.rb', line 37

def period_gauge
  Labkit::Metrics::Client.gauge(
    :gitlab_labkit_rate_limiter_period_seconds,
    'The configured rate limit period in seconds',
    { rate_limiter: nil, rule: nil },
    :max
  )
end