使用测微计收集应用程序指标
什么是千分尺?
千分尺是一個簡單的外觀,用于以供應商中立的方式收集Java應用程序中的指標。 您可以考慮使用SLF4J作為指標。 Micrometer內置了對許多不同指標后端的支持,包括Atlas,Datadog,Elastic,JMX等。 在本文中,我們將看到如何在Java應用程序中使用Micrometer收集指標。
千分尺依賴性
首先,我們需要將千分尺依賴性添加到我們的項目中。 請注意,您需要根據要使用的指標后端選擇正確的依賴關系。
在這里,我們選擇JMX,因此我們需要micrometer-registry-jmx工件。
< dependency > < groupId >io.micrometer</ groupId > < artifactId >micrometer-registry-jmx</ artifactId > < version >1.2.0</ version > </ dependency >例如:如果要使用Elasticsearch而不是JMX,則需要添加micrometer-registry-elastic。
創建一個MeterRegistry
在開始收集指標之前,我們需要創建一個MeterRegistry。 MeterRegistry用于創建儀表,然后收集實際指標。
根據您要使用的指標后端,MeterRegistry是一個具有不同實現的界面。 最簡單的MeterRegistry實現是SimpleMeterRegistry,它不會在任何地方導出數據。 它只是在內存中保存每個儀表的最新值。
MeterRegistry registry = new SimpleMeterRegistry();如果我們想將度量標準數據導出到JMX,則需要創建一個JmxMeterRegistry。
MeterRegistry registry = new JmxMeterRegistry( new JmxConfig() { @Override public String get(String s) { return null ; } }, Clock.SYSTEM);傳遞的JmxConfig實例的get()方法可用于提供其他配置值。 在簡單的示例中,我們不需要此功能,因此我們只返回null。
如果要將指標導出到多個監視后端,則可以使用CompositeMeterRegistry。 CompositeMeterRegistry將數據傳遞給一個或多個其他注冊表,使您可以將指標發布到多個指標后端。
例如:
CompositeMeterRegistry registry = new CompositeMeterRegistry(); registry.add( new JmxMeterRegistry(..)); registry.add( new ElasticMeterRegistry(..));儀表
儀表是用于收集指標的千分尺接口。 儀表的示例實現是計數器,計時器和儀表。
創建一個柜臺
我們可以使用一個簡單的構建器API創建一個Counter:
Counter counter = Counter .builder( "my.counter" ) .description( "counts something important" ) .tag( "environment" , "test" ) .tag( "region" , "us-east" ) .register(registry);這將創建一個名為my.counter的計數器,并將其添加到名為Registry的MeterRegistry中。 我們還可以向我們的計數器添加一個或多個標簽和可選說明。 儀表通常創建一次,然后多次使用。
為了增加計數器的值,我們可以調用crement()方法:
counter.increment(); // increment by one counter.increment( 2.5 );創建一個計時器
可以通過類似的方式創建計時器:
Timer timer = Timer.builder( "my.timer" ).register(registry);在這里,我們跳過了可選參數,例如標記或說明。
現在,我們可以使用record()方法將計時指標添加到計時器中:
// recording execution time of code timer.record(() -> { // do something }); // record a precomputed value timer.record(Duration.ofMillis( 123 ));在JConsole中查看結果
由于我們使用的是JmxMeterRegistry,因此可以通過JMX訪問我們的指標信息。 為此,我們可以使用JConsole ,可以通過在您的<jdk> / bin目錄中執行jconsole來啟動它。 連接到Java應用程序過程后,您可以在MBeans選項卡中找到當前的應用程序指標:
當然,如果您使用其他MetricsRegistry,則必須使用其他工具來查看指標。 例如,如果您使用的是ElasticMeterRegistry,則可以使用Kibana。
摘要
千分尺提供了易于使用的外觀,可在Java應用程序中使用該外觀來收集應用程序指標。 然后可以將這些指標信息導出到許多不同的后端技術(包括Elasticsearch和JMX)。 您可以在GitHub上找到示例的源代碼。
翻譯自: https://www.javacodegeeks.com/2019/12/collecting-application-metrics-with-micrometer.html
總結
以上是生活随笔為你收集整理的使用测微计收集应用程序指标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓版小霸王游戏(安卓版小霸王)
- 下一篇: JUnit 5和Selenium –使用