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);
}
}
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);
}
}
}
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.");
}
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);
}
}
}
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());
}
Aggregations