类com.codahale.metrics.servlets.HealthCheckServlet源码实例Demo

下面列出了怎么用com.codahale.metrics.servlets.HealthCheckServlet的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: hermes   文件: HttpMetricsServer.java
private void init() {
	logger.info("Initializing Broker Http Metrics Reporter");

	InetSocketAddress inetSocketAddress = new InetSocketAddress(bindAddress, port);

	server = new Server(inetSocketAddress);

	ServletContextHandler servletContextHandler = new ServletContextHandler();

	servletContextHandler.setContextPath("/");

	servletContextHandler.addEventListener(new MetricsServletContextListener());
	servletContextHandler.addEventListener(new JVMMetricsServletContextListener());
	servletContextHandler.addEventListener(new HealthCheckServletContextListener());

	servletContextHandler.addServlet(new ServletHolder(new HermesServlet()), "/hermes");
	servletContextHandler.addServlet(new ServletHolder(new MetricsServlet()), "/metrics/metrics");
	servletContextHandler.addServlet(new ServletHolder(new ThreadDumpServlet()), "/metrics/threads");
	servletContextHandler.addServlet(new ServletHolder(new HealthCheckServlet()), "/metrics/healthcheck");
	servletContextHandler.addServlet(new ServletHolder(new PingServlet()), "/metrics/ping");

	server.setHandler(servletContextHandler);
	logger.info("Finished initializing Broker Http Metrics Reporter");
}
 
源代码2 项目: Poseidon   文件: Poseidon.java
private ServletContextHandler getMetricsHandler() {
    MetricRegistry registry = Metrics.getRegistry();
    HealthCheckRegistry healthCheckRegistry = Metrics.getHealthCheckRegistry();
    healthCheckRegistry.register("rotation", new Rotation(configuration.getRotationStatusFilePath()));

    registry.registerAll(new GarbageCollectorMetricSet());
    registry.registerAll(new MemoryUsageGaugeSet());
    registry.registerAll(new ThreadStatesGaugeSet());
    registry.registerAll(new JvmAttributeGaugeSet());

    ServletContextHandler servletContextHandler = new ServletContextHandler();
    servletContextHandler.setContextPath("/__metrics");
    servletContextHandler.setAttribute(MetricsServlet.class.getCanonicalName() + ".registry", registry);
    servletContextHandler.setAttribute(HealthCheckServlet.class.getCanonicalName() + ".registry", healthCheckRegistry);
    servletContextHandler.addServlet(new ServletHolder(new AdminServlet()), "/*");

    return servletContextHandler;
}
 
private void initHttpServer() {
    int httpPort = config.httpPort();
    LOGGER.info("HTTP port is {}", httpPort);
    httpServer = new Server(httpPort);

    ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
    contextHandler.setContextPath("/");
    httpServer.setHandler(contextHandler);

    contextHandler.addServlet(new ServletHolder(new PingServlet()), "/ping");
    contextHandler.addServlet(new ServletHolder(new BuildInfoServlet(getBuildInfoMap(this.getClass()))), "/buildinfo");
    contextHandler.addServlet(new ServletHolder(new MetricsServlet(METRIC_REGISTRY_INSTANCE)), "/metrics");
    contextHandler.addServlet(new ServletHolder(new HealthCheckServlet(registerHealthCheck())), "/health");
}
 
源代码4 项目: hermes   文件: HermesServlet.java
public void init(ServletConfig config) throws ServletException {
	this.config = config;
	if (Boolean.valueOf(config.getInitParameter("show-jvm-metrics"))) {
		JVMMetricsServletContextListener listener = new JVMMetricsServletContextListener();
		this.jvmServlet = new JVMMetricsServlet(listener.getMetricRegistry());
		this.jvmServlet.init(config);

		this.jvmUri = "/jvm";
	}

	healthCheckServlet = new HealthCheckServlet(HermesMetricsRegistry.getHealthCheckRegistry());
	healthCheckServlet.init(config);

	pingServlet = new PingServlet();
	pingServlet.init(config);

	threadDumpServlet = new ThreadDumpServlet();
	threadDumpServlet.init(config);

	metricServlet = new MetricsServlet(HermesMetricsRegistry.getMetricRegistry());
	metricServlet.init(config);

	this.metricServletGroupByT = new HashMap<String, MetricsServlet>();
	this.metricServletGroupByTP = new HashMap<String, MetricsServlet>();
	this.metricServletGroupByTPG = new HashMap<String, MetricsServlet>();

	this.healthcheckUri = "/healthcheck";
	this.pingUri = "/ping";
	this.threadsUri = "/threads";
	this.globalUri = "/global";
	this.metricsUri = "/metrics";
}
 
@Override
public void setServletContext(final ServletContext servletContext) {
    servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, this.metricsRegistry);
    servletContext.setAttribute(MetricsServlet.SHOW_SAMPLES, Boolean.TRUE);
    servletContext.setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY, this.healthCheckRegistry);
}
 
