2017-10-19 51 views
0

J'ai une simple application web java fonctionnant sur Tomcat que je voudrais surveiller en utilisant Prometheus. J'ai ajouté des compteurs et des jauges à mon application java en utilisant the official client, j'ai installé Prometheus sur un autre serveur et je ne voudrais pas tirer les mesures de mon application java en utilisant Prometheus.Surveiller l'application web Java en utilisant Prometheus

Prometheus a obtenu tons of exporters mais je ne sais pas lequel correspond à mon cas d'utilisation. J'ai envisagé d'utiliser Prometheus push gateway mais selon le documentation, le seul cas d'utilisation valide de la passerelle Pushgateway est de capturer le résultat d'un travail par lots de niveau service, ce qui n'est pas mon cas. Que dois-je faire pour extraire les statistiques de mon application Java?

Répondre

0

Pour vous inscrire MetricsServlet:

Si vous utilisez le printemps-boot enregistrer un haricot pour représenter le point final:

@Bean 
ServletRegistrationBean registerPrometheusExporterServlet(CollectorRegistry metricRegistry) { 
    ServletRegistrationBean srb = new ServletRegistrationBean(); 
    srb.setServlet(new MetricsServlet(metricRegistry)); 
    srb.setUrlMappings(Arrays.asList("/prometheus")); 
    return srb; 
} 

Dans le cas d'une application non-printemps ajouter le servlet web.xml:

<servlet> 
     <servlet-name>metrics</servlet-name> 
     <servlet-class>io.prometheus.client.exporter.MetricsServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>metrics</servlet-name> 
     <url-pattern>/metrics/</url-pattern> 
    </servlet-mapping> 
</servlet> 
2

Votre application devrait exposer les métriques sur HTTP. Vous voulez probablement connecter le servlet à votre serveur Web existant.

+0

Ceci est un bon exemple pour Jetty, qu'en est-il de Tomcat? – forhas

+0

@forhas: servlet neutre au conteneur – rkosegi