Class: LogStash::Api::Commands::Node

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash/api/commands/node.rb

Instance Attribute Summary

Attributes inherited from Base

#service

Instance Method Summary collapse

Methods inherited from Base

#extract_metrics, #initialize, #started_at, #uptime

Constructor Details

This class inherits a constructor from LogStash::Api::Commands::Base

Instance Method Details

#all(selected_fields = []) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/logstash/api/commands/node.rb', line 10

def all(selected_fields=[])
  payload = {
    :pipelines => pipelines,
    :os => os,
    :jvm => jvm
  }
  payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty?
  payload
end

#hot_threads(options = {}) ⇒ Object



65
66
67
# File 'lib/logstash/api/commands/node.rb', line 65

def hot_threads(options={})
  HotThreadsReport.new(self, options)
end

#jvmObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/logstash/api/commands/node.rb', line 45

def jvm
  memory_bean = ManagementFactory.getMemoryMXBean()

  {
    :pid =>  ManagementFactory.getRuntimeMXBean().getName().split("@").first.to_i,
    :version => java.lang.System.getProperty("java.version"),
    :vm_version => java.lang.System.getProperty("java.version"),
    :vm_vendor => java.lang.System.getProperty("java.vendor"),
    :vm_name => java.lang.System.getProperty("java.vm.name"),
    :start_time_in_millis => started_at,
    :mem => {
      :heap_init_in_bytes => (memory_bean.getHeapMemoryUsage().getInit() < 0 ? 0 : memory_bean.getHeapMemoryUsage().getInit()),
      :heap_max_in_bytes => (memory_bean.getHeapMemoryUsage().getMax() < 0 ? 0 : memory_bean.getHeapMemoryUsage().getMax()),
      :non_heap_init_in_bytes => (memory_bean.getNonHeapMemoryUsage().getInit() < 0 ? 0 : memory_bean.getNonHeapMemoryUsage().getInit()),
      :non_heap_max_in_bytes => (memory_bean.getNonHeapMemoryUsage().getMax() < 0 ? 0 : memory_bean.getNonHeapMemoryUsage().getMax())
    },
    :gc_collectors => ManagementFactory.getGarbageCollectorMXBeans().collect(&:getName)
  }
end

#osObject



36
37
38
39
40
41
42
43
# File 'lib/logstash/api/commands/node.rb', line 36

def os
  {
    :name => java.lang.System.getProperty("os.name"),
    :arch => java.lang.System.getProperty("os.arch"),
    :version => java.lang.System.getProperty("os.version"),
    :available_processors => java.lang.Runtime.getRuntime().availableProcessors()
  }
end

#pipeline(pipeline_id) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/logstash/api/commands/node.rb', line 27

def pipeline(pipeline_id)
  extract_metrics(
    [:stats, :pipelines, pipeline_id.to_sym, :config],
    :workers, :batch_size, :batch_delay, :config_reload_automatic, :config_reload_interval, :dead_letter_queue_enabled, :dead_letter_queue_path
  ).reject{|_, v|v.nil?}
rescue
  {}
end

#pipelinesObject



20
21
22
23
24
25
# File 'lib/logstash/api/commands/node.rb', line 20

def pipelines
  pipeline_ids = service.get_shallow(:stats, :pipelines).keys
  pipeline_ids.each_with_object({}) do |pipeline_id, result|
    result[pipeline_id] = pipeline(pipeline_id)
  end
end