规则管理

Kuiper REST api 可以管理规则,例如创建、显示、删除、描述、启动、停止和重新启动规则。

创建规则

该 API 接受 JSON 内容并创建和启动规则。

  1. POST http://localhost:9081/rules

请求示例:

  1. {
  2. "id": "rule1",
  3. "sql": "SELECT * FROM demo",
  4. "actions": [{
  5. "log": {}
  6. }]
  7. }

展示规则

该 API 用于显示服务器中定义的所有规则和简要状态描述。

  1. GET http://localhost:9081/rules

响应示例:

  1. [
  2. {
  3. "id": "rule1",
  4. "status": "Running"
  5. },
  6. {
  7. "id": "rule2",
  8. "status": "Stopped: canceled by error."
  9. }
  10. ]

描述规则

该 API 用于打印规则的详细定义。

  1. GET http://localhost:9081/rules/{id}

路径参数 id 是规则的 id 或名称。

响应示例:

  1. {
  2. "sql": "SELECT * from demo",
  3. "actions": [
  4. {
  5. "log": {}
  6. },
  7. {
  8. "mqtt": {
  9. "server": "tcp://127.0.0.1:1883",
  10. "topic": "demoSink"
  11. }
  12. }
  13. ]
  14. }

更新规则

该 API 接受 JSON 内容并更新规则。

  1. PUT http://localhost:9081/rules/{id}

路径参数 id 是原有规则的 id 或名称。

请求示例:

  1. {
  2. "id": "rule1",
  3. "sql": "SELECT * FROM demo",
  4. "actions": [{
  5. "log": {}
  6. }]
  7. }

删除规则

该 API 用于删除规则。

  1. DELETE http://localhost:9081/rules/{id}

启动规则

该 API 用于开始运行规则。

  1. POST http://localhost:9081/rules/{id}/start

停止规则

该 API 用于停止运行规则。

  1. POST http://localhost:9081/rules/{id}/stop

重启规则

该 API 用于重启规则。

  1. POST http://localhost:9081/rules/{id}/restart

获取规则的状态

该命令用于获取规则的状态。 如果规则正在运行,则将实时检索状态指标。 状态可以是:

  • $metrics
  • 停止: $reason
  1. GET http://localhost:9081/rules/{id}/status

响应示例:

  1. {
  2. "source_demo_0_records_in_total":5,
  3. "source_demo_0_records_out_total":5,
  4. "source_demo_0_exceptions_total":0,
  5. "source_demo_0_process_latency_ms":0,
  6. "source_demo_0_buffer_length":0,
  7. "source_demo_0_last_invocation":"2020-01-02T11:28:33.054821",
  8. ...
  9. "op_filter_0_records_in_total":5,
  10. "op_filter_0_records_out_total":2,
  11. "op_filter_0_exceptions_total":0,
  12. "op_filter_0_process_latency_ms":0,
  13. "op_filter_0_buffer_length":0,
  14. "op_filter_0_last_invocation":"2020-01-02T11:28:33.054821",
  15. ...
  16. }