@Test public void qualifiedNameMeasurement() { PredicateConfig pc = new PredicateConfig("white", new ArrayList()); MetricPredicateTransformer.PredicateConfigMetricPredicate pred = (MetricPredicateTransformer.PredicateConfigMetricPredicate) MetricPredicateTransformer.generatePredicate(pc); Measurement type = new Measurement("white", true); MeasurementPattern pattern = new MeasurementPattern( "^com.addthis.metrics.reporter.config.PredicateConfigTest.+", "min"); List<MeasurementPattern> patternList = new ArrayList<MeasurementPattern>(); patternList.add(pattern); MetricName name1 = new MetricName(PredicateConfigTest.class, "name", "scope"); assertTrue(pred.allowMeasurement(name1, "min", type, patternList)); MetricName name2 = new MetricName(PredicateConfig.class, "name", "scope"); assertFalse(pred.allowMeasurement(name2, "min", type, patternList)); }
@Test public void emptyMeasurement() { PredicateConfig pc = new PredicateConfig("white", new ArrayList()); MetricPredicateTransformer.PredicateConfigMetricPredicate pred = (MetricPredicateTransformer.PredicateConfigMetricPredicate) MetricPredicateTransformer.generatePredicate(pc); assertTrue(pred.matches(null,null,null)); pc = new PredicateConfig("black", new ArrayList()); pred = (MetricPredicateTransformer.PredicateConfigMetricPredicate) MetricPredicateTransformer.generatePredicate(pc); assertTrue(pred.matches(null,null,null)); }
@Override public boolean matches(MetricName name, Metric metric) { log.trace("Checking Metric name: {} {}", new Object[] {name.getName(), qualifyMetricName(name)}); if (predicate.getUseQualifiedName()) { return predicate.allowString(qualifyMetricName(name)); } else { return predicate.allowString(name.getName()); } }
return allowMeasurement(name, measurement, predicate.getMeter(), predicate.getMeterPatterns()); return allowMeasurement(name, measurement, predicate.getHistogram(), predicate.getHistogramPatterns()); return allowMeasurement(name, measurement, predicate.getTimer(), predicate.getTimerPatterns());
public boolean allowMeasurement(MetricName name, String measurement, PredicateConfig.Measurement type, List<PredicateConfig.MeasurementPattern> patterns) { if (type.getUseQualifiedName()) { return predicate.allowMeasurement(qualifyMetricName(name), measurement, type, patterns); } else { return predicate.allowMeasurement(name.getName(), measurement, type, patterns); } }
public static MetricPredicate generatePredicate(PredicateConfig predicate) { if (predicate == null) { return MetricPredicate.ALL; } else { return new PredicateConfigMetricPredicate(predicate); } }