47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/jenkins_statsd/cli.rb', line 47
def start
SemanticLogger.default_level = options[:log_level].downcase.to_sym
SemanticLogger.add_appender(io: $stdout, level: :trace, formatter: :color)
logger = SemanticLogger['JenkinsStatsd']
jenkins_client = JenkinsClient.new(options[:jenkins_host],
options[:jenkins_token])
stats_client = StatsdClient.new(options[:statsd_host],
options[:statsd_port],
options[:namespace])
EventMachine.run do
logger.info("Starting... first check in #{options[:interval]} seconds")
EventMachine.add_periodic_timer(options[:interval]) do
logger.debug('Fetching metrics')
begin
metrics = jenkins_client.get_metrics
logger.trace(metrics)
begin
logger.debug('Sending metrics')
stats_client.send_metrics(metrics)
rescue Exception => e
logger.error("Error sending metrics: #{e}")
end
rescue Exception => e
logger.error("Error fetching metrics: #{e}")
end
end
end
end
|