REST APIの監視

Flinkは実行中のジョブと最近完了したジョブの状態と統計をクエリするために使うことができる監視APIを持っています。この監視APIはFlink独自のダッシュボードによって使われますが、独自の監視ツールによっても使えるように設計されています。

監視APIはHTTP GETリクエストと受け付け、JSONデータを使って応答するREST-ful APIです。

概要

監視APIはJobManagerの一部として実行するwebサーバによって支援されます。デフォルトでは、このサーバは8081をlistenします。これはjobmanager.web.portを使ってflink-conf.yamlの中で設定することができます。監視API webサーバとwebダッシュボードwebサーバは現在のところ同じもので従って同じポートで一緒に動作します。しかし、それらは異なるHTTP URLで応答します。

複数のジョブマネージャー(高可用性のため)の場合、各ジョブマネージャーは監視APIの独自のインスタンスを実行するでしょう。ジョブマネージャーがクラスタリーダーとして選択されている間、これは完了および実行中のジョブについての情報を提供します。

開発中

REST API のバックエンドはflink-runtime-web プロジェクトの中にあります。コアのクラスは org.apache.flink.runtime.webmonitor.WebRuntimeMonitor で、サーバとリクエストのルーティングをセットアップします。

RESTリクエストを処理しURLを変換するために、NettyNetty Router ライブラリを使います。この組み合わせは軽い依存を持ち、Netty HTTPのパフォーマンスがとても良いため、この選択がされました。

新しいリクエストを追加するには、新しいrequest ハンドラ クラスを追加する必要があります。このことを見るための良い例が org.apache.flink.runtime.webmonitor.handlers.JobExceptionsHandlerにあります。ハンドラを作成した後で、ハンドラはorg.apache.flink.runtime.webmonitor.WebRuntimeMonitorの中でリクエスト ルータと一緒に登録される必要があります。

利用可能なリクエスト

以下は利用可能なリクエストのリストと例のJSON応答です。全てのリクエストはhttp://hostname:8081/jobsからのサンプルで、以下でURLの一部のpath のみをリスト化します。

角括弧内の値は変数です。例えばhttp://hostname:8081/jobs/<jobid>/exceptions は、例えば http://hostname:8081/jobs/7684be6004e4e955c2a558a9bc463f65/exceptionsとしてリクエストされなければならないでしょう。

  • /config
  • /overview
  • /jobs/overview
  • /jobs/<jobid>
  • /jobs/<jobid>/vertices
  • /jobs/<jobid>/config
  • /jobs/<jobid>/exceptions
  • /jobs/<jobid>/accumulators
  • /jobs/<jobid>/vertices/<vertexid>
  • /jobs/<jobid>/vertices/<vertexid>/subtasktimes
  • /jobs/<jobid>/vertices/<vertexid>/taskmanagers
  • /jobs/<jobid>/vertices/<vertexid>/accumulators
  • /jobs/<jobid>/vertices/<vertexid>/subtasks/accumulators
  • /jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>
  • /jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt>
  • /jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt>/accumulators
  • /jobs/<jobid>/plan
  • /jars/upload
  • /jars
  • /jars/:jarid
  • /jars/:jarid/plan
  • /jars/:jarid/run

概要

/config

監視APIとサーバセットアップについてのいくつかの情報

結果の例:

{
  "refresh-interval": 3000,
  "timezone-offset": 3600000,
  "timezone-name": "Central European Time",
  "flink-version": "1.5-SNAPSHOT",
  "flink-revision": "8124545 @ 16.09.2015 @ 15:38:42 CEST"
}

/overview

Flinkクラスター状態の簡単な概要

結果の例:

{
  "taskmanagers": 17,
  "slots-total": 68,
  "slots-available": 68,
  "jobs-running": 0,
  "jobs-finished": 3,
  "jobs-cancelled": 1,
  "jobs-failed": 0
}

ジョブの概要

/jobs/overview

ステータスによってグループ化され、それぞれがステータスの小さな概要を持つ、ジョブ

結果の例:

{
  "jobs":[
    {
      "jid": "7684be6004e4e955c2a558a9bc463f65",
      "name": "Flink Java Job at Wed Sep 16 18:08:21 CEST 2015",
      "state": "FINISHED",
      "start-time": 1442419702857,
      "end-time": 1442419975312,
      "duration":272455,
      "last-modification": 1442419975312,
      "tasks": {
         "total": 6,
         "pending": 0,
         "running": 0,
         "finished": 6,
         "canceling": 0,
         "canceled": 0,
         "failed": 0
      }
    },
    {
      "jid": "49306f94d0920216b636e8dd503a6409",
      "name": "Flink Java Job at Wed Sep 16 18:16:39 CEST 2015",
      ...
    }]
}

実行中および完了したジョブの詳細

/jobs/<jobid>

一つのジョブについての概要。データフロープランのリスト、ステータス、状態遷移のタイムスタンプ、各頂点(オペレータ)のための集約情報。

結果の例:

