Class: Lita::Handlers::Metrics

Inherits:
Handler
  • Object
show all
Defined in:
lib/lita/handlers/metrics.rb

Class Attribute Summary collapse

Instance Method Summary collapse

Class Attribute Details

.invalid_command_logObject

Returns the value of attribute invalid_command_log.



7
8
9
# File 'lib/lita/handlers/metrics.rb', line 7

def invalid_command_log
  @invalid_command_log
end

.statsdObject

Returns the value of attribute statsd.



5
6
7
# File 'lib/lita/handlers/metrics.rb', line 5

def statsd
  @statsd
end

.valid_command_logObject

Returns the value of attribute valid_command_log.



6
7
8
# File 'lib/lita/handlers/metrics.rb', line 6

def valid_command_log
  @valid_command_log
end

Instance Method Details

#invalid_command(payload) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/lita/handlers/metrics.rb', line 42

def invalid_command(payload)
  fields = extract_fields(payload)

  return unless fields[:command]

  self.class.statsd.increment(
    config.invalid_command_metric,
    tags: fields.each.select { |k, _v| k != :message }.map { |k, v| "#{k}:#{v}" }
  )

  self.class.invalid_command_log.info(format_log(fields)) unless fields[:private_message]
end

#setup(_payload) ⇒ Object



23
24
25
26
27
# File 'lib/lita/handlers/metrics.rb', line 23

def setup(_payload)
  self.class.statsd = Statsd.new(config.statsd_host, config.statsd_port)
  self.class.valid_command_log = ::Logger.new(*arrayize(config.valid_command_logger))
  self.class.invalid_command_log = ::Logger.new(*arrayize(config.invalid_command_logger))
end

#valid_command(payload) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/lita/handlers/metrics.rb', line 29

def valid_command(payload)
  fields = extract_fields(payload)

  return if ignore?(fields)

  self.class.statsd.increment(
    config.valid_command_metric,
    tags: fields.each.select { |k, _v| k != :message }.map { |k, v| "#{k}:#{v}" }
  )

  self.class.valid_command_log.info(format_log(fields)) unless fields[:private_message]
end