[英]Azure Application Insights doesn't show live metrics when using Java 8 and application insights SDK version 1.0.8
[英]Micrometer metrics & Application Insights java agent - Metrics accumulate although they shouldn't (or am I missing something)
我們有一個 Java EE JAX-RS 應用程序(Java EE 8 托管在 WildFly 20 上),其中我們將 Micrometer (v1.6.4) 配置為度量框架。 我們正在嘗試將其與 Azure Application Insights 連接,以便相關 Application Insights 資源可以使用指標(然后添加警報等)。
為此,我們附加了無代碼 Application Insights 代理 (v3.0.2),該代理無需任何代碼更改即可自動發布 Micrometer 指標。 最重要的是,我們在 globalRegistry 中添加了一個 PrometheusMeterRegistry,僅用於調試目的(我們不使用 Prometheus)。
Metrics.globalRegistry.add(new PrometheusMeterRegistry(PrometheusConfig.DEFAULT));
最重要的是,我們配置了一個端點,它使用以下代碼片段返回 Prometheus 數據:
PrometheusMeterRegistry promRegistry = (PrometheusMeterRegistry) registry;
result = promRegistry.scrape();
代理附加了一個配置文件,其中僅設置了應用程序的連接字符串和角色名稱。
代理正確啟動,並且數據在 Application Insights 資源中發布。 自定義指標可在資源的 Monitoring -> Metrics 區域中選擇。
我們面臨的問題是指標數據會隨着時間的推移而累積,盡管它們不應該如此。 並舉個例子:
...
Builder timerBuilder = Timer.builder(timerName);
Timer timer = timerBuilder.register(metricsProducer.getMetricsRegistry());
return timer.record(() -> {
try {
return ctx.proceed();
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
});
假設我們只調用一次綁定到 Counter 的操作。 我們期望 Counter 值為 1,這是我們通過日志記錄確認的。 還假設我們只調用一次綁定到 Timer 的操作。 我們期望只有這種觸發被測量和記錄。
在 Application Insights 資源中,我們看到每次代理發布信息時都會更新指標信息,並在后端沒有任何觸發器的情況下修改值。 特別是,這兩個指標都會增加 Count 聚合值,但由於 Timer 的持續時間不會改變,因此平均值會下降(表明通過持續時間 0 的指標值)。
另一方面,當調用 Prometheus 抓取端點時,數據被正確返回,即兩個指標的 Count 都保持為 1,並且數據是預期的。
我已經嘗試過使用 SpringBoot 作為底層框架,再次獲得相同的結果。
有什么想法嗎? 我錯過了什么嗎?
謝謝
萬吉利斯
這是千分尺庫中的一個問題,並且已經創建了一個相關的PR
千分尺中的這個問題是否可能與我在這里描述的有關?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.