{
  "jid": "ab78dcdbb1db025539e30217ec54ee16",
  "name": "WordCount Example",
  "state":"FINISHED",
  "start-time":1442421277536,
  "end-time":1442421299791,
  "duration":22255,
  "now":1442421991768,
  "timestamps": {
    "CREATED": 1442421277536, "RUNNING": 1442421277609, "FAILING": 0, "FAILED": 0, "CANCELLING": 0, "CANCELED": 0, "FINISHED": 1442421299791, "RESTARTING": 0
  },
  "vertices": [ {
    "id": "19b5b24062c48a06e4eac65422ac3317",
    "name": "CHAIN DataSource (at getTextDataSet(WordCount.java:142) ...",
    "parallelism": 2,
    "status": "FINISHED",
    "start-time": 1442421277609,
    "end-time": 1442421299469,
    "duration": 21860,
    "tasks": {
      "CREATED": 0, "SCHEDULED": 0, "DEPLOYING": 0, "RUNNING": 0, "FINISHED": 2, "CANCELING": 0, "CANCELED": 0, "FAILED": 0
    },
    "metrics": {
      "read-bytes": 0, "write-bytes": 37098, "read-records": 0, "write-records": 3312
    }
  }, {
    "id": "f00c89b349b5c998cfd9fe2a06e50fd0",
    "name":"Reduce (SUM(1), at main(WordCount.java:67)",
    "parallelism": 2,
    ....
  }, {
    "id": "0a36cbc29102d7bc993d0a9bf23afa12",
    "name": "DataSink (CsvOutputFormat (path: /tmp/abzs, delimiter:  ))",
    ...
  } ],
  "status-counts": {
    "CREATED": 0, "SCHEDULED": 0, "DEPLOYING": 0, "RUNNING": 0, "FINISHED": 3, "CANCELING": 0, "CANCELED": 0, "FAILED": 0
  },
  "plan": {
    // see plan details below
  }
}

/jobs/<jobid>/vertices

現在のところ /jobs/<jobid>と同じ

/jobs/<jobid>/config

ジョブによって使われるユーザ定義の実行設定

結果の例:

{
  "jid": "ab78dcdbb1db025539e30217ec54ee16",
  "name": "WordCount Example",
  "execution-config": {
    "execution-mode": "PIPELINED",
    "restart-strategy": "Restart deactivated",
    "job-parallelism": -1,
    "object-reuse-mode": false
  }
}

/jobs/<jobid>/exceptions

ジョブによって観測された復元不可能な例外truncated フラグは、そうしなければ応答があまりに大きくなるため、リストされないが多くの例外が発生したかどうかを定義します

結果の例:

{
  "root-exception": "java.io.IOException: File already exists:/tmp/abzs/2\n\tat org.apache.flink.core.fs.local.LocalFileSystem. ...",
  "all-exceptions": [ {
    "exception": "java.io.IOException: File already exists:/tmp/abzs/1\n\tat org.apache.flink...",
    "task": "DataSink (CsvOutputFormat (path: /tmp/abzs, delimiter:  )) (1/2)",
    "location": "localhost:49220"
  }, {
    "exception": "java.io.IOException: File already exists:/tmp/abzs/2\n\tat org.apache.flink...",
    "task": "DataSink (CsvOutputFormat (path: /tmp/abzs, delimiter:  )) (2/2)",
    "location": "localhost:49220"
  } ],
  "truncated":false
}

/jobs/<jobid>/accumulators

The aggregated user accumulators plus job accumulators.

結果の例:

{
  "job-accumulators":[],
  "user-task-accumulators": [ {
    "name": "avglen",
    "type": "DoubleCounter",
    "value": "DoubleCounter 61.5162972"
  },
  {
    "name": "genwords",
    "type": "LongCounter",
    "value": "LongCounter 37500000"
  } ]
}

/jobs/<jobid>/vertices/<vertexid>

一つの特定の頂点についての情報。そのサブタスクのそれぞれについての概要を持つ。

結果の例:

{
  "id": "dceafe2df1f57a1206fcb907cb38ad97",
  "name": "CHAIN DataSource -> Map -> FlatMap -> Combine(SUM(1))",
  "parallelism": 2,
  "now": 1442424002154,
  "subtasks": [ {
    "subtask":0,
    "status": "FINISHED",
    "attempt": 0,
    "host": "localhost",
    "start-time": 1442421093762,
    "end-time": 1442421386680,
    "duration": 292918,
    "metrics": {
      "read-bytes": 0, "write-bytes": 12684375, "read-records": 0, "write-records": 1153125
    }
  }, {
    "subtask": 1,
    "status": "FINISHED",
    "attempt": 0,
    "host": "localhost",
    "start-time": 1442421093774,
    "end-time": 1442421386267,
    "duration": 292493,
    "metrics": {
      "read-bytes": 0, "write-bytes": 12684375, "read-records": 0, "write-records": 1153125
    }
  } ]
}

/jobs/<jobid>/vertices/<vertexid>/subtasktimes

このリクエストは指定された頂点の全てのサブタスクの状態遷移についてタイムスタンプを返します。これらは例えばサブタスク間でタイムラインの比較を生成するために使うことができます。

結果の例:

