@Override public void close() { instance.get().close(); }
@Override public void start() { instance.get().start(); }
@Override public DynamicLogger createDynamicLogger() { return instance.get().createDynamicLogger(); } }
@Override public StatsLogger createStatsLogger(String scope) { StatsLogger logger = instance.get().createStatsLogger(scope); StatsLoggerProxy proxy = new StatsLoggerProxy(logger); statsLoggerProxies.put(proxy, scope); return proxy; }
void setProvider(MetricsConfig config) { if (config.isEnableStatistics()) { log.info("Stats enabled"); instance.set(new StatsProviderImpl(config)); } else { log.info("Stats disabled"); instance.set(new NullStatsProvider()); } statsLoggerProxies.forEach( (proxy, scope) -> { proxy.setLogger(instance.get().createStatsLogger(scope)); }); }
public void start() throws Exception { Exceptions.checkNotClosed(this.closed, this); log.info("Initializing metrics provider ..."); MetricsProvider.initialize(builderConfig.getConfig(MetricsConfig::builder)); statsProvider = MetricsProvider.getMetricsProvider(); statsProvider.start(); log.info("Initializing ZooKeeper Client ..."); this.zkClient = createZKClient(); log.info("Initializing Service Builder ..."); this.serviceBuilder.initialize(); log.info("Creating StreamSegmentService ..."); StreamSegmentStore service = this.serviceBuilder.createStreamSegmentService(); log.info("Creating TableStoreService ..."); TableStore tableStoreService = this.serviceBuilder.createTableStoreService(); log.info("Creating Segment Stats recorder ..."); segmentStatsFactory = new SegmentStatsFactory(); SegmentStatsRecorder statsRecorder = segmentStatsFactory .createSegmentStatsRecorder(service, builderConfig.getConfig(AutoScalerConfig::builder)); TokenVerifierImpl tokenVerifier = new TokenVerifierImpl(builderConfig.getConfig(AutoScalerConfig::builder)); this.listener = new PravegaConnectionListener(this.serviceConfig.isEnableTls(), this.serviceConfig.getListeningIPAddress(), this.serviceConfig.getListeningPort(), service, tableStoreService, statsRecorder, tokenVerifier, this.serviceConfig.getCertFile(), this.serviceConfig.getKeyFile(), this.serviceConfig.isReplyWithStackTraceOnError()); this.listener.startListening(); log.info("PravegaConnectionListener started successfully."); log.info("StreamSegmentService started."); }
@Override protected void shutDown() { this.serviceBuilder.close(); stopBookKeeper(); val zk = this.zkClient; if (zk != null) { zk.close(); this.zkClient = null; } StatsProvider sp = this.statsProvider; if (sp != null) { sp.close(); this.statsProvider = null; } Runtime.getRuntime().removeShutdownHook(this.stopBookKeeperProcess); }
@Override protected void startUp() throws Exception { if (this.config.isMetricsEnabled()) { MetricsProvider.initialize(this.builderConfig.getConfig(MetricsConfig::builder)); this.statsProvider = MetricsProvider.getMetricsProvider(); this.statsProvider.start(); } if (this.config.getBookieCount() > 0) { this.bookKeeperService = BookKeeperAdapter.startBookKeeperOutOfProcess(this.config, this.logId); } this.serviceBuilder.initialize(); this.streamSegmentStore = this.serviceBuilder.createStreamSegmentService(); }
public void shutdown() { if (!this.closed) { this.serviceBuilder.close(); log.info("StreamSegmentService shut down."); if (this.listener != null) { this.listener.close(); log.info("PravegaConnectionListener closed."); } if (this.statsProvider != null) { statsProvider.close(); statsProvider = null; log.info("Metrics statsProvider is now closed."); } if (this.zkClient != null) { this.zkClient.close(); this.zkClient = null; log.info("ZooKeeper Client shut down."); } if (this.segmentStatsFactory != null) { segmentStatsFactory.close(); } if (this.serviceConfig.isSecureZK()) { ZKTLSUtils.unsetSecureZKClientProperties(); } this.closed = true; } }
@Before public void setUp() throws Exception { MetricsConfig metricsConfig = MetricsConfig.builder() .with(MetricsConfig.ENABLE_CSV_REPORTER, false) .with(MetricsConfig.ENABLE_STATSD_REPORTER, false) .build(); metricsConfig.setDynamicCacheEvictionDuration(Duration.ofMinutes(5)); MetricsProvider.initialize(metricsConfig); statsProvider = MetricsProvider.getMetricsProvider(); statsProvider.start(); log.info("Metrics Stats provider is started"); executor = Executors.newSingleThreadScheduledExecutor(); zkTestServer = new TestingServerStarter().start(); serviceBuilder = ServiceBuilder.newInMemoryBuilder(ServiceBuilderConfig.getDefaultConfig()); serviceBuilder.initialize(); StreamSegmentStore store = serviceBuilder.createStreamSegmentService(); server = new PravegaConnectionListener(false, servicePort, store, mock(TableStore.class)); server.startListening(); controllerWrapper = new ControllerWrapper(zkTestServer.getConnectString(), false, controllerPort, serviceHost, servicePort, containerCount); controllerWrapper.awaitRunning(); }
@After public void tearDown() throws Exception { if (this.statsProvider != null) { statsProvider.close(); statsProvider = null; log.info("Metrics statsProvider is now closed."); } if (this.controllerWrapper != null) { this.controllerWrapper.close(); this.controllerWrapper = null; } if (this.server != null) { this.server.close(); this.server = null; } if (this.zkTestServer != null) { this.zkTestServer.close(); this.zkTestServer = null; } }
@Before public void setup() throws Exception { final int controllerPort = TestUtils.getAvailableListenPort(); final String serviceHost = "localhost"; final int servicePort = TestUtils.getAvailableListenPort(); final int containerCount = 4; // 1. Start ZK this.zkTestServer = new TestingServerStarter().start(); // 2. Start Pravega SegmentStore service. ServiceBuilder serviceBuilder = ServiceBuilder.newInMemoryBuilder(ServiceBuilderConfig.getDefaultConfig()); serviceBuilder.initialize(); StreamSegmentStore store = serviceBuilder.createStreamSegmentService(); this.server = new PravegaConnectionListener(false, servicePort, store, mock(TableStore.class)); this.server.startListening(); // 3. Start Pravega Controller service this.controllerWrapper = new ControllerWrapper(zkTestServer.getConnectString(), false, controllerPort, serviceHost, servicePort, containerCount); this.controllerWrapper.awaitRunning(); this.controller = controllerWrapper.getController(); // 4. Start Metrics service log.info("Initializing metrics provider ..."); MetricsConfig metricsConfig = MetricsConfig.builder() .with(MetricsConfig.ENABLE_CSV_REPORTER, false).with(MetricsConfig.ENABLE_STATSD_REPORTER, false) .build(); metricsConfig.setDynamicCacheEvictionDuration(Duration.ofSeconds(5)); MetricsProvider.initialize(metricsConfig); statsProvider = MetricsProvider.getMetricsProvider(); statsProvider.start(); log.info("Metrics Stats provider is started"); }
@After public void tearDown() throws Exception { if (this.statsProvider != null) { statsProvider.close(); statsProvider = null; log.info("Metrics statsProvider is now closed."); } ExecutorServiceHelpers.shutdown(executor); controllerWrapper.close(); server.close(); serviceBuilder.close(); zkTestServer.close(); }