001package io.prometheus.client.hotspot; 002 003import io.prometheus.client.Collector; 004import io.prometheus.client.GaugeMetricFamily; 005 006import java.util.ArrayList; 007import java.util.Arrays; 008import java.util.List; 009 010/** 011 * Exports JVM version info. 012 * <p> 013 * Example usage: 014 * <pre> 015 * {@code 016 * new VersionInfoExports().register(); 017 * } 018 * </pre> 019 * Metrics being exported: 020 * <pre> 021 * jvm_info{version="1.8.0_151-b12",vendor="Oracle Corporation",runtime="OpenJDK Runtime Environment",} 1.0 022 * </pre> 023 */ 024 025public class VersionInfoExports extends Collector { 026 027 028 public List<MetricFamilySamples> collect() { 029 List<MetricFamilySamples> mfs = new ArrayList<MetricFamilySamples>(); 030 031 GaugeMetricFamily jvmInfo = new GaugeMetricFamily( 032 "jvm_info", 033 "JVM version info", 034 Arrays.asList("version", "vendor", "runtime")); 035 jvmInfo.addMetric( 036 Arrays.asList( 037 System.getProperty("java.runtime.version", "unknown"), 038 System.getProperty("java.vm.vendor", "unknown"), 039 System.getProperty("java.runtime.name", "unknown")), 040 1L); 041 mfs.add(jvmInfo); 042 043 return mfs; 044 } 045}