Created
February 28, 2018 08:57
-
-
Save majormoses/9f604bbb995c5c566b5bf643b1eff5e2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/bin/metrics-logstash-node.rb b/bin/metrics-logstash-node.rb | |
index d8251b3..3975230 100755 | |
--- a/bin/metrics-logstash-node.rb | |
+++ b/bin/metrics-logstash-node.rb | |
@@ -112,32 +112,62 @@ class LogstashNodeMetrics < Sensu::Plugin::Metric::CLI::Graphite | |
metrics['process.open_file_descriptors'] = node['process']['open_file_descriptors'] | |
metrics['process.peak_open_file_descriptors'] = node['process']['peak_open_file_descriptors'] | |
metrics['process.max_file_descriptors'] = node['process']['max_file_descriptors'] | |
- | |
- node['pipeline']['events'].each do |key, value| | |
- metrics["pipeline.events.#{key}"] = value | |
- end | |
- | |
- node['pipeline']['plugins']['inputs'].each do |item| | |
- item['events'] = {} unless item.key?('events') | |
- metrics["pipeline.plugins.inputs.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
- metrics["pipeline.plugins.inputs.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
- metrics["pipeline.plugins.inputs.#{item['name']}.#{item['id']}.events.queue_push_duration_in_millis"] = \ | |
- item['events']['queue_push_duration_in_millis'].to_i || 0 | |
- end | |
- | |
- node['pipeline']['plugins']['filters'].each do |item| | |
- item['events'] = {} unless item.key?('events') | |
- metrics["pipeline.plugins.filters.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
- metrics["pipeline.plugins.filters.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
- metrics["pipeline.plugins.filters.#{item['name']}.#{item['id']}.events.duration_in_millis"] = item['events']['duration_in_millis'].to_i || 0 | |
- metrics["pipeline.plugins.filters.#{item['name']}.#{item['id']}.matches"] = item['matches'].to_i if item.key?('matches') | |
- end | |
- | |
- node['pipeline']['plugins']['outputs'].each do |item| | |
- item['events'] = {} unless item.key?('events') | |
- metrics["pipeline.plugins.outputs.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
- metrics["pipeline.plugins.outputs.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
- metrics["pipeline.plugins.outputs.#{item['name']}.#{item['id']}.events.duration_in_millis"] = item['events']['duration_in_millis'].to_i || 0 | |
+ # logstash < 6.0 | |
+ if node.key?('pipeline') | |
+ node['pipeline']['events'].each do |key, value| | |
+ metrics["pipeline.events.#{key}"] = value | |
+ end | |
+ | |
+ node['pipeline']['plugins']['inputs'].each do |item| | |
+ item['events'] = {} unless item.key?('events') | |
+ metrics["pipeline.plugins.inputs.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
+ metrics["pipeline.plugins.inputs.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
+ metrics["pipeline.plugins.inputs.#{item['name']}.#{item['id']}.events.queue_push_duration_in_millis"] = \ | |
+ item['events']['queue_push_duration_in_millis'].to_i || 0 | |
+ end | |
+ | |
+ node['pipeline']['plugins']['filters'].each do |item| | |
+ metrics["pipeline.plugins.filters.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
+ metrics["pipeline.plugins.filters.#{item['name']}.#{item['id']}.events.duration_in_millis"] = item['events']['duration_in_millis'].to_i || 0 | |
+ metrics["pipeline.plugins.filters.#{item['name']}.#{item['id']}.matches"] = item['matches'].to_i if item.key?('matches') | |
+ end | |
+ | |
+ node['pipeline']['plugins']['outputs'].each do |item| | |
+ item['events'] = {} unless item.key?('events') | |
+ metrics["pipeline.plugins.outputs.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
+ metrics["pipeline.plugins.outputs.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
+ metrics["pipeline.plugins.outputs.#{item['name']}.#{item['id']}.events.duration_in_millis"] = item['events']['duration_in_millis'].to_i || 0 | |
+ end | |
+ # logstash >= 6.0 | |
+ elsif node.key?('pipelines') | |
+ node['pipelines'].each_key do |pipeline| | |
+ node['pipelines'][pipeline]['events'].each do |key, value| | |
+ metrics["pipelines.#{pipeline}.events.#{key}"] = value | |
+ end | |
+ | |
+ node['pipelines'][pipeline]['plugins']['inputs'].each do |item| | |
+ item['events'] = {} unless item.key?('events') | |
+ metrics["pipelines.#{pipeline}.plugins.inputs.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
+ metrics["pipelines.#{pipeline}.plugins.inputs.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
+ metrics["pipelines.#{pipeline}.plugins.inputs.#{item['name']}.#{item['id']}.events.queue_push_duration_in_millis"] = item['events']['queue_push_duration_in_millis'].to_i || 0 # rubocop:disable Metrics/LineLength | |
+ end | |
+ | |
+ node['pipelines'][pipeline]['plugins']['filters'].each do |item| | |
+ item['events'] = {} unless item.key?('events') | |
+ metrics["pipelines.#{pipeline}.plugins.filters.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
+ metrics["pipelines.#{pipeline}.plugins.filters.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
+ metrics["pipelines.#{pipeline}.plugins.filters.#{item['name']}.#{item['id']}.events.duration_in_millis"] = item['events']['duration_in_millis'].to_i || 0 # rubocop:disable Metrics/LineLength | |
+ metrics["pipelines.#{pipeline}.plugins.filters.#{item['name']}.#{item['id']}.matches"] = item['matches'].to_i if item.key?('matches') | |
+ end | |
+ | |
+ node['pipelines'][pipeline]['plugins']['outputs'].each do |item| | |
+ item['events'] = {} unless item.key?('events') | |
+ metrics["pipelines.#{pipeline}.plugins.outputs.#{item['name']}.#{item['id']}.events.in"] = item['events']['in'].to_i || 0 | |
+ metrics["pipelines.#{pipeline}.plugins.outputs.#{item['name']}.#{item['id']}.events.out"] = item['events']['out'].to_i || 0 | |
+ end | |
+ end | |
end | |
metrics.each do |k, v| |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment