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