001package io.prometheus.client.hotspot; 002 003import io.prometheus.client.Collector; 004import io.prometheus.client.Info; 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 Info i = Info.build().name("jvm").help("VM version info").create(); 030 i.info( 031 "version", System.getProperty("java.runtime.version", "unknown"), 032 "vendor", System.getProperty("java.vm.vendor", "unknown"), 033 "runtime", System.getProperty("java.runtime.name", "unknown") 034 ); 035 return i.collect(); 036 } 037}