我正在尝试在基于微服务的 spring boot 应用程序中实现 Prometheus,该应用程序部署在 weblogic 服务器上。作为 POC 的一部分,我已将配置包含在一场战争中。为了启用它,我设置了以下配置 -
应用程序属性
management:
endpoint:
prometheus:
enabled: true
endpoints:
web:
exposure:
include: "*"
Gradle -
implementation 'io.micrometer:micrometer-registry-prometheus'
但是执行器请求被现有拦截器阻止。它要求传递特定于我们项目的标头中的值。通过邮递员(http:localhost:8080/abc/actuator/prometheus),我能够测试我的POC(带有所需的标头)并返回Prometheus期望的时间序列数据。但是 Prometheus 无法自行废弃数据(使用拉取方法),因为调用缺少请求中的标头。
我尝试了以下链接(link1 https://stackoverflow.com/a/34974725/2586617,link2 https://stackoverflow.com/questions/31082981/spring-boot-adding-http-request-interceptors)绕过它,但我的请求仍然被现有拦截器拦截。
拦截请求的拦截器是依赖 jar 的一部分。
编辑——
我使用以下方法来排除对拦截器的所有调用 -
@Configuration
public class MyConfig implements WebMvcConfigurer{
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new MyCustomInterceptor()).addPathPatterns("**/actuator/**");
}
}
我的自定义拦截器
@Component
public class MyCustomInterceptor implements HandlerInterceptor{
}
我没有在 MyCustomInterceptor 中实现任何自定义内容(因为我只想排除其他拦截器对“执行器”端点的所有调用)。