diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-17 03:09:32 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-17 03:09:32 +0300 |
commit | 1b1bd461da768b31adb730f42060b7d6adf548c5 (patch) | |
tree | f0150b942ee4e9f5798418aad6da669de6ace00b /lib/gitlab/cache | |
parent | 2c34e41161b78fddbdff9a858086e95558e06ba0 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/cache')
-rw-r--r-- | lib/gitlab/cache/metadata.rb | 35 | ||||
-rw-r--r-- | lib/gitlab/cache/metrics.rb | 32 |
2 files changed, 42 insertions, 25 deletions
diff --git a/lib/gitlab/cache/metadata.rb b/lib/gitlab/cache/metadata.rb new file mode 100644 index 00000000000..d6c89b5b2c3 --- /dev/null +++ b/lib/gitlab/cache/metadata.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +module Gitlab + module Cache + # Value object for cache metadata + class Metadata + VALID_BACKING_RESOURCES = [:cpu, :database, :gitaly, :memory, :unknown].freeze + DEFAULT_BACKING_RESOURCE = :unknown + + def initialize( + cache_identifier:, + feature_category:, + caller_id: Gitlab::ApplicationContext.current_context_attribute(:caller_id), + backing_resource: DEFAULT_BACKING_RESOURCE + ) + @cache_identifier = cache_identifier + @feature_category = Gitlab::FeatureCategories.default.get!(feature_category) + @caller_id = caller_id + @backing_resource = fetch_backing_resource!(backing_resource) + end + + attr_reader :caller_id, :cache_identifier, :feature_category, :backing_resource + + private + + def fetch_backing_resource!(resource) + return resource if VALID_BACKING_RESOURCES.include?(resource) + + raise "Unknown backing resource: #{resource}" if Gitlab.dev_or_test_env? + + DEFAULT_BACKING_RESOURCE + end + end + end +end diff --git a/lib/gitlab/cache/metrics.rb b/lib/gitlab/cache/metrics.rb index 0143052beb1..00d4e6e4d4e 100644 --- a/lib/gitlab/cache/metrics.rb +++ b/lib/gitlab/cache/metrics.rb @@ -5,19 +5,9 @@ module Gitlab module Cache class Metrics DEFAULT_BUCKETS = [0, 1, 5].freeze - VALID_BACKING_RESOURCES = [:cpu, :database, :gitaly, :memory, :unknown].freeze - DEFAULT_BACKING_RESOURCE = :unknown - def initialize( - caller_id:, - cache_identifier:, - feature_category: ::Gitlab::FeatureCategories::FEATURE_CATEGORY_DEFAULT, - backing_resource: DEFAULT_BACKING_RESOURCE - ) - @caller_id = caller_id - @cache_identifier = cache_identifier - @feature_category = Gitlab::FeatureCategories.default.get!(feature_category) - @backing_resource = fetch_backing_resource!(backing_resource) + def initialize(cache_metadata) + @cache_metadata = cache_metadata end # Increase cache hit counter @@ -51,7 +41,7 @@ module Gitlab private - attr_reader :caller_id, :cache_identifier, :feature_category, :backing_resource + attr_reader :cache_metadata def counter @counter ||= Gitlab::Metrics.counter(:redis_hit_miss_operations_total, "Hit/miss Redis cache counter") @@ -68,20 +58,12 @@ module Gitlab def labels @labels ||= { - caller_id: caller_id, - cache_identifier: cache_identifier, - feature_category: feature_category, - backing_resource: backing_resource + caller_id: cache_metadata.caller_id, + cache_identifier: cache_metadata.cache_identifier, + feature_category: cache_metadata.feature_category, + backing_resource: cache_metadata.backing_resource } end - - def fetch_backing_resource!(resource) - return resource if VALID_BACKING_RESOURCES.include?(resource) - - raise "Unknown backing resource: #{resource}" if Gitlab.dev_or_test_env? - - DEFAULT_BACKING_RESOURCE - end end end end |