View Javadoc
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  }