All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yammer.metrics.guice.servlet.AdminServletProvider Maven / Gradle / Ivy

The newest version!
package com.yammer.metrics.guice.servlet;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.name.Named;
import com.yammer.metrics.core.*;
import com.yammer.metrics.reporting.*;

import java.util.Set;

public class AdminServletProvider implements Provider {
    private final MetricsRegistry metricsRegistry;
    private final HealthCheckRegistry healthCheckRegistry;
    private final Set healthChecks;
    private final String healthcheckUri;
    private final String metricsUri;
    private final String pingUri;
    private final String threadsUri;
    private JsonFactory jsonFactory;

    @Inject
    public AdminServletProvider(Set healthChecks,
                                MetricsRegistry metricsRegistry,
                                HealthCheckRegistry healthCheckRegistry,
                                @Named("AdminServlet.HEALTHCHECK_URI") String healthcheckUri,
                                @Named("AdminServlet.METRICS_URI") String metricsUri,
                                @Named("AdminServlet.PING_URI") String pingUri,
                                @Named("AdminServlet.THREADS_URI") String threadsUri) {
        this.metricsRegistry = metricsRegistry;
        this.healthCheckRegistry = healthCheckRegistry;
        this.healthcheckUri = healthcheckUri;
        this.metricsUri = metricsUri;
        this.pingUri = pingUri;
        this.threadsUri = threadsUri;
        this.healthChecks = healthChecks;
    }

    @Inject(optional = true)
    public void setJsonFactory(@Named("AdminServlet.JSON_FACTORY") JsonFactory jsonFactory) {
        this.jsonFactory = jsonFactory;
    }

    @Override
    public AdminServlet get() {
        for (HealthCheck healthCheck : healthChecks) {
            healthCheckRegistry.register(healthCheck);
        }

        final JsonFactory factory = jsonFactory == null ? new JsonFactory(new ObjectMapper()) : jsonFactory;

        return new AdminServlet(new HealthCheckServlet(healthCheckRegistry),
                                new MetricsServlet(Clock.defaultClock(),
                                                   VirtualMachineMetrics.getInstance(),
                                                   metricsRegistry, factory, true),

                                new PingServlet(),
                                new ThreadDumpServlet(VirtualMachineMetrics.getInstance()),
                                healthcheckUri, metricsUri, pingUri, threadsUri);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy