Search in sources :

Example 1 with Start

use of ninja.lifecycle.Start in project ninja by ninjaframework.

the class NinjaGraphite method start.

@Start(order = 90)
public void start() {
    if (ninjaProperties.getBooleanWithDefault("metrics.graphite.enabled", false)) {
        final String customPrefix = ninjaProperties.get("metrics.graphite.prefix");
        final String hostname = metricsService.getHostname();
        final String prefix = StringUtils.isNotBlank(customPrefix) ? customPrefix : hostname;
        final String address = ninjaProperties.getOrDie("metrics.graphite.address");
        final int port = ninjaProperties.getIntegerWithDefault("metrics.graphite.port", 2003);
        final boolean isPickled = ninjaProperties.getBooleanWithDefault("metrics.graphite.pickled", false);
        final String period = ninjaProperties.getWithDefault("metrics.graphite.period", "60s");
        final int delay = TimeUtil.parseDuration(period);
        final InetSocketAddress graphiteAddress = new InetSocketAddress(address, port);
        final GraphiteSender sender;
        if (isPickled) {
            sender = new PickledGraphite(graphiteAddress);
        } else {
            sender = new Graphite(graphiteAddress);
        }
        reporter = GraphiteReporter.forRegistry(metricsService.getMetricRegistry()).prefixedWith(prefix).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).filter(MetricFilter.ALL).build(sender);
        reporter.start(delay, TimeUnit.SECONDS);
        log.info("Started Graphite Metrics reporter for '{}', updating every {}", prefix, period);
    }
}
Also used : GraphiteSender(com.codahale.metrics.graphite.GraphiteSender) InetSocketAddress(java.net.InetSocketAddress) PickledGraphite(com.codahale.metrics.graphite.PickledGraphite) PickledGraphite(com.codahale.metrics.graphite.PickledGraphite) Graphite(com.codahale.metrics.graphite.Graphite) Start(ninja.lifecycle.Start)

Example 2 with Start

use of ninja.lifecycle.Start in project ninja by ninjaframework.

the class NinjaInfluxDB method start.

@Start(order = 90)
public void start() {
    if (ninjaProperties.getBooleanWithDefault("metrics.influxdb.enabled", false)) {
        final String hostname = metricsService.getHostname();
        final String address = ninjaProperties.getOrDie("metrics.influxdb.address");
        final int port = ninjaProperties.getIntegerWithDefault("metrics.influxdb.port", 8086);
        final String database = ninjaProperties.getOrDie("metrics.influxdb.database");
        final String username = ninjaProperties.getOrDie("metrics.influxdb.username");
        final String password = ninjaProperties.getOrDie("metrics.influxdb.password");
        final String period = ninjaProperties.getWithDefault("metrics.influxdb.period", "60s");
        final int delay = TimeUtil.parseDuration(period);
        try {
            final InfluxdbHttp influxdbHttp = new InfluxdbHttp(address, port, database, username, password);
            final InfluxdbReporter reporter = InfluxdbReporter.forRegistry(metricsService.getMetricRegistry()).prefixedWith(hostname).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).filter(MetricFilter.ALL).build(influxdbHttp);
            reporter.start(delay, TimeUnit.SECONDS);
            log.info("Started InfluxDB Metrics reporter for '{}', updating every {}", hostname, period);
        } catch (Exception e) {
            log.error("Failed to start InfluxDB reporter!", e);
        }
    }
}
Also used : InfluxdbHttp(metrics_influxdb.InfluxdbHttp) InfluxdbReporter(metrics_influxdb.InfluxdbReporter) Start(ninja.lifecycle.Start)

Example 3 with Start

use of ninja.lifecycle.Start in project ninja by ninjaframework.

the class MetricsServiceImpl method start.

