@Override
public synchronized void init(VerifiableProperties props) {
if (!initialized) {
KafkaMetricsConfig metricsConfig = new KafkaMetricsConfig(props);
graphiteHost = props.getString("kafka.graphite.metrics.host", GRAPHITE_DEFAULT_HOST);
graphitePort = props.getInt("kafka.graphite.metrics.port", GRAPHITE_DEFAULT_PORT);
metricPrefix = props.getString("kafka.graphite.metrics.group", GRAPHITE_DEFAULT_PREFIX);
String excludeRegex = props.getString("kafka.graphite.metrics.exclude.regex", null);
metricDimensions = Dimension.fromProperties(props.props(), "kafka.graphite.dimension.enabled.");
LOG.debug("Initialize GraphiteReporter [{},{},{}]", graphiteHost, graphitePort, metricPrefix);
if (excludeRegex != null) {
LOG.debug("Using regex [{}] for GraphiteReporter", excludeRegex);
metricPredicate = new FilterMetricPredicate(excludeRegex);
}
reporter = buildGraphiteReporter();
if (props.getBoolean("kafka.graphite.metrics.reporter.enabled", false)) {
initialized = true;
startReporter(metricsConfig.pollingIntervalSecs());
LOG.debug("GraphiteReporter started.");
}
}
}