Spring Webflux 2.4.2 - 404 on actuator /auditevents /httptrace /integrationgraph /sessions 端点

Spring Webflux 2.4.2 - 404 on actuator /auditevents /httptrace /integrationgraph /sessions endpoints

关于某些执行器端点返回 404 的小问题。 我有一个基于 Webflux 2.4.2 的网络应用程序,仅用于测试此问题,我正在使用

management.endpoints.web.exposure.include=*

Actuator 正在工作,因为 curl 将获得对 /health /metrics 和其他端点的响应。

但是,对于那些端点 /auditevents /httptrace /integrationgraph /sessions,除了 http 404 之外,我什么也得不到。

[05/Feb/2021:13:00:18 +0000] "OPTIONS /auditevents HTTP/1.1" 404 141 55 ms

那些确实是唯一返回 404 的端点,仍然不知道为什么。 不想向每个端点发送同一个问题的垃圾邮件。所有其他执行器端点都很好。

谢谢

根据Spring Boot Reference Docs

要在执行器中启用 /httptrace,则必须在自定义 @Configuration class 中创建一个 InMemoryHttpTraceRepository class 的 bean,它提供请求和响应的跟踪。

@Bean
public HttpTraceRepository htttpTraceRepository() {
  return new InMemoryHttpTraceRepository();
}

要在执行器中启用 /auditevents,那么你必须在自定义 @Configuration class 中创建一个 InMemoryAuditEventRepository class 的 bean,它会公开审计活动信息。

@Bean
public AuditEventRepository auditEventRepository() {
  return new InMemoryAuditEventRepository();
}

要在执行器中启用 /integrationgraph,您必须在 pom.xml 中添加 spring-integration-core dependency(根据文档):

<dependency>
    <groupId>org.springframework.integration</groupId>
    <artifactId>spring-integration-core</artifactId>
</dependency>

或者如果您有一个 spring-boot 项目,则添加:

  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-integration</artifactId>
  </dependency>

/actuator/sessions 默认启用。但是你仍然可以明确地添加它来检查行为。

将此添加到 application.properties。

management.endpoint.sessions.enabled = true