[17.0.0.3 以及更新版本]

執行 MicroProfile 性能檢查

配置 mpHealth-1.0 特性,並實作 HealthCheck 應用程式設計介面 (API),以便在微服務中提供性能檢查。

關於這項作業

性能檢查是微服務提供的一項 MicroProfile 性能 API 實作。利用性能檢查,可評量服務的性能。這些檢查基本上屬於儲存器化環境中的機器對機器機制,例如 Kubernetes 中的生動度檢查mpHealth-1.0 特性提供一個 /health 端點,它代表已安裝之微服務的二進位狀態 UPDOWN。微服務可以提供零或多項性能檢查,伺服器的整體性能會是來自各項性能檢查的狀態總結。只有在所有性能檢查都報告正面結果時,整體結果才會是正面。

程序

  1. 配置特性。更新 server.xml 檔,以新增特性:
    <featureManager>
       <feature>mpHealth-1.0</feature>
    </featureManager>
  2. 使用 API 來提供您想執行的性能檢查:
    @FunctionalInterface
    public interface HealthCheck {
    
        HealthCheckResponse call();
    }

    下列範例顯示如何使用 API 來進行性能檢查:

    @Health
    @ApplicationScoped
    public class MyCheck implements HealthCheck {
    
       @Override
       public HealthCheckResponse call() {
            return HealthCheckResponse.named("MyCheck")
                    .withData("key1", "val1")
                    .withData("key2", "val2")
                    .up()
                    .build();
    
       }
    }
    /health 端點發出 HTTP 要求後,會傳回具有下列其中一個狀態碼的回應:
    • 代碼 200 表示具有正面輸出結果的性能檢查。
    • 代碼 503 表示整體輸出結果是負面。
    • 代碼 500 表示系統無法處理性能檢查要求。此代碼可能表示程序中發生錯誤。

    回應也會包含 JavaScript Object Notation (JSON) 有效負載,其中提供性能檢查的詳細資料。下列程式碼顯示正面結果的範例:
    {
     "outcome": "UP",
     "checks": [
        {
          "name": "MyCheck",
          "state": "UP",
          "data: {
            "key": "value",
            "key1": "val1",
            "key2": "val2"
          }
        }
      ]
    }
    下列程式碼顯示負面結果的範例:
    {
     "outcome": "DOWN",
     "checks": [
       {
        "name": "check1",
        "state": "UP"
       },
       {
        "name": "check2",
        "state": "DOWN"
       }
      ]
    }
    如果您配置特性,但未提供任何性能檢查,系統會以代碼 200 回應。有效負載會包含 UP 正面輸出結果以及空白的一組檢查。

指示主題類型的圖示 作業主題

檔名:twlp_microprofile_healthcheck.html