Skip to content
This repository was archived by the owner on Dec 23, 2017. It is now read-only.

Commit 28b4c44

Browse files
committed
Merge pull request #5 from Graylog2/issue-4
Make optional Elasticsearch process stats (OS, JVM) nullable
2 parents eb24152 + 05ec651 commit 28b4c44

File tree

5 files changed

+53
-37
lines changed

5 files changed

+53
-37
lines changed

src/main/java/org/graylog/plugins/usagestatistics/collectors/ElasticsearchCollector.java

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ public Set<ElasticsearchNodeInfo> getNodeInfos() {
6969
continue;
7070
}
7171

72-
final HostInfo.Cpu cpu = HostInfo.Cpu.create(
72+
final MacAddress macAddress = info.getNetwork() == null ? MacAddress.EMPTY : MacAddress.create(info.getNetwork().primaryInterface().macAddress());
73+
final HostInfo.Cpu cpu = info.getOs().cpu() == null ? null : HostInfo.Cpu.create(
7374
info.getOs().cpu().model(),
7475
info.getOs().cpu().vendor(),
7576
info.getOs().cpu().mhz(),
@@ -78,15 +79,9 @@ public Set<ElasticsearchNodeInfo> getNodeInfos() {
7879
info.getOs().cpu().coresPerSocket(),
7980
info.getOs().cpu().cacheSize().bytes()
8081
);
81-
82-
final HostInfo.Memory memory = HostInfo.Memory.create(info.getOs().mem().total().bytes());
83-
final HostInfo.Memory swap = HostInfo.Memory.create(info.getOs().swap().total().bytes());
84-
final HostInfo hostInfo = HostInfo.create(
85-
MacAddress.create(info.getNetwork().primaryInterface().macAddress()),
86-
cpu,
87-
memory,
88-
swap
89-
);
82+
final HostInfo.Memory memory = info.getOs().mem() == null ? null : HostInfo.Memory.create(info.getOs().mem().total().bytes());
83+
final HostInfo.Memory swap = info.getOs().swap() == null ? null : HostInfo.Memory.create(info.getOs().swap().total().bytes());
84+
final HostInfo hostInfo = HostInfo.create(macAddress, cpu, memory, swap);
9085

9186
final List<String> garbageCollectors;
9287
if (stats.getJvm() != null) {
@@ -98,27 +93,33 @@ public Set<ElasticsearchNodeInfo> getNodeInfos() {
9893
garbageCollectors = Collections.emptyList();
9994
}
10095

101-
final JvmInfo.Memory jvmMemory = JvmInfo.Memory.create(
102-
info.getJvm().mem().heapInit().bytes(),
103-
info.getJvm().mem().heapMax().bytes(),
104-
info.getJvm().mem().nonHeapInit().bytes(),
105-
info.getJvm().mem().nonHeapMax().bytes(),
106-
info.getJvm().mem().directMemoryMax().bytes()
107-
);
108-
final JvmInfo.Os jvmOs = JvmInfo.Os.create(
109-
info.getJvm().getSystemProperties().get("os.name"),
110-
info.getJvm().getSystemProperties().get("os.version"),
111-
info.getJvm().getSystemProperties().get("os.arch")
112-
);
113-
final JvmInfo jvmInfo = JvmInfo.create(
114-
info.getJvm().version(),
115-
info.getJvm().vmName(),
116-
info.getJvm().vmVersion(),
117-
info.getJvm().vmVendor(),
118-
jvmOs,
119-
jvmMemory,
120-
garbageCollectors
121-
);
96+
final JvmInfo jvmInfo;
97+
if (info.getJvm() != null) {
98+
final JvmInfo.Memory jvmMemory = JvmInfo.Memory.create(
99+
info.getJvm().mem().heapInit().bytes(),
100+
info.getJvm().mem().heapMax().bytes(),
101+
info.getJvm().mem().nonHeapInit().bytes(),
102+
info.getJvm().mem().nonHeapMax().bytes(),
103+
info.getJvm().mem().directMemoryMax().bytes()
104+
);
105+
final JvmInfo.Os jvmOs = JvmInfo.Os.create(
106+
info.getJvm().getSystemProperties().get("os.name"),
107+
info.getJvm().getSystemProperties().get("os.version"),
108+
info.getJvm().getSystemProperties().get("os.arch")
109+
);
110+
jvmInfo = JvmInfo.create(
111+
info.getJvm().version(),
112+
info.getJvm().vmName(),
113+
info.getJvm().vmVersion(),
114+
info.getJvm().vmVendor(),
115+
jvmOs,
116+
jvmMemory,
117+
garbageCollectors
118+
);
119+
} else {
120+
jvmInfo = null;
121+
}
122+
122123
final ElasticsearchNodeInfo elasticsearchNodeInfo = ElasticsearchNodeInfo.create(
123124
info.getVersion().toString(),
124125
hostInfo,

src/main/java/org/graylog/plugins/usagestatistics/collectors/NodeCollector.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import com.github.joschi.jadconfig.util.Duration;
2020
import com.google.common.collect.Sets;
2121
import org.apache.commons.lang3.SystemUtils;
22-
import org.graylog.plugins.usagestatistics.util.MetricUtils;
2322
import org.graylog.plugins.usagestatistics.UsageStatsMetaData;
2423
import org.graylog.plugins.usagestatistics.dto.BufferStats;
2524
import org.graylog.plugins.usagestatistics.dto.Histogram;
@@ -34,6 +33,7 @@
3433
import org.graylog.plugins.usagestatistics.dto.NodeStats;
3534
import org.graylog.plugins.usagestatistics.dto.PluginInfo;
3635
import org.graylog.plugins.usagestatistics.dto.ThroughputStats;
36+
import org.graylog.plugins.usagestatistics.util.MetricUtils;
3737
import org.graylog2.inputs.InputService;
3838
import org.graylog2.plugin.PluginMetaData;
3939
import org.graylog2.plugin.ServerStatus;
@@ -233,11 +233,11 @@ private NodeStats buildNodeStats() {
233233

234234
private HostStats buildHostStats() {
235235
final OsStats osStats = statsService.osStats();
236-
final HostStats.Memory memory = HostStats.Memory.create(
236+
final HostStats.Memory memory = osStats.memory() == null ? null : HostStats.Memory.create(
237237
osStats.memory().free(),
238238
osStats.memory().used()
239239
);
240-
final HostStats.Memory swap = HostStats.Memory.create(
240+
final HostStats.Memory swap = osStats.swap() == null ? null : HostStats.Memory.create(
241241
osStats.swap().free(),
242242
osStats.swap().used()
243243
);

src/main/java/org/graylog/plugins/usagestatistics/dto/HostInfo.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,31 @@
1919
import com.fasterxml.jackson.annotation.JsonProperty;
2020
import com.google.auto.value.AutoValue;
2121

22+
import javax.annotation.Nullable;
23+
2224
@JsonAutoDetect
2325
@AutoValue
2426
public abstract class HostInfo {
25-
public static HostInfo create(MacAddress macAddress, Cpu cpu, Memory memory, Memory swap) {
27+
public static HostInfo create(MacAddress macAddress,
28+
@Nullable Cpu cpu,
29+
@Nullable Memory memory,
30+
@Nullable Memory swap) {
2631
return new AutoValue_HostInfo(macAddress, cpu, memory, swap);
2732
}
2833

2934
@JsonProperty
3035
public abstract MacAddress macAddress();
3136

3237
@JsonProperty
38+
@Nullable
3339
public abstract Cpu cpu();
3440

3541
@JsonProperty
42+
@Nullable
3643
public abstract Memory memory();
3744

3845
@JsonProperty
46+
@Nullable
3947
public abstract Memory swap();
4048

4149
@JsonAutoDetect

src/main/java/org/graylog/plugins/usagestatistics/dto/HostStats.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,24 @@
1919
import com.fasterxml.jackson.annotation.JsonProperty;
2020
import com.google.auto.value.AutoValue;
2121

22+
import javax.annotation.Nullable;
23+
2224
@JsonAutoDetect
2325
@AutoValue
2426
public abstract class HostStats {
25-
public static HostStats create(double[] loadAvg, Memory memory, Memory swap) {
27+
public static HostStats create(double[] loadAvg, @Nullable Memory memory, @Nullable Memory swap) {
2628
return new AutoValue_HostStats(loadAvg, memory, swap);
2729
}
2830

2931
@JsonProperty
3032
public abstract double[] loadAvg();
3133

3234
@JsonProperty
35+
@Nullable
3336
public abstract Memory memory();
3437

3538
@JsonProperty
39+
@Nullable
3640
public abstract Memory swap();
3741

3842
@JsonAutoDetect

src/main/java/org/graylog/plugins/usagestatistics/dto/elasticsearch/ElasticsearchNodeInfo.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
import org.graylog.plugins.usagestatistics.dto.HostInfo;
2222
import org.graylog.plugins.usagestatistics.dto.JvmInfo;
2323

24+
import javax.annotation.Nullable;
25+
2426
@JsonAutoDetect
2527
@AutoValue
2628
public abstract class ElasticsearchNodeInfo {
27-
public static ElasticsearchNodeInfo create(String version, HostInfo hostInfo, JvmInfo jvmInfo) {
29+
public static ElasticsearchNodeInfo create(String version, HostInfo hostInfo, @Nullable JvmInfo jvmInfo) {
2830
return new AutoValue_ElasticsearchNodeInfo(version, hostInfo, jvmInfo);
2931
}
3032

@@ -35,5 +37,6 @@ public static ElasticsearchNodeInfo create(String version, HostInfo hostInfo, Jv
3537
public abstract HostInfo system();
3638

3739
@JsonProperty
40+
@Nullable
3841
public abstract JvmInfo jvm();
3942
}

0 commit comments

Comments
 (0)