小编ROC*_*CKY的帖子

Prometheus端点不起作用Spring Boot 2.0.0.RC1启用了Spring Webflux

我按照此处的文档(https://docs.spring.io/spring-boot/docs/2.0.0.RC1/reference/htmlsingle/#production-ready-endpoints-enabling-endpoints)进行操作,并确保application.yml文件具有以下

management:
  metrics:
    export:
      prometheus:
        enabled: true
  endpoints:
    web:
      expose:
        health, info, httptrace, metrics, threaddump, mappings, prometheus
Run Code Online (Sandbox Code Playgroud)

根据文档(https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/actuator-api/html/#prometheus),以下操作无效。

curl 'http://localhost:8080/actuator/prometheus' -i
Run Code Online (Sandbox Code Playgroud)

我得到404处理程序映射未找到异常。有人可以让我知道如何启用Prometheus端点进行抓取,以及需要使用哪个URL端点进行测试吗?

o.s.w.r.r.m.a.RequestMappingHandlerMapping[276] - Did not find handler method for [/actuator/prometheus]
Run Code Online (Sandbox Code Playgroud)

所有其他端点的运行状况,信息,httptrace,线程转储,映射均正常运行。

spring spring-boot spring-boot-actuator spring-webflux

6
推荐指数
2
解决办法
5808
查看次数

如果授权标头不存在,则无法在 Webfilter 中发送自定义正文

我正在尝试使用 Webfilter 拦截 Spring Boot Webflux 应用程序(Spring boot 2.0.0.M7)中的所有请求,并检查“Authorization”标头是否存在。如果不存在,我想停止请求处理并发送自定义 HttpStatus 和自定义正文。自定义 HttpStatus 正在运行,但我无法将自定义消息写入 HTTP 正文。以下

import java.time.LocalDateTime;

import org.apache.commons.lang.SerializationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Mono;
import reactor.util.context.Context;

public class RequestContextFilter implements WebFilter{

    Logger LOG = LoggerFactory.getLogger(RequestContextFilter.class);

    @Autowired
    private WebClient.Builder webclientBuilder;


    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
        LOG.debug("Inside RequestContextFilter.."+ exchange);
        String authorizationHeader = exchange.getRequest().getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
        if(authorizationHeader == null) {
            exchange.getResponse().setStatusCode(HttpStatus.BAD_REQUEST); …
Run Code Online (Sandbox Code Playgroud)

spring spring-boot spring-web spring-webflux

1
推荐指数
1
解决办法
2090
查看次数