Search in sources :

Example 1 with SegmentContainerRegistryHealthContributor

use of io.pravega.segmentstore.server.host.health.SegmentContainerRegistryHealthContributor in project pravega by pravega.

the class ServiceStarter method start.

// endregion
// region Service Operation
public void start() throws Exception {
    Exceptions.checkNotClosed(this.closed, this);
    healthServiceManager = new HealthServiceManager(serviceConfig.getHealthCheckInterval());
    healthServiceManager.start();
    log.info("Initializing HealthService ...");
    MetricsConfig metricsConfig = builderConfig.getConfig(MetricsConfig::builder);
    if (metricsConfig.isEnableStatistics()) {
        log.info("Initializing metrics provider ...");
        MetricsProvider.initialize(metricsConfig);
        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 ...");
    autoScaleMonitor = new AutoScaleMonitor(service, builderConfig.getConfig(AutoScalerConfig::builder));
    AutoScalerConfig autoScalerConfig = builderConfig.getConfig(AutoScalerConfig::builder);
    TokenVerifierImpl tokenVerifier = null;
    if (autoScalerConfig.isAuthEnabled()) {
        tokenVerifier = new TokenVerifierImpl(autoScalerConfig.getTokenSigningKey());
    }
    // Log the configuration
    log.info(serviceConfig.toString());
    log.info(autoScalerConfig.toString());
    this.listener = new PravegaConnectionListener(this.serviceConfig.isEnableTls(), this.serviceConfig.isEnableTlsReload(), this.serviceConfig.getListeningIPAddress(), this.serviceConfig.getListeningPort(), service, tableStoreService, autoScaleMonitor.getStatsRecorder(), autoScaleMonitor.getTableSegmentStatsRecorder(), tokenVerifier, this.serviceConfig.getCertFile(), this.serviceConfig.getKeyFile(), this.serviceConfig.isReplyWithStackTraceOnError(), serviceBuilder.getLowPriorityExecutor(), this.serviceConfig.getTlsProtocolVersion(), healthServiceManager);
    this.listener.startListening();
    log.info("PravegaConnectionListener started successfully.");
    if (serviceConfig.isEnableAdminGateway()) {
        this.adminListener = new AdminConnectionListener(this.serviceConfig.isEnableTls(), this.serviceConfig.isEnableTlsReload(), this.serviceConfig.getListeningIPAddress(), this.serviceConfig.getAdminGatewayPort(), service, tableStoreService, tokenVerifier, this.serviceConfig.getCertFile(), this.serviceConfig.getKeyFile(), this.serviceConfig.getTlsProtocolVersion(), healthServiceManager);
        this.adminListener.startListening();
        log.info("AdminConnectionListener started successfully.");
    }
    log.info("StreamSegmentService started.");
    healthServiceManager.register(new ZKHealthContributor(zkClient));
    healthServiceManager.register(new CacheManagerHealthContributor(serviceBuilder.getCacheManager()));
    healthServiceManager.register(new SegmentContainerRegistryHealthContributor(serviceBuilder.getSegmentContainerRegistry()));
    if (this.serviceConfig.isRestServerEnabled()) {
        log.info("Initializing RESTServer ...");
        List<Object> resources = new ArrayList<>();
        resources.add(new HealthImpl(new AuthHandlerManager(serviceConfig.getRestServerConfig()), healthServiceManager.getEndpoint()));
        MetricsProvider.getMetricsProvider().prometheusResource().ifPresent(resources::add);
        restServer = new RESTServer(serviceConfig.getRestServerConfig(), Set.copyOf(resources));
        restServer.startAsync();
        restServer.awaitRunning();
    }
}
Also used : HealthServiceManager(io.pravega.shared.health.HealthServiceManager) AutoScaleMonitor(io.pravega.segmentstore.server.host.stat.AutoScaleMonitor) AdminConnectionListener(io.pravega.segmentstore.server.host.handler.AdminConnectionListener) AutoScalerConfig(io.pravega.segmentstore.server.host.stat.AutoScalerConfig) ArrayList(java.util.ArrayList) ZKHealthContributor(io.pravega.segmentstore.server.host.health.ZKHealthContributor) PravegaConnectionListener(io.pravega.segmentstore.server.host.handler.PravegaConnectionListener) MetricsConfig(io.pravega.shared.metrics.MetricsConfig) TableStore(io.pravega.segmentstore.contracts.tables.TableStore) StreamSegmentStore(io.pravega.segmentstore.contracts.StreamSegmentStore) HealthImpl(io.pravega.shared.health.bindings.resources.HealthImpl) SegmentContainerRegistryHealthContributor(io.pravega.segmentstore.server.host.health.SegmentContainerRegistryHealthContributor) AuthHandlerManager(io.pravega.shared.rest.security.AuthHandlerManager) CacheManagerHealthContributor(io.pravega.segmentstore.server.CacheManager.CacheManagerHealthContributor) TokenVerifierImpl(io.pravega.segmentstore.server.host.delegationtoken.TokenVerifierImpl) RESTServer(io.pravega.shared.rest.RESTServer)

Example 2 with SegmentContainerRegistryHealthContributor

use of io.pravega.segmentstore.server.host.health.SegmentContainerRegistryHealthContributor in project pravega by pravega.

the class ServiceStarterTest method testSegmentContainerRegistryHealth.

/**
 * Check health of SegmentContainerRegistry
 */
@Test
public void testSegmentContainerRegistryHealth() {
    @Cleanup SegmentContainerRegistryHealthContributor segmentContainerRegistryHealthContributor = new SegmentContainerRegistryHealthContributor(serviceStarter.getServiceBuilder().getSegmentContainerRegistry());
    Health.HealthBuilder builder = Health.builder().name(segmentContainerRegistryHealthContributor.getName());
    Status status = segmentContainerRegistryHealthContributor.doHealthCheck(builder);
    Assert.assertEquals("HealthContributor should report an 'UP' Status.", Status.UP, status);
}
Also used : Status(io.pravega.shared.health.Status) Health(io.pravega.shared.health.Health) SegmentContainerRegistryHealthContributor(io.pravega.segmentstore.server.host.health.SegmentContainerRegistryHealthContributor) Cleanup(lombok.Cleanup) Test(org.junit.Test)

Aggregations

SegmentContainerRegistryHealthContributor (io.pravega.segmentstore.server.host.health.SegmentContainerRegistryHealthContributor)2 StreamSegmentStore (io.pravega.segmentstore.contracts.StreamSegmentStore)1 TableStore (io.pravega.segmentstore.contracts.tables.TableStore)1 CacheManagerHealthContributor (io.pravega.segmentstore.server.CacheManager.CacheManagerHealthContributor)1 TokenVerifierImpl (io.pravega.segmentstore.server.host.delegationtoken.TokenVerifierImpl)1 AdminConnectionListener (io.pravega.segmentstore.server.host.handler.AdminConnectionListener)1 PravegaConnectionListener (io.pravega.segmentstore.server.host.handler.PravegaConnectionListener)1 ZKHealthContributor (io.pravega.segmentstore.server.host.health.ZKHealthContributor)1 AutoScaleMonitor (io.pravega.segmentstore.server.host.stat.AutoScaleMonitor)1 AutoScalerConfig (io.pravega.segmentstore.server.host.stat.AutoScalerConfig)1 Health (io.pravega.shared.health.Health)1 HealthServiceManager (io.pravega.shared.health.HealthServiceManager)1 Status (io.pravega.shared.health.Status)1 HealthImpl (io.pravega.shared.health.bindings.resources.HealthImpl)1 MetricsConfig (io.pravega.shared.metrics.MetricsConfig)1 RESTServer (io.pravega.shared.rest.RESTServer)1 AuthHandlerManager (io.pravega.shared.rest.security.AuthHandlerManager)1 ArrayList (java.util.ArrayList)1 Cleanup (lombok.Cleanup)1 Test (org.junit.Test)1