/** * Endpoint for querying current metric values. * * The result is a JSON document describing the metrics and their values. * The result can be filtered using query parameters or configuring the * controller instance itself. */ @RequestMapping(method = RequestMethod.GET) public ApplicationRegistry getMetrics(@RequestParam Map<String, String> filters) throws IOException { boolean all = filters.get("all") != null; String filterMeterNameRegex = filters.getOrDefault("meterNameRegex", ""); String filterTagNameRegex = filters.getOrDefault("tagNameRegex", ""); String filterTagValueRegex = filters.getOrDefault("tagValueRegex", ""); TagMeasurementFilter queryFilter = new TagMeasurementFilter( filterMeterNameRegex, filterTagNameRegex, filterTagValueRegex); Predicate<Measurement> filter; if (all) { filter = queryFilter; } else { filter = queryFilter.and(getDefaultMeasurementFilter()); } ApplicationRegistry response = new ApplicationRegistry(); response.setApplicationName(applicationName); response.setApplicationVersion(applicationVersion); response.setMetrics(encodeRegistry(registry, filter)); return response; }
/** * Endpoint for querying current metric values. * * The result is a JSON document describing the metrics and their values. * The result can be filtered using query parameters or configuring the * controller instance itself. */ @RequestMapping(method = RequestMethod.GET) public ApplicationRegistry getMetrics(@RequestParam Map<String, String> filters) throws IOException { boolean all = filters.get("all") != null; String filterMeterNameRegex = filters.getOrDefault("meterNameRegex", ""); String filterTagNameRegex = filters.getOrDefault("tagNameRegex", ""); String filterTagValueRegex = filters.getOrDefault("tagValueRegex", ""); TagMeasurementFilter queryFilter = new TagMeasurementFilter( filterMeterNameRegex, filterTagNameRegex, filterTagValueRegex); Predicate<Measurement> filter; if (all) { filter = queryFilter; } else { filter = queryFilter.and(getDefaultMeasurementFilter()); } ApplicationRegistry response = new ApplicationRegistry(); response.setApplicationName(applicationName); response.setApplicationVersion(applicationVersion); response.setMetrics(encodeRegistry(registry, filter)); return response; }
@Test public void collectFilteredTagValue() { Predicate<Measurement> filter = new TagMeasurementFilter(null, null, "Z"); Assertions.assertTrue(filter.test(measureAXZ)); Assertions.assertFalse(filter.test(measureAXY)); } }
@Test public void testFilteredName() { Predicate<Measurement> filter = new TagMeasurementFilter("idA", null, null); Assertions.assertTrue(filter.test(measureAXY)); Assertions.assertFalse(filter.test(measureBXY)); }
@Test public void collectFilteredTagName() { Predicate<Measurement> filter = new TagMeasurementFilter(null, "tagZ", null); Assertions.assertTrue(filter.test(measureAXZ)); Assertions.assertFalse(filter.test(measureAXY)); }