我使用的是Sping Boot 2.0.3.RELEASE,具有以下依赖项:
spring-boot-starter-actuator:2.0.3.RELEASE
micrometer-core:1.0.6
micrometer-registry-prometheus:1.0.6
但当我召唤普罗米修斯时我得到的只是
{
"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
我也试过以前的Prometheus发布的1.0.X系列的Sping Boot 2,但是没有运气。有人能给我一些见解吗?非常感谢。
5条答案
按热度按时间mklgxw1f1#
我们最近遇到了同样的问题。在调试Sping Boot 时,我发现我们没有注册可以处理“text/plain”媒体类型的HttpMessageConverter,只有“application/json”。因为Prometheus端点返回“text/plain”媒体类型,所以我们添加了一些配置作为临时解决方案。我们添加了一个链接到特定媒体类型的StringHttpMessageConverter。
希望这对你有帮助
unftdfkk2#
可能是406状态码,也可以通过指定的接受头由客户端解析。如下所示:
curl -v -H "Accept: text/plain" url
kse8i1jr3#
出现此错误的另一个原因是无效的Spring XML配置文件包含类似以下内容:
上面的XML覆盖了
RequestMappingHandlerAdapter
中的messageConverters
列表,因此只有列出的转换器可用,在我的例子中,这删除了在请求/actuator/prometheus
时导致406错误响应的字符串转换器。pbwdgjma4#
可能不是一个明确的答案,但希望这是一些帮助。我把prometheus集成到一个我没有开发的服务中,也遇到了同样的问题。我把它缩小到这个代码块(删除它使它工作)
所以检查一下你的转换方法可能会有点帮助。我做的回购是用Jackson而不是gson来做这类事情,所以这就是我要走的路。不是一个理想的解决方案,但缺乏更好的解决方案...
w8ntj3qf5#
如果其他答案没有帮助,可以将配置添加到ContentNegotiationConfigurer中。您可以将defaultContentType设置为“MediaType.TEXT_PLAIN”。