簡體   English   中英

如何從Spring Boot Health端點獲取某些字段

[英]How to get certain fields from spring boot health endpoint

我已經成功創建了一個springboot應用程序,該應用程序返回所有基本端點。 現在,我想在請求中僅返回該端點的幾個字段。 例如,將狀態從/ health頁面返回到我的休息呼叫。 我該如何過濾或讓我的休息電話更具體?

實際要求是在一次調用中從/ env,/ app的/ health返回兩個字段。 為此,我可以通過返回env和health的所有字段來做到這一點。 我只需要從中返回特定字段。 我還可以在內存中使用json對象,如果要怎么做呢?

最后,我弄清楚了如何創建它。 因此,傳入的json對象由LinkedHashMap類型的字段組成。 所以我用鍵消耗了它的字段值

LinkedHashMap response = (LinkedHashMap)restTemplate.getForObject("http://localhost:8080/env",Object.class);
EnvProperties variables = new EnvProperties (response);

包裝POJO適用於所有領域,

public EnvProperties (LinkedHashMap body) {
   this.sysProperties = new SysEnvProperties((LinkedHashMap) body.get("systemProperties"));
 }

這個領域的POJO,

 public SysEnvProperties(LinkedHashMap body) {
   this.javaVersion = body.get("java.version").toString();
}

稍后創建一個新的json字符串

 @Override
 public String toString() {
  String s = null;
    try {
        s = mapper.writeValueAsString(this);
      } catch (JsonProcessingException e) {
          e.printStackTrace();
        }
      return s;
   }

我對感興趣的字段重復了相同的操作,為每個字段創建了一個POJO。 最后使用類似的包裝器類調用了這些字段,該類的toString方法僅返回所需字段的預期json對象。

您也可以創建自定義運行狀況終結點或自定義健康檢查程序。

例如

@Component
public class CustomHealthCheck extends AbstractHealthIndicator {
    @Override
    protected void doHealthCheck(Health.Builder bldr) throws Exception {
        // TODO implement some check
        boolean running = true;
        if (running) {
          bldr.up();
        } else {
          bldr.down();
        }
    }
}

進一步閱讀:

  1. http://www.christianmenz.ch/programmieren/spring-boot-health-checks/
  2. http://briansjavablog.blogspot.be/2017/09/health-checks-metric-s-more-with-spring.html
  3. http://www.baeldung.com/spring-boot-actuators

您可以在此處找到教程 但是,您要考慮實現的接口是:

org.springframework.boot.actuate.endpoint.Endpoint

類似於創建控制器。 這是您的/custom-health端點。

org.springframework.boot.actuate.metrics.CounterService

您可以計算/metrics可用的整數值/metrics

org.springframework.boot.actuate.metrics.GaugeService

或者,您可以測量/metrics上可用的雙值/metrics

org.springframework.boot.actuate.health.HealthIndicator

將指標添加到/health端點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM