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 =
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
A new instance of Meter.
Constructor Details
#initialize ⇒ Meter
Returns a new instance of Meter.
28 29 30 31 |
# File 'lib/opentelemetry/metrics/meter.rb', line 28 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)
58 59 60 |
# File 'lib/opentelemetry/metrics/meter.rb', line 58 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)
118 119 120 |
# File 'lib/opentelemetry/metrics/meter.rb', line 118 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)
89 90 91 |
# File 'lib/opentelemetry/metrics/meter.rb', line 89 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)
180 181 182 |
# File 'lib/opentelemetry/metrics/meter.rb', line 180 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)
214 215 216 |
# File 'lib/opentelemetry/metrics/meter.rb', line 214 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)
248 249 250 |
# File 'lib/opentelemetry/metrics/meter.rb', line 248 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)
147 148 149 |
# File 'lib/opentelemetry/metrics/meter.rb', line 147 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 |