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

com.yammer.metrics.reporting.guice.MetricsServletProvider Maven / Gradle / Ivy

package com.yammer.metrics.reporting.guice;

import java.util.Set;

import com.yammer.metrics.core.HealthCheckRegistry;
import com.yammer.metrics.core.MetricsRegistry;
import org.codehaus.jackson.JsonFactory;

import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.name.Named;
import com.yammer.metrics.core.HealthCheck;
import com.yammer.metrics.reporting.MetricsServlet;

public class MetricsServletProvider 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 MetricsServletProvider(Set healthChecks,
                                  MetricsRegistry metricsRegistry,
                                  HealthCheckRegistry healthCheckRegistry,
                                  @Named("MetricsServlet.HEALTHCHECK_URI") String healthcheckUri,
                                  @Named("MetricsServlet.METRICS_URI") String metricsUri,
                                  @Named("MetricsServlet.PING_URI") String pingUri,
                                  @Named("MetricsServlet.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("MetricsServlet.JSON_FACTORY") JsonFactory jsonFactory) {
        this.jsonFactory = jsonFactory;
    }

    @Override
    public MetricsServlet get()
    {
        for (HealthCheck healthCheck : healthChecks) {
            healthCheckRegistry.register(healthCheck);
        }
        if (jsonFactory != null) {
            return new MetricsServlet(metricsRegistry, healthCheckRegistry, jsonFactory, healthcheckUri, metricsUri, pingUri, threadsUri, true);
        }
        else {
            return new MetricsServlet(metricsRegistry, healthCheckRegistry, healthcheckUri, metricsUri, pingUri, threadsUri, true);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy