我想汇总一些指标。在我的监控应用程序中,我通过HTTP请求在所有微服务上发送请求。微服务(在其他JVM中)报告指标,使用dropwizard和执行器,它运行良好,
在for循环中,我这样打电话:
String metricsQuery = queryHTTPMetrics(application);//String in json format, from dropwizard
JsonNode node = mapper.readTree(metricsQuery);
save(application, node);
然后前端使用JsonNode, 但现在我想重新使用save JsonNode在logstash中发送它们,并避免请求所有微服务的新时间。
我可以使Slf4jReporter适用于当前JVM中的当前metricRegistry,但是如何在HTTP请求中使用远程JVM进行相同操作?我想注入我保存的所有JsonNode: - /
final Slf4jReporter reporter = Slf4jReporter.forRegistry(metricRegistry)
.outputTo(LoggerFactory.getLogger("metrics"))
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.prefixedWith("monitoringApp")
.build();
reporter.start(monitoringProperties.getMetrics().getLogs().getReportFrequency(), TimeUnit.SECONDS);
我的记录器“指标”已连接到logstash appender并正常工作。