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

Commit ef2d582

Browse files
committed
Merge pull request #7 from Graylog2/issue-3
Add support for discovering the OS platform
2 parents 82b20eb + 0ff7f5a commit ef2d582

File tree

4 files changed

+66
-4
lines changed

4 files changed

+66
-4
lines changed

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@
7575
<artifactId>jackson-dataformat-smile</artifactId>
7676
<version>${jackson.version}</version>
7777
</dependency>
78+
<dependency>
79+
<groupId>org.graylog.repackaged</groupId>
80+
<artifactId>os-platform-finder</artifactId>
81+
<version>1.0</version>
82+
</dependency>
7883
<dependency>
7984
<groupId>com.google.auto.value</groupId>
8085
<artifactId>auto-value</artifactId>

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@
3131
import org.graylog.plugins.usagestatistics.dto.NodeInfo;
3232
import org.graylog.plugins.usagestatistics.dto.NodeRole;
3333
import org.graylog.plugins.usagestatistics.dto.NodeStats;
34+
import org.graylog.plugins.usagestatistics.dto.Os;
3435
import org.graylog.plugins.usagestatistics.dto.PluginInfo;
3536
import org.graylog.plugins.usagestatistics.dto.ThroughputStats;
3637
import org.graylog.plugins.usagestatistics.util.MetricUtils;
3738
import org.graylog2.inputs.InputService;
3839
import org.graylog2.plugin.PluginMetaData;
3940
import org.graylog2.plugin.ServerStatus;
40-
import org.graylog2.plugin.Tools;
4141
import org.graylog2.plugin.Version;
4242
import org.graylog2.plugin.cluster.ClusterConfigService;
4343
import org.graylog2.plugin.cluster.ClusterId;
@@ -108,10 +108,20 @@ private NodeInfo buildNodeInfo() {
108108
return NodeInfo.create(
109109
NodeRole.fromCapabilities(serverStatus),
110110
Version.CURRENT_CLASSPATH.toString(),
111-
buildPluginInfo(plugins)
111+
buildPluginInfo(plugins),
112+
buildOsInfo()
112113
);
113114
}
114115

116+
private Os buildOsInfo() {
117+
org.jsoftbiz.utils.OS os = org.jsoftbiz.utils.OS.getOs();
118+
return Os.create(
119+
os.getName(),
120+
os.getVersion(),
121+
os.getArch(),
122+
os.getPlatformName());
123+
}
124+
115125
private Set<PluginInfo> buildPluginInfo(Set<PluginMetaData> plugins) {
116126
final Set<PluginInfo> pluginInfos = Sets.newHashSetWithExpectedSize(plugins.size());
117127
for (PluginMetaData pluginMetaData : plugins) {

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@
2626
public abstract class NodeInfo {
2727
public static NodeInfo create(NodeRole role,
2828
String serverVersion,
29-
Set<PluginInfo> plugins) {
30-
return new AutoValue_NodeInfo(role, serverVersion, plugins);
29+
Set<PluginInfo> plugins,
30+
Os os) {
31+
return new AutoValue_NodeInfo(role, serverVersion, plugins, os);
3132
}
3233

3334
@JsonProperty
@@ -38,4 +39,7 @@ public static NodeInfo create(NodeRole role,
3839

3940
@JsonProperty
4041
public abstract Set<PluginInfo> plugins();
42+
43+
@JsonProperty
44+
public abstract Os os();
4145
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* Copyright (C) 2015 Graylog, Inc. ([email protected])
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.graylog.plugins.usagestatistics.dto;
17+
18+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
19+
import com.fasterxml.jackson.annotation.JsonProperty;
20+
import com.google.auto.value.AutoValue;
21+
22+
@JsonAutoDetect
23+
@AutoValue
24+
public abstract class Os {
25+
public static Os create(String name,
26+
String version,
27+
String arch,
28+
String platformName) {
29+
return new AutoValue_Os(name, version, arch, platformName);
30+
}
31+
32+
@JsonProperty
33+
public abstract String name();
34+
35+
@JsonProperty
36+
public abstract String version();
37+
38+
@JsonProperty
39+
public abstract String arch();
40+
41+
@JsonProperty
42+
public abstract String platformName();
43+
}

0 commit comments

Comments
 (0)