ノードリソース

GET /v1/node()

Presto サーバーに認識されているノードのリストを返します。この呼び出しにはクエリパラメータやヘッダーは必要なく、Presto インストールで認識されている各ノードを含む配列を返すだけです。

レスポンスでは、recentRequestsrecentFailuresrecentSuccessesの値は、1分間の減衰パラメータで時間とともに指数関数的に減衰するように設定された減衰カウンタです。この減衰率は、Prestoノードが数秒で1000件の成功を記録した場合、この統計値は1分後に367に減少することを意味します。

ageは特定のノードが稼働している時間を示し、uriは特定のノードのHTTPサーバーを指します。直近のリクエストとレスポンスタイムは、ノードが最後に使用された時点を示します。

次の例では、エラーが発生していない単一のノードを表示します。各ノードは、トラフィック稼働時間とエラーに関する統計も報告します。

レスポンス例:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

[
   {
      "uri":"http://10.209.57.156:8080",
      "recentRequests":25.181940555111073,
      "recentFailures":0.0,
      "recentSuccesses":25.195472984170983,
      "lastRequestTime":"2013-12-22T13:32:44.673-05:00",
      "lastResponseTime":"2013-12-22T13:32:44.677-05:00",
      "age":"14155.28ms",
      "recentFailureRatio":0.0,
      "recentFailuresByType":{}
   }
]

ノードでエラーが発生している場合、次のようなレスポンスが表示されます。ここでは、多くのエラーが発生したノードを示しています。recentFailuresByTypeフィールドには、特定のノードで最近発生したJava例外がリストされています。

エラーを含むレスポンス例:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

[
   {
      "age": "4.45m",
      "lastFailureInfo": {
          "message": "Connect Timeout",
          "stack": [
              "org.eclipse.jetty.io.ManagedSelector$ConnectTimeout.run(ManagedSelector.java:683)",
              ....
              "java.lang.Thread.run(Thread.java:745)"
          ],
          "suppressed": [],
          "type": "java.net.SocketTimeoutException"
      },
      "lastRequestTime": "2017-08-05T11:53:00.647Z",
      "lastResponseTime": "2017-08-05T11:53:00.647Z",
      "recentFailureRatio": 0.47263053472046446,
      "recentFailures": 2.8445543205610617,
      "recentFailuresByType": {
          "java.net.SocketTimeoutException": 2.8445543205610617
      },
      "recentRequests": 6.018558073577414,
      "recentSuccesses": 3.1746446343010297,
      "uri": "http://172.19.0.3:8080"
   }
]
GET /v1/node/failed()

このサービスを呼び出すと、最後のハートビートチェックに失敗したすべてのノードをリストするJSONドキュメントが返されます。この呼び出しによって返される情報は、前のサービスによって返される情報と同じです。

レスポンス例:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

[
   {
      "age": "1.37m",
      "lastFailureInfo": {
          "message": "Connect Timeout",
          "stack": [
              "org.eclipse.jetty.io.ManagedSelector$ConnectTimeout.run(ManagedSelector.java:683)",
              ....
              "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)",
              "java.lang.Thread.run(Thread.java:745)"
          ],
          "suppressed": [],
          "type": "java.net.SocketTimeoutException"
      },
      "lastRequestTime": "2017-08-05T11:52:42.647Z",
      "lastResponseTime": "2017-08-05T11:52:42.647Z",
      "recentFailureRatio": 0.22498784153043677,
      "recentFailures": 20.11558290058638,
      "recentFailuresByType": {
          "java.net.SocketTimeoutException": 20.11558290058638
      },
      "recentRequests": 89.40742203558189,
      "recentSuccesses": 69.30583024727453,
      "uri": "http://172.19.0.3:8080"
   }
]