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 = {
    :pipeline => pipeline,
    :os => os,
    :jvm => jvm
  }
  payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty?
  payload
end

#hot_threads(options = {}) ⇒ Object



58
59
60
# File 'lib/logstash/api/commands/node.rb', line 58

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

#jvmObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/logstash/api/commands/node.rb', line 37

def jvm
  memory_bean = ManagementFactory.getMemoryMXBean()

  {
    :pid =>  ManagementFactory.getRuntimeMXBean().getName().split("@").first.to_i,
    :version => java.lang.System.getProperty("java.version"),
    :vm_name => java.lang.System.getProperty("java.vm.name"),
    :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



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

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 = LogStash::SETTINGS.get("pipeline.id").to_sym) ⇒ Object



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

def pipeline(pipeline_id = LogStash::SETTINGS.get("pipeline.id").to_sym)
  stats = extract_metrics(
    [:stats, :pipelines, pipeline_id, :config],
    :workers, :batch_size, :batch_delay, :config_reload_automatic, :config_reload_interval
  )
  stats.merge(:id => pipeline_id)
end