package io.pcp.parfait.timing; import io.pcp.parfait.*; import javax.measure.Unit; public class CounterPairFactory { private final MonitorableRegistry registry; private final ThreadMetricSuite metricSuite; public CounterPairFactory(MonitorableRegistry registry, ThreadMetricSuite metricSuite) { this.registry = registry; this.metricSuite = metricSuite; } public Counter createCounterPair(Unit<?> unit, String globalCounterName, String threadMetricName, String threadMetricSuffix, String description) { MonitoredCounter metric = new MonitoredCounter(globalCounterName, description, registry, unit); ThreadCounter threadCounter = new ThreadCounter.ThreadMapCounter(); ThreadMetric threadMetric = new ThreadValueMetric(threadMetricName, unit, threadMetricSuffix, description, threadCounter); metricSuite.addMetric(threadMetric); return new CounterPair(metric, threadCounter); } }