Sha256: 7f220e33a519ef11c862743562294f7515c18ca9050bb3fff7ed4c7a8a739404

Contents?: true

Size: 923 Bytes

Versions: 1

Compression:

Stored size: 923 Bytes

Contents

require 'puff/Instrumentation/redis'

module Puff
  module Instrumentation
    class LogSubscriber < ActiveSupport::LogSubscriber
      def self.runtime=(value)
          Thread.current["redis_runtime"] = value
        end

        def self.runtime
          Thread.current["redis_runtime"] ||= 0
        end

        def self.reset_runtime
          rt, self.runtime = runtime, 0
          rt
        end

      def request(event)
        self.class.runtime += event.duration
        return unless logger.debug?

        name = "%s (%.2fms)" % ["Redis", event.duration]
        cmds = event.payload[:commands]

        output = "  #{color(name, RED, true)}"

        cmds.each do |name, *args|
          if args.present?
            output << "  #{name.to_s.upcase} #{args.join(" ")}"
          else
            output << "  #{name.to_s.upcase}"
          end
        end

        debug output
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
puff-0.3.0 lib/puff/instrumentation/log_subscriber.rb