public MetricsLocalStorageMonitor(String name, CacheStorage localStorage) { allocated = Metrics.histogram(name("co.paralleluniverse", "galaxy", "CacheStorage", "allocated", name)); deallocated = Metrics.histogram(name("co.paralleluniverse", "galaxy", "CacheStorage", "deallocated", name)); final WeakReference<CacheStorage> _localStorage = new WeakReference<CacheStorage>(localStorage); totalSize = Metrics.register(name("co.paralleluniverse", "galaxy", "CacheStorage", "totalSize", name), new Gauge<Long>() { @Override public Long getValue() { final CacheStorage localStorage = _localStorage.get(); return localStorage != null ? localStorage.getTotalAllocatedSize() : 0L; } }); //totalSize = Metrics.newCounter(CacheStorage.class, "totalSize", name); }
public MetricsForkJoinPoolMonitor(String name, ForkJoinPool fjPool) { super(name, fjPool); Metrics.register(metric(name, "status"), new Gauge<Status>() { @Override public Status getValue() { Metrics.register(metric(name, "asyncMode"), new Gauge<Boolean>() { @Override public Boolean getValue() { Metrics.register(metric(name, "parallelism"), new Gauge<Integer>() { @Override public Integer getValue() { Metrics.register(metric(name, "poolSize"), new Gauge<Integer>() { @Override public Integer getValue() { Metrics.register(metric(name, "activeThreadCount"), new Gauge<Integer>() { @Override public Integer getValue() { Metrics.register(metric(name, "runningThreadCount"), new Gauge<Integer>() { @Override public Integer getValue() { Metrics.register(metric(name, "queuedSubmissionCount"), new Gauge<Integer>() { @Override public Integer getValue() {
public MetricsFibersMonitor(String name, FiberScheduler scheduler) { this.activeCount = Metrics.counter(metric(name, "numActiveFibers")); this.waitingCount = Metrics.counter(metric(name, "numWaitingFibers")); this.spuriousWakeups = Metrics.meter(metric(name, "spuriousWakeups")); this.timedParkLatency = Metrics.histogram(metric(name, "timedParkLatency")); this.runawayFibers = new Gauge<Map<String, String>>() { @Override public Map<String, String> getValue() { Map<String, String> map = new HashMap<>(); if (problemFibers != null) { for (Map.Entry<Fiber, StackTraceElement[]> e : problemFibers.entrySet()) map.put(e.getKey().toString(), Strand.toString(e.getValue())); } return map; } }; Metrics.register("runawayFibers", runawayFibers); }