源代码6 项目: chassis   文件: AdminTransportConfiguration.java
@Bean(initMethod="start", destroyMethod="stop")
@Order(0)
public Server adminServer(
           @Value("${admin.hostname}") String hostname,
           @Value("${admin.port}") int port) {

       // set up servlets
       ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS | ServletContextHandler.NO_SECURITY);
	context.setErrorHandler(null);
	context.setWelcomeFiles(new String[] { "/" });
	
	// enable gzip
	context.addFilter(GzipFilter.class, "/*", null);
	
	// add common admin servlets
	context.addServlet(new ServletHolder(new HealthServlet(healthCheckRegistry)), "/healthcheck");
	context.addServlet(new ServletHolder(new ClasspathResourceServlet("com/kixeye/chassis/transport/admin", "/admin/", "index.html")), "/admin/*");
	context.addServlet(new ServletHolder(new PropertiesServlet()), "/admin/properties");
	context.addServlet(new ServletHolder(new ClasspathDumpServlet()), "/admin/classpath");

       // add websocket servlets if WebSockets have been initialized
       if (mappingRegistry != null && messageRegistry != null) {
           context.addServlet(new ServletHolder(new ProtobufMessagesDocumentationServlet(appName, mappingRegistry, messageRegistry)), "/schema/messages/protobuf");
           context.addServlet(new ServletHolder(new ProtobufEnvelopeDocumentationServlet()), "/schema/envelope/protobuf");
       }
	
       // add metric servlets if Metric has been initialized
       if (metricRegistry != null && healthCheckRegistry != null) {
           context.getServletContext().setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);
           context.getServletContext().setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY, healthCheckRegistry);
           
           ServletHolder holder = new ServletHolder(new AdminServlet());
           holder.setInitParameter("service-name", System.getProperty("app.name"));
           context.addServlet(holder, "/metrics/*");
       }

       // create the server
   	InetSocketAddress address = StringUtils.isBlank(hostname) ? new InetSocketAddress(port) : new InetSocketAddress(hostname, port);
   	
   	Server server = new Server();

   	JettyConnectorRegistry.registerHttpConnector(server, address);
       server.setHandler(context);
   
	return server;
}
 
源代码7 项目: billow   文件: Main.java
private Main(Config config) throws Exception {
    log.info("Startup...");

    try {
        System.out.println(Resources.toString(getResource("banner.txt"), Charsets.UTF_8));
    } catch (IllegalArgumentException | IOException e) {
        log.debug("No banner.txt", e);
    }

    final MetricRegistry metricRegistry = new MetricRegistry();
    final HealthCheckRegistry healthCheckRegistry = new HealthCheckRegistry();

    log.info("Creating database");

    final Config awsConfig = config.getConfig("aws");
    final Long refreshRate = awsConfig.getDuration("refreshRate", TimeUnit.MILLISECONDS);

    final AWSDatabaseHolder dbHolder = new AWSDatabaseHolder(awsConfig);

    final Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
    scheduler.getContext().put(AWSDatabaseHolderRefreshJob.DB_KEY, dbHolder);
    scheduler.start();

    final SimpleTrigger trigger = newTrigger().
            withIdentity(AWSDatabaseHolderRefreshJob.NAME).
            startNow().
            withSchedule(simpleSchedule().withIntervalInMilliseconds(refreshRate).repeatForever()).
            build();

    final JobDetail jobDetail = newJob(AWSDatabaseHolderRefreshJob.class).
            withIdentity(AWSDatabaseHolderRefreshJob.NAME).
            build();

    scheduler.scheduleJob(jobDetail, trigger);

    log.info("Creating age health check");
    healthCheckRegistry.register("DB", new HealthCheck() {
        @Override
        protected Result check() throws Exception {
            return dbHolder.healthy();
        }
    });

    log.info("Creating HTTP servers");
    final Server mainServer = new Server(config.getInt("mainPort"));
    final Server adminServer = new Server(config.getInt("adminPort"));

    configureConnectors(mainServer);
    configureConnectors(adminServer);

    log.info("Creating HTTP handlers");
    final Handler mainHandler = new Handler(metricRegistry, dbHolder, refreshRate);
    final InstrumentedHandler instrumentedHandler =
            new InstrumentedHandler(metricRegistry);
    instrumentedHandler.setHandler(mainHandler);

    mainServer.setHandler(instrumentedHandler);

    final ServletContextHandler adminHandler = new ServletContextHandler();
    adminHandler.addServlet(new ServletHolder(new AdminServlet()), "/*");

    final ServletContext adminContext = adminHandler.getServletContext();
    adminContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);
    adminContext.setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY, healthCheckRegistry);
    adminServer.setHandler(adminHandler);

    log.info("Starting HTTP servers");

    adminServer.start();
    mainServer.start();

    log.info("Joining...");

    mainServer.join();
    adminServer.join();

    log.info("Shutting down scheduler...");

    scheduler.shutdown();

    log.info("We're done!");
}
 
 类所在包
 同包方法