当前位置: 首页 > 知识库问答 >
问题:

Spring启动健康endpoint

闾丘照
2023-03-14

我正在寻找一种方法来改变Spring Boot的健康检查的头部(添加一些东西到它)。我搜索了这个主题,但我只找到了关于自定义健康功能等的问题(例如,如何在spring boot health中添加自定义健康检查?)。那不是我要找的。

我想使用标准/默认健康功能(因此我不想更改响应的主体(“status”:“up”),也不想实现自己的健康功能或自定义默认功能。我的目标是更改响应的标题以实现两个目标:

  • 在标题中添加一些内容(例如,最大年龄)
  • 到达cors(例如,我希望将Allov-Origin设置为*,Allow-Method设置为GET,等等),我知道在管理属性中有一种方法可以做到这一点,但这适用于所有endpoint,我只希望这些TGING应用于健康endpoint

是否有任何方法可以使用默认的健康检查,只修改头部和属性,如允许的起源,或者我必须创建一个新的控制器?

谢谢你的帮助。

共有1个答案

亢奇
2023-03-14

只需使用获得足够度量的方法来实现您自己的服务,然后您的自定义控制器当然会引用它。我不认为您可以修改这些默认endpoint…

以下是此自定义服务的一个示例:

import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.metrics.MetricsEndpoint;
import org.springframework.stereotype.Component;

@Component
public class SpringActuator {
    @Autowired
    MetricsEndpoint metrics;
    
    public Double getCPU() {
        return metrics.metric("process.cpu.usage", Arrays.asList()).getMeasurements().get(0).getValue();
    }
    
    public Double getRAM() {
        return metrics.metric("jvm.memory.used", Arrays.asList()).getMeasurements().get(0).getValue();
    }
}
 类似资料:
  • 我们已经在几个项目中使用了Spring Boot,现在我们使用的是最新版本1.2.3。我们正在合并执行器。到目前为止,一切都很顺利,只是我们发现/health指示器[default]显示服务已关闭。事实并非如此。这些服务是通过数据源实现的。它可以调用其他SOAP或Rest服务。卫生服务部门在看什么来衡量一项服务是否下降?

  • 我最初的是: 和 我试过了:1。将“通道”配置为endpoint不安全 null null 根据@Aritra Paul的回答,我也试过: 但我还是得到同样的结果。

  • 因此,我将Spring引导执行器添加到我的应用程序中,并在应用程序中指定。属性管理。endpoint。健康隐藏物生存时间=120秒,以缓存健康检查结果。因此,当我调用执行器/健康时,结果被缓存,效果很好。 当我调用执行器/健康/就绪或自定义创建的组时,问题开始出现。该请求结果不会被缓存。我查阅了Spring文档,只找到了主要健康终点的信息,没有找到特定人群的信息。 所以我的问题是:我错过了什么吗?

  • 您可以将许多自定义运行状况指示器添加到Spring boot的执行器中,这非常棒,因为它们的总状态被认为是您的应用程序的运行状况。 有没有可能只查询其中一个指标呢? 对于一个复杂的应用程序,我有大约10个指示器来告诉我的应用程序总体运行状况,整个检查大约需要20秒。 有一些指标我想更频繁地点击,因为它们提供了对高吞吐量组件的快速响应。有可能以某种方式查询单个指标吗?

  • 我正在尝试配置执行器的健康探测器,以包括对嵌套在第一级之外的外部服务的检查。例如,当调用/执行器/健康时,以下是可用的健康指标: 在jms组件下,有两个代理——broker1和broker2。我可以将执行器配置为将jms包括在就绪组中,如: 但是,这将包括准备调查中的所有经纪人。 当呼叫 /actuator/health/readiness,我得到: 由于Kubernetes中的就绪性探测只会阻止

  • 我想报告应用程序的健康状态作为一个衡量标准,我希望使用相同的健康指标作为Spring启动执行器,但是,我没有看到任何可导出的组件从Spring启动执行器的依赖关系,我可能能够在这里使用。 我想编写的代码: 当然,不是导出的bean。Spring启动执行器是否导出我可以以这种方式消费的bean?