Статьи

Использование метрических тегов с MicroProfile Metrics 2.0

Связанные с бизнесом показатели, которые отправляются из нашего приложения, могут содержать параметры (т. Е. Теги или метки ), для которых измеряется конкретный показатель. Начиная с 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, являются их собственными.