|
9 | 9 | import com.codahale.metrics.MetricRegistry; |
10 | 10 | import com.codahale.metrics.Snapshot; |
11 | 11 | import com.codahale.metrics.Timer; |
| 12 | +import io.prometheus.client.Predicate; |
12 | 13 | import io.prometheus.client.dropwizard.samplebuilder.SampleBuilder; |
13 | 14 | import io.prometheus.client.dropwizard.samplebuilder.DefaultSampleBuilder; |
14 | 15 |
|
@@ -185,6 +186,38 @@ public List<MetricFamilySamples> collect() { |
185 | 186 | return new ArrayList<MetricFamilySamples>(mfSamplesMap.values()); |
186 | 187 | } |
187 | 188 |
|
| 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 | + |
188 | 221 | private void addToMap(Map<String, MetricFamilySamples> mfSamplesMap, MetricFamilySamples newMfSamples) |
189 | 222 | { |
190 | 223 | if (newMfSamples != null) { |
|
0 commit comments