/** Add a new tag to the set. */ ArrayTagSet add(String k, String v) { return add(new BasicTag(k, v)); }
@Test public void addAllDedupMerge() { ArrayTagSet ts = ArrayTagSet.EMPTY .addAll(new String[] {"a", "1", "a", "2", "a", "3"}) .addAll(new String[] {"a", "4", "a", "5", "a", "6", "b", "1"}); ArrayTagSet expected = ArrayTagSet.EMPTY .add(new BasicTag("a", "6")) .add(new BasicTag("b", "1")); Assertions.assertEquals(expected, ts); } }
/** Add a new tag to the set. */ ArrayTagSet add(String k, String v) { return add(new BasicTag(k, v)); }
@Test public void addAllDedupEmpty() { ArrayTagSet ts = ArrayTagSet.EMPTY.addAll(new String[] {"a", "1", "a", "2", "a", "3"}); Assertions.assertEquals(ArrayTagSet.EMPTY.add(new BasicTag("a", "3")), ts); }
@Override public DefaultId withTag(Tag tag) { return new DefaultId(name, tags.add(tag)); }
@Override public DefaultId withTag(String key, String value) { return new DefaultId(name, tags.add(key, value)); }
@Override public DefaultId withTag(String key, String value) { return new DefaultId(name, tags.add(key, value)); }
@Override public DefaultId withTag(Tag tag) { return new DefaultId(name, tags.add(tag)); }
@Test public void testMergeNullTag() { Assertions.assertThrows(NullPointerException.class, () -> { ArrayTagSet expected = ArrayTagSet.create("k", "v"); expected.add(null); }); }
@Test public void testCreateIdArray() { Registry r = newRegistry(true, 10000); Id id1 = r.createId("foo", "bar", "baz", "k", "v"); Id id2 = r.createId("foo", ArrayTagSet.create("k", "v").add(new BasicTag("bar", "baz"))); Assertions.assertEquals(id1, id2); }
@Test public void testGaugeHelpers() { AtomicLong al1 = new AtomicLong(1L); AtomicLong al2 = new AtomicLong(2L); AtomicLong al4 = new AtomicLong(4L); Registry r = newRegistry(true, 10000); AtomicLong v1 = r.gauge(r.createId("foo", "bar", "baz", "k", "v"), al1); AtomicLong v2 = r.gauge("foo", ArrayTagSet.create("k", "v").add(new BasicTag("bar", "baz")), al2); AtomicLong v3 = r.gauge("foo", al4); Assertions.assertSame(v1, al1); Assertions.assertSame(v2, al2); Assertions.assertSame(v3, al4); Id id1 = r.createId("foo", "bar", "baz", "k", "v"); Id id2 = r.createId("foo"); assertGaugeValue(r, id1, 3.0); assertGaugeValue(r, id2, 4.0); }
@Test public void testTimerHelpers() { Registry r = newRegistry(true, 10000); Timer c1 = r.timer("foo", "bar", "baz", "k", "v"); Timer c2 = r.timer("foo", ArrayTagSet.create("k", "v").add(new BasicTag("bar", "baz"))); Timer c3 = r.timer("foo"); Assertions.assertSame(unwrap(c1), unwrap(c2)); Assertions.assertNotSame(unwrap(c1), unwrap(c3)); }
@Test public void testCounterHelpers() { Registry r = newRegistry(true, 10000); Counter c1 = r.counter("foo", "bar", "baz", "k", "v"); Counter c2 = r.counter("foo", ArrayTagSet.create("k", "v").add(new BasicTag("bar", "baz"))); Counter c3 = r.counter("foo"); Assertions.assertSame(unwrap(c1), unwrap(c2)); Assertions.assertNotSame(unwrap(c1), unwrap(c3)); }
@Test public void testDistributionSummaryHelpers() { Registry r = newRegistry(true, 10000); DistributionSummary c1 = r.distributionSummary("foo", "bar", "baz", "k", "v"); DistributionSummary c2 = r.distributionSummary("foo", ArrayTagSet.create("k", "v").add(new BasicTag("bar", "baz"))); DistributionSummary c3 = r.distributionSummary("foo"); Assertions.assertSame(unwrap(c1), unwrap(c2)); Assertions.assertNotSame(unwrap(c1), unwrap(c3)); }
@Test public void testLongTaskTimerHelpers() { ManualClock clock = new ManualClock(); Registry r = new DefaultRegistry(clock); LongTaskTimer c1 = r.longTaskTimer("foo", "bar", "baz", "k", "v"); assertLongTaskTimer(r, c1.id(), 0L, 0, 0L); LongTaskTimer c2 = r.longTaskTimer("foo", ArrayTagSet.create("k", "v").add(new BasicTag("bar", "baz"))); Assertions.assertEquals(c1.id(), c2.id()); long t1 = c1.start(); long t2 = c2.start(); clock.setMonotonicTime(1000L); clock.setWallTime(1L); assertLongTaskTimer(r, c1.id(), 1L, 2, 2.0e-6); c1.stop(t1); assertLongTaskTimer(r, c1.id(), 1L, 1, 1.0e-6); c2.stop(t2); assertLongTaskTimer(r, c1.id(), 1L, 0, 0L); }