Guest User

metrics.reporters

a guest
Jun 29th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.73 KB | None | 0 0
  1. package kafkaReporter;
  2.  
  3. import java.io.PrintWriter;
  4. import java.util.List;
  5. import java.util.Map;
  6.  
  7. import org.apache.kafka.common.MetricName;
  8. import org.apache.kafka.common.metrics.KafkaMetric;
  9. import org.apache.kafka.common.metrics.MetricsReporter;
  10.  
  11.  
  12. public class MetricsExtractor  implements MetricsReporter{
  13.     private PrintWriter writer;
  14.    
  15.     public void configure(Map<String, ?> arg0) {
  16.        
  17.         System.out.println("Metrics Reporter Config...");
  18.     }
  19.  
  20.     public void close() {
  21.         writer.close();
  22.         System.out.println("Metrics Reporter Closing...");
  23.     }
  24.  
  25.     public void init(List<KafkaMetric> arg0) {
  26.         System.out.println("Metrics Reporter init...");
  27.        
  28.         try {
  29.              writer = new PrintWriter("KmetricsReporter.txt", "UTF-8");
  30.              //writer.println("Processing a metric change for {}", kafkaMetric.metricName().toString());
  31.         } catch (Exception e) {
  32.             e.printStackTrace();
  33.         }
  34.        
  35.     }
  36.  
  37.     public void metricChange(KafkaMetric kafkaMetric) {
  38. //      writer.print(kafkaMetric.metricName().toString());
  39. //      writer.println(": " + kafkaMetric.toString());
  40.         try {
  41.             if(kafkaMetric.value() != 0)
  42.             {
  43.                 writer.print(sanitizeName(kafkaMetric.metricName()));
  44.                 writer.println(": " + kafkaMetric.value());
  45.             }
  46.         } catch (Exception e) {
  47.             e.printStackTrace(writer);
  48.         }
  49.     }
  50.  
  51.     public void metricRemoval(KafkaMetric arg0) {
  52.         // TODO Auto-generated method stub
  53.        
  54.     }
  55.  
  56.     private String sanitizeName(MetricName name) {
  57.         StringBuilder result = new StringBuilder().append(name.group()).append('.');
  58.         for (Map.Entry<String, String> tag : name.tags().entrySet()) {
  59.             result.append(tag.getValue()).append('.');
  60.         }
  61.         return result.append(name.name()).toString().replace(' ', '_').replace("\\.", "_");
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment