@Override protected void open() { super.open(); checkState(gmetrics == null, "open was already called"); log.info("opening ganglia output with hosts: {}", hostsToString()); gmetrics = hosts.stream().map(hostPort -> { try { return new GMetric(hostPort.getHost(), hostPort.getPort(), UNICAST, 1); } catch (IOException ex) { throw new UncheckedIOException(ex); } }).collect(Collectors.toList()); }
@Override public boolean enable(final MetricRegistry registry) { boolean success = checkClass("com.izettle.metrics.influxdb.InfluxDbReporter"); if (!success) { return false; } List<HostPort> hosts = getFullHostList(); if (hosts == null || hosts.isEmpty()) { log.error("No hosts specified, cannot enable InfluxDBReporter"); return false; } if(hosts.size() != 1) { log.error("Only 1 host can be specified, cannot enable InfluxDBReporter"); return false; } HostPort hostPort = hosts.get(0); log.info("Enabling InfluxDBReporter to {}:{}", hostPort.getHost(), hostPort.getPort()); try { enableMetrics3(hostPort, registry); } catch (Exception e) { log.error("Failed to enable InfluxDBReporter for {}:{}", hostPort.getHost(), hostPort.getPort(), e); return false; } return true; }
@Override public boolean enable(MetricRegistry registry) { boolean success = setup("com.codahale.metrics.ganglia.GangliaReporter"); if (!success) { return false; } List<HostPort> hosts = getFullHostList(); for (HostPort hostPort : hosts) { log.info("Enabling GangliaReporter to {}:{}", new Object[]{hostPort.getHost(), hostPort.getPort()}); try { enableMetrics3(hostPort, registry); } catch (Exception e) { log.error("Faliure while enabling GangliaReporter", e); return false; } } return true; }
@Override public boolean enable(MetricRegistry registry) { boolean success = setup("com.codahale.metrics.graphite.GraphiteReporter"); if (!success) { return false; } List<HostPort> hosts = getFullHostList(); for (HostPort hostPort : hosts) { log.info("Enabling GraphiteReporter to {}:{}", new Object[]{hostPort.getHost(), hostPort.getPort()}); try { enableMetrics3(hostPort, registry); } catch (Exception e) { log.error("Failed to enable GraphiteReporter", e); return false; } } return true; }
@Override public boolean enable() { boolean success = setup("com.yammer.metrics.reporting.GraphiteReporter"); if (!success) { return false; } List<HostPort> hosts = getFullHostList(); for (HostPort hostPort : hosts) { log.info("Enabling GraphiteReporter to {}:{}", new Object[]{hostPort.getHost(), hostPort.getPort()}); try { enableMetrics2(hostPort); } catch (Exception e) { log.error("Failed to enable GraphiteReporter", e); return false; } } return true; } }
@Override public boolean enable() { boolean success = setup("com.yammer.metrics.reporting.GangliaReporter"); if (!success) { return false; } List<HostPort> hosts = getFullHostList(); for (HostPort hostPort : hosts) { log.info("Enabling GangliaReporter to {}:{}", new Object[]{hostPort.getHost(), hostPort.getPort()}); try { enableMetrics2(hostPort); } catch (Exception e) { log.error("Faliure while enabling GangliaReporter", e); return false; } } return true; }
@Override public boolean enable(MetricRegistry registry) { if (!isClassAvailable(SENDER_CLASS)) { log.error("Tried to enable Zabbix Reporter, but class {} was not found", SENDER_CLASS); return false; } this.registry = registry; if (hostName == null) hostName = System.getenv("COMPUTERNAME"); if (hostName == null) hostName = System.getenv("HOSTNAME"); if (hostName == null) hostName = "localhost"; // note: don't go via InetAddress.getLocalHost() as that may return unexpected results or // take a long time (DNS roundtrips/timeouts) or even an exception being throws, for (HostPort hostPort : getFullHostList()) { ZabbixSender sender = new ZabbixSender(hostPort.getHost(), hostPort.getPort(), connectTimeout, socketTimeout); MetricFilter filter = MetricFilterTransformer.generateFilter(getPredicate()); ZabbixReporter reporter = new ZabbixReporter(sender, hostName, prefix, registry, name, filter, getRealRateunit(), getRealDurationunit()); reporters.add(reporter); } return true; }
@Test public void endToEnd() throws Exception { GmondConfigParser g = new GmondConfigParser(); List<HostPort> hosts = g. getGmondSendChannels("src/test/resources/gmond/comments.conf"); //System.out.println(hosts); assertEquals(2, hosts.size()); assertEquals("foo1.local", hosts.get(0).getHost()); assertEquals(8649, hosts.get(0).getPort()); assertEquals("foo2.local", hosts.get(1).getHost()); assertEquals(8649, hosts.get(1).getPort()); }
@Test public void endToEnd() throws Exception { GmondConfigParser g = new GmondConfigParser(); List<HostPort> hosts = g. getGmondSendChannels("src/test/resources/gmond/comments.conf"); //System.out.println(hosts); assertEquals(2, hosts.size()); assertEquals("foo1.local", hosts.get(0).getHost()); assertEquals(8649, hosts.get(0).getPort()); assertEquals("foo2.local", hosts.get(1).getHost()); assertEquals(8649, hosts.get(1).getPort()); }
new Object[] {hostPort.getHost(), hostPort.getPort()}); StatsDReporter reporter = new StatsDReporter( Metrics.defaultRegistry(), MetricPredicateTransformer.generatePredicate(getPredicate()), Clock.defaultClock(), new StatsDConstructorHack(hostPort.getHost(), hostPort.getPort())); reporter.start(getPeriod(), getRealTimeunit()); reporters.add(reporter); new Object[] {hostPort.getHost(), hostPort.getPort()}, e); failures = true;
MetricPredicate.class, Boolean.TYPE); enable.invoke(null, Metrics.defaultRegistry(), getPeriod(), getRealTimeunit(), hostPort.getHost(), hostPort.getPort(), resolvePrefix(groupPrefix), getResolvedPrefix(), MetricPredicateTransformer.generatePredicate(getPredicate()), compressPackageNames); MetricPredicate.class, Boolean.TYPE); enable.invoke(null, Metrics.defaultRegistry(), getPeriod(), getRealTimeunit(), hostPort.getHost(), hostPort.getPort(), resolvePrefix(groupPrefix), MetricPredicateTransformer.generatePredicate(getPredicate()), compressPackageNames);
new Object[] {hostPort.getHost(), hostPort.getPort()}); StatsDReporter reporter = StatsDReporter.forRegistry(registry) .convertRatesTo(getRealRateunit()) .prefixedWith(getResolvedPrefix()) .filter(MetricFilterTransformer.generateFilter(getPredicate())) .build(hostPort.getHost(), hostPort.getPort()); reporter.start(getPeriod(), getRealTimeunit()); reporters.add(reporter); new Object[] {hostPort.getHost(), hostPort.getPort()}, e); failures = true;
@Override public boolean enable() { if (!isClassAvailable(SENDER_CLASS)) { log.error("Tried to enable Zabbix Reporter, but class {} was not found", SENDER_CLASS); return false; } if (hostName == null) hostName = System.getenv("COMPUTERNAME"); if (hostName == null) hostName = System.getenv("HOSTNAME"); if (hostName == null) hostName = "localhost"; // note: don't go via InetAddress.getLocalHost() as that may return unexpected results or // take a long time (DNS roundtrips/timeouts) or even an exception being throws, for (HostPort hostPort : getFullHostList()) { ZabbixSender sender = new ZabbixSender(hostPort.getHost(), hostPort.getPort(), connectTimeout, socketTimeout); ZabbixReporter reporter = new ZabbixReporter(sender, hostName, prefix, name, getRealRateunit(), getRealDurationunit(), MetricPredicateTransformer.generatePredicate(getPredicate()), Clock.defaultClock()); reporter.start(getPeriod(), getRealTimeunit()); } return true; }
private void enableMetrics2(HostPort hostPort) { GraphiteReporter.enable( Metrics.defaultRegistry(), getPeriod(), getRealTimeunit(), hostPort.getHost(), hostPort.getPort(), getResolvedPrefix(), MetricPredicateTransformer.generatePredicate(getPredicate())); }
@Test public void hostPort() throws Exception { Map<String,String> chan = ImmutableMap.of("bind_hostname", "no", "host", "bar.local", "port", "8649", "ttl", "1"); GmondConfigParser g = new GmondConfigParser(); HostPort hp = g.makeHostPort(chan); assertEquals("bar.local", hp.getHost()); assertEquals(8649, hp.getPort()); }
@Test public void hostPort() throws Exception { Map<String,String> chan = ImmutableMap.of("bind_hostname", "no", "host", "bar.local", "port", "8649", "ttl", "1"); GmondConfigParser g = new GmondConfigParser(); HostPort hp = g.makeHostPort(chan); assertEquals("bar.local", hp.getHost()); assertEquals(8649, hp.getPort()); }
private void enableMetrics3(HostPort hostPort, MetricRegistry registry) throws IOException { /** * browsing through https://github.com/ganglia/gmetric4j it appears that the * "ttl" parameter is ignored for GMetric.UDPAddressingMode.UNICAST */ reporter = GangliaReporter.forRegistry(registry) .convertRatesTo(getRealRateunit()) .convertDurationsTo(getRealDurationunit()) .prefixedWith(groupPrefix) .filter(MetricFilterTransformer.generateFilter(getPredicate())) .build(new GMetric(hostPort.getHost(), hostPort.getPort(), GMetric.UDPAddressingMode.UNICAST, 1, true, null, getSpoofName())); reporter.start(getPeriod(), getRealTimeunit()); }
private void enableMetrics3(HostPort hostPort, MetricRegistry registry) { InetSocketAddress addr = new InetSocketAddress(hostPort.getHost(), hostPort.getPort()); GraphiteSender sender; if (isPickled()) { sender = isUdp() ? newPickledGraphiteUDP(addr) : new PickledGraphite(addr); } else { sender = isUdp() ? new GraphiteUDP(addr) : new Graphite(addr); } reporter = GraphiteReporter.forRegistry(registry) .convertRatesTo(getRealRateunit()) .convertDurationsTo(getRealDurationunit()) .prefixedWith(getResolvedPrefix()) .filter(MetricFilterTransformer.generateFilter(getPredicate())) .build(sender); reporter.start(getPeriod(), getRealTimeunit()); }
private void enableMetrics3(HostPort hostPort, MetricRegistry registry) throws Exception { InfluxDbSender influxDbSender = new InfluxDbHttpSender(getProtocol(), hostPort.getHost(), hostPort.getPort(), getDbName(), getAuth(), getRealRateunit(), getConnectionTimeout(), getReadTimeout(), getResolvedPrefix()); reporter = InfluxDbReporter.forRegistry(registry).convertRatesTo(getRealRateunit()) .convertDurationsTo(getRealDurationunit()).withTags(getResolvedTags()) .measurementMappings(getMeasurementMappings()) .filter(MetricFilterTransformer.generateFilter(getPredicate())).build(influxDbSender); reporter.start(getPeriod(), getRealTimeunit()); }