gpt4 book ai didi

java - 当 prometheus 端点调用时 MockMvc 收到 404

转载 作者:行者123 更新时间:2023-12-04 11:30:04 24 4
gpt4 key购买 nike

我想使用 MockMvc 测试 Prometheus 指标端点类(class)。
一切正常,但昨天我将项目迁移到 Java 15 , SpringBoot 2.4.3SpringCloud 2020.0.1 .现在,只有普罗米修斯测试不起作用,我收到 404 不是 200 正如预期的那样。我对 build.gradle 拥有所有必要的依赖例如:runtime("io.micrometer:micrometer-registry-prometheus") .上 application-test.yml我有一个用于禁用安全性、契约(Contract)测试协议(protocol)代理端点等的配置。
我的测试:

@ExtendWith({SpringExtension.class, PostgresSpringDataSourceExtension.class})
@ActiveProfiles({"test"})
@SpringBootTest
@AutoConfigureMockMvc
public class PrometheusEndpointTest {

@Autowired private MockMvc mockMvc;

@Test
public void metricsThroughPrometheusEndpoint() throws Exception {
MvcResult result =
this.mockMvc.perform(get("/metrics")).andExpect(status().isOk()).andReturn();
}
}
application.yaml 的一部分配置:
management:
endpoint:
prometheus:
enabled: true
endpoints:
enabled-by-default: false
web:
exposure:
include: 'prometheus'
base-path: '/'
path-mapping:
prometheus: 'metrics'

最佳答案

解决方案:我们需要在测试注解中添加属性或者添加到application-test.yml :

@ExtendWith(SpringExtension.class)
@SpringBootTest(
webEnvironment = RANDOM_PORT,
properties = "management.metrics.export.prometheus.enabled")
@ActiveProfiles({"test"})
@AutoConfigureMockMvc

关于java - 当 prometheus 端点调用时 MockMvc 收到 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66577939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com