public List<MetricsRecordImpl> getRecords() { List<MetricsRecordImpl> recs = Lists.newArrayListWithCapacity(rbs.size()); for (MetricsRecordBuilderImpl rb : rbs) { MetricsRecordImpl mr = rb.getRecord(); if (mr != null) { recs.add(mr); } } return recs; }
@Override public MetricsRecordBuilderImpl setContext(String value) { return tag(MsInfo.Context, value); }
@Test public void recordBuilderShouldNoOpIfFiltered() { SubsetConfiguration fc = new ConfigBuilder() .add("p.exclude", "foo").subset("p"); MetricsCollectorImpl mb = new MetricsCollectorImpl(); mb.setRecordFilter(newGlobFilter(fc)); MetricsRecordBuilderImpl rb = mb.addRecord("foo"); rb.tag(info("foo", ""), "value").addGauge(info("g0", ""), 1); assertEquals("no tags", 0, rb.tags().size()); assertEquals("no metrics", 0, rb.metrics().size()); assertNull("null record", rb.getRecord()); assertEquals("no records", 0, mb.getRecords().size()); }
@Test public void testPerMetricFiltering() { SubsetConfiguration fc = new ConfigBuilder() .add("p.exclude", "foo").subset("p"); MetricsCollectorImpl mb = new MetricsCollectorImpl(); mb.setMetricFilter(newGlobFilter(fc)); MetricsRecordBuilderImpl rb = mb.addRecord("foo"); rb.tag(info("foo", ""), "").addCounter(info("c0", ""), 0) .addGauge(info("foo", ""), 1); assertEquals("1 tag", 1, rb.tags().size()); assertEquals("1 metric", 1, rb.metrics().size()); assertEquals("expect foo tag", "foo", rb.tags().get(0).name()); assertEquals("expect c0", "c0", rb.metrics().get(0).name()); } }
private void checkMetricsRecords(List<MetricsRecord> recs) { LOG.debug(recs); MetricsRecord r = recs.get(0); assertEquals("name", "s1rec", r.name()); assertEquals("tags", new MetricsTag[] { tag(MsInfo.Context, "test"), tag(MsInfo.Hostname, hostname)}, r.tags()); assertEquals("metrics", MetricsLists.builder("") .addCounter(info("C1", "C1 desc"), 1L) .addGauge(info("G1", "G1 desc"), 2L) .addCounter(info("S1NumOps", "Number of ops for s1"), 1L) .addGauge(info("S1AvgTime", "Average time for s1"), 0.0) .metrics(), r.metrics()); r = recs.get(1); assertTrue("NumActiveSinks should be 3", Iterables.contains(r.metrics(), new MetricGaugeInt(MsInfo.NumActiveSinks, 3))); }
@Override public MetricsRecordBuilderImpl addRecord(MetricsInfo info) { boolean acceptable = recordFilter == null || recordFilter.accepts(info.name()); MetricsRecordBuilderImpl rb = new MetricsRecordBuilderImpl(this, info, recordFilter, metricFilter, acceptable); if (acceptable) rbs.add(rb); return rb; }
Iterable<MetricsRecordImpl> getMetrics(MetricsCollectorImpl builder, boolean all) { builder.setRecordFilter(recordFilter).setMetricFilter(metricFilter); try { source.getMetrics(builder, all); } catch (Exception e) { LOG.error("Error getting metrics from source "+ name, e); } for (MetricsRecordBuilderImpl rb : builder) { for (MetricsTag t : injectedTags) { rb.add(t); } } return builder.getRecords(); }
@Test public void recordBuilderShouldNoOpIfFiltered() { SubsetConfiguration fc = new ConfigBuilder() .add("p.exclude", "foo").subset("p"); MetricsCollectorImpl mb = new MetricsCollectorImpl(); mb.setRecordFilter(newGlobFilter(fc)); MetricsRecordBuilderImpl rb = mb.addRecord("foo"); rb.tag(info("foo", ""), "value").addGauge(info("g0", ""), 1); assertEquals("no tags", 0, rb.tags().size()); assertEquals("no metrics", 0, rb.metrics().size()); assertNull("null record", rb.getRecord()); assertEquals("no records", 0, mb.getRecords().size()); }
@Test public void testPerMetricFiltering() { SubsetConfiguration fc = new ConfigBuilder() .add("p.exclude", "foo").subset("p"); MetricsCollectorImpl mb = new MetricsCollectorImpl(); mb.setMetricFilter(newGlobFilter(fc)); MetricsRecordBuilderImpl rb = mb.addRecord("foo"); rb.tag(info("foo", ""), "").addCounter(info("c0", ""), 0) .addGauge(info("foo", ""), 1); assertEquals("1 tag", 1, rb.tags().size()); assertEquals("1 metric", 1, rb.metrics().size()); assertEquals("expect foo tag", "foo", rb.tags().get(0).name()); assertEquals("expect c0", "c0", rb.metrics().get(0).name()); } }
private void checkMetricsRecords(List<MetricsRecord> recs) { LOG.debug(recs); MetricsRecord r = recs.get(0); assertEquals("name", "s1rec", r.name()); assertEquals("tags", new MetricsTag[] { tag(MsInfo.Context, "test"), tag(MsInfo.Hostname, hostname)}, r.tags()); assertEquals("metrics", MetricsLists.builder("") .addCounter(info("C1", "C1 desc"), 1L) .addGauge(info("G1", "G1 desc"), 2L) .addCounter(info("S1NumOps", "Number of ops for s1"), 1L) .addGauge(info("S1AvgTime", "Average time for s1"), 0.0) .metrics(), r.metrics()); r = recs.get(1); assertTrue("NumActiveSinks should be 3", Iterables.contains(r.metrics(), new MetricGaugeInt(MsInfo.NumActiveSinks, 3))); }
@Override public MetricsRecordBuilderImpl addRecord(MetricsInfo info) { boolean acceptable = recordFilter == null || recordFilter.accepts(info.name()); MetricsRecordBuilderImpl rb = new MetricsRecordBuilderImpl(this, info, recordFilter, metricFilter, acceptable); if (acceptable) rbs.add(rb); return rb; }
Iterable<MetricsRecordImpl> getMetrics(MetricsCollectorImpl builder, boolean all) { builder.setRecordFilter(recordFilter).setMetricFilter(metricFilter); try { source.getMetrics(builder, all); } catch (Exception e) { LOG.error("Error getting metrics from source "+ name, e); } for (MetricsRecordBuilderImpl rb : builder) { for (MetricsTag t : injectedTags) { rb.add(t); } } return builder.getRecords(); }
MetricsRegistry registry = new MetricsRegistry("test"); List<AbstractMetric> metrics = MetricsLists.builder("test") .addCounter(info("c1", "int counter"), 1) .addCounter(info("c2", "long counter"), 2L) .addGauge(info("g1", "int gauge"), 5) .addGauge(info("g2", "long gauge"), 6L) .addGauge(info("g3", "float gauge"), 7f) .addGauge(info("g4", "double gauge"), 8d) .metrics();
public List<MetricsRecordImpl> getRecords() { List<MetricsRecordImpl> recs = Lists.newArrayListWithCapacity(rbs.size()); for (MetricsRecordBuilderImpl rb : rbs) { MetricsRecordImpl mr = rb.getRecord(); if (mr != null) { recs.add(mr); } } return recs; }
@Override public MetricsRecordBuilderImpl setContext(String value) { return tag(MsInfo.Context, value); }
@Override public MetricsRecordBuilderImpl addRecord(MetricsInfo info) { boolean acceptable = recordFilter == null || recordFilter.accepts(info.name()); MetricsRecordBuilderImpl rb = new MetricsRecordBuilderImpl(this, info, recordFilter, metricFilter, acceptable); if (acceptable) rbs.add(rb); return rb; }
Iterable<MetricsRecordImpl> getMetrics(MetricsCollectorImpl builder, boolean all) { builder.setRecordFilter(recordFilter).setMetricFilter(metricFilter); try { source.getMetrics(builder, all); } catch (Exception e) { LOG.error("Error getting metrics from source "+ name, e); } for (MetricsRecordBuilderImpl rb : builder) { for (MetricsTag t : injectedTags) { rb.add(t); } } return builder.getRecords(); }