private void configureMetricsGangliaReporter() {
if (configuration.has(GANGLIA_HOST_OR_GROUP)) {
final String host = configuration.get(GANGLIA_HOST_OR_GROUP);
final Duration ival = configuration.get(GANGLIA_INTERVAL);
final Integer port = configuration.get(GANGLIA_PORT);
final UDPAddressingMode addrMode;
final String addrModeStr = configuration.get(GANGLIA_ADDRESSING_MODE);
if (addrModeStr.equalsIgnoreCase("multicast")) {
addrMode = UDPAddressingMode.MULTICAST;
} else if (addrModeStr.equalsIgnoreCase("unicast")) {
addrMode = UDPAddressingMode.UNICAST;
} else throw new AssertionError();
final Boolean proto31 = configuration.get(GANGLIA_USE_PROTOCOL_31);
final int ttl = configuration.get(GANGLIA_TTL);
final UUID uuid = configuration.has(GANGLIA_UUID)? UUID.fromString(configuration.get(GANGLIA_UUID)):null;
String spoof = null;
if (configuration.has(GANGLIA_SPOOF)) spoof = configuration.get(GANGLIA_SPOOF);
try {
MetricManager.INSTANCE.addGangliaReporter(host, port, addrMode, ttl, proto31, uuid, spoof, ival);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
public UDPAddressingMode getMode() {
return mode;
}
public void setMode(UDPAddressingMode mode) {
this.mode = mode;
}