{
  "id": "dceafe2df1f57a1206fcb907cb38ad97",
  "name": "CHAIN DataSource -> Map -> Combine(SUM(1))",
  "now":1442423745088,
  "subtasks": [ {
    "subtask": 0,
    "host": "localhost",
    "duration": 292924,
    "timestamps": {
      "CREATED": 1442421093741, "SCHEDULED": 1442421093756, "DEPLOYING": 1442421093762, "RUNNING": 1442421094026, "FINISHED": 1442421386680, "CANCELING": 0, "CANCELED": 0, "FAILED": 0
    }
  }, {
    "subtask": 1,
    "host": "localhost",
    "duration": 292494,
    "timestamps": {
      "CREATED": 1442421093741, "SCHEDULED": 1442421093773, "DEPLOYING": 1442421093774, "RUNNING": 1442421094013, "FINISHED": 1442421386267, "CANCELING": 0, "CANCELED": 0, "FAILED": 0
    }
  } ]
}

/jobs/<jobid>/vertices/<vertexid>/taskmanagers

一つの特定の頂点のためのタスクマネージャーの統計。これは/jobs/<jobid>/vertices/<vertexid>によって返されるサブタスクの統計の集約です。

結果の例:

{
  "id": "fe20bcc29b87cdc76589ca42114c2499",
  "name": "Reduce (SUM(1), at main(WordCount.java:72)",
  "now": 1454348282653,
  "taskmanagers": [ {
    "host": "ip-10-0-43-227:35413",
    "status": "FINISHED",
    "start-time": 1454347870991,
    "end-time": 1454347872111,
    "duration": 1120,
    "metrics": {
      "read-bytes": 32503056, "write-bytes": 9637041, "read-records": 2906087, "write-records": 849467
    },
    "status-counts": {
      "CREATED": 0, "SCHEDULED": 0, "DEPLOYING": 0, "RUNNING": 0, "FINISHED": 18, "CANCELING": 0, "CANCELED": 0, "FAILED": 0
    }
  },{
    "host": "ip-10-0-43-227:41486",
    "status": "FINISHED",
    "start-time": 1454347871001,
    "end-time": 1454347872395,
    "duration": 1394,
    "metrics": {
      "read-bytes": 32389499, "write-bytes": 9608829, "read-records": 2895999, "write-records": 846948
    },
    "status-counts": {
      "CREATED": 0, "SCHEDULED": 0, "DEPLOYING": 0, "RUNNING": 0, "FINISHED": 18, "CANCELING": 0, "CANCELED": 0, "FAILED": 0
    }
  } ]
}

/jobs/<jobid>/vertices/<vertexid>/accumulators

特定の頂点についての集約されたユーザ定義のアキュムレータ。

結果の例:

{
  "id": "dceafe2df1f57a1206fcb907cb38ad97",
  "user-accumulators": [ {
    "name": "avglen", "type": "DoubleCounter", "value": "DoubleCounter 123.03259440000001"
  }, {
    "name": "genwords", "type": "LongCounter", "value": "LongCounter 75000000"
  } ]
}

/jobs/<jobid>/vertices/<vertexid>/subtasks/accumulators

指定された頂点の全てのサブタスクについての全てのユーザ定義のアキュムレータを取得する。/jobs/<jobid>/vertices/<vertexid>/accumulators リクエストによって集約された形式で返される個々のアキュムレータです。

結果の例:

{
  "id": "dceafe2df1f57a1206fcb907cb38ad97",
  "parallelism": 2,
  "subtasks": [ {
    "subtask": 0,
    "attempt": 0,
    "host": "localhost",
    "user-accumulators": [ {
      "name": "genwords", "type": "LongCounter", "value": "LongCounter 62500000"
    }, {
      "name": "genletters", "type": "LongCounter", "value": "LongCounter 1281589525"
    } ]
  }, {
    "subtask": 1,
    "attempt": 0,
    "host": "localhost",
    "user-accumulators": [ {
      "name": "genwords", "type": "LongCounter", "value": "LongCounter 12500000"
    }, {
      "name": "genletters", "type": "LongCounter", "value": "LongCounter 256317905"
    } ]
  } ]
}

/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>

特定のサブタスクの現在あるいは最新の実行試行の概要。例は以下を見てください。

/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt>

特定のサブタスクの特定の実行試行の概要。 failure/recoveryの場合は複数の実行試行が起こり得ます。

結果の例:

{
  "subtask": 0,
  "status": "FINISHED",
  "attempt": 0,
  "host": "localhost",
  "start-time": 1442421093762,
  "end-time": 1442421386680,
  "duration": 292918,
  "metrics": {
    "read-bytes": 0, "write-bytes": 12684375, "read-records": 0, "write-records": 1153125
  }
}

/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt>/accumulators

一つの特定の実行試行の間の一つの特定のサブタスクについて集められたアキュームレータ(failure/recoveryの場合は複数の試行が起こります)。

結果の例:

