Fix conflicts

This commit is contained in:
Albumen Kevin 2023-10-08 14:55:51 +08:00
parent 1848e400a0
commit a709b2803c
4 changed files with 16 additions and 12 deletions

View File

@ -27,12 +27,15 @@ import org.apache.dubbo.metrics.model.sample.MetricSample;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
public abstract class MetricsNameCountSampler<S, K, M extends Metric> extends SimpleMetricsCountSampler<S, K, M> {
protected final DefaultMetricsCollector collector;
private final AtomicBoolean samplesChanged = new AtomicBoolean(true);
protected final Set<K> metricNames = new ConcurrentHashSet<>();
protected final MetricsCategory metricsCategory;
@ -48,6 +51,7 @@ public abstract class MetricsNameCountSampler<S, K, M extends Metric> extends Si
public void addMetricName(K name) {
this.metricNames.add(name);
this.samplesChanged.set(true);
}
@Override
@ -66,4 +70,9 @@ public abstract class MetricsNameCountSampler<S, K, M extends Metric> extends Si
protected abstract MetricSample provideMetricsSample(M metric,AtomicLong count,MetricsKey metricsKey,MetricsCategory metricsCategory);
@Override
public boolean calSamplesChanged() {
// CAS to get and reset the flag in an atomic operation
return samplesChanged.compareAndSet(true, false);
}
}

View File

@ -55,6 +55,8 @@ public class ThreadPoolMetricsSampler implements MetricsSampler {
private DataStore dataStore;
private final Map<String, ThreadPoolExecutor> sampleThreadPoolExecutor = new ConcurrentHashMap<>();
private final ConcurrentHashMap<String, ThreadPoolMetric> threadPoolMetricMap = new ConcurrentHashMap<>();
private final AtomicBoolean samplesChanged = new AtomicBoolean(true);
public ThreadPoolMetricsSampler(DefaultMetricsCollector collector) {
this.collector = collector;

View File

@ -23,18 +23,13 @@ import org.apache.dubbo.metrics.model.ThreadPoolRejectMetric;
import org.apache.dubbo.metrics.model.key.MetricsKey;
import org.apache.dubbo.metrics.model.sample.GaugeMetricSample;
import org.apache.dubbo.metrics.model.sample.MetricSample;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import static org.apache.dubbo.metrics.model.MetricsCategory.THREAD_POOL;
public class ThreadRejectMetricsCountSampler extends MetricsNameCountSampler<String, String, ThreadPoolRejectMetric> {
private final AtomicBoolean samplesChanged = new AtomicBoolean(true);
public ThreadRejectMetricsCountSampler(DefaultMetricsCollector collector) {
super(collector, THREAD_POOL,MetricsKey.THREAD_POOL_THREAD_REJECT_COUNT);
}
@ -54,10 +49,4 @@ public class ThreadRejectMetricsCountSampler extends MetricsNameCountSampler<Str
protected void countConfigure(MetricsCountSampleConfigurer<String, String, ThreadPoolRejectMetric> sampleConfigure) {
sampleConfigure.configureMetrics(configure -> new ThreadPoolRejectMetric(collector.getApplicationName(),configure.getSource()));
}
@Override
public boolean calSamplesChanged() {
// CAS to get and reset the flag in an atomic operation
return samplesChanged.compareAndSet(true, false);
}
}

View File

@ -94,4 +94,8 @@ public class NettyMetricsCollector extends CombMetricsCollector<NettyEvent> {
return list;
}
@Override
public boolean calSamplesChanged() {
return stats.calSamplesChanged();
}
}