Class: OpenTelemetry::SDK::Metrics::Export::MetricReader

Inherits:
Object
  • Object
show all
Defined in:
lib/opentelemetry/sdk/metrics/export/metric_reader.rb

Overview

MetricReader provides a minimal example implementation. It is not required to subclass this class to provide an implementation of MetricReader, provided the interface is satisfied.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aggregation_cardinality_limit: nil) ⇒ MetricReader

Returns a new instance of MetricReader.



22
23
24
25
# File 'lib/opentelemetry/sdk/metrics/export/metric_reader.rb', line 22

def initialize(aggregation_cardinality_limit: nil)
  @mutex = Mutex.new
  @metric_store = OpenTelemetry::SDK::Metrics::State::MetricStore.new(cardinality_limit: aggregation_cardinality_limit)
end

Instance Attribute Details

#metric_store ⇒ Object (readonly)

Returns the value of attribute metric_store.



20
21
22
# File 'lib/opentelemetry/sdk/metrics/export/metric_reader.rb', line 20

def metric_store
  @metric_store
end

Instance Method Details

#collect ⇒ Object

Collects and returns the current metrics from the metric store.



37
38
39
# File 'lib/opentelemetry/sdk/metrics/export/metric_reader.rb', line 37

def collect
  @metric_store.collect
end

#force_flush(timeout: nil) ⇒ Object

No-op: subclasses should override to force an export.



47
48
49
# File 'lib/opentelemetry/sdk/metrics/export/metric_reader.rb', line 47

def force_flush(timeout: nil)
  Export::SUCCESS
end

#register_meter_provider(meter_provider) ⇒ Object

Registers this reader with a MeterProvider.



28
29
30
31
32
33
34
# File 'lib/opentelemetry/sdk/metrics/export/metric_reader.rb', line 28

def register_meter_provider(meter_provider)
  @mutex.synchronize do
    raise ArgumentError, SINGLE_PROVIDER_ERROR if @meter_provider && !@meter_provider.equal?(meter_provider)

    @meter_provider = meter_provider
  end
end

#shutdown(timeout: nil) ⇒ Object

No-op: subclasses should override to release resources.



42
43
44
# File 'lib/opentelemetry/sdk/metrics/export/metric_reader.rb', line 42

def shutdown(timeout: nil)
  Export::SUCCESS
end