{
  "subtask": 0,
  "attempt": 0,
  "id": "b22f94d91bf41ddb",
  "user-accumulators": [ {
    "name": "genwords", "type":"LongCounter", "value":"LongCounter 62500000"
  }, {
    "name": "genletters", "type": "LongCounter", "value": "LongCounter 1281589525"
  }, {
  "name": "avglen", "type": "DoubleCounter", "value": "DoubleCounter 102.527162"
  } ]
}

/jobs/<jobid>/plan

ジョブのデータフロー計画。計画はジョブの概要(/jobs/<jobid>)にも含まれます。

結果の例:

{
  "jid":"ab78dcdbb1db025539e30217ec54ee16",
  "name":"WordCount Example",
  "nodes": [ {
    "id": "f00c89b349b5c998cfd9fe2a06e50fd0",
    "parallelism": 2,
    "operator": "GroupReduce",
    "operator_strategy": "Sorted Group Reduce",
    "description": "Reduce (SUM(1), at main(WordCount.java:67)",
    "inputs": [ {
      "num": 0,
      "id":"19b5b24062c48a06e4eac65422ac3317",
      "ship_strategy": "Hash Partition on [0]",
      "local_strategy":"Sort (combining) on [0:ASC]",
      "exchange":"pipelined"
    } ],
    "optimizer_properties": {
      "global_properties": [
        { "name":"Partitioning", "value":"HASH_PARTITIONED" },
        { "name":"Partitioned on", "value":"[0]" },
        { "name":"Partitioning Order", "value":"(none)" },
        { "name":"Uniqueness", "value":"not unique" }
      ],
      "local_properties": [
        { "name":"Order", "value":"[0:ASC]" },
        { "name":"Grouped on", "value":"[0]" },
        { "name":"Uniqueness", "value":"not unique" }
      ],
      "estimates": [
        { "name":"Est. Output Size", "value":"(unknown)" },
        { "name":"Est. Cardinality", "value":"(unknown)" }
      ],
      "costs": [
        { "name":"Network", "value":"(unknown)" },
        { "name":"Disk I/O", "value":"(unknown)" },
        { "name":"CPU", "value":"(unknown)" },
        { "name":"Cumulative Network", "value":"(unknown)" },
        { "name":"Cumulative Disk I/O", "value":"(unknown)" },
        { "name":"Cumulative CPU","value":"(unknown)" }
      ],
      "compiler_hints": [
        { "name":"Output Size (bytes)", "value":"(none)" },
        { "name":"Output Cardinality", "value":"(none)" },
        { "name":"Avg. Output Record Size (bytes)", "value":"(none)" },
        { "name":"Filter Factor", "value":"(none)" }
      ]
    }
  },
  {
    "id": "19b5b24062c48a06e4eac65422ac3317",
    "parallelism": 2,
    "operator": "Data Source -> FlatMap -> GroupCombine",
    "operator_strategy":" (none) -> FlatMap -> Sorted Combine",
    "description":"DataSource (at getTextDataSet(WordCount.java:142) (org.apache.flink.api.java.io.TextInputFormat)) -> FlatMap (FlatMap at main(WordCount.java:67)) -> Combine(SUM(1), at main(WordCount.java:67)",
    "optimizer_properties": {
      ...
    }
  },
  {
    "id": "0a36cbc29102d7bc993d0a9bf23afa12",
    "parallelism": 2,
    "operator": "Data Sink",
    "operator_strategy": "(none)",
    "description": "DataSink (CsvOutputFormat (path: /tmp/abzs, delimiter:  ))",
    "inputs":[ {
      "num": 0,
      "id": "f00c89b349b5c998cfd9fe2a06e50fd0",
      "ship_strategy": "Forward",
      "exchange": "pipelined"
    } ],
    "optimizer_properties": {
      ...
    }
  } ]
}

ジョブの取り消し

ジョブを取り消します

/jobs/:jobid/cancelへのDELETE リクエスト。

ジョブの取り消しを引き起こします。成功時の結果は {}です。

セーブポイントを使ってジョブを取り消す

セーブポイントを引き起こし、セーブポイントが成功した後でジョブを取り消します。

/jobs/:jobid/cancel-with-savepoint/へのGETリクエストは、デフォルトのセーブポイントディレクトリへのセーブポイントを引き起こし、ジョブを取り消します。

/jobs/:jobid/cancel-with-savepoint/target-directory/:targetDirectory へのGETリクエストは、指定された宛先のディレクトリへのセーブポイントを引き起こし、ジョブを取り消します。

セーブポイントは完了するのに少しかかるため、この操作は非同期で起こります。このリクエストの結果は、進行中の取り消しの場所です。

トリガーの結果の例:

{
  "status": "accepted",
  "request-id": 1,
  "location": "/jobs/:jobid/cancel-with-savepoint/in-progress/1"
}
進捗の監視

取り消しの進捗は以下でユーザによって監視されなければなりません

/jobs/:jobid/cancel-with-savepoint/in-progress/:requestId

リクエスト ID はトリガーの結果によって返されます。

進行中
{
  "status": "in-progress",
  "request-id": 1
}
成功
{
  "status": "success",
  "request-id": 1,
  "savepoint-path": "<savepointPath>"
}

