最近更新版本 : Sloth_v3.9.11

    一 公共参数 1.1 响应格式

    名称 类型 描述
    code Number 响应码:非0表示失败。
    reqId String 请求ID
    msg String 响应消息
    result Object 响应结果
    cost Number 耗时

    1.2 响应码(1000~9999)

    响应码 描述
    1000 openapi请求参数为空!
    1001 请求参数必须extends OpenapiBaseRequest
    1002 参数[{}]不能为空
    1003 获取用户[{}]信息失败
    1004 用户[{}]不存在
    1005 获取产品信息失败,产品[{}]!
    1006 用户[{}]产品列表为空
    1007 用户[{}]不在产品里, 产品[{}]!
    1008 产品[{}]不存在
    1009 任务名重复
    1010 目录[{}],不存在
    1011 该引擎类型不存在,或者没有入库[{}]
    1012 目录[{}]格式有问题
    1013 目录[{}]创建失败
    1014 目录深度超过两层
    1015 JAR包不存在
    1016 任务不存在
    1017 发布失败,错误原因:[{}]
    1018 文件已存在
    1019 文件格式只能是*.jar, *.xml, *.proto, *.keytab, *.conf
    1131 cdc任务引擎类型无效
    1132 参数[{}]无效,正确的是[{}]
    1133 数据源id[{}]无效,查找不到对应的数据源
    1134 cdc任务源端增量读取方式为ogg时目标端类型只能为kafka
    1135 更新资源实例信息异常
    1136 更新队列信息异常
    1137 获取参数组信息异常
    1138 获取参数组[{}]无效, 查找不到对应的参数组
    1403 用户不存在或者权限不正确

    1.3 公共枚举定义 1.3.1 EngineTypeEnum

    枚举值 类型 名称
    FLINK1_10 String flink引擎版本1.10
    FLINK1_12 String flink引擎版本1.12
    FLINK1_13 String flink引擎版本1.13
    FLINK1_14 String flink引擎版本1.14

    1.3.2 StartMode

    枚举值 类型 名称
    FROM_LAST_CHECKPOINT String 从最近的checkpoint启动
    FROM_LAST_SAVEPOINT String 从最近的savepoint启动
    FROM_PATH String 从指定的路径启动
    NONE String 直接启动

    1.3.3 JobStatusEnum 任务运行状态

    名称 枚举值 任务状态
    JobStatus STARTING 启动中
    START_FAILED 启动失败
    RUNNING 运行中
    FINISHED 任务执行结束,并正确的退出
    FAILED 任务因为异常运行失败
    STOPPING 停止中
    STOPPED 已停止
    UNKNOWN 未知(无法访问集群)

    1.4 查询实体列表 1.4.1 JobTaskConfig 任务参数配置 字段说明:

    名称 类型 描述 是否必传 默认值
    checkpointSwitch boolean cp开关 False 关闭
    checkpointInterval int cp间隔:单位s 30
    checkpointMode CheckpointMode cp模式 EXACTLY_ONCE
    checkpointTimeout int cp超时时间 30
    restartStrategy RestartStrategy 重启策略 fixed-delay
    restartAttempts int 重启失败次数 10
    restartDelay int 重试时间间隔 10
    restartInterval int 重启时间范围 300
    extendConfig Map flink高级配置

    1.4.2 JobResourceConfig

    名称 类型 描述 是否必传 默认值
    resourceInstanceName String 资源实例名称
    queueName String 队列名称
    slots int slot数量 1
    tmMemory int tm内存:单位M 2048
    jmMemory int jm内存:单位M 2048
    parallelism int 并发数 1
    accountType String 提交账号
    PLATFORM_ACCOUNT 平台账号 (默认)
    PRODUCT_ACCOUNT 项目账号
    PLATFORM_ACCOUNT
    deploymentMode String 部署模式:
    per-job : PER_JOB
    application-mode : APPLICATION_MODE
    PER_JOB

    1.4.3 CheckpointMode

    名称 类型 描述
    EXACTLY_ONCE String 至多一次
    AT_LEAST_ONCE String 至少一次

    1.4.4 StateBackend 存储介质

    名称 类型 描述
    hdfs String hdfs
    rocksdb String rocksdb

    1.4.5 RestartStrategy 重启策略

    名称 类型 描述
    fixed-delay String 固定间隔,如果超过最大尝试次数,作业会最终失败,在连续两次重启尝试之间等待固定的时间
    failure-rate String 在失败之后重新启动作业,但是当超过故障率时,作业最终会失败。在连续两次重启尝试之间等待固定时间。

    如果没有启用 checkpointing,则使用无重启 (no restart) 策略。 如果启用了 checkpointing,但没有配置重启策略,则使用固定间隔 (fixed-delay) 策略 fixed-delay 需要传入重启失败次数和重试时间间隔 failure-rate 需要传入 重启失败次数、重启时间范围、重试时间间隔 1.4.6 StartJobInfo 任务启动参数配置

    • 字段说明:
    名称 类型 描述 是否必传 默认值
    jobId String 任务id
    startMode startMode 启动任务的方式,枚举类型 NONE
    statePath String 状态路径

    1.4.7 StopJobInfo 任务停止参数配置

    名称 类型 描述 是否必传 默认值
    jobId String 任务id
    triggerSavepoint boolean 是否触发savepoint保存

    1.4.8 RestartJobInfo 任务重启参数配置

    名称 类型 描述 是否必传 默认值
    jobId String 任务id
    startMode startMode 启动任务的方式,枚举类型 NONE
    statePath String 状态路径
    triggerSavepoint boolean 是否触发savepoint保存

    1.4.9 AlarmInfo 告警信息配置

    名称 类型 描述 是否必传 默认值
    emails Array 告警用户信息 null
    alarmRules Array 告警规则详细描述 null
    alarmGroupId String 告警接收组id,如sloth开发组 null
    pausingInterval int 全局告警抑制时间 null
    pausingEnable boolean 是否开启告警抑制 false
    alarmEnable boolean 是否开启告警 true

    1.4.10 AlarmRule 告警规则

    名称 类型 描述 是否必传 默认值
    metricType String 告警指标类型:
    1. failover
    2. data_retention_latency:数据滞留延迟
    3. job_failed:任务失败
    4. input_qps:输入QPS
    5. output_qps:输出QPS
    6. failed_checkpoint:checkpoint失败次数
    7. user_defined_latency:用户自定义延迟
    8. record_lag:滞留数据量
    9. backpressure:反压
    metricName String 告警指标名称 -1
    cycleTime int 单个统计周期的时长:(任务失败不支持配置)
    1. 1:1分钟周期
    2. 5:5分钟周期
    3. 10:10分钟周期
    4. 15:15分钟周期
    5. 20:20分钟周期
    6. 25:25分钟周期
    7. 30:30分钟周期
    alarmInterval int 报警间隔时长,单位:分钟
    suppressOperator String 单个统计周期内的运算符:(仅支持用户自定义延迟)
    1. >=:大于等于
    -1
    cycleNum String 连续多少个统计周期:
    1. 1:连续1个周期
    2. 3:连续3个周期
    3. 5:连续5个周期
    -1
    threshold String 定义的多个统计周期内告警阈值:(任务失败不支持配置) -1
    suppressThreshold String 单个统计周期内告警阈值:(仅支持用户自定义延迟)
    statisticsType String 聚合类型:
    1. max:最大值
    2. avg:平均值
    3. sum:总和
    -1
    operator String 定义的多个统计周期内运算符:(任务失败不支持配置)
    1. >=:大于等于
    2. <:小于
    -1
    receiveTypes Array 告警方式的接收类型(根据支持的通道设置):
    sendemail:邮箱;
    sendsms:短信
    sendvoice:电话;

    1.4.11 ParamSetInfo

    名称 类型 描述 是否必传 默认值
    id String 参数组唯一标识
    priority int 参数组的优先级, 数值越小, 优先级越高.
    如果不同的参数组中有相同的参数, 使用参数组priority 最小的值.
    name String 参数组名称

    1.5 响应实体列表 1.5.1 JobBasicInfo

    名称 类型 描述
    jobId String 任务id
    jobName String 任务名称
    jarInfo JarInfo 对Jar任务的描述
    jobType String 任务类型
    rawSql String SQL文本信息
    fileList ResourceFileSimpleInfo 依赖的文件信息
    udfList UdfSimpleInfo 依赖的udf信息
    请注意手动依赖的方式, udfList参数中不会显示udf信息,请尽快下线, 推荐采用对接udf stuido的新方式使用.]
    paramSetList ParamSetInfo 依赖的参数组信息
    creator String 任务的创建者
    createTime String 任务的创建时间
    publisher String 任务的发布人
    env String 环境id
    category String 任务所属目录id
    tags Array 任务的标签信息
    description String 任务的描述信息
    lastStartJobExecHistoryId String 最后一次启动任务的执行id
    startExecId String 任务的启动id
    lastClusterId String 任务所属的集群id
    jobStatus String 任务的运行状态
    applicationId String 对应flink任务id
    flinkUrl String Flink web URL
    monitorUrl String 任务的Grafana监控地址

    1.5.2 ResourceFileSimpleInfo

    名称 类型 描述
    id String 依赖资源id
    name String 依赖资源名称
    path String 依赖资源的绝对路径

    1.5.3 UdfSimpleInfo 注意: 手动选择函数依赖的方式, udfList参数中不会显示udf信息,请尽快下线, 推荐采用对接udf stuido的新方式使用.

    名称 类型 描述
    uid String udf 函数唯一标识
    name String udf名称
    Name String udf
    resourceUid String udf 引用的资源文件
    md5 String udf 引用的资源文件md5

    1.5.4 StartJobResult

    名称 类型 描述
    jobId String 唯一标识
    jobName String 任务名称
    isSuccess Boolean 是否成功
    errorMessage String 异常信息

    1.5.5 StopJobResult

    名称 类型 描述
    jobId String 唯一标识
    jobName String 任务名称
    isSuccess Boolean 是否成功
    errorMessage String 异常信息

    1.5.6 RestartJobResult

    名称 类型 描述
    jobId String 唯一标识
    jobName String 任务名称
    isSuccess Boolean 是否成功
    errorMessage String 异常信息

    1.5.7 JobStatus

    名称 类型 描述
    jobId String 唯一标识
    jobStatus String 任务状态

    二、OpenAPI列表 2.1 OpenAPI总览

    模块 名称 支持版本 状态 请求方法 请求路径
    任务管理 新建SQL任务 v3.9.10 待上线 POST /job/v2/sql/create
    修改SQL任务 v3.9.10 待上线 POST /job/v2/sql/modify
    删除任务 v3.9.10 待上线 POST /job/v2/delete
    获取任务信息 v3.9.10 待上线 POST /job/v2/detail
    启动任务 v3.9.10 待上线 POST /job/v2/start
    停止任务 v3.9.10 待上线 POST /job/v2/stop
    重启任务 v3.9.10 待上线 POST /job/v2/restart
    获取任务当前状态 v3.9.10 待上线 POST /job/v2/status

    2.1.1 新建SQL 任务 POST /job/v2/sql/create

    • 版本:3.9.10
    • 描述:创建SQL类型的任务
    • URL参数/请求体
    名称 类型 描述 是否必传 默认值
    product String 项目名称
    clusterId String 集群标识[英文]
    user String 用户邮箱
    jobName String 任务名称
    engineType EngineTypeEnum 引擎类型,枚举值
    folderPath String 保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录
    rawSql String sql语句,sql最好传入\n用于分隔
    description String 任务描述
    dependencyIds Array 依赖文件id列表
    paramSetList Array 参数组依赖
    jobTaskConfig JobTaskConfig 任务配置
    jobResourceConfig JobResourceConfig 资源配置 如果资源配置中设置了资源实例和队列, 可以不选.
    alarmInfo AlarmInfo 告警配置 默认配置

    请求示例:

    {
        "product":"sloth",
        "clusterId":"dev4",
        "user":"xxxx@corp.netease.com",
        "jobName":"jarName",
        "engineType":"FLINK1_12_0",
        "folderPath":"/tmp/dir",
        "rawSql":"this is sql",
        "description":"sql job description",
        "dependencyIds":[
            1,
            2,
            4
        ],
        "paramSetList":[
            {
                "id":1,
                "priority":1
            },
            {
                "id":2,
                "priority":2
            }
        ],
        "jobTaskConfig":{
            "checkpointSwitch":true,
            "checkpointMode":"EXACTLY_ONCE"
        },
        "jobResourceConfig":{
            "resourceInstanceName":"sloth_yarn_cluster_name",
            "queueName":"sloth_queue_name"
        }
    }

    返回示例:

    名称 类型 描述
    jobId Integer 新创建任务的id
    {
        "code": 0,
        "msg": "success",
        "result": {
            "jobId":"104722"
        },
        "requestId": null,
        "reqId": null,
        "cost": 2072,
        "success": true
    }

    2.1.2 修改SQL任务 POST /job/v2/sql/modify

    • 版本:3.9.10
    • 描述:修改SQL类型的任务
    • URL参数/请求体
    名称 类型 描述 是否必传 默认值
    user String 用户邮箱
    product String 项目名称
    clusterId String 集群标识[英文]
    jobId String 任务id
    jobName String 任务名称
    engineType EngineTypeEnum 引擎类型,枚举值
    folderPath String 保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录
    rawSql String sql语句,需要传入分割符
    description String 任务描述
    dependencyIds Array 依赖文件id列表
    paramSetInfo Array 参数组依赖
    jobTaskConfig JobTaskConfig 任务配置
    jobResourceConfig JobResourceConfig 资源配置
    alarmInfo AlarmInfo 告警配置 不传不会修改

    请求示例:

    {
        "jobId": "104722",
        "product": "sloth",
        "clusterId": "dev4",
        "user": "xxxx@corp.netease.com",
        "jobName": "jarName",
        "engineType": "FLINK1_12_0",
        "folderPath": "/tmp/dir",
        "rawSql": "this is sql",
        "description": "sql job description",
        "dependencyIds": [
            1,
            2,
            4
        ],
        "paramSetInfo" : [
            {
                "id" : 1,
                "priority" : 1            
            },
            {
                "id" : 2,
                "priority" : 2            
            }
        ],
        "jobTaskConfig" : {
            "checkpointSwitch" : true,
            "checkpointMode" : "EXACTLY_ONCE"
        },
        "jobResourceConfig" : {
            "resourceInstanceName" : "sloth_yarn_cluster_name",
            "queueName" : "sloth_queue_name"
        }
    }

    返回示例:

    {
        "code": 0,
        "msg": "success",
        "result": null,
        "requestId": null,
        "reqId": null,
        "cost": 2072,
        "success": true
    }

    2.1.3 获取任务信息 POST /job/v2/detail

    • 版本:3.9.10
    • 描述:获取最新版本任务信息
    • URL参数/请求体:
    名称 类型 描述 是否必传 默认值
    user String 用户邮箱
    product String 项目名称
    clusterId String 集群标识[英文]
    jobId String 任务id
    • 请求示例:
    {
        "user": "xxxxxx@corp.netease.com",
        "product": "sloth",
        "clusterId": "dev4",
        "jobId": 1000056
    }
    • 响应体描述:
    名称 类型 描述
    jobBasicInfo JobBasicInfo 任务的基本信息
    • 响应体示例:
    {
        "code": 0,
        "msg": "success",
        "result": {
            "jobBasicInfo": {
                "jobId": 1000056,
                "jobName": "测试任务2-rename",
                "jobType": "SQL",
                "rawSql": "[{\"cellType\":\"flink.sql\",\"enable\":true,\"key\":\"743a695f-9099-11ec-ad7c-fa163ea49987\",\"source\":[\"--SQL\",\"--********************************************************************--\",\"--Author: 杨晓航\",\"--CreateTime: 2021-12-09 15:57:41\",\"--Comment: 请输入业务注释信息\",\"--********************************************************************--\",\"CREATE TABLE user_log (\",\"user_id VARCHAR,\",\"item_id VARCHAR,\",\"category_id VARCHAR,\",\"behavior VARCHAR,\",\"ts VARCHAR\",\") WITH (\",\"'connector' = 'datagen'\",\"-- , 'number-of-rows' = '10'\",\");\",\"\",\"create table print_table WITH ('connector' = 'print')\",\"LIKE user_log (EXCLUDING ALL);\",\"\",\"insert into print_table\",\"select * from user_log;\"],\"title\":\"SQL\"}]",
                "udfList": [
                    {
                        "uid" : "xxxxxxxxxx"
                        "name": "udf_function",
                        "Name": "com.xxx.xx",
                        "resourceUid": "xxxxxxxxx",
                        "md5":"xxxxxx"
                    }
                ],
                "paramSetList": [
                    {
                    "id" : 1,
                    "name" : "sloth_param_set_1"
                    "priority" : 1,                           
                    },
                    {
                    "id" : 2,
                    "name" : "sloth_param_set_2"
                    "priority" : 2,                           
                    }
                ]
                "fileList": [],
                "creator": "xxxxxx@corp.netease.com",
                "createTime": "2021-12-09T07:57:41.000+0000",
                "publisher": "xxxxxx@corp.netease.com",
                "env": 381,
                "category": 351,
                "tags": [],
                "description": "xxxxxx",
                "lastStartJobExecHistoryId": 2745,
                "startExecId": 2036,
                "lastResourceInstanceId": 1,
                "jobStatus": "FAILED",
                "applicationId": "",
                "flinkUrl": "http://sloth-test2.dg.163.org:8088/proxy/application_1645065290019_0491/#/overview",
                "monitorUrl": "http://sloth.bdms.netease.com/grafana/d/rZuGINgWk/sloth?orgId=1&var-jobAppKey=1000056&var-jobSource=sloth&from=1648028948000&to=1648696837704"
            }
        },
        "requestId": dcaf583d,
        "success": true
    }

    POST /job/v2/delete

    • 版本:3.9.10
    • 描述:删除调用方传入的任务列表
    • URL参数/请求体:
    名称 类型 描述 是否必传 默认值
    user String 用户邮箱
    product String 项目名称
    clusterId String 集群标识[英文]
    jobIds String 待删除的任务id集合,支持传入多个任务,任务id间用逗号分割
    • 请求示例:
    {
        "user": "xxxxx@corp.netease.com",
        "product": "sloth",
        "clusterId": "dev4",
        "jobIds": "1000074,1000071"
    }
    • 响应体:

    返回操作记录的id

    {
        "code":0,
        "msg":"success",
        "result":1354,
        "requestId":"dcaf583d",
        "success":true
    }

    2.1.5 启动任务 POST /job/v2/start

    • 版本:3.9.10
    • 描述:启动调用方传入的任务
    • URL参数/请求体:
    名称 类型 描述 是否必传 默认值
    user String 用户邮箱
    product String 项目名称
    clusterId String 集群标识[英文]
    jobInfos Array 任务的启动信息
    • 请求示例:
    {
        "user": "xxxxxx@corp.netease.com",
        "product": "sloth",
        "clusterId": "dev4",
        "jobInfos": [
            {
                "jobId": 1000074,
                "startMode": "NONE",
                "statePath": "hdfs://dev4/user/sloth/sloth-fs-savepoints/spt/ckp-111"
            }
        ]
    }
    • 响应体描述:
    名称 类型 描述
    results Array 启动任务的基本信息
    • 响应体示例:
    {
        "code":0,
        "msg":"success",
        "result":{
            "results":[
                {
                    "jobId":1000074,
                    "jobName":"testOpenApi",
                    "isSuccess":true,
                    "errorMessage":""
                }
            ]
        },
        "requestId":"914abf5efc64444d92f92418e3c9840c",
        "success":true
    }

    2.1.6 停止任务 POST /job/v2/stop

    • 版本:3.9.10
    • 描述:停止调用方传入的任务
    • URL参数/请求体:
    名称 类型 描述 是否必传 默认值
    user String 用户邮箱
    product String 项目名称
    clusterId String 集群标识[英文]
    jobInfos Array 任务的停止信息
    • 请求示例:
    {
        "user":"wanglei20@corp.netease.com",
        "product":"sloth",
        "clusterId":"dev4",
        "jobInfos":[
            {
                "jobId":1000096,
                "triggerSavepoint":false
            }
        ]
    }
    • 响应体描述:
    名称 类型 描述
    results Array 停止任务的基本信息
    • 响应体实例:
    {
        "code":0,
        "msg":"success",
        "result":{
            "results":[
                {
                    "jobId":1000096,
                    "jobName":"sqlOpenApiTest3",
                    "isSuccess":true,
                    "errorMessage":""
                }
            ]
        },
        "requestId":"9483bdc3f6d84be7a74f26cb78bd4b6a",
        "success":true
    }

    2.1.7 重启任务 POST /job/v2/restart

    • 版本:3.9.10
    • 描述:重新启动调用方传入的任务
    • URL参数/请求体:
    名称 类型 描述 是否必传 默认值
    user String 用户邮箱
    product String 项目名称
    clusterId String 集群标识[英文]
    jobInfos Array 任务的重启信息
    • 请求示例:
    {
        "user":"xxxxxx@corp.netease.com",
        "product":"sloth",
        "clusterId":"dev4",
        "jobInfos":[
            {
                "jobId":1000096,
                "startMode":"NONE",
                "statePath":"",
                "triggerSavepoint":false
            }
        ]
    }
    • 响应体描述:
    名称 类型 描述
    results Array 重启任务的基本信息
    • 响应体实例:
    {
        "code":0,
        "msg":"success",
        "result":{
            "results":[
                {
                    "jobId":1000096,
                    "isSuccess":true,
                    "errorMessage":""
                }
            ]
        },
        "requestId":"19cd594800684549aa420e100f241fc5",
        "success":true
    }

    2.1.8 获取任务当前状态 POST /job/v2/status

    • 版本:3.9.10
    • 描述:批量获取调用方传入任务的当前状态信息
    • URL参数/请求体:
    名称 类型 描述 是否必传 默认值
    user String 用户邮箱
    product String 项目名称
    clusterId String 集群标识[英文]
    jobIds String 待查询的任务id集合,支持传入多个任务,任务id间用逗号分割
    • 请求示例:
    {
        "user":"xxxxx@corp.netease.com",
        "product":"sloth",
        "clusterId":"dev4",
        "jobIds":"100056"
    }
    • 响应体描述:
    名称 类型 描述
    jobStatusList Array 重启任务的基本信息
    • 响应体实例:
    {
        "code":0,
        "msg":"success",
        "result":{
            "jobStatusList":[
                {
                    "jobId":"1000056",
                    "jobStatus":"FAILED"
                }
            ]
        },
        "requestId":"dcaf583d",
        "success":true
    }