Отправить метрики Apache Camel Actuator для компании Prometheus - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь переслать / добавить метрики Actuator Camel из /actuator/camelroutes (метрики маршрутизации, такие как количество обменов / транзакций) в конечную точку Prometheus Actuator. Есть ли способ настроить Camel для добавления этих метрик в PrometheusMeterRegistry?

Я попытался добавить:

camel.component.metrics.metric-registry=io.micrometer.prometheus.PrometheusMeterRegistry

в моем application.properties в соответствии с документацией здесь: https://camel.apache.org/components/latest/metrics-component.html

Но все же ничего, относящегося к Apache Camel, не отображается в actuator/prometheus

Вот зависимости, которые я использую с Spring Boot 2.1.9 и ApacheВерблюд 2.24.2 :

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
        <groupId>org.apache.camel</groupId>
            <artifactId>camel-metrics-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Получил метрики Camel Routes, работающие в конечной точке /actuator/prometheus.

Используйте зависимость camel-micrometer-starter , как указано в комментарии @ claus-ibsen.

        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-metrics-starter</artifactId>
        </dependency>

Установите следующее в вашем файле свойств:

camel.component.metrics.metric-registry=prometheusMeterRegistry

Затем добавьте настройку Camel Context для использования MicrometerRouterPolicyFactory и MicrometerMessageHistoryFactory. Код, показанный ниже, - это места в классе конфигурации:

@Configuration
public class AppConfig {

    @Bean
    public CamelContextConfiguration camelContextConfiguration() {

        return new CamelContextConfiguration() {
            @Override
            public void beforeApplicationStart(CamelContext camelContext) {
                camelContext.addRoutePolicyFactory(new MicrometerRoutePolicyFactory());
                camelContext.setMessageHistoryFactory(new MicrometerMessageHistoryFactory());
            }

            @Override
            public void afterApplicationStart(CamelContext camelContext) {

            }
        };
    }

}

Вам необходимо запустить обмен на маршруте, чтобы метрики отображались в /actuator/prometheus.

Вот метрики, доступныеПрометею:

  1. CamelMessageHistory_seconds_count
  2. CamelMessageHistory_seconds_max
  3. CamelRoutePolicy_seconds_max
  4. CamelRoutePolicy_secon_30 Вы можете использовать JMX Exporter jar для Prometheus, чтобы получить более подробные метрики от JMX Camel. Я хотел бы избежать этого подхода, поскольку это означало бы, что для каждого имеющегося у меня приложения Camel Spring Boot будет использоваться 2 порта;1 для метрик JMX и 1 для метрик исполнительного механизма.
0 голосов
/ 25 октября 2019

Существует зависимость camel-micrometer-starter, которую вы должны использовать вместо этого, которая интегрируется с микрометром. И затем вы можете использовать политику маршрутизации микрометра из этой зависимости, чтобы позволить ей отслеживать все ваши маршруты. См. Документы по адресу: https://camel.apache.org/components/2.x/micrometer-component.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...