/** * Diagnostics' configuration reload operation. */ public void reload() { diagnostics.reload(); } }
/** * Reloads configuration and reinitialize modules and reporters. */ public void reload() { isRunning.set(false); diagnosticsProcessor.shutdown(); logger.info("Reloading diagnostics configuation."); Configuration newConfig; try { newConfig = loadConfiguration(); if (newConfig == null) { logger.error("Reload operation unsuccessful. Fix configuration and reload again"); return; } } catch (IllegalStateException ex) { logger.error("Reload operation failed. Fix configuration and reload again"); return; } unregisterEndpoints(); config = newConfig; diagnosticsProcessor = new DiagnosticsProcessor(config); initEndpoints(); logger.info("Configuration realoaded"); isRunning.set(true); }
/** * Entry point for agent when it is started upon VM start. * * @param args agent arguments * @param inst instrumentation handle */ public static void premain(final String args, final Instrumentation inst) { logger.info("Cassandra Diagnostics starting."); diagnostics = new Diagnostics(); connector = ConnectorFactory.getImplementation(); connector.init(inst, diagnostics, diagnostics.getConfiguration().connector, diagnostics.getConfiguration().global); Thread th = new Thread(new Runnable() { @Override public void run() { connector.waitForSetupCompleted(); diagnostics.activate(); logger.info("Cassandra Diagnostics initialized."); } }); th.setName(INITIALIZATION_THREAD_NAME); th.setDaemon(true); th.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { logger.error(e.getMessage(), e); } }); th.start(); }
@Override public void run() { connector.waitForSetupCompleted(); diagnostics.activate(); logger.info("Cassandra Diagnostics initialized."); } });
/** * Constructor. */ public Diagnostics() { config = loadConfiguration(); if (config.global.hostname == null || config.global.hostname.isEmpty()) { config.global.hostname = Utils.resolveHostname(); } }
/** * Completes the initialization and activates the query processing. */ public void activate() { this.diagnosticsProcessor = new DiagnosticsProcessor(config); this.isRunning.set(true); initEndpoints(); }