Node Stats: add available processors to OS info

This commit is contained in:
Shay Banon 2012-11-06 11:31:23 +01:00
parent 33900476f4
commit 0d5530e55f
2 changed files with 15 additions and 0 deletions

View File

@ -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 {

View File

@ -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);