From 0d5530e55f0907f1b351bd608dd6ae72aea36a71 Mon Sep 17 00:00:00 2001 From: Shay Banon Date: Tue, 6 Nov 2012 11:31:23 +0100 Subject: [PATCH] Node Stats: add available processors to OS info --- .../java/org/elasticsearch/monitor/os/OsInfo.java | 14 ++++++++++++++ .../org/elasticsearch/monitor/os/OsService.java | 1 + 2 files changed, 15 insertions(+) diff --git a/src/main/java/org/elasticsearch/monitor/os/OsInfo.java b/src/main/java/org/elasticsearch/monitor/os/OsInfo.java index 8ba813fa93e..d92dc1b19cb 100644 --- a/src/main/java/org/elasticsearch/monitor/os/OsInfo.java +++ b/src/main/java/org/elasticsearch/monitor/os/OsInfo.java @@ -37,6 +37,8 @@ public class OsInfo implements Streamable, Serializable, ToXContent { long refreshInterval; + int availableProcessors; + Cpu cpu = null; Mem mem = null; @@ -54,6 +56,14 @@ public class OsInfo implements Streamable, Serializable, ToXContent { return this.refreshInterval; } + public int availableProcessors() { + return this.availableProcessors; + } + + public int getAvailableProcessors() { + return this.availableProcessors; + } + public Cpu cpu() { return this.cpu; } @@ -81,6 +91,7 @@ public class OsInfo implements Streamable, Serializable, ToXContent { static final class Fields { static final XContentBuilderString OS = new XContentBuilderString("os"); static final XContentBuilderString REFRESH_INTERVAL = new XContentBuilderString("refresh_interval"); + static final XContentBuilderString AVAILABLE_PROCESSORS = new XContentBuilderString("available_processors"); static final XContentBuilderString CPU = new XContentBuilderString("cpu"); static final XContentBuilderString VENDOR = new XContentBuilderString("vendor"); static final XContentBuilderString MODEL = new XContentBuilderString("model"); @@ -101,6 +112,7 @@ public class OsInfo implements Streamable, Serializable, ToXContent { public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(Fields.OS); builder.field(Fields.REFRESH_INTERVAL, refreshInterval); + builder.field(Fields.AVAILABLE_PROCESSORS, availableProcessors); if (cpu != null) { builder.startObject(Fields.CPU); builder.field(Fields.VENDOR, cpu.vendor()); @@ -138,6 +150,7 @@ public class OsInfo implements Streamable, Serializable, ToXContent { @Override public void readFrom(StreamInput in) throws IOException { refreshInterval = in.readLong(); + availableProcessors = in.readInt(); if (in.readBoolean()) { cpu = Cpu.readCpu(in); } @@ -152,6 +165,7 @@ public class OsInfo implements Streamable, Serializable, ToXContent { @Override public void writeTo(StreamOutput out) throws IOException { out.writeLong(refreshInterval); + out.writeInt(availableProcessors); if (cpu == null) { out.writeBoolean(false); } else { diff --git a/src/main/java/org/elasticsearch/monitor/os/OsService.java b/src/main/java/org/elasticsearch/monitor/os/OsService.java index 480403c2efa..4ea5247ba70 100644 --- a/src/main/java/org/elasticsearch/monitor/os/OsService.java +++ b/src/main/java/org/elasticsearch/monitor/os/OsService.java @@ -46,6 +46,7 @@ public class OsService extends AbstractComponent { this.info = probe.osInfo(); this.info.refreshInterval = refreshInterval.millis(); + this.info.availableProcessors = Runtime.getRuntime().availableProcessors(); this.cachedStats = probe.osStats(); logger.debug("Using probe [{}] with refresh_interval [{}]", probe, refreshInterval);