Class: OpenTelemetry::Metrics::Meter
- Inherits:
-
Object
- Object
- OpenTelemetry::Metrics::Meter
- Defined in:
- lib/opentelemetry/metrics/meter.rb
Overview
No-op implementation of Meter.
Direct Known Subclasses
Constant Summary collapse
- NAME_REGEX =
%r{\A[a-zA-Z][-./\w]{0,254}\z}- DuplicateInstrumentError =
rubocop:disable Style/EmptyClassDefinition
Class.new(OpenTelemetry::Error)
- InstrumentNameError =
Class.new(OpenTelemetry::Error)
- InstrumentUnitError =
Class.new(OpenTelemetry::Error)
- InstrumentDescriptionError =
Class.new(OpenTelemetry::Error)
Instance Method Summary collapse
-
#create_counter(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
Counter is a synchronous Instrument which supports non-negative increments.
-
#create_gauge(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
Gauge is an synchronous Instrument which reports non-additive value(s).
-
#create_histogram(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
Histogram is a synchronous Instrument which can be used to report arbitrary values that are likely to be statistically meaningful.
-
#create_observable_counter(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
ObservableCounter is an asynchronous Instrument which reports monotonically increasing value(s) when the instrument is being observed.
-
#create_observable_gauge(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
ObservableGauge is an asynchronous Instrument which reports non-additive value(s) (e.g. the room temperature - it makes no sense to report the temperature value from multiple rooms and sum them up) when the instrument is being observed.
-
#create_observable_up_down_counter(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
ObservableUpDownCounter is an asynchronous Instrument which reports additive value(s) (e.g. the process heap size - it makes sense to report the heap size from multiple processes and sum them up, so we get the total heap usage) when the instrument is being observed.
-
#create_up_down_counter(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
UpDownCounter is a synchronous Instrument which supports increments and decrements.
-
#initialize ⇒ Meter
constructor
rubocop:enable Style/EmptyClassDefinition.
Constructor Details
#initialize ⇒ Meter
rubocop:enable Style/EmptyClassDefinition
30 31 32 33 |
# File 'lib/opentelemetry/metrics/meter.rb', line 30 def initialize @mutex = Mutex.new @instrument_registry = {} end |
Instance Method Details
#create_counter(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
Counter is a synchronous Instrument which supports non-negative increments.
With this api call:
exception_counter = meter.create_counter("exceptions",
description: "number of exceptions caught",
unit: 's',
exemplar_filter: OpenTelemetry::SDK::Metrics::Exemplar::TraceBasedExemplarFilter,
exemplar_reservoir: OpenTelemetry::SDK::Metrics::Exemplar::SimpleFixedSizeExemplarReservoir.new)
60 61 62 |
# File 'lib/opentelemetry/metrics/meter.rb', line 60 def create_counter(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) create_instrument(:counter, name, unit, description, nil, exemplar_filter, exemplar_reservoir) { COUNTER } end |
#create_gauge(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
Gauge is an synchronous Instrument which reports non-additive value(s)
With this api call:
meter.create_gauge("cpu.frequency",
description: "the real-time CPU clock speed",
unit: "ms",
exemplar_filter: OpenTelemetry::SDK::Metrics::Exemplar::TraceBasedExemplarFilter,
exemplar_reservoir: OpenTelemetry::SDK::Metrics::Exemplar::SimpleFixedSizeExemplarReservoir.new)
120 121 122 |
# File 'lib/opentelemetry/metrics/meter.rb', line 120 def create_gauge(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) create_instrument(:gauge, name, unit, description, nil, exemplar_filter, exemplar_reservoir) { GAUGE } end |
#create_histogram(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
Histogram is a synchronous Instrument which can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
With this api call:
http_server_duration = meter.create_histogram("http.server.duration",
description: "measures the duration of the inbound HTTP request",
unit: "s",
exemplar_filter: OpenTelemetry::SDK::Metrics::Exemplar::TraceBasedExemplarFilter,
exemplar_reservoir: OpenTelemetry::SDK::Metrics::Exemplar::AlignedHistogramBucketExemplarReservoir.new)
91 92 93 |
# File 'lib/opentelemetry/metrics/meter.rb', line 91 def create_histogram(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) create_instrument(:histogram, name, unit, description, nil, exemplar_filter, exemplar_reservoir) { HISTOGRAM } end |
#create_observable_counter(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
ObservableCounter is an asynchronous Instrument which reports monotonically increasing value(s) when the instrument is being observed.
With this api call:
pf_callback = -> { # collect metrics here }
meter.create_observable_counter("PF",
pf_callback,
description: "process page faults",
unit: 'ms',
exemplar_filter: OpenTelemetry::SDK::Metrics::Exemplar::TraceBasedExemplarFilter,
exemplar_reservoir: OpenTelemetry::SDK::Metrics::Exemplar::SimpleFixedSizeExemplarReservoir.new)
182 183 184 |
# File 'lib/opentelemetry/metrics/meter.rb', line 182 def create_observable_counter(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) create_instrument(:observable_counter, name, unit, description, callback, exemplar_filter, exemplar_reservoir) { OBSERVABLE_COUNTER } end |
#create_observable_gauge(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
ObservableGauge is an asynchronous Instrument which reports non-additive value(s) (e.g. the room temperature - it makes no sense to report the temperature value from multiple rooms and sum them up) when the instrument is being observed.
With this api call:
pf_callback = -> { # collect metrics here }
meter.create_observable_gauge("cpu.frequency",
pf_callback,
description: "the real-time CPU clock speed",
unit: 'ms',
exemplar_filter: OpenTelemetry::SDK::Metrics::Exemplar::TraceBasedExemplarFilter,
exemplar_reservoir: OpenTelemetry::SDK::Metrics::Exemplar::SimpleFixedSizeExemplarReservoir.new)
216 217 218 |
# File 'lib/opentelemetry/metrics/meter.rb', line 216 def create_observable_gauge(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) create_instrument(:observable_gauge, name, unit, description, callback, exemplar_filter, exemplar_reservoir) { OBSERVABLE_GAUGE } end |
#create_observable_up_down_counter(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
ObservableUpDownCounter is an asynchronous Instrument which reports additive value(s) (e.g. the process heap size - it makes sense to report the heap size from multiple processes and sum them up, so we get the total heap usage) when the instrument is being observed.
With this api call:
pf_callback = -> { # collect metrics here }
meter.create_observable_up_down_counter("process.workingset",
pf_callback,
description: "process working set",
unit: 'KB',
exemplar_filter: OpenTelemetry::SDK::Metrics::Exemplar::TraceBasedExemplarFilter,
exemplar_reservoir: OpenTelemetry::SDK::Metrics::Exemplar::SimpleFixedSizeExemplarReservoir.new)
250 251 252 |
# File 'lib/opentelemetry/metrics/meter.rb', line 250 def create_observable_up_down_counter(name, callback:, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) create_instrument(:observable_up_down_counter, name, unit, description, callback, exemplar_filter, exemplar_reservoir) { OBSERVABLE_UP_DOWN_COUNTER } end |
#create_up_down_counter(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) ⇒ nil
UpDownCounter is a synchronous Instrument which supports increments and decrements.
With this api call:
items_counter = meter.create_up_down_counter("store.inventory",
description: "the number of the items available",
unit: "s",
exemplar_filter: OpenTelemetry::SDK::Metrics::Exemplar::TraceBasedExemplarFilter,
exemplar_reservoir: OpenTelemetry::SDK::Metrics::Exemplar::SimpleFixedSizeExemplarReservoir.new)
149 150 151 |
# File 'lib/opentelemetry/metrics/meter.rb', line 149 def create_up_down_counter(name, unit: nil, description: nil, exemplar_filter: nil, exemplar_reservoir: nil) create_instrument(:up_down_counter, name, unit, description, nil, exemplar_filter, exemplar_reservoir) { UP_DOWN_COUNTER } end |