Class: Flagstack::TelemetryInstrumenter

Inherits:
Object
  • Object
show all
Defined in:
lib/flagstack.rb

Overview

Instrumenter that records telemetry for feature flag checks

Instance Method Summary collapse

Constructor Details

#initialize(instance) ⇒ TelemetryInstrumenter

Returns a new instance of TelemetryInstrumenter.



308
309
310
# File 'lib/flagstack.rb', line 308

def initialize(instance)
  @instance = instance
end

Instance Method Details

#instrument(name, payload = {}) ⇒ Object



312
313
314
315
316
317
318
319
320
321
322
# File 'lib/flagstack.rb', line 312

def instrument(name, payload = {})
  result = yield payload if block_given?

  # Record telemetry for feature_operation events
  if name == "feature_operation.flipper" && payload[:operation] == :enabled?
    feature_name = payload[:feature_name]
    @instance.record_telemetry(feature_name, payload[:result]) if feature_name
  end

  result
end