Module: RspecOtel

Defined in:
lib/rspec_otel.rb,
lib/rspec_otel/version.rb,
lib/rspec_otel/matchers.rb,
lib/rspec_otel/matchers/emit_span.rb,
lib/rspec_otel/matchers/emit_metric.rb,
lib/rspec_otel/matchers/span_details.rb,
lib/rspec_otel/matchers/metric_details.rb

Defined Under Namespace

Modules: Matchers

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.exporterObject



8
9
10
# File 'lib/rspec_otel.rb', line 8

def self.exporter
  @exporter ||= OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter.new
end

.metric_exporterObject



12
13
14
# File 'lib/rspec_otel.rb', line 12

def self.metric_exporter
  @metric_exporter ||= OpenTelemetry::SDK::Metrics::Export::InMemoryMetricPullExporter.new
end

.recordObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rspec_otel.rb', line 16

def self.record
  span_processor = OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor.new(exporter)

  OpenTelemetry::SDK.configure do |c|
    c.add_span_processor span_processor
  end

  meter_provider = OpenTelemetry::SDK::Metrics::MeterProvider.new
  meter_provider.add_metric_reader(metric_exporter)
  OpenTelemetry.meter_provider = meter_provider

  yield
ensure
  reset
end

.resetObject



32
33
34
35
36
37
# File 'lib/rspec_otel.rb', line 32

def self.reset
  OpenTelemetry::TestHelpers.reset_opentelemetry
  OpenTelemetry.meter_provider = OpenTelemetry::Internal::ProxyMeterProvider.new
  @exporter = nil
  @metric_exporter = nil
end