从我们的应用程序发出的与业务相关的度量标准可能包含要为其测量特定度量标准的参数(即标签或标签 )。 从MicroProfile Metrics 2.0开始,可以使用API将标签分配给特定的指标。
声明式方法
假设我们有以下资源:
@Path ( "greetings" ) public class GreetingsResource { @GET @Path ( "hello" ) @Counted (name = "greetings" , tags = "greeting=formal" ) public String hello() { return "Здравствуйте" ; } @GET @Path ( "hi" ) @Counted (name = "greetings" , tags = "greeting=casual" ) public String hi() { return "Привет" ; } }
根据将访问的资源,我们将增加由名称greetings
和标签greeting=formal
或 greeting=casual
之一标识的计数器:
当访问MicroProfile Metrics端点时,我们将看到我们的指标值:
curl http: //localhost:9080/metrics/ [...] # TYPE application_com_example_GreetingsResource_greetings_total counter application_com_example_GreetingsResource_greetings_total{greeting= "formal" } 2 # TYPE application_com_example_GreetingsResource_greetings_total counter application_com_example_GreetingsResource_greetings_total{greeting= "casual" } 5
程序化方法
还可以根据其标签的值动态创建和检索指标。
对于创建汽车的业务逻辑,我们可以动态创建或检索一个计数器,如下所示:
public class CarManufacturer { @Inject MetricRegistry metricRegistry; public void createCar(CarColor color) { Counter counter = metricRegistry.counter( "cars_produced" , new Tag( "color" , color.name())); counter.inc(); // ... } }
产生类似的,标记的指标:
curl http: //localhost:9080/metrics/ [...] # TYPE application_cars_produced_total counter application_cars_produced_total{color= "blue" } 1 # TYPE application_cars_produced_total counter application_cars_produced_total{color= "red" } 3
您已经可以在Open Liberty版本19.0.0.7上试用此功能和其他MicroProfile 3.0功能。
Metrics API中的这一更改使使用其他第三方库变得过时了。 现在可以用MicroProfile Metrics 2.0代替这种用法。
发现帖子有用吗? 订阅我的时事通讯,获取有关IT和Java的更多免费内容,技巧和窍门:
成功! 现在检查您的电子邮件以确认您的订阅。
所有观点均为我个人观点,并不反映我雇主或同事的观点。
翻译自: https://www.javacodegeeks.com/2019/08/using-metric-tags-with-microprofile-metrics-2-0.html