Связанные с бизнесом показатели, которые отправляются из нашего приложения, могут содержать параметры (т. Е. Теги или метки ), для которых измеряется конкретный показатель. Начиная с MicroProfile Metrics 2.0 можно назначать теги определенным метрикам с помощью API.
Декларативный подход
Предполагая, что у нас есть следующий ресурс:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
@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, мы увидим значения наших показателей:
1
2
3
4
5
6
|
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 |
Программный подход
Также возможно динамически создавать и извлекать метрики в зависимости от значений их тегов.
Для бизнес-логики, которая создает автомобили, мы можем динамически создать или получить счетчик следующим образом:
01
02
03
04
05
06
07
08
09
10
11
12
13
|
public class CarManufacturer { @Inject MetricRegistry metricRegistry; public void createCar(CarColor color) { Counter counter = metricRegistry.counter( "cars_produced" , new Tag( "color" , color.name())); counter.inc(); // ... } } |
Результатом являются похожие метки:
1
2
3
4
5
6
|
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 |
Вы уже можете попробовать эту и другие функции MicroProfile 3.0 в Open Liberty версии 19.0.0.7 .
Это изменение в Metrics API делает использование других сторонних библиотек устаревшим. Это использование теперь можно заменить на MicroProfile Metrics 2.0.
Нашли пост полезным? Подпишитесь на мою рассылку, чтобы получить больше бесплатного контента, советы и рекомендации по IT и Java
Успех! Теперь проверьте свою электронную почту, чтобы подтвердить свою подписку.
Все мнения мои и не отражают мнения моего работодателя или коллег.
Опубликовано на Java Code Geeks с разрешения Себастьяна Дашнера, партнера нашей программы JCG. Посмотрите оригинальную статью здесь: Использование метрических тегов с MicroProfile Metrics 2.0 Мнения, высказанные участниками Java Code Geeks, являются их собственными. |