savepointPath はセーブポイントの外部パスを示します。これはセーブポイントを再開するために使うことができます。

失敗
{
  "status": "failed",
  "request-id": 1,
  "cause": "<error message>"
}

プログラムのサブミット

REST APIとwebフロントエンドを使ってFlinkプログラムをアップロード、実行、リスト表示することができます。

新しいJARファイルのアップロード

jarfileの下のマルチパート データとして送信されたjarファイルを使って、/jars/uploadPOST リクエストを送信します。マルチパートデータが自身のContent-Typeを含むようにもしてください。幾つかのhttpライブラリはデフォルトではヘッダを追加しません。

マルチパートの積み荷は以下のように始まるべきです

------BoundaryXXXX
Content-Disposition: form-data; name="jarfile"; filename="YourFileName.jar"
Content-Type: application/x-java-archive

プログラムを実行 (POST)

/jars/:jarid/runPOSTリクエストを送信します。jarid パラメータは設定されたwebフロントエンド アップロード ディレクトリ(設定キーはjobmanager.web.upload.dir)内のプログラム JAR のファイル名です。

以下のクエリパラメータ(全て任意)を指定することができます:

  • プログラムの引数: program-args=arg1 arg2 arg3
  • 実行 Mainクラス: entry-class=EntryClassName.class
  • デフォルトの並行度: parallelism=4
  • 回復のセーブポイント パス: savepointPath=hdfs://path/to/savepoint
  • 非回復状態の許容: allowNonRestoredState=true

呼び出しが成功すると、サブミットされたジョブのIDを持つ応答を取得するでしょう。

例: セーブポイントを持つプログラムを実行する

リクエスト:

POST: /jars/MyProgram.jar/run?savepointPath=/my-savepoints/savepoint-1bae02a80464&allowNonRestoredState=true

応答:

{"jobid": "869a9868d49c679e7355700e0857af85"}

FLIP-6

以下はFLIP-6のためのREST APIドキュメントです。

Dispatcher

/blobserver/port
動詞: GET 応答コード: 200 OK
説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:BlobServerPortResponseBody",
  "properties" : {
    "port" : {
      "type" : "integer"
    }
  }
}            
          
/config
動詞: GET 応答コード: 200 OK
説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:DashboardConfiguration",
  "properties" : {
    "refreshInterval" : {
      "type" : "integer"
    },
    "timeZoneName" : {
      "type" : "string"
    },
    "timeZoneOffset" : {
      "type" : "integer"
    },
    "flinkVersion" : {
      "type" : "string"
    },
    "flinkRevision" : {
      "type" : "string"
    }
  }
}            
          
/jobmanager/config
動詞: GET 応答コード: 200 OK
説明
            
{}            
          
            
{
  "type" : "array",
  "items" : {
    "type" : "object",
    "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:ClusterConfigurationInfoEntry",
    "properties" : {
      "key" : {
        "type" : "string"
      },
      "value" : {
        "type" : "string"
      }
    }
  }
}            
          
/jobmanager/metrics
動詞: GET 応答コード: 200 OK
説明
クエリ パラメータ
  • get (任意): 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:MetricCollectionResponseBody",
  "properties" : {
    "metrics" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:Metric",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        }
      }
    }
  }
}            
          
/jobs
動詞: GET 応答コード: 200 OK
説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:messages:webmonitor:JobIdsWithStatusOverview",
  "properties" : {
    "jobsWithStatus" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:messages:webmonitor:JobIdsWithStatusOverview:JobIdWithStatus",
        "properties" : {
          "jobId" : {
            "type" : "object",
            "id" : "urn:jsonschema:org:apache:flink:api:common:JobID",
            "properties" : {
              "upperPart" : {
                "type" : "integer"
              },
              "lowerPart" : {
                "type" : "integer"
              },
              "bytes" : {
                "type" : "array",
                "items" : {
                  "type" : "integer"
                }
              }
            }
          },
          "jobStatus" : {
            "type" : "string",
            "enum" : [ "CREATED", "RUNNING", "FAILING", "FAILED", "CANCELLING", "CANCELED", "FINISHED", "RESTARTING", "SUSPENDED", "RECONCILING" ]
          }
        }
      }
    }
  }
}            
          
/jobs
動詞: POST 応答コード: 202 Accepted
説明
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobSubmitRequestBody",
  "properties" : {
    "serializedJobGraph" : {
      "type" : "array",
      "items" : {
        "type" : "integer"
      }
    }
  }
}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobSubmitResponseBody",
  "properties" : {
    "jobUrl" : {
      "type" : "string"
    }
  }
}            
          
