Class: Gitlab::Usage::Metrics::Instrumentations::NumbersMetric
- Inherits:
-
BaseMetric
- Object
- BaseMetric
- Gitlab::Usage::Metrics::Instrumentations::NumbersMetric
- Defined in:
- lib/gitlab/usage/metrics/instrumentations/numbers_metric.rb
Direct Known Subclasses
Constant Summary collapse
- UnimplementedOperationError =
Usage Example
class BoardsCountMetric < NumbersMetric
operation :add data do |time_frame| [ CountIssuesMetric.new(time_frame: time_frame).value, CountBoardsMetric.new(time_frame: time_frame).value, ] end
end
Class.new(StandardError)
Constants included from TimeFrame
TimeFrame::ALL_TIME_TIME_FRAME_NAME, TimeFrame::DEFAULT_TIMESTAMP_COLUMN, TimeFrame::SEVEN_DAYS_TIME_FRAME_NAME, TimeFrame::TWENTY_EIGHT_DAYS_TIME_FRAME_NAME
Constants included from Gitlab::Utils::UsageData
Gitlab::Utils::UsageData::DISTRIBUTED_HLL_FALLBACK, Gitlab::Utils::UsageData::FALLBACK, Gitlab::Utils::UsageData::HISTOGRAM_FALLBACK, Gitlab::Utils::UsageData::MAX_BUCKET_SIZE
Class Attribute Summary collapse
-
.metric_data ⇒ Object
readonly
Returns the value of attribute metric_data.
-
.metric_operation ⇒ Object
readonly
Returns the value of attribute metric_operation.
Attributes inherited from BaseMetric
#events, #options, #time_frame
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from BaseMetric
available?, #available?, #initialize, #instrumentation
Methods included from TimeFrame
#monthly_time_range, #monthly_time_range_db_params, #weekly_time_range, #weekly_time_range_db_params
Methods included from Gitlab::Utils::UsageData
#add, #add_metric, #alt_usage_data, #average, #count, #distinct_count, #estimate_batch_distinct_count, #histogram, #maximum_id, #measure_duration, #minimum_id, #redis_usage_data, #sum, #track_usage_event, #with_finished_at, #with_metadata, #with_prometheus_client
Constructor Details
This class inherits a constructor from Gitlab::Usage::Metrics::Instrumentations::BaseMetric
Class Attribute Details
.metric_data ⇒ Object (readonly)
Returns the value of attribute metric_data.
40 41 42 |
# File 'lib/gitlab/usage/metrics/instrumentations/numbers_metric.rb', line 40 def metric_data @metric_data end |
.metric_operation ⇒ Object (readonly)
Returns the value of attribute metric_operation.
40 41 42 |
# File 'lib/gitlab/usage/metrics/instrumentations/numbers_metric.rb', line 40 def metric_operation @metric_operation end |
Class Method Details
.data(&block) ⇒ Object
28 29 30 31 32 |
# File 'lib/gitlab/usage/metrics/instrumentations/numbers_metric.rb', line 28 def data(&block) return @metric_data&.call unless block @metric_data = block end |
.operation(symbol) ⇒ Object
34 35 36 37 38 |
# File 'lib/gitlab/usage/metrics/instrumentations/numbers_metric.rb', line 34 def operation(symbol) raise UnimplementedOperationError unless symbol.in?(IMPLEMENTED_OPERATIONS) @metric_operation = symbol end |
Instance Method Details
#value ⇒ Object
43 44 45 |
# File 'lib/gitlab/usage/metrics/instrumentations/numbers_metric.rb', line 43 def value method(self.class.metric_operation).call(*data) end |