8000 Add JVM and OS version info to export (#196) · prometheus/client_java@bdc6f25 · GitHub
[go: up one dir, main page]

Skip to content

Commit bdc6f25

Browse files
rswartbrian-brazil
authored andcommitted
Add JVM and OS version info to export (#196)
Add JVM version to exports
1 parent 5760fe1 commit bdc6f25

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

simpleclient_hotspot/src/main/java/io/prometheus/client/hotspot/DefaultExports.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public static synchronized void initialize() {
2525
new GarbageCollectorExports().register();
2626
new ThreadExports().register();
2727
new ClassLoadingExports().register();
28+
new VersionInfoExports().register();
2829
initialized = true;
2930
}
3031
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package io.prometheus.client.hotspot;
2+
3+
import io.prometheus.client.Collector;
4+
import io.prometheus.client.GaugeMetricFamily;
5+
6+
import java.util.ArrayList;
7+
import java.util.Arrays;
8+
import java.util.List;
9+
10+
/**
11+
* Exports JVM version info.
12+
* <p>
13+
* Example usage:
14+
* <pre>
15+
* {@code
16+
* new VersionInfoExports().register();
17+
* }
18+
* </pre>
19+
* Metrics being exported:
20+
* <pre>
21+
* jvm_info{version="1.8.0_45-b14",vendor="Oracle Corporation"} 1.0
22+
* </pre>
23+
*/
24+
25+
public class VersionInfoExports extends Collector {
26+
27+
28+
public List<MetricFamilySamples> collect() {
29+
List<MetricFamilySamples> mfs = new ArrayList<MetricFamilySamples>();
30+
31+
GaugeMetricFamily jvmInfo = new GaugeMetricFamily(
32+
"jvm_info",
33+
"JVM version info",
34+
Arrays.asList("version", "vendor"));
35+
jvmInfo.addMetric(Arrays.asList(System.getProperty("java.runtime.version", "unknown"), System.getProperty("java.vm.vendor", "unknown")), 1L);
36+
mfs.add(jvmInfo);
37+
38+
return mfs;
39+
}
40+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package io.prometheus.client.hotspot;
2+
3+
import io.prometheus.client.CollectorRegistry;
4+
import org.junit.Before;
5+
import org.junit.Test;
6+
7+
8+
import static org.junit.Assert.assertEquals;
9+
10+
public class VersionInfoExportsTest {
11+
12+
private CollectorRegistry registry = new CollectorRegistry();
13+
14+
@Before
15+
public void setUp() {
16+
new VersionInfoExports().register(registry);
17+
}
18+
19+
@Test
20+
public void testVersionInfo() {
21+
assertEquals(
22+
1L,
23+
registry.getSampleValue(
24+
"jvm_info", new String[]{"version", "vendor"}, new String[]{System.getProperty("java.runtime.version", "unknown"), System.getProperty("java.vm.vendor", "unknown")}),
25+
.0000001);
26+
}
27+
}

0 commit comments

Comments
 (0)
0