Sha256: cb3c97b34f64241e03f44008aab1e2337b290f47bc2171bf7a302ff931f3e3f3

Contents?: true

Size: 1.53 KB

Versions: 8

Compression:

Stored size: 1.53 KB

Contents

module CC
  module Analyzer
    class StatsdContainerListener < ContainerListener
      def initialize(statsd)
        @statsd = statsd
      end

      def started(engine, _details)
        increment(engine, "started")
      end

      def finished(engine, _details, result)
        timing(engine, "time", result.duration)
        increment(engine, "finished")

        if result.timed_out?
          timing(engine, "time", result.duration)
          increment(engine, "result.error")
          increment(engine, "result.error.timeout")
        elsif result.maximum_output_exceeded?
          increment(engine, "result.error")
          increment(engine, "result.error.output_exceeded")
        elsif result.exit_status.nonzero?
          increment(engine, "result.error")
        else
          increment(engine, "result.success")
        end
      end

      private

      attr_reader :statsd

      def increment(engine, metric)
        statsd.increment("engines.#{metric}")
        statsd.increment("engines.names.#{engine.name}.#{metric}")
        if engine.respond_to?(:channel) && engine.channel
          statsd.increment("engines.names.#{engine.name}.#{engine.channel}.#{metric}")
        end
      end

      def timing(engine, metric, millis)
        statsd.timing("engines.#{metric}", millis)
        statsd.timing("engines.names.#{engine.name}.#{metric}", millis)
        if engine.respond_to?(:channel) && engine.channel
          statsd.timing("engines.names.#{engine.name}.#{engine.channel}.#{metric}", millis)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
codeclimate-0.87.1 lib/cc/analyzer/statsd_container_listener.rb
codeclimate-0.87.0 lib/cc/analyzer/statsd_container_listener.rb
codeclimate-0.86.0 lib/cc/analyzer/statsd_container_listener.rb
codeclimate-0.85.29 lib/cc/analyzer/statsd_container_listener.rb
codeclimate-0.85.28 lib/cc/analyzer/statsd_container_listener.rb
codeclimate-0.85.27 lib/cc/analyzer/statsd_container_listener.rb
codeclimate-0.85.26 lib/cc/analyzer/statsd_container_listener.rb
codeclimate-0.85.25 lib/cc/analyzer/statsd_container_listener.rb