无法让 Prometheus 与 Spring Boot 2.0.3 一起使用

TKM*_*TKM 4 spring-boot prometheus

我正在使用具有以下依赖项的 Spring Boot 2.0.3.RELEASE:

spring-boot-starter-actuator:2.0.3.RELEASE
micrometer-core:1.0.6
micrometer-registry-prometheus:1.0.6
Run Code Online (Sandbox Code Playgroud)

但是当我调用 Prometheus 时,我得到的只是

{
    "timestamp": 1532426317772,
    "status": 406,
    "error": "Not Acceptable",
    "message": "Could not find acceptable representation",
    "path": "/actuator/prometheus"
}

*and/or from browser*
There was an unexpected error (type=Not Acceptable, status=406).
Could not find acceptable representation
Run Code Online (Sandbox Code Playgroud)

我还使用 Spring Boot 2 尝试了 1.0.X 范围内的先前 Prometheus 版本,但没有成功。有人可以提出一些见解吗?非常感谢。

小智 7

我们最近遇到了同样的问题。在调试 Spring Boot 时,我发现我们没有注册可以处理“text/plain”MediaType 的 HttpMessageConverter,只有“application/json”。由于 Prometheus 端点返回“text/plain”MediaType,我们添加了一些配置作为临时解决方法。我们添加了一个链接到特定 MediaType 的 StringHttpMessageConverter。

@Configuration
public class ApplicationConfiguration implements WebMvcConfigurer {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        StringHttpMessageConverter converter = new StringHttpMessageConverter();
        converter.setSupportedMediaTypes(Arrays.asList(MediaType.TEXT_PLAIN));
        converters.add(converter);
    }

}
Run Code Online (Sandbox Code Playgroud)

希望这对你有帮助