我按照此处的文档(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,线程转储,映射均正常运行。
我正在尝试使用 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)