Sha256: bd93b3aba22df19181e6a108a57c1c3ad4c1f4234e4b58a48f7a2c540f37c603
Contents?: true
Size: 740 Bytes
Versions: 17
Compression:
Stored size: 740 Bytes
Contents
# frozen_string_literal: true module Racecar ## # Common API for instrumentation to standardize # namespace and default payload # class Instrumenter NAMESPACE = "racecar" attr_reader :backend def initialize(default_payload = {}) @default_payload = default_payload @backend = if defined?(ActiveSupport::Notifications) # ActiveSupport needs `concurrent-ruby` but doesn't `require` it. require 'concurrent/utility/monotonic_time' ActiveSupport::Notifications else NullInstrumenter end end def instrument(event_name, payload = {}, &block) @backend.instrument("#{event_name}.#{NAMESPACE}", @default_payload.merge(payload), &block) end end end
Version data entries
17 entries across 17 versions & 1 rubygems