默认情况下未启用Spring Boot Actuator路径?

时间:2017-09-18 15:53:14

标签: spring-boot spring-boot-actuator

将我的Spring Boot应用程序更新到最新的构建快照时,我发现默认情况下没有启用任何执行器端点。如果我在application.properties中指定要启用它们,则会显示它们。

1)这种行为是否打算?我试图寻找一个问题来解释它,但找不到一个。有人可以将我链接到问题/文档吗?

2)有没有办法启用所有执行器端点?我经常发现自己在开发过程中使用它们,而不想在我的属性文件中维护它们的列表。

3 个答案:

答案 0 :(得分:2)

这个答案的两个部分:

  

"有没有办法启用所有执行器端点?"

添加此属性protected $casts = [ 'skills' => 'json' ]; public function skills() { return $this->skills; } ,而不是使用endpoints.enabled=trueendpoints.info.enabled=true等单独启用它们

Spring Boot 2.x的

更新:相关属性为:

endpoints.beans.enabled=true
  

"这种行为是否打算?"

可能不是。听起来你可能已经发现了最新的里程碑问题。如果Spring Boot里程碑存在可重现的问题,那么Spring's advice就是......

  

报告问题

     

Spring Boot使用GitHub的集成问题跟踪系统来记录错误和功能请求。如果您想提出问题,请遵循以下建议:

     

在您记录错误之前,请search the issue tracker查看某人是否已报告此问题。

     

如果问题尚不存在,请create a new issue

答案 1 :(得分:0)

是否有启用所有执行器端点的方法?

使用Spring Boot 2.2.2发行版,这对我有用:

在文件src / main / resources / application.properties上添加以下内容:

management.endpoints.web.exposure.include=*

要检查已启用的端点,请转到http://localhost:8080/actuator

来源:docs.spring.io

答案 2 :(得分:0)

即使我们启用以下所有执行器端点 management.endpoints.web.exposure.include=*(对于YAML,星号应在双引号中加上“ *”,因为星号是YAML语法中的特殊字符之一)

默认情况下,httptrace执行器端点仍不会在Web中启用。需要实现HttpTraceRepository接口以启用httptrace(请参见Actuator default endpointsActuator endpointsActuator httptrace)。

@Component
public class CustomHttpTraceRepository implements HttpTraceRepository {

    AtomicReference<HttpTrace> lastTrace = new AtomicReference<>();

    @Override
    public List<HttpTrace> findAll() {
        return Collections.singletonList(lastTrace.get());
    }

    @Override
    public void add(HttpTrace trace) {
        if ("GET".equals(trace.getRequest().getMethod())) {
            lastTrace.set(trace);
        }
    }
}

现在可以使用url访问端点了,

http://localhost:port/actuator/respective-actuator-endpoint 

(例如http:// localhost:8081 / actuator / httptrace)

如果属性文件中存在management.servlet.context-path值,则该URL为

http://localhost:port/<servlet-context-path>/respective-actuator-endpoint 

(示例http:// localhost:8081 / management-servlet-context-path-value / httptrace)