class Prometheus::Client::DataStores::SingleThreaded

Stores all the data in a simple Hash for each Metric

Has no synchronization primitives, making it the fastest store for single-threaded scenarios, but must absolutely not be used in multi-threaded scenarios.

Public Instance Methods

for_metric(metric_name, metric_type:, metric_settings: {}) click to toggle source
# File lib/prometheus/client/data_stores/single_threaded.rb, line 11
def for_metric(metric_name, metric_type:, metric_settings: {})
  # We don't need `metric_type` or `metric_settings` for this particular store
  validate_metric_settings(metric_settings: metric_settings)
  MetricStore.new
end

Private Instance Methods

validate_metric_settings(metric_settings:) click to toggle source
# File lib/prometheus/client/data_stores/single_threaded.rb, line 19
def validate_metric_settings(metric_settings:)
  unless metric_settings.empty?
    raise InvalidStoreSettingsError,
          "SingleThreaded doesn't allow any metric_settings"
  end
end