将指标标签与MicroProfile Metrics 2.0结合使用

石臻
2023-12-01

从我们的应用程序发出的与业务相关的度量标准可能包含要为其测量特定度量标准的参数(即标签标签 )。 从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

 类似资料: