@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(); }
/** * Creates a new instance of the AppendProcessor class with no Metrics StatsRecorder. * * @param store The SegmentStore to send append requests to. * @param connection The ServerConnection to send responses to. * @param next The RequestProcessor to invoke next. * @param verifier The token verifier. */ @VisibleForTesting public AppendProcessor(StreamSegmentStore store, ServerConnection connection, RequestProcessor next, DelegationTokenVerifier verifier) { this(store, connection, next, null, verifier, MetricsProvider.getDynamicLogger(), false); }
public static Metric getMetric(String metricsName) { Metric metric = MetricsProvider.getMetric(metricsName); if (metric == null) { log.info("The metric {} is not present in the Metrics Registry", metricsName); return null; } return metric; } }
@Before public void setUp() throws Exception { this.baseDir = Files.createTempDirectory("test_nfs").toFile().getAbsoluteFile(); MetricsConfig metricsConfig = MetricsConfig.builder().with(MetricsConfig.ENABLE_STATISTICS, true).build(); MetricsProvider.initialize(metricsConfig); this.adapterConfig = FileSystemStorageConfig .builder() .with(FileSystemStorageConfig.ROOT, this.baseDir.getAbsolutePath()) .build(); }
@Before public void setUp() { MetricsProvider.initialize(MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, true) .build()); }
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."); }
/** * Test that we can transition from stats enabled, to disabled, to enabled. */ @Test public void testMultipleInitialization() { MetricsConfig config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, false) .build(); MetricsProvider.initialize(config); statsLogger.createCounter("counterDisabled"); assertEquals(null, MetricRegistryUtils.getCounter("counterDisabled")); config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, true) .build(); MetricsProvider.initialize(config); statsLogger.createCounter("counterEnabled"); Assert.assertNotNull( MetricRegistryUtils.getCounter("pravega.testStatsLogger.counterEnabled")); }
/** * Creates a new instance of the PravegaRequestProcessor class with no Metrics StatsRecorder. * * @param segmentStore The StreamSegmentStore to attach to (and issue requests to). * @param tableStore The TableStore to attach to (and issue requests to). * @param connection The ServerConnection to attach to (and send responses to). */ @VisibleForTesting public PravegaRequestProcessor(StreamSegmentStore segmentStore, TableStore tableStore, ServerConnection connection) { this(segmentStore, tableStore, connection, null, new PassingTokenVerifier(), MetricsProvider.getDynamicLogger(), false); }
try { MetricsProvider.initialize(Config.getMetricsConfig()); statsProvider = MetricsProvider.getMetricsProvider(); statsProvider.start();
/** * Test transition back to null provider. */ @Test public void testTransitionBackToNullProvider() { MetricsConfig config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, false) .build(); MetricsProvider.initialize(config); Counter counter = statsLogger.createCounter("continuity-counter"); counter.add(1L); assertEquals(0L, counter.get()); config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, true) .build(); MetricsProvider.initialize(config); counter.add(1L); assertEquals(1L, counter.get()); } }
@Before public void setUp() throws Exception { StreamSegmentStore store = mock(StreamSegmentStore.class); connection = mock(ServerConnection.class); processor = new PravegaRequestProcessor(store, mock(TableStore.class), connection, null, (resource, token, expectedLevel) -> false, MetricsProvider.getDynamicLogger(), false); }
@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(); }
/** * Test that we can transition from stats enabled, to disabled, to enabled. */ @Test public void testContinuity() { statsLogger.createCounter("continuity-counter"); Assert.assertNotNull("Not registered before disabling.", MetricRegistryUtils.getCounter("pravega.testStatsLogger.continuity-counter")); MetricsConfig disableConfig = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, false) .build(); MetricsProvider.initialize(disableConfig); Assert.assertNull("Still registered after disabling.", MetricRegistryUtils.getCounter("pravega.testStatsLogger.continuity-counter")); MetricsConfig enableConfig = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, true) .build(); MetricsProvider.initialize(enableConfig); Assert.assertNotNull("Not registered after re-enabling.", MetricRegistryUtils.getCounter("pravega.testStatsLogger.continuity-counter")); }
@Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); if (sslCtx != null) { SslHandler handler = sslCtx.newHandler(ch.alloc()); p.addLast(handler); } ServerConnectionInboundHandler lsh = new ServerConnectionInboundHandler(); // p.addLast(new LoggingHandler(LogLevel.INFO)); p.addLast(new ExceptionLoggingHandler(ch.remoteAddress().toString()), new CommandEncoder(null), new LengthFieldBasedFrameDecoder(MAX_WIRECOMMAND_SIZE, 4, 4), new CommandDecoder(), new AppendDecoder(), lsh); lsh.setRequestProcessor(new AppendProcessor(store, lsh, new PravegaRequestProcessor(store, tableStore, lsh, statsRecorder, tokenVerifier, MetricsProvider.getDynamicLogger(), replyWithStackTraceOnError), statsRecorder, tokenVerifier, MetricsProvider.getDynamicLogger(), replyWithStackTraceOnError)); } });
@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"); }