L'exportation de Printemps de Démarrage de l'Actionneur Métriques (& Dropwizard Métriques) à Statsd
J'essaye d'exporter tous les paramètres sont visibles à l'extrémité /metrics
à un StatsdMetricWriter
.
J'ai la configuration suivante de la classe de la mesure:
package com.tonyghita.metricsdriven.service.config;
import com.codahale.metrics.MetricRegistry;
import com.ryantenney.metrics.spring.config.annotation.EnableMetrics;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.ExportMetricReader;
import org.springframework.boot.actuate.autoconfigure.ExportMetricWriter;
import org.springframework.boot.actuate.metrics.reader.MetricReader;
import org.springframework.boot.actuate.metrics.reader.MetricRegistryMetricReader;
import org.springframework.boot.actuate.metrics.statsd.StatsdMetricWriter;
import org.springframework.boot.actuate.metrics.writer.MetricWriter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableMetrics(proxyTargetClass = true)
public class MetricsConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(MetricsConfig.class);
@Value("${statsd.host:localhost}")
private String host = "localhost";
@Value("${statsd.port:8125}")
private int port;
@Autowired
private MetricRegistry metricRegistry;
@Bean
@ExportMetricReader
public MetricReader metricReader() {
return new MetricRegistryMetricReader(metricRegistry);
}
@Bean
@ExportMetricWriter
public MetricWriter metricWriter() {
LOGGER.info("Configuring StatsdMetricWriter to export to {}:{}", host, port);
return new StatsdMetricWriter(host, port);
}
}
Qui écrit toutes les mesures que j'ai ajouté à Statsd, mais je voudrais aussi envoyer du système/de la JVM des mesures qui sont visibles sur le /metrics
point de terminaison.
Ce qui me manque?
Peut-être que PR (en cours de fusion), permettrait de
L'espoir qui est fusionné @StéphaneNicoll! Cette modification ajoute confort autour de la configuration de l'Statsd écrivain, mais ma question est plus le long des lignes de la façon de configurer un
FTR, il est fusionné.
L'espoir qui est fusionné @StéphaneNicoll! Cette modification ajoute confort autour de la configuration de l'Statsd écrivain, mais ma question est plus le long des lignes de la façon de configurer un
@ExportMetricReader
bean qui exporte les mesures disponibles à la /metrics
point de terminaison.FTR, il est fusionné.
OriginalL'auteur Tony Ghita | 2015-08-25
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et trouvé une solution ici: https://github.com/tzolov/export-metrics-example
Il suffit d'ajouter une
MetricsEndpointMetricReader
à votre config et tout ce qui est disponible à th e/métriques de point de terminaison sera publié à laStatsdMetricWriter
.Voici un exemple complet de config pour le printemps de démarrage 1.3.x et dropwizard des paramètres de la jvm 3.1.x:
OriginalL'auteur mxsb
De ce que j'ai vu au printemps-le code de démarrage, seuls les appels à
CounterService
etGaugeService
implémentations sont transmis à dropwizard deMetricRegistry
.Donc, comme vous l'avez déjà observé, seulement
counter.*
etgauge.*
métrique à partir de la/metrics
point de terminaison à la fin dansStatsd
.Système et de la JVM mesures sont exposés par le biais de la coutume
SystemPublicMetrics
classe, qui n'a pas de compteur d'utilisation ou d'évaluer le service.Je ne sais pas si il y a une solution plus simple (peut-être que quelqu'un de l'équipe de Printemps des commentaires), mais une façon de le faire (pas de printemps-démarrage spécifique) serait d'utiliser une tâche planifiée qui écrit périodiquement le système de statistiques de l'
MetricRegistry
.SystemPublicMetrics
, mais comme vous l'avez souligné, il n'est pas si simple. Heureusement, il y a un'io.dropwizard.metrics:metrics-jvm'
bibliothèque qui gère l'exportation de la jvm des métriques de bien. Je voudrais encore les exporter gentil matou métriques, donc il peut être intéressant d'explorer la solution que vous avez proposée.OriginalL'auteur mzc
Pour vous inscrire JVM mesures que vous pouvez utiliser la JVM liées MetricSets fourni par codehale.métriques.la jvm de la bibliothèque. Vous pouvez simplement ajouter l'ensemble sans fournir de savoir s'ils sont des jauges ou des compteurs.
Voici mon exemple de code où je m'inscris jvm paramètres connexes:
}
Note: j'utilise le printemps de démarrage de la version 1.3.0.M4
'io.dropwizard.metrics:metrics-jvm:3.1.2'
de mes dépendances, et l'enregistrement deGarbageCollectorMetricSet
,MemoryUsageGaugeSet
, etThreadStatesGaugeSet
à lametricRegistry
. J'espérais être en mesure d'utiliser l'existantSystemPublicMetrics
mécanisme, mais cela aussi fait le travail. Regarde comme il est également unmetrics-jdbi
bibliothèque! Le temps de creuser pour ça 🙂Je pense que le dernier morceau pour moi serait de comprendre comment ajouter tomcat/point de terminaison de stats pour le registre.
Wilkof: jar le 'StatsdProperties' classe devient importées, j'ai pas l'impression de l'avoir au sein de 'io.dropwizard.metrics', 'com.ryantenney.métriques " et "spring-boot-starter-actionneur'. Ai-je besoin d'ajouter quelque chose à mon pom.xml? Merci.
il n'appartient pas à une bibliothèque, juste une classe qui est mappé avec des propriétés. Il est inspiré par le PR github.com/spring-projects/spring-boot/pull/3719 posté un commentaire à la question d'origine.
OriginalL'auteur Yonatan Wilkof
Profitez-en! (voir le public métriques enregistré dans la console dropwizard métriques)
Un autre, qui est sans doute le moyen le plus propre est décrit ici: stackoverflow.com/a/42933115/716720
Malheureusement printemps gars pense que c'est FAIBLE. github.com/spring-projects/spring-boot/issues/4197
Merci pour le pointeur!
OriginalL'auteur CelinHC