Ich habe Dropwizard Metriken in meiner Anwendung implementiert. Ich sende Metriken an Graphite mit dem folgenden Code.Wie man benutzerdefinierte MetricFilter in GraphiteReporter hinzufügt, um nur ausgewählte metricd zu senden
final Graphite graphite = new Graphite(new InetSocketAddress("xxx.xxx.xxx.xxx", xxxx));
final GraphiteReporter graphiteReporter = GraphiteReporter.forRegistry(metricRegistry)
.prefixedWith(getReporterRootTagName())
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.filter(MetricFilter.ALL)
.build(graphite);
graphiteReporter.start(Integer.parseInt(getTimePeriod()), timeUnit);
Ich möchte benutzerdefinierte MetricFilter hinzufügen, so dass stattdessen alle Metriken des Sendens nur wenige spezifische Metriken Graphit gesendet werden.
z. max, mean, min, mean nur.
Bitte verwenden Sie MetricFilter.
Danke, ich glaube, ich habe meine Frage nicht korrekt gepostet. Eigentlich möchte ich die Timer-Metriken filtern ** bedeuten Zählrate 1-Minute-Rate 5-Minuten-Rate 15-Minuten-Rate min max bedeuten stddev Median 75% 95% 98% 99 % 99,9% ** Ich möchte eine Möglichkeit, nur ausgewählte zu Graphite zu senden. –
Hmm, also willst du all diese aus/in filtern? Die von Ihnen aufgelisteten werden von Zeitgebern/Zählern gemeldet. Wenn Sie all diese herausfiltern wollen, sollte es einfach sein. Wenn Sie nur einen Teil von ihnen haben wollen, gibt es einen fiesen Workaround, aber es sollte funktionieren - also welcher ist es? –
Ja du hast Recht, ich will nur ** zählen, bedeuten, min, max ** und außerdem ist es möglich, X Minuten Dauer in Timer-Metriken abgesehen von Standard 1,5,15 mins zu haben? –