Skip to content

Commit 98293b1

Browse files
committed
add sampleNameFilter to collect metric
Signed-off-by: Yaolong Liu <lylpysz1@163.com>
1 parent 14337f7 commit 98293b1

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

simpleclient_dropwizard/src/main/java/io/prometheus/client/dropwizard/DropwizardExports.java

+33
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.codahale.metrics.MetricRegistry;
1010
import com.codahale.metrics.Snapshot;
1111
import com.codahale.metrics.Timer;
12+
import io.prometheus.client.Predicate;
1213
import io.prometheus.client.dropwizard.samplebuilder.SampleBuilder;
1314
import io.prometheus.client.dropwizard.samplebuilder.DefaultSampleBuilder;
1415

@@ -185,6 +186,38 @@ public List<MetricFamilySamples> collect() {
185186
return new ArrayList<MetricFamilySamples>(mfSamplesMap.values());
186187
}
187188

189+
@Override
190+
public List<MetricFamilySamples> collect(Predicate<String> sampleNameFilter) {
191+
Map<String, MetricFamilySamples> mfSamplesMap = new HashMap<String, MetricFamilySamples>();
192+
193+
for (SortedMap.Entry<String, Gauge> entry : registry.getGauges(metricFilter).entrySet()) {
194+
if(sampleNameFilter.test(entry.getKey())) {
195+
addToMap(mfSamplesMap, fromGauge(entry.getKey(), entry.getValue()));
196+
}
197+
}
198+
for (SortedMap.Entry<String, Counter> entry : registry.getCounters(metricFilter).entrySet()) {
199+
if (sampleNameFilter.test(entry.getKey())) {
200+
addToMap(mfSamplesMap, fromCounter(entry.getKey(), entry.getValue()));
201+
}
202+
}
203+
for (SortedMap.Entry<String, Histogram> entry : registry.getHistograms(metricFilter).entrySet()) {
204+
if (sampleNameFilter.test(entry.getKey())) {
205+
addToMap(mfSamplesMap, fromHistogram(entry.getKey(), entry.getValue()));
206+
}
207+
}
208+
for (SortedMap.Entry<String, Timer> entry : registry.getTimers(metricFilter).entrySet()) {
209+
if (sampleNameFilter.test(entry.getKey())) {
210+
addToMap(mfSamplesMap, fromTimer(entry.getKey(), entry.getValue()));
211+
}
212+
}
213+
for (SortedMap.Entry<String, Meter> entry : registry.getMeters(metricFilter).entrySet()) {
214+
if (sampleNameFilter.test(entry.getKey())) {
215+
addToMap(mfSamplesMap, fromMeter(entry.getKey(), entry.getValue()));
216+
}
217+
}
218+
return new ArrayList<MetricFamilySamples>(mfSamplesMap.values());
219+
}
220+
188221
private void addToMap(Map<String, MetricFamilySamples> mfSamplesMap, MetricFamilySamples newMfSamples)
189222
{
190223
if (newMfSamples != null) {

0 commit comments

Comments
 (0)