mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
format
This commit is contained in:
@@ -1,14 +1,8 @@
|
||||
package com.alibaba.otter.canal.prometheus.impl;
|
||||
|
||||
import com.alibaba.otter.canal.instance.core.CanalInstance;
|
||||
import com.alibaba.otter.canal.prometheus.InstanceRegistry;
|
||||
import com.alibaba.otter.canal.sink.CanalEventSink;
|
||||
import com.alibaba.otter.canal.sink.entry.EntryEventSink;
|
||||
import com.google.common.base.Preconditions;
|
||||
import static com.alibaba.otter.canal.prometheus.CanalInstanceExports.DEST_LABELS_LIST;
|
||||
import io.prometheus.client.Collector;
|
||||
import io.prometheus.client.CounterMetricFamily;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -17,8 +11,14 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import static com.alibaba.otter.canal.prometheus.CanalInstanceExports.DEST_LABELS_LIST;
|
||||
import static java.util.concurrent.TimeUnit.NANOSECONDS;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.alibaba.otter.canal.instance.core.CanalInstance;
|
||||
import com.alibaba.otter.canal.prometheus.InstanceRegistry;
|
||||
import com.alibaba.otter.canal.sink.CanalEventSink;
|
||||
import com.alibaba.otter.canal.sink.entry.EntryEventSink;
|
||||
import com.google.common.base.Preconditions;
|
||||
|
||||
/**
|
||||
* @author Chuanyi Li
|
||||
@@ -31,9 +31,11 @@ public class SinkCollector extends Collector implements InstanceRegistry {
|
||||
private static final String SINK_BLOCK_TIME_HELP = "Total sink blocking time in milliseconds";
|
||||
private final ConcurrentMap<String, SinkMetricsHolder> instances = new ConcurrentHashMap<String, SinkMetricsHolder>();
|
||||
|
||||
private SinkCollector() {}
|
||||
private SinkCollector(){
|
||||
}
|
||||
|
||||
private static class SingletonHolder {
|
||||
|
||||
private static final SinkCollector SINGLETON = new SinkCollector();
|
||||
}
|
||||
|
||||
@@ -45,7 +47,8 @@ public class SinkCollector extends Collector implements InstanceRegistry {
|
||||
public List<MetricFamilySamples> collect() {
|
||||
List<MetricFamilySamples> mfs = new ArrayList<MetricFamilySamples>();
|
||||
CounterMetricFamily blockingCounter = new CounterMetricFamily(SINK_BLOCKING_TIME,
|
||||
SINK_BLOCK_TIME_HELP, DEST_LABELS_LIST);
|
||||
SINK_BLOCK_TIME_HELP,
|
||||
DEST_LABELS_LIST);
|
||||
for (SinkMetricsHolder smh : instances.values()) {
|
||||
blockingCounter.addMetric(smh.destLabelValues, (smh.eventsSinkBlockingTime.doubleValue() / NANO_PER_MILLI));
|
||||
}
|
||||
@@ -78,6 +81,7 @@ public class SinkCollector extends Collector implements InstanceRegistry {
|
||||
}
|
||||
|
||||
private class SinkMetricsHolder {
|
||||
|
||||
private AtomicLong eventsSinkBlockingTime;
|
||||
private List<String> destLabelValues;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user