/jobs/overview
動詞: GET 応答コード: 200 OK
説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:messages:webmonitor:MultipleJobsDetails",
  "properties" : {
    "jobs" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:messages:webmonitor:JobDetails",
        "properties" : {
          "jobId" : {
            "type" : "object",
            "id" : "urn:jsonschema:org:apache:flink:api:common:JobID",
            "properties" : {
              "upperPart" : {
                "type" : "integer"
              },
              "lowerPart" : {
                "type" : "integer"
              },
              "bytes" : {
                "type" : "array",
                "items" : {
                  "type" : "integer"
                }
              }
            }
          },
          "jobName" : {
            "type" : "string"
          },
          "startTime" : {
            "type" : "integer"
          },
          "endTime" : {
            "type" : "integer"
          },
          "duration" : {
            "type" : "integer"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "CREATED", "RUNNING", "FAILING", "FAILED", "CANCELLING", "CANCELED", "FINISHED", "RESTARTING", "SUSPENDED", "RECONCILING" ]
          },
          "lastUpdateTime" : {
            "type" : "integer"
          },
          "tasksPerState" : {
            "type" : "array",
            "items" : {
              "type" : "integer"
            }
          },
          "numTasks" : {
            "type" : "integer"
          }
        }
      }
    }
  }
}            
          
/jobs/:jobid
動詞: PATCH 応答コード: 202 Accepted
説明
パスのパラメータ
  • jobid - 説明
クエリ パラメータ
  • mode (任意): 説明
            
{}            
          
            
{}            
          
/jobs/:jobid
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
            
{}            
          
            
{
  "type" : "any"
}            
          
/jobs/:jobid/accumulators
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
            
{}            
          
            
{
  "type" : "any"
}            
          
/jobs/:jobid/checkpoints
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointingStatistics",
  "properties" : {
    "counts" : {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointingStatistics:Counts",
      "properties" : {
        "numberRestoredCheckpoints" : {
          "type" : "integer"
        },
        "totalNumberCheckpoints" : {
          "type" : "integer"
        },
        "numberInProgressCheckpoints" : {
          "type" : "integer"
        },
        "numberCompletedCheckpoints" : {
          "type" : "integer"
        },
        "numberFailedCheckpoints" : {
          "type" : "integer"
        }
      }
    },
    "summary" : {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointingStatistics:Summary",
      "properties" : {
        "stateSize" : {
          "type" : "object",
          "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics",
          "properties" : {
            "minimum" : {
              "type" : "integer"
            },
            "maximum" : {
              "type" : "integer"
            },
            "average" : {
              "type" : "integer"
            }
          }
        },
        "duration" : {
          "type" : "object",
          "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
        },
        "alignmentBuffered" : {
          "type" : "object",
          "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
        }
      }
    },
    "latestCheckpoints" : {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointingStatistics:LatestCheckpoints",
      "properties" : {
        "completedCheckpointStatistics" : {
          "type" : "object",
          "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointStatistics:CompletedCheckpointStatistics",
          "properties" : {
            "id" : {
              "type" : "integer"
            },
            "status" : {
              "type" : "string",
              "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
            },
            "savepoint" : {
              "type" : "boolean"
            },
            "triggerTimestamp" : {
              "type" : "integer"
            },
            "latestAckTimestamp" : {
              "type" : "integer"
            },
            "stateSize" : {
              "type" : "integer"
            },
            "duration" : {
              "type" : "integer"
            },
            "alignmentBuffered" : {
              "type" : "integer"
            },
            "numSubtasks" : {
              "type" : "integer"
            },
            "numAckSubtasks" : {
              "type" : "integer"
            },
            "checkpointStatisticsPerTask" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatistics",
                "properties" : {
                  "checkpointId" : {
                    "type" : "integer"
                  },
                  "checkpointStatus" : {
                    "type" : "string",
                    "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
                  },
                  "latestAckTimestamp" : {
                    "type" : "integer"
                  },
                  "stateSize" : {
                    "type" : "integer"
                  },
                  "duration" : {
                    "type" : "integer"
                  },
                  "alignmentBuffered" : {
                    "type" : "integer"
                  },
                  "numSubtasks" : {
                    "type" : "integer"
                  },
                  "numAckSubtasks" : {
                    "type" : "integer"
                  }
                }
              }
            },
            "externalPath" : {
              "type" : "string"
            },
            "discarded" : {
              "type" : "boolean"
            }
          }
        },
        "savepointStatistics" : {
          "type" : "object",
          "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointStatistics:CompletedCheckpointStatistics"
        },
        "failedCheckpointStatistics" : {
          "type" : "object",
          "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointStatistics:FailedCheckpointStatistics",
          "properties" : {
            "id" : {
              "type" : "integer"
            },
            "status" : {
              "type" : "string",
              "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
            },
            "savepoint" : {
              "type" : "boolean"
            },
            "triggerTimestamp" : {
              "type" : "integer"
            },
            "latestAckTimestamp" : {
              "type" : "integer"
            },
            "stateSize" : {
              "type" : "integer"
            },
            "duration" : {
              "type" : "integer"
            },
            "alignmentBuffered" : {
              "type" : "integer"
            },
            "numSubtasks" : {
              "type" : "integer"
            },
            "numAckSubtasks" : {
              "type" : "integer"
            },
            "checkpointStatisticsPerTask" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatistics"
              }
            },
            "failureTimestamp" : {
              "type" : "integer"
            },
            "failureMessage" : {
              "type" : "string"
            }
          }
        },
        "restoredCheckpointStatistics" : {
          "type" : "object",
          "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointingStatistics:RestoredCheckpointStatistics",
          "properties" : {
            "id" : {
              "type" : "integer"
            },
            "restoreTimestamp" : {
              "type" : "integer"
            },
            "savepoint" : {
              "type" : "boolean"
            },
            "externalPath" : {
              "type" : "string"
            }
          }
        }
      }
    },
    "history" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointStatistics",
        "properties" : {
          "id" : {
            "type" : "integer"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
          },
          "savepoint" : {
            "type" : "boolean"
          },
          "triggerTimestamp" : {
            "type" : "integer"
          },
          "latestAckTimestamp" : {
            "type" : "integer"
          },
          "stateSize" : {
            "type" : "integer"
          },
          "duration" : {
            "type" : "integer"
          },
          "alignmentBuffered" : {
            "type" : "integer"
          },
          "numSubtasks" : {
            "type" : "integer"
          },
          "numAckSubtasks" : {
            "type" : "integer"
          },
          "checkpointStatisticsPerTask" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatistics"
            }
          }
        }
      }
    }
  }
}            
          
