HTTP API 说明

(适用dtle 3.x nomad 插件)

nomad 默认开启一个web服务,可使用curl工具向其发送HTTP请求。

作业管理

完整可参考

常用如下:

前置知识:nomad 中 job、task、alloc的概念

job包含多个task。一个dtle job有src和dest两个task。

task在nomad节点上的执行,称为allocation。同一个task的多次执行(如失败-重试)会创建多个allocation。

列出所有job

curl -XGET 127.0.0.1:4646/v1/jobs | jq

添加job

curl -XPOST -data @job.json 127.0.0.1:4646/v1/jobs | jq

job.json的内容说明参看 作业(job)配置

获取某个job信息

curl -XGET 127.0.0.1:4646/v1/job/<job_name> | jq

列出某job的所有allocation

curl -XGET "127.0.0.1:4646/v1/job/<job_name>/allocations | jq

查看某个allocation的执行状态

curl -XGET "127.0.0.1:4646/v1/allocation/<alloc_id>" | jq

区别任务处于全量还是增量状态

curl -XGET "127.0.0.1:4646/v1/job/<jobId>/allocations" | jq '.' | grep job_stage
            "DisplayMessage": "job_stage_full",
            "DriverMessage": "job_stage_full",
            "DisplayMessage": "job_stage_incr",
            "DriverMessage": "job_stage_incr",
  • 当结果中 出现 job_stage_full 时,任务处于全量阶段
  • 当结果出现 job_stage_incr 时,任务处于增量阶段

停止(删除)job

curl -XDELETE 127.0.0.1:4646/v1/job/my-job
# DELETE后job信息仍会在nomad上保留一段时间供查询,直到nomad自动回收(gc)
# 指定purge可立刻删除
curl -XDELETE 127.0.0.1:4646/v1/job/my-job?purge=true

dtle 3.x 移除了暂停/恢复job的功能. 可使用删除/添加job来达成相同的效果。

  • 注意保留添加job时使用的job配置文件
  • job删除后进度(Gtid)仍然保存在consul kv中
    • 位置:dtle/<job_name>/Gtid
    • 再次添加job时,consul中保存的Gtid优先于job配置中的项目

如果要后续添加同名job,并且不想从consul保存的位置继续(而是从job配置中指定的位置开始),则 需要删除consul重的数据。见 consul 上的 job 数据管理

节点管理

更多可参考

列出所有节点:

curl -XGET "127.0.0.1:4646/v1/nodes" | jq
[{
    "Address": "127.0.0.1",
    "Datacenter": "dc1",
    "Drivers": {
      "dtle": {
        "Attributes": {
          "driver.dtle": "true",
          "driver.dtle.version": "9.9.9.9",
          "driver.dtle.full_version": "9.9.9.9-master-eeb399e9"
        },
        "Detected": true,
        "Healthy": true,
      }
    },
    "ID": "0e70636d-b274-c139-185e-e37dcf7a4bca",
    "Name": "nomad0",
    "Status": "ready",
    "Version": "0.11.2"
}]

可以查看节点名、节点ID和dtle插件信息(部分项省略)。

results matching ""

    No results matching ""