@Start(order = 10)
@Override
public void start() {
    String applicationName = ninjaProps.getWithDefault(NinjaConstant.applicationName, "Ninja");
    /*
         * Register optional metrics
         */
    if (ninjaProps.getBooleanWithDefault("metrics.jvm.enabled", false)) {
        registerAll("jvm.gc", new GarbageCollectorMetricSet());
        registerAll("jvm.memory", new MemoryUsageGaugeSet());
        registerAll("jvm.threads", new ThreadStatesGaugeSet());
        registerAll("jvm.classes", new ClassLoadingGaugeSet());
        log.debug("Registered JVM-Metrics integration");
    }
    if (ninjaProps.getBooleanWithDefault("metrics.logback.enabled", false)) {
        final LoggerContext factory = (LoggerContext) LoggerFactory.getILoggerFactory();
        final ch.qos.logback.classic.Logger root = factory.getLogger(Logger.ROOT_LOGGER_NAME);
        final InstrumentedAppender appender = new InstrumentedAppender(metricRegistry);
        appender.setContext(root.getLoggerContext());
        appender.start();
        root.addAppender(appender);
        log.debug("Registered Logback-Metrics integration");
    }
    /*
         * MBeans for VisualVM, JConsole, or JMX
         */
    if (ninjaProps.getBooleanWithDefault("metrics.mbeans.enabled", true)) {
        JmxReporter reporter = JmxReporter.forRegistry(metricRegistry).inDomain(applicationName).build();
        reporter.start();
        reporters.add(reporter);
        log.debug("Started Ninja Metrics MBeans reporter");
    }
    log.info("Ninja Metrics is ready for collection.");
}
Also used : InstrumentedAppender(com.codahale.metrics.logback.InstrumentedAppender) MemoryUsageGaugeSet(com.codahale.metrics.jvm.MemoryUsageGaugeSet) ClassLoadingGaugeSet(com.codahale.metrics.jvm.ClassLoadingGaugeSet) ThreadStatesGaugeSet(com.codahale.metrics.jvm.ThreadStatesGaugeSet) LoggerContext(ch.qos.logback.classic.LoggerContext) JmxReporter(com.codahale.metrics.JmxReporter) GarbageCollectorMetricSet(com.codahale.metrics.jvm.GarbageCollectorMetricSet) Start(ninja.lifecycle.Start)

Example 4 with Start

use of ninja.lifecycle.Start in project ninja by ninjaframework.

the class NinjaGanglia method start.

@Start(order = 90)
public void start() {
    if (ninjaProperties.getBooleanWithDefault("metrics.ganglia.enabled", false)) {
        final String hostname = metricsService.getHostname();
        final String address = ninjaProperties.getOrDie("metrics.ganglia.address");
        final int port = ninjaProperties.getIntegerWithDefault("metrics.ganglia.port", 8649);
        final String period = ninjaProperties.getWithDefault("metrics.ganglia.period", "60s");
        final int delay = TimeUtil.parseDuration(period);
        try {
            GMetric ganglia = new GMetric(address, port, UDPAddressingMode.MULTICAST, 1);
            reporter = GangliaReporter.forRegistry(metricsService.getMetricRegistry()).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build(ganglia);
            reporter.start(delay, TimeUnit.SECONDS);
            log.info("Started Ganglia Metrics reporter for '{}', updating every {}", hostname, period);
        } catch (IOException e) {
            log.error("Failed to start Ganglia reporter!", e);
        }
    }
}
Also used : GMetric(info.ganglia.gmetric4j.gmetric.GMetric) IOException(java.io.IOException) Start(ninja.lifecycle.Start)

Example 5 with Start

use of ninja.lifecycle.Start in project ninja by ninjaframework.

the class JpaInitializerTest method testStart.

@Test
public void testStart() throws Exception {
    JpaInitializer jpaInitializer = new JpaInitializer(persistService);
    jpaInitializer.start();
    verify(persistService).start();
    // we also verify that the annotation is ok
    Method method = JpaInitializer.class.getMethod("start");
    Start start = method.getAnnotation(Start.class);
    assertEquals(10, start.order());
}
Also used : Start(ninja.lifecycle.Start) Method(java.lang.reflect.Method) Test(org.junit.Test)

Aggregations

Start (ninja.lifecycle.Start)6 IOException (java.io.IOException)2 LoggerContext (ch.qos.logback.classic.LoggerContext)1 JmxReporter (com.codahale.metrics.JmxReporter)1 Graphite (com.codahale.metrics.graphite.Graphite)1 GraphiteSender (com.codahale.metrics.graphite.GraphiteSender)1 PickledGraphite (com.codahale.metrics.graphite.PickledGraphite)1 ClassLoadingGaugeSet (com.codahale.metrics.jvm.ClassLoadingGaugeSet)1 GarbageCollectorMetricSet (com.codahale.metrics.jvm.GarbageCollectorMetricSet)1 MemoryUsageGaugeSet (com.codahale.metrics.jvm.MemoryUsageGaugeSet)1 ThreadStatesGaugeSet (com.codahale.metrics.jvm.ThreadStatesGaugeSet)1 InstrumentedAppender (com.codahale.metrics.logback.InstrumentedAppender)1 GMetric (info.ganglia.gmetric4j.gmetric.GMetric)1 Method (java.lang.reflect.Method)1 DatagramPacket (java.net.DatagramPacket)1 DatagramSocket (java.net.DatagramSocket)1 InetSocketAddress (java.net.InetSocketAddress)1 InfluxdbHttp (metrics_influxdb.InfluxdbHttp)1 InfluxdbReporter (metrics_influxdb.InfluxdbReporter)1 Test (org.junit.Test)1