add monitoring of Spring Boot Camel routes
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
This commit is contained in:
@@ -1,15 +1,28 @@
|
||||
package de.thpeetz.kontor;
|
||||
|
||||
import org.apache.camel.CamelContext;
|
||||
import org.apache.camel.component.micrometer.MicrometerConstants;
|
||||
import org.apache.camel.component.micrometer.messagehistory.MicrometerMessageHistoryFactory;
|
||||
import org.apache.camel.component.micrometer.routepolicy.MicrometerRoutePolicyFactory;
|
||||
import org.apache.camel.spring.boot.CamelContextConfiguration;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
||||
import com.vaadin.flow.component.page.AppShellConfigurator;
|
||||
import com.vaadin.flow.server.PWA;
|
||||
import com.vaadin.flow.theme.Theme;
|
||||
|
||||
import io.micrometer.core.instrument.Clock;
|
||||
import io.micrometer.prometheus.PrometheusConfig;
|
||||
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
||||
import io.prometheus.client.CollectorRegistry;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
||||
|
||||
|
||||
|
||||
@Slf4j
|
||||
@EnableJpaAuditing
|
||||
@SpringBootApplication
|
||||
@@ -17,6 +30,27 @@ import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
||||
@PWA(name = "Vaadin Kontor", shortName = "Kontor", offlinePath = "offline.html", offlineResources = { "images/offline.png" })
|
||||
public class Application implements AppShellConfigurator {
|
||||
|
||||
@Bean(name = { MicrometerConstants.METRICS_REGISTRY_NAME, "prometheusMeterRegistry" })
|
||||
public PrometheusMeterRegistry prometheusMeterRegistry(
|
||||
PrometheusConfig prometheusConfig, CollectorRegistry collectorRegistry, Clock clock) {
|
||||
return new PrometheusMeterRegistry(prometheusConfig, collectorRegistry, clock);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public CamelContextConfiguration camelContextConfiguration(@Autowired PrometheusMeterRegistry registry) {
|
||||
return new CamelContextConfiguration() {
|
||||
@Override
|
||||
public void beforeApplicationStart(CamelContext camelContext) {
|
||||
camelContext.addRoutePolicyFactory(new MicrometerRoutePolicyFactory());
|
||||
camelContext.setMessageHistoryFactory(new MicrometerMessageHistoryFactory());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterApplicationStart(CamelContext camelContext) {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
log.info("Starting Kontor application");
|
||||
SpringApplication.run(Application.class);
|
||||
|
||||
@@ -25,6 +25,9 @@ spring:
|
||||
max-file-size: 10MB
|
||||
max-request-size: 10MB
|
||||
camel:
|
||||
component:
|
||||
metrics:
|
||||
metric-registry: prometheusMeterRegistry
|
||||
cloud:
|
||||
enabled: true
|
||||
springboot:
|
||||
|
||||
Reference in New Issue
Block a user