我們使用包含代碼的指標庫的dropwizard。我想用這個庫來報告Java應用程序的一些指標。 我們有一個自定義指標報告引擎,用於處理由內部應用程序發出的指標,但期望指標具有特定的JSON格式。使Metrics庫能夠以自定義JSON格式報告指標的最佳方式是什麼?這是否需要將代碼更改爲度量標準庫?或者我必須編寫一個自定義翻譯器應用程序?指標報告定製
我在「指標」手冊或谷歌上找不到關於自定義報告的任何內容。這也給我帶來了這樣的問題:「這是正確的做法嗎?」
歡迎任何建議/想法。謝謝。
我們使用包含代碼的指標庫的dropwizard。我想用這個庫來報告Java應用程序的一些指標。 我們有一個自定義指標報告引擎,用於處理由內部應用程序發出的指標,但期望指標具有特定的JSON格式。使Metrics庫能夠以自定義JSON格式報告指標的最佳方式是什麼?這是否需要將代碼更改爲度量標準庫?或者我必須編寫一個自定義翻譯器應用程序?指標報告定製
我在「指標」手冊或谷歌上找不到關於自定義報告的任何內容。這也給我帶來了這樣的問題:「這是正確的做法嗎?」
歡迎任何建議/想法。謝謝。
度量標準附帶metrics-json
,其中有兩個可重複使用的模塊供Jackson使用。
這允許將所有度量類型和運行狀況檢查序列化爲標準的,易於解析的JSON格式。
這裏是在GitHub上的包:https://github.com/dropwizard/metrics/tree/master/metrics-json
您也可以在度量實例的數據建立自己的JSON數據。
您可以通過HTTP發送您的JSON,或者您正在使用的發送數據的數據發送到您的指標引擎。
這裏是一個例子JsonSl4jReporter
public class JsonSl4jReporter extends ScheduledReporter {
private static final Logger logger = LoggerFactory.getLogger(JsonSl4jReporter.class);
private final ObjectMapper mapper;
public static JsonSl4jReporter create(MetricRegistry registry) {
return new JsonSl4jReporter(registry, MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS);
}
private JsonSl4jReporter(MetricRegistry registry, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit) {
super(registry, "json-sl4j-reporter", filter, rateUnit, durationUnit);
// from metrics-json
MetricsModule metricsModule = new MetricsModule(rateUnit, durationUnit, false, filter);
// jackson mapper
mapper = new ObjectMapper().registerModule(metricsModule);
mapper.enable(SerializationFeature.INDENT_OUTPUT);
}
@Override
public void report(SortedMap<String, Gauge> gauges, SortedMap<String, Counter> counters, SortedMap<String, Histogram> histograms, SortedMap<String, Meter> meters, SortedMap<String, Timer> timers) {
log(gauges);
log(counters);
log(histograms);
log(meters);
log(timers);
}
private void log(Map<String, ?> data){
if(data.isEmpty()) return;
try {
String json = mapper.writeValueAsString(data);
logger.debug(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
正如你所看到的,你就必須使用MetricModul
從的ObjectMapper
配置指標,JSON
任何文件爲'指標,JSON '圖書館?網站在這裏,但我沒有看到任何文檔:https://dropwizard.github.io/metrics/3.1.0/manual/json/ –