1 package org.wikimedia.search.extra.router; 2 3 import java.util.Objects; 4 5 import org.elasticsearch.monitor.os.OsService; 6 import org.wikimedia.search.extra.latency.SearchLatencyProbe; 7 8 public class SystemLoad { 9 private final SearchLatencyProbe latencyProbe; 10 private final OsService osService; 11 12 public SystemLoad(SearchLatencyProbe latencyProbe, OsService osService) { 13 this.latencyProbe = Objects.requireNonNull(latencyProbe); 14 this.osService = Objects.requireNonNull(osService); 15 } 16 17 long getLatency(String statBucket, double percentile) { 18 return latencyProbe.getMillisAtPercentile(statBucket, percentile); 19 } 20 21 long getCpuPercent() { 22 return osService.stats().getCpu().getPercent(); 23 } 24 25 long get1MinuteLoadAverage() { 26 return Math.round(osService.stats().getCpu().getLoadAverage()[0]); 27 } 28 }