我有一个带有 WebFlux + Spring Reactor 的 Spring Boot 项目,它使用ReactiveFeignClient
.
如何集成 Prometheus 以便我可以监控响应时间(使用 a @Timer
)和 feign 调用返回的每个状态代码的百分比?像 200, 400, 404... 我只找到了以下方法:
- 监控端点响应时间/状态码(
http_server_requests_seconds
) - 监视器
RestTemplate
(如此处所述:https ://docs.spring.io/spring-metrics/docs/current/public/prometheus ,但我使用 feign)
在我完成了所有工作之后,我在 Prometheus 输出中没有看到响应式 feign 客户端仪表,即使我将 logger 的 bean 定义为:
@Bean
public MetricsWebClientFilterFunction metricsWebClientFilterFunction(PrometheusMeterRegistry meterRegistry,
WebClientExchangeTagsProvider provider) {
return new MetricsWebClientFilterFunction(
meterRegistry,
provider,
APP_NAME + "reactive-client-request",
AutoTimer.ENABLED
);
}
@Bean
public MicrometerReactiveLogger feignReactiveLogger(Clock clock,
PrometheusMeterRegistry meterRegistry) {
return new MicrometerReactiveLogger(
clock,
meterRegistry,
APP_NAME + ".feign.client_metrics",
MetricsTag.getMandatory()
);
}
此外,我发现无法启用/actuator/prometheus
,而只能启用/_system/check/prometheus
。我确实启用并公开了 和 的metrics
端点prometheus
。
management:
health:
diskspace:
enabled: false
endpoint:
metrics.enabled: true
prometheus.enabled: true
endpoints:
web:
base-path: /_system/check
exposure:
include: info,health,loggers,metrics,prometheus
path-mapping:
health: /simple