module SidekiqPrometheus::Metrics

Constants

JOB_LABELS
SIDEKIQ_GC_METRIC
SIDEKIQ_GLOBAL_METRICS
SIDEKIQ_JOB_METRICS
SIDEKIQ_WORKER_GC_METRICS
UNKNOWN
VALID_TYPES

Public Instance Methods

[](name) click to toggle source

Fetch a metric from the registry @param name [Symbol] name of metric to fetch

# File lib/sidekiq_prometheus/metrics.rb, line 130
def [](name)
  registry.get(name.to_sym)
end
register(type:, name:, docstring:, labels: [], preset_labels: {}, buckets: nil) click to toggle source

Register a new metric @param types [Symbol] type of metric to register. Valid types: %w(counter gauge summary histogram) @param name [Symbol] name of metric @param docstring [String] help text for metric @param labels [Array] Optionally an array of labels to configure for every instance of this metric @param preset_labels [Hash] Optionally a Hash of labels to use for every instance of this metric @param buckets [Hash] Optional hash of bucket values. Only used for histogram metrics.

# File lib/sidekiq_prometheus/metrics.rb, line 146
def register(type:, name:, docstring:, labels: [], preset_labels: {}, buckets: nil)
  raise InvalidMetricType, type unless VALID_TYPES.include? type

  # Aggregate all preset labels
  all_preset_labels = preset_labels.dup
  all_preset_labels.merge!(SidekiqPrometheus.preset_labels) if SidekiqPrometheus.preset_labels

  # Aggregate all labels
  all_labels = labels | SidekiqPrometheus.custom_labels.fetch(name, []) | all_preset_labels.keys

  options = { docstring: docstring,
              labels: all_labels,
              preset_labels: all_preset_labels, }

  options[:buckets] = buckets if buckets

  registry.send(type, name.to_sym, **options)
end
register_metrics(metrics) click to toggle source
# File lib/sidekiq_prometheus/metrics.rb, line 121
def register_metrics(metrics)
  metrics.each do |metric|
    register(**metric)
  end
end
register_sidekiq_gc_metric() click to toggle source
# File lib/sidekiq_prometheus/metrics.rb, line 109
def register_sidekiq_gc_metric
  register(**SIDEKIQ_GC_METRIC)
end
register_sidekiq_global_metrics() click to toggle source
# File lib/sidekiq_prometheus/metrics.rb, line 117
def register_sidekiq_global_metrics
  register_metrics SIDEKIQ_GLOBAL_METRICS
end
register_sidekiq_job_metrics() click to toggle source
# File lib/sidekiq_prometheus/metrics.rb, line 105
def register_sidekiq_job_metrics
  register_metrics SIDEKIQ_JOB_METRICS
end
register_sidekiq_worker_gc_metrics() click to toggle source
# File lib/sidekiq_prometheus/metrics.rb, line 113
def register_sidekiq_worker_gc_metrics
  register_metrics SIDEKIQ_WORKER_GC_METRICS
end
registry() click to toggle source
# File lib/sidekiq_prometheus/metrics.rb, line 101
def registry
  SidekiqPrometheus.registry
end
unregister(name:) click to toggle source
# File lib/sidekiq_prometheus/metrics.rb, line 165
def unregister(name:)
  registry.unregister(name.to_sym)
end