springBoot或者springCloud 的集成 Prometheus監控-數據沒法解析

問題

1.spring.cloud.alibaba.版本2.2.1.RELEAS在用Micrometer 集成 Prometheus監控的時候,遇到prometheus的數據沒法解析,報錯緣由是:supportedMediaTypes支持的類型不存在。
2.springBoot在集成Prometheus監控時,訪問http://localhost:80/actuator/prometheus 時,報錯
【org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.lang.String] with preset Content-Type 'null'】java

定位問題

二者的問題都在於[prometheus的數據沒法解析,supportedMediaTypes支持的類型不存在。]
1.根據錯誤信息查看:
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor的方法writeWithMessageConvertersweb

異常

  • 低版本micrometer-registry-prometheus沒法正常顯示:
`Could not find acceptable representation`
  • 高版本1.3.5 micrometer-registry-prometheus沒法正常顯示:
HttpMessageNotWritableException: No converter for [class java.lang.String] with preset Content-Type 'null'

解決方案分析

解決Could not find acceptable representation
出現這種異常的緣由是由於在你的項目中,直接new MappingJackson2HttpMessageConverter對象,沒有設置它的MediaType,使得它只支持MediaType.APPLICATION_JSON一種類型而缺乏其餘的mediaTypes類型。spring

解決方法

將丟失的mediaTypes類型都加到MappingJackson2HttpMessageConverter。bash

List<MediaType> mediaTypes = Arrays.asList(
                MediaType.APPLICATION_JSON,
                MediaType.TEXT_PLAIN,
                MediaType.TEXT_HTML,
                MediaType.TEXT_XML,
                MediaType.APPLICATION_OCTET_STREAM);
        jackson2HttpMessageConverter.setSupportedMediaTypes(mediaTypes);

實例示例
參考連接:https://blog.csdn.net/shenhonglei1234/article/details/105828795
https://blog.csdn.net/shenhonglei1234/article/details/106922919mvc

相關文章
相關標籤/搜索