|
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