/jobs/:jobid/checkpoints/config
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
            
{}            
          
            
{
  "type" : "any"
}            
          
/jobs/:jobid/checkpoints/details/:checkpointid/subtasks/:vertexid
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
  • checkpointid - 説明
  • vertexid - 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails",
  "properties" : {
    "checkpointId" : {
      "type" : "integer"
    },
    "checkpointStatus" : {
      "type" : "string",
      "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
    },
    "latestAckTimestamp" : {
      "type" : "integer"
    },
    "stateSize" : {
      "type" : "integer"
    },
    "duration" : {
      "type" : "integer"
    },
    "alignmentBuffered" : {
      "type" : "integer"
    },
    "numSubtasks" : {
      "type" : "integer"
    },
    "numAckSubtasks" : {
      "type" : "integer"
    },
    "summary" : {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails:Summary",
      "properties" : {
        "stateSize" : {
          "type" : "object",
          "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics",
          "properties" : {
            "minimum" : {
              "type" : "integer"
            },
            "maximum" : {
              "type" : "integer"
            },
            "average" : {
              "type" : "integer"
            }
          }
        },
        "duration" : {
          "type" : "object",
          "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
        },
        "checkpointDuration" : {
          "type" : "object",
          "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails:CheckpointDuration",
          "properties" : {
            "synchronousDuration" : {
              "type" : "object",
              "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
            },
            "asynchronousDuration" : {
              "type" : "object",
              "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
            }
          }
        },
        "checkpointAlignment" : {
          "type" : "object",
          "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails:CheckpointAlignment",
          "properties" : {
            "bufferedData" : {
              "type" : "object",
              "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
            },
            "duration" : {
              "type" : "object",
              "$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
            }
          }
        }
      }
    },
    "subtaskCheckpointStatistics" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:SubtaskCheckpointStatistics",
        "properties" : {
          "index" : {
            "type" : "integer"
          },
          "checkpointStatus" : {
            "type" : "string"
          }
        }
      }
    }
  }
}            
          
/jobs/:jobid/checkpoints/:checkpointid
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
  • checkpointid - 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointStatistics",
  "properties" : {
    "id" : {
      "type" : "integer"
    },
    "status" : {
      "type" : "string",
      "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
    },
    "savepoint" : {
      "type" : "boolean"
    },
    "triggerTimestamp" : {
      "type" : "integer"
    },
    "latestAckTimestamp" : {
      "type" : "integer"
    },
    "stateSize" : {
      "type" : "integer"
    },
    "duration" : {
      "type" : "integer"
    },
    "alignmentBuffered" : {
      "type" : "integer"
    },
    "numSubtasks" : {
      "type" : "integer"
    },
    "numAckSubtasks" : {
      "type" : "integer"
    },
    "checkpointStatisticsPerTask" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatistics",
        "properties" : {
          "checkpointId" : {
            "type" : "integer"
          },
          "checkpointStatus" : {
            "type" : "string",
            "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
          },
          "latestAckTimestamp" : {
            "type" : "integer"
          },
          "stateSize" : {
            "type" : "integer"
          },
          "duration" : {
            "type" : "integer"
          },
          "alignmentBuffered" : {
            "type" : "integer"
          },
          "numSubtasks" : {
            "type" : "integer"
          },
          "numAckSubtasks" : {
            "type" : "integer"
          }
        }
      }
    }
  }
}            
          
/jobs/:jobid/config
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobConfigInfo",
  "properties" : {
    "jobId" : {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:api:common:JobID",
      "properties" : {
        "upperPart" : {
          "type" : "integer"
        },
        "lowerPart" : {
          "type" : "integer"
        },
        "bytes" : {
          "type" : "array",
          "items" : {
            "type" : "integer"
          }
        }
      }
    },
    "jobName" : {
      "type" : "string"
    },
    "executionConfigInfo" : {
      "type" : "any"
    }
  }
}            
          
/jobs/:jobid/exceptions
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
            
{}            
          
            
{
  "type" : "any"
}            
          
