33 lines
1.3 KiB
Java
33 lines
1.3 KiB
Java
package me.bvn13.kafka.health;
|
|
|
|
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
@Configuration
|
|
@ConditionalOnClass(AbstractHealthIndicator.class)
|
|
@ConditionalOnProperty(name = "kafka.health.enabled", havingValue = "true")
|
|
public class KafkaHealthAutoConfiguration {
|
|
|
|
@Bean
|
|
@ConditionalOnMissingBean(KafkaHealthProperties.class)
|
|
@ConfigurationProperties("kafka.health")
|
|
public KafkaHealthProperties kafkaHealthProperties() {
|
|
return new KafkaHealthProperties();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnMissingBean(KafkaConsumingHealthIndicator.class)
|
|
public KafkaConsumingHealthIndicator kafkaConsumingHealthIndicator(KafkaHealthProperties kafkaHealthProperties,
|
|
KafkaProperties kafkaProperties) {
|
|
return new KafkaConsumingHealthIndicator(kafkaHealthProperties, kafkaProperties.buildConsumerProperties(),
|
|
kafkaProperties.buildProducerProperties());
|
|
}
|
|
|
|
}
|