List of usage examples for com.google.common.util.concurrent ServiceManager startupTimes
public ImmutableMap<Service, Long> startupTimes()
From source file:org.graylog2.bootstrap.ServerBootstrap.java
@Override protected void startCommand() { final AuditLogger auditLogger = injector.getInstance(AuditLogger.class); final Map<String, Object> auditLogContext = ImmutableMap.of("version", version, "java", Tools.getSystemInformation()); auditLogger.success("<system>", "initiated", "startup", auditLogContext); final OS os = OS.getOs(); LOG.info("Graylog {} {} starting up", commandName, version); LOG.info("JRE: {}", Tools.getSystemInformation()); LOG.info("Deployment: {}", configuration.getInstallationSource()); LOG.info("OS: {}", os.getPlatformName()); LOG.info("Arch: {}", os.getArch()); final ServerStatus serverStatus = injector.getInstance(ServerStatus.class); serverStatus.initialize();//from w w w .j a v a 2s . co m startNodeRegistration(injector); final ActivityWriter activityWriter; final ServiceManager serviceManager; try { activityWriter = injector.getInstance(ActivityWriter.class); serviceManager = injector.getInstance(ServiceManager.class); } catch (ProvisionException e) { LOG.error("Guice error", e); annotateProvisionException(e); auditLogger.failure("<system>", "initiated", "startup", auditLogContext); System.exit(-1); return; } catch (Exception e) { LOG.error("Unexpected exception", e); auditLogger.failure("<system>", "initiated", "startup", auditLogContext); System.exit(-1); return; } Runtime.getRuntime().addShutdownHook(new Thread(injector.getInstance(shutdownHook()))); // propagate default size to input plugins MessageInput.setDefaultRecvBufferSize(configuration.getUdpRecvBufferSizes()); // Start services. final ServiceManagerListener serviceManagerListener = injector.getInstance(ServiceManagerListener.class); serviceManager.addListener(serviceManagerListener); try { serviceManager.startAsync().awaitHealthy(); } catch (Exception e) { try { serviceManager.stopAsync().awaitStopped(configuration.getShutdownTimeout(), TimeUnit.MILLISECONDS); } catch (TimeoutException timeoutException) { LOG.error("Unable to shutdown properly on time. {}", serviceManager.servicesByState()); } LOG.error("Graylog startup failed. Exiting. Exception was:", e); auditLogger.failure("<system>", "initiated", "startup", auditLogContext); System.exit(-1); } LOG.info("Services started, startup times in ms: {}", serviceManager.startupTimes()); activityWriter.write(new Activity("Started up.", Main.class)); LOG.info("Graylog " + commandName + " up and running."); auditLogger.success("<system>", "completed", "startup", auditLogContext); // Block forever. try { Thread.currentThread().join(); } catch (InterruptedException e) { return; } }