Я пытаюсь внедрить метрику, которая выполняет проверку здоровья в Azure Event-Hub. Он установлен в весеннем API. Когда я запускаю API и скручивание в Localhost: Port/Actuator/Prometheus, он возвращает все, что вы ожидаете, так что это хорошо. Однако, когда я хочу написать модульные тесты для такого поведения, независимо от того, как я его настраиваю, она никогда не сможет найти конечную точку/Actuator/Прометеус и вернуть 404. > Класс: < /p>
@Slf4j
@Component
public class EventHubHealthCheck {
private AdminClient adminClient;
@Getter
private volatile double eventHubStatus;
@Value("${spring.kafka.bootstrap-servers}")
private String bootstrapServers;
public EventHubHealthCheck(MeterRegistry meterRegistry) {
Gauge.builder("event_hub_connectivity_status", this, EventHubHealthCheck::getEventHubStatus)
.description("Event Hub connectivity status")
.register(meterRegistry);
}
@PostConstruct
private void initAdminClient() {
Properties props = new Properties();
props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
this.adminClient = AdminClient.create(props);
}
@PreDestroy
private void closeAdminClient() {
this.adminClient.close();
}
@Scheduled(fixedRate = 60000)
private void checkEventHubConnection() {
...
}
private void eventHubStatusDown(Exception e) {
...
}}
< /code>
Я включил их в свой POM: Spring-Boot-Starter-Actuator, Micrometer-ragistry-prometheus < /p>
А вот как мой тестовый класс Посмотрите: < /p>
@EmbeddedKafka(topics = Topics.CRUD_ID_EVENT, controlledShutdown = true)
@SpringBootTest(
classes = { EventHubHealthCheck.class },
properties = {
"spring.application.name=test"})
@AutoConfigureMockMvc
@AutoConfigureObservability
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class EventHubHealthCheckTest {
private EventHubHealthCheck eventHubHealthCheck;
private SimpleMeterRegistry meterRegistry = new SimpleMeterRegistry();
private AdminClient adminClient;
private static final RequestPostProcessor JWT = jwt().jwt(Jwt.Builder::build).authorities(new SimpleGrantedAuthority("ROLE_ADMIN"));
@Autowired
private MockMvc mockMvc;
@Autowired
private EmbeddedKafkaBroker embeddedKafka;
@BeforeAll
void beforeAll() {
eventHubHealthCheck = new EventHubHealthCheck(meterRegistry);
Properties props = new Properties();
props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, embeddedKafka.getBrokersAsString());
adminClient = AdminClient.create(props);
}
@AfterAll
void tearDown() {
if (adminClient != null) {
adminClient.close();
}
embeddedKafka.destroy();
}
@Test
void shouldReportEventHubStatusUpWhenKafkaIsRunning() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/actuator/prometheus").with(JWT))
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(containsString("eventhub_connectivity_status 1.0")));
}
< /code>
} < /p>
в моем приложении. Ямль в тестовом пакете я обязательно поместил Management.endpoints.web.expure.include: 'Health, Прометей'. Я также попробовал '*'.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... prometheus
Весенний возврат 404 при попытке протестировать /привод /Прометея ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1738328741
Anonymous
Я пытаюсь внедрить метрику, которая выполняет проверку здоровья в Azure Event-Hub. Он установлен в весеннем API. Когда я запускаю API и скручивание в Localhost: Port/Actuator/Prometheus, он возвращает все, что вы ожидаете, так что это хорошо. Однако, когда я хочу написать модульные тесты для такого поведения, независимо от того, как я его настраиваю, она никогда не сможет найти конечную точку/Actuator/Прометеус и вернуть 404. > Класс: < /p>
@Slf4j
@Component
public class EventHubHealthCheck {
private AdminClient adminClient;
@Getter
private volatile double eventHubStatus;
@Value("${spring.kafka.bootstrap-servers}")
private String bootstrapServers;
public EventHubHealthCheck(MeterRegistry meterRegistry) {
Gauge.builder("event_hub_connectivity_status", this, EventHubHealthCheck::getEventHubStatus)
.description("Event Hub connectivity status")
.register(meterRegistry);
}
@PostConstruct
private void initAdminClient() {
Properties props = new Properties();
props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
this.adminClient = AdminClient.create(props);
}
@PreDestroy
private void closeAdminClient() {
this.adminClient.close();
}
@Scheduled(fixedRate = 60000)
private void checkEventHubConnection() {
...
}
private void eventHubStatusDown(Exception e) {
...
}}
< /code>
Я включил их в свой POM: Spring-Boot-Starter-Actuator, Micrometer-ragistry-prometheus < /p>
А вот как мой тестовый класс Посмотрите: < /p>
@EmbeddedKafka(topics = Topics.CRUD_ID_EVENT, controlledShutdown = true)
@SpringBootTest(
classes = { EventHubHealthCheck.class },
properties = {
"spring.application.name=test"})
@AutoConfigureMockMvc
@AutoConfigureObservability
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class EventHubHealthCheckTest {
private EventHubHealthCheck eventHubHealthCheck;
private SimpleMeterRegistry meterRegistry = new SimpleMeterRegistry();
private AdminClient adminClient;
private static final RequestPostProcessor JWT = jwt().jwt(Jwt.Builder::build).authorities(new SimpleGrantedAuthority("ROLE_ADMIN"));
@Autowired
private MockMvc mockMvc;
@Autowired
private EmbeddedKafkaBroker embeddedKafka;
@BeforeAll
void beforeAll() {
eventHubHealthCheck = new EventHubHealthCheck(meterRegistry);
Properties props = new Properties();
props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, embeddedKafka.getBrokersAsString());
adminClient = AdminClient.create(props);
}
@AfterAll
void tearDown() {
if (adminClient != null) {
adminClient.close();
}
embeddedKafka.destroy();
}
@Test
void shouldReportEventHubStatusUpWhenKafkaIsRunning() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/actuator/prometheus").with(JWT))
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(containsString("eventhub_connectivity_status 1.0")));
}
< /code>
} < /p>
в моем приложении. Ямль в тестовом пакете я обязательно поместил Management.endpoints.web.expure.include: 'Health, Прометей'. Я также попробовал '*'.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79402811/spring-return-404-when-trying-to-test-actuator-prometheus[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия