From 66c2a3a83e2c8a15302213141923723295d0d647 Mon Sep 17 00:00:00 2001 From: Pawel Chojnacki Date: Tue, 16 Jan 2018 20:03:30 +0100 Subject: [PATCH] Fix helper methods and document metric builder options --- lib/gitlab/metrics/concern.rb | 8 ++++---- lib/gitlab/metrics/concern/metric_options.rb | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/gitlab/metrics/concern.rb b/lib/gitlab/metrics/concern.rb index e7c91df94bc..5d465232726 100644 --- a/lib/gitlab/metrics/concern.rb +++ b/lib/gitlab/metrics/concern.rb @@ -65,28 +65,28 @@ module Gitlab # @param [Symbol] name # @param [Hash] opts def fetch_counter(name, opts = {}, &block) - define_metric(:counter, name, opts, &block) + fetch_metric(:counter, name, opts, &block) end # DFetch and/or initialize gauge metric # @param [Symbol] name # @param [Hash] opts def fetch_gauge(name, opts = {}, &block) - define_metric(:counter, name, opts, &block) + fetch_metric(:counter, name, opts, &block) end # Fetch and/or initialize histogram metric # @param [Symbol] name # @param [Hash] opts def fetch_histogram(name, opts = {}, &block) - define_metric(:histogram, name, opts, &block) + fetch_metric(:histogram, name, opts, &block) end # Fetch and/or initialize summary metric # @param [Symbol] name # @param [Hash] opts def fetch_summary(name, opts = {}, &block) - define_metric(:summary, name, opts, &block) + fetch_metric(:summary, name, opts, &block) end # Define metric accessor method for a Counter diff --git a/lib/gitlab/metrics/concern/metric_options.rb b/lib/gitlab/metrics/concern/metric_options.rb index 996757e11d5..dc964512912 100644 --- a/lib/gitlab/metrics/concern/metric_options.rb +++ b/lib/gitlab/metrics/concern/metric_options.rb @@ -10,30 +10,39 @@ module Gitlab @with_feature = options[:with_feature] end + # Documentation describing metric in metrics endpoint '/-/metrics' def docstring(docstring = nil) @docstring = docstring unless docstring.nil? @docstring end + # Gauge aggregation mode for multiprocess metrics + # - :all (default) returns each gauge for every process + # - :livesum all process'es gauges summed up + # - :max maximum value of per process gauges + # - :min minimum value of per process gauges def multiprocess_mode(mode = nil) @multiprocess_mode = mode unless mode.nil? @multiprocess_mode end + # Measurement buckets for histograms def buckets(buckets = nil) @buckets = buckets unless buckets.nil? @buckets end + # Base labels are merged with per metric labels def base_labels(base_labels = nil) @base_labels = base_labels unless base_labels.nil? @base_labels end + # Use feature toggle to control whether certain metric is enabled/disabled def with_feature(name = nil) @feature_name = name unless name.nil?