Module: Prometheus::Client

Defined in:
lib/prometheus/client.rb,
lib/prometheus/client/push.rb,
lib/prometheus/client/gauge.rb,
lib/prometheus/client/metric.rb,
lib/prometheus/client/counter.rb,
lib/prometheus/client/summary.rb,
lib/prometheus/client/version.rb,
lib/prometheus/client/registry.rb,
lib/prometheus/client/histogram.rb,
lib/prometheus/client/page_size.rb,
lib/prometheus/client/mmaped_dict.rb,
lib/prometheus/client/formats/text.rb,
lib/prometheus/client/mmaped_value.rb,
lib/prometheus/client/simple_value.rb,
lib/prometheus/client/support/puma.rb,
lib/prometheus/client/configuration.rb,
lib/prometheus/client/rack/exporter.rb,
lib/prometheus/client/rack/collector.rb,
lib/prometheus/client/support/unicorn.rb,
lib/prometheus/client/uses_value_type.rb,
lib/prometheus/client/helper/plain_file.rb,
lib/prometheus/client/helper/file_locker.rb,
lib/prometheus/client/helper/json_parser.rb,
lib/prometheus/client/helper/mmaped_file.rb,
lib/prometheus/client/helper/entry_parser.rb,
lib/prometheus/client/label_set_validator.rb,
lib/prometheus/client/helper/metrics_processing.rb,
lib/prometheus/client/helper/metrics_representation.rb

Overview

Client is a ruby implementation for a Prometheus compatible client.

Defined Under Namespace

Modules: Formats, Helper, PageSize, Rack, Support, UsesValueType Classes: Configuration, Counter, Gauge, Histogram, LabelSetValidator, Metric, MmapedDict, MmapedValue, ParsingError, Push, Registry, SimpleValue, Summary

Constant Summary collapse

VERSION =
'1.6.1'.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



11
12
13
# File 'lib/prometheus/client.rb', line 11

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.cleanup!Object



40
41
42
# File 'lib/prometheus/client.rb', line 40

def cleanup!
  Dir.glob("#{configuration.multiprocess_files_dir}/*.db").each { |f| File.unlink(f) if File.exist?(f) }
end

.configure {|configuration| ... } ⇒ Object

Yields:



15
16
17
# File 'lib/prometheus/client.rb', line 15

def configure
  yield(configuration)
end

.loggerObject



24
25
26
# File 'lib/prometheus/client.rb', line 24

def logger
  configuration.logger
end

.pidObject



28
29
30
# File 'lib/prometheus/client.rb', line 28

def pid
  configuration.pid_provider.call
end

.registryObject

Returns a default registry object



20
21
22
# File 'lib/prometheus/client.rb', line 20

def registry
  @registry ||= Registry.new
end

.reinitialize_on_pid_change(force: false) ⇒ Object

With force: false: reinitializes metric files only for processes with the changed PID. With force: true: reinitializes all metrics files. Always keeps the registry. Use case (force: false): pick up new metric files on each worker start, without resetting already registered files for the master or previously initialized workers.



49
50
51
52
53
54
55
# File 'lib/prometheus/client.rb', line 49

def reinitialize_on_pid_change(force: false)
  if force
    ::Prometheus::Client::MmapedValue.reset_and_reinitialize
  else
    ::Prometheus::Client::MmapedValue.reinitialize_on_pid_change
  end
end

.reset!Object

Resets the registry and reinitializes all metrics files. Use case: clean up everything in specs before block, to prevent leaking the state between specs which are updating metrics.



35
36
37
38
# File 'lib/prometheus/client.rb', line 35

def reset!
  @registry = nil
  ::Prometheus::Client::MmapedValue.reset_and_reinitialize
end