Files
gitlab-foss/lib/gitlab/http_router/rule_metrics.rb
2024-08-23 15:09:07 +00:00

40 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module Gitlab
module HttpRouter
module RuleMetrics
extend ActiveSupport::Concern
include HttpRouter::RuleContext
include Gitlab::Utils::StrongMemoize
def increment_http_router_metrics
context = http_router_rule_context
increment_http_router_rule_counter(context[:http_router_rule_action], context[:http_router_rule_type])
end
private
def increment_http_router_rule_counter(http_router_rule_action, http_router_rule_type)
# `action` should be present, but `type` is optional
return if http_router_rule_action.blank?
labels = {
rule_action: http_router_rule_action,
rule_type: http_router_rule_type
}
http_router_rule_counter.increment(labels)
end
def http_router_rule_counter
name = :gitlab_http_router_rule_total
comment = 'Total number of HTTP router rule invocations'
::Gitlab::Metrics.counter(name, comment)
end
strong_memoize_attr :http_router_rule_counter
end
end
end