Получил метрики 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
.
Вот метрики, доступныеПрометею:
- CamelMessageHistory_seconds_count
- CamelMessageHistory_seconds_max
- CamelRoutePolicy_seconds_max
- CamelRoutePolicy_secon_30 Вы можете использовать JMX Exporter jar для Prometheus, чтобы получить более подробные метрики от JMX Camel. Я хотел бы избежать этого подхода, поскольку это означало бы, что для каждого имеющегося у меня приложения Camel Spring Boot будет использоваться 2 порта;1 для метрик JMX и 1 для метрик исполнительного механизма.