Search in sources :

Example 1 with Metric

use of org.apache.samza.metrics.Metric in project samza by apache.

the class TestKafkaSystemConsumerMetrics method testKafkaSystemConsumerMetrics.

@Test
public void testKafkaSystemConsumerMetrics() {
    String systemName = "system";
    TopicPartition tp1 = new TopicPartition("topic1", 1);
    TopicPartition tp2 = new TopicPartition("topic2", 2);
    String clientName = "clientName";
    // record expected values for further comparison
    Map<String, String> expectedValues = new HashMap<>();
    ReadableMetricsRegistry registry = new MetricsRegistryMap();
    KafkaSystemConsumerMetrics metrics = new KafkaSystemConsumerMetrics(systemName, registry);
    // initialize the metrics for the partitions
    metrics.registerTopicPartition(tp1);
    metrics.registerTopicPartition(tp2);
    // initialize the metrics for the host:port
    metrics.registerClientProxy(clientName);
    metrics.setOffsets(tp1, 1001);
    metrics.setOffsets(tp2, 1002);
    expectedValues.put(metrics.offsets().get(tp1).getName(), "1001");
    expectedValues.put(metrics.offsets().get(tp2).getName(), "1002");
    metrics.incBytesReads(tp1, 10);
    // total 15
    metrics.incBytesReads(tp1, 5);
    expectedValues.put(metrics.bytesRead().get(tp1).getName(), "15");
    metrics.incReads(tp1);
    // total 2
    metrics.incReads(tp1);
    expectedValues.put(metrics.reads().get(tp1).getName(), "2");
    metrics.setHighWatermarkValue(tp2, 1000);
    // final value 1001
    metrics.setHighWatermarkValue(tp2, 1001);
    expectedValues.put(metrics.highWatermark().get(tp2).getName(), "1001");
    metrics.setLagValue(tp1, 200);
    // final value 201
    metrics.setLagValue(tp1, 201);
    expectedValues.put(metrics.lag().get(tp1).getName(), "201");
    // broker-bytes-read
    metrics.incClientBytesReads(clientName, 100);
    // total 210
    metrics.incClientBytesReads(clientName, 110);
    expectedValues.put(metrics.clientBytesRead().get(clientName).getName(), "210");
    // messages-read
    metrics.incClientReads(clientName);
    // total 2
    metrics.incClientReads(clientName);
    expectedValues.put(metrics.clientReads().get(clientName).getName(), "2");
    // "topic-partitions"
    metrics.setNumTopicPartitions(clientName, 2);
    // final value 3
    metrics.setNumTopicPartitions(clientName, 3);
    expectedValues.put(metrics.topicPartitions().get(clientName).getName(), "3");
    String groupName = metrics.group();
    Assert.assertEquals(groupName, KafkaSystemConsumerMetrics.class.getName());
    Assert.assertEquals(metrics.systemName(), systemName);
    Map<String, Metric> metricMap = registry.getGroup(groupName);
    validate(metricMap, expectedValues);
}
Also used : ReadableMetricsRegistry(org.apache.samza.metrics.ReadableMetricsRegistry) HashMap(java.util.HashMap) TopicPartition(org.apache.kafka.common.TopicPartition) Metric(org.apache.samza.metrics.Metric) MetricsRegistryMap(org.apache.samza.metrics.MetricsRegistryMap) Test(org.junit.Test)

Example 2 with Metric

use of org.apache.samza.metrics.Metric in project samza by apache.

the class TestLoggingMetricsReporter method testFiltering.

@Test
public void testFiltering() {
    Pattern countersOnly = Pattern.compile(".*counter.*");
    this.loggingMetricsReporter = spy(new LoggingMetricsReporter(this.scheduledExecutorService, countersOnly, LOGGING_INTERVAL_SECONDS));
    when(this.readableMetricsRegistry.getGroups()).thenReturn(Collections.singleton(GROUP_NAME));
    Map<String, Metric> metrics = ImmutableMap.of(COUNTER_NAME, this.counter, GAUGE_NAME, this.gauge);
    when(this.readableMetricsRegistry.getGroup(GROUP_NAME)).thenReturn(metrics);
    this.loggingMetricsReporter.register(SOURCE_NAME, this.readableMetricsRegistry);
    this.loggingMetricsReporter.start();
    ArgumentCaptor<String> logs = ArgumentCaptor.forClass(String.class);
    verify(this.loggingMetricsReporter).doLog(logs.capture());
    assertEquals(Collections.singletonList("Metric: source_name-group_name-counter_name, Value: 10"), logs.getAllValues());
}
Also used : Pattern(java.util.regex.Pattern) Metric(org.apache.samza.metrics.Metric) Test(org.junit.Test)

Aggregations

Metric (org.apache.samza.metrics.Metric)2 Test (org.junit.Test)2 HashMap (java.util.HashMap)1 Pattern (java.util.regex.Pattern)1 TopicPartition (org.apache.kafka.common.TopicPartition)1 MetricsRegistryMap (org.apache.samza.metrics.MetricsRegistryMap)1 ReadableMetricsRegistry (org.apache.samza.metrics.ReadableMetricsRegistry)1