Module: Gitlab::UsageDataCounters::HLLRedisCounter
- Extended by:
- Gitlab::Usage::TimeFrame, Gitlab::Usage::TimeSeriesStorable, Gitlab::Utils::StrongMemoize, Gitlab::Utils::UsageData
- Defined in:
- lib/gitlab/usage_data_counters/hll_redis_counter.rb
Constant Summary collapse
- KEY_EXPIRY_LENGTH =
6.weeks
- REDIS_SLOT =
'hll_counters'
- KEY_OVERRIDES_PATH =
Rails.root.join('lib/gitlab/usage_data_counters/hll_redis_key_overrides.yml')
- LEGACY_EVENTS_PATH =
Rails.root.join('lib/gitlab/usage_data_counters/hll_redis_legacy_events.yml')
- EventError =
Class.new(StandardError)
- UnknownEvent =
Class.new(EventError)
- UnfinishedEventMigrationError =
Class.new(EventError)
- UnknownLegacyEventError =
Class.new(EventError)
Constants included from Gitlab::Usage::TimeFrame
Gitlab::Usage::TimeFrame::ALL_TIME_TIME_FRAME_NAME, Gitlab::Usage::TimeFrame::DEFAULT_TIMESTAMP_COLUMN, Gitlab::Usage::TimeFrame::SEVEN_DAYS_TIME_FRAME_NAME, Gitlab::Usage::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 Method Summary collapse
- .known_event?(event_name) ⇒ Boolean
- .known_events ⇒ Object
- .legacy_event?(event_name) ⇒ Boolean
-
.track_event(event_name, values:, property_name: nil, time: Time.current) ⇒ Object
Track unique events.
-
.unique_events(event_names:, start_date:, end_date:, property_name: nil) ⇒ Object
Count unique events for a given time range.
Methods included from Gitlab::Usage::TimeSeriesStorable
apply_time_aggregation, keys_for_aggregation
Methods included from Gitlab::Usage::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
Class Method Details
.known_event?(event_name) ⇒ Boolean
53 54 55 |
# File 'lib/gitlab/usage_data_counters/hll_redis_counter.rb', line 53 def known_event?(event_name) known_events.include?(event_name.to_s) end |
.known_events ⇒ Object
57 58 59 |
# File 'lib/gitlab/usage_data_counters/hll_redis_counter.rb', line 57 def known_events @known_events ||= load_events end |
.legacy_event?(event_name) ⇒ Boolean
61 62 63 |
# File 'lib/gitlab/usage_data_counters/hll_redis_counter.rb', line 61 def legacy_event?(event_name) legacy_events.include?(event_name) end |
.track_event(event_name, values:, property_name: nil, time: Time.current) ⇒ Object
Track unique events
event_name - The event name. values - One or multiple values counted. property_name - Name of the values counted. time - Time of the action, set to Time.current.
37 38 39 |
# File 'lib/gitlab/usage_data_counters/hll_redis_counter.rb', line 37 def track_event(event_name, values:, property_name: nil, time: Time.current) track(values, event_name, property_name: property_name, time: time) end |
.unique_events(event_names:, start_date:, end_date:, property_name: nil) ⇒ Object
Count unique events for a given time range.
event_names - The list of the events to count. property_names - The list of the values for which the events are to be counted. start_date - The start date of the time range. end_date - The end date of the time range.
47 48 49 50 51 |
# File 'lib/gitlab/usage_data_counters/hll_redis_counter.rb', line 47 def unique_events(event_names:, start_date:, end_date:, property_name: nil) used_in_aggregate_metric = event_names.is_a?(Array) && event_names.size > 1 count_unique_events(event_names: event_names, property_name: property_name, start_date: start_date, end_date: end_date, used_in_aggregate_metric: used_in_aggregate_metric) end |