/jobs/:jobid/metrics
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
クエリ パラメータ
  • get (任意): 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:MetricCollectionResponseBody",
  "properties" : {
    "metrics" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:Metric",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        }
      }
    }
  }
}            
          
/jobs/:jobid/plan
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobPlanInfo",
  "properties" : {
    "jsonPlan" : {
      "type" : "string"
    }
  }
}            
          
/jobs/:jobid/vertices/:vertexid/accumulators
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
  • vertexid - 説明
            
{}            
          
            
{
  "type" : "any"
}            
          
/jobs/:jobid/vertices/:vertexid/metrics
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
  • vertexid - 説明
クエリ パラメータ
  • get (任意): 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:MetricCollectionResponseBody",
  "properties" : {
    "metrics" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:Metric",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        }
      }
    }
  }
}            
          
/jobs/:jobid/vertices/:vertexid/subtasks/:subtaskindex/metrics
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
  • vertexid - 説明
  • subtaskindex - 説明
クエリ パラメータ
  • get (任意): 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:MetricCollectionResponseBody",
  "properties" : {
    "metrics" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:Metric",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        }
      }
    }
  }
}            
          
/jobs/:jobid/vertices/:vertexid/subtasktimes
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • jobid - 説明
  • vertexid - 説明
            
{}            
          
            
{
  "type" : "any"
}            
          
/overview
動詞: GET 応答コード: 200 OK
説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:legacy:messages:ClusterOverviewWithVersion",
  "properties" : {
    "numJobsRunningOrPending" : {
      "type" : "integer"
    },
    "numJobsFinished" : {
      "type" : "integer"
    },
    "numJobsCancelled" : {
      "type" : "integer"
    },
    "numJobsFailed" : {
      "type" : "integer"
    },
    "numTaskManagersConnected" : {
      "type" : "integer"
    },
    "numSlotsTotal" : {
      "type" : "integer"
    },
    "numSlotsAvailable" : {
      "type" : "integer"
    },
    "version" : {
      "type" : "string"
    },
    "commitId" : {
      "type" : "string"
    }
  }
}            
          
/taskmanagers
動詞: GET 応答コード: 200 OK
説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagersInfo",
  "properties" : {
    "taskManagerInfos" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagerInfo",
        "properties" : {
          "resourceId" : {
            "type" : "object",
            "id" : "urn:jsonschema:org:apache:flink:runtime:clusterframework:types:ResourceID",
            "properties" : {
              "resourceIdString" : {
                "type" : "string"
              },
              "resourceID" : {
                "type" : "object",
                "$ref" : "urn:jsonschema:org:apache:flink:runtime:clusterframework:types:ResourceID"
              }
            }
          },
          "address" : {
            "type" : "string"
          },
          "dataPort" : {
            "type" : "integer"
          },
          "lastHeartbeat" : {
            "type" : "integer"
          },
          "numberSlots" : {
            "type" : "integer"
          },
          "numberAvailableSlots" : {
            "type" : "integer"
          },
          "hardwareDescription" : {
            "type" : "object",
            "id" : "urn:jsonschema:org:apache:flink:runtime:instance:HardwareDescription",
            "properties" : {
              "numberOfCPUCores" : {
                "type" : "integer"
              },
              "sizeOfPhysicalMemory" : {
                "type" : "integer"
              },
              "sizeOfJvmHeap" : {
                "type" : "integer"
              },
              "sizeOfManagedMemory" : {
                "type" : "integer"
              }
            }
          }
        }
      }
    }
  }
}            
          
/taskmanagers/:taskmanagerid
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • taskmanagerid - description
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagerDetailsInfo",
  "properties" : {
    "resourceId" : {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:runtime:clusterframework:types:ResourceID",
      "properties" : {
        "resourceIdString" : {
          "type" : "string"
        },
        "resourceID" : {
          "type" : "object",
          "$ref" : "urn:jsonschema:org:apache:flink:runtime:clusterframework:types:ResourceID"
        }
      }
    },
    "address" : {
      "type" : "string"
    },
    "dataPort" : {
      "type" : "integer"
    },
    "lastHeartbeat" : {
      "type" : "integer"
    },
    "numberSlots" : {
      "type" : "integer"
    },
    "numberAvailableSlots" : {
      "type" : "integer"
    },
    "hardwareDescription" : {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:runtime:instance:HardwareDescription",
      "properties" : {
        "numberOfCPUCores" : {
          "type" : "integer"
        },
        "sizeOfPhysicalMemory" : {
          "type" : "integer"
        },
        "sizeOfJvmHeap" : {
          "type" : "integer"
        },
        "sizeOfManagedMemory" : {
          "type" : "integer"
        }
      }
    }
  }
}            
          
/taskmanagers/:taskmanagerid/metrics
動詞: GET 応答コード: 200 OK
説明
パスのパラメータ
  • taskmanagerid - description
クエリ パラメータ
  • get (任意): 説明
            
{}            
          
            
{
  "type" : "object",
  "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:MetricCollectionResponseBody",
  "properties" : {
    "metrics" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:Metric",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        }
      }
    }
  }
}            
          

上に戻る

TOP
inserted by FC2 system