接口功能概述

第三方应用可以直接通过调用该接口,向特定租户的特定产品中添加专项类别的应用巡检 (==注意使用V2.0授权方式==)

接口说明

  • 调用地址

    正式:https://zenith.fdcyun.com/v20/api/pub/patrol/insert-category.svc
    测试:https://planet-test.fdcyun.com/v20/api/pub/patrol/insert-category.svc
    开发:http://localhost:8022/v20/api/pub/patrol/insert-category.svc
    
  • 调用方式:POST

  • 请求头信息(header)
    x-token:xxxxx //调用服务云[认证接口]得到的token,未传输此头的请求无法获取数据
    x-custid:xxxx //客户主数据GUID
    Content-Type: application/json; charset=utf-8
    
  • 请求体(body)
[//有多套巡检规则使用数组传递多套巡检
    {
      "name":"应用监控巡检", //巡检策略名称
      "product_id":XX,
      "subsystem_code":"0101",
      "type":1 //1:集团级,2:公司级,3:项目级
      "task_code":"XXX",//任务编号,
      "biz_id":"",//可扩展的业务字段
      "rules":[//此处规则score总分之和必须是100分
            {
                "name":"低:近3个月活跃用户占比超30%", //规则名称
                "description":"近3个月活跃用户占比超30%",//规则描述
                "modify_reason":"业务变更,同步调整SQL",//调整原因
                "score":100,//规则最高得分
                "sql":"SELECT case when  COUNT (a.paramname)>0 then 10 else 0 end as score
FROM    myBizParamRegist a
        LEFT JOIN (SELECT   ParamName,
                            ParamValue
                   FROM     myBizParamOption
                   GROUP BY myBizParamOption.ParamName,
                            myBizParamOption.ParamValue
                  ) b ON b.ParamName = a.ParamName
                         AND SUBSTRING(a.Options,
                                       (CHARINDEX('工作流', a.Options) - 2), 1) = b.[ParamValue]
WHERE   a.ParamType = '参数配置'
        AND CHARINDEX('工作流', a.Options) > 0
        AND b.ParamName IS NOT NULL", //规则得分的取数语句,语句返回的即为分数 分数小于0按0分处理,超过score的分值按score分值计算,不要出现小数分数
                "type":{ //规则对应的类型,用于后续业务统计使用
                    "name":"活跃用户", //规则对应的类型名称
                    "type":"系统活跃情况" // 类型标记 只能是 系统活跃情况,业务功能应用、管理价值输出中的一个
                }
            }
      ]
    }
]
应用巡检有如下校验规则,任意一个不满足将不会添加整个策略:
    1、SQL语句中不允许使用关键字alter、create、drop、truncate、exec、xp_cmdshell、delete
    2、product_id 在服务云平台对应的产品未被删除
    3、传入的子系统 subSystem_code 在当前产品中存在
    4、一个应用巡检策略下的规则的总分必须是100分(规则上的score)(****作废,不在限制总分100分**)
    5、规则对应的类型的类型标记只能是系统活跃情况,业务功能应用、管理价值输出的一个,不匹配时默认使用业务功能应用
    6、task_code必须传递 任务编号
    7、巡检策略名称同一个Product_id的通一个子系统下不能重名,重名将将不添加此巡检策略
  • 返回结果
成功返回,http状态码为 200
{
    "success_count":1,     //成功添加的策略数量
    "data":[{}], //未满足条件添加失败的信息 和原策略结构相同
    "error_message":"XXX"  //每个策略失败的原因信息,每个策略的原因使用;分割
}

失败返回,http状态码为 500
//失败返回
{
    "Message": "应用ID不存在",
    "ExceptionType":"System.Exception",
    "xxx": "xxx" //后续扩展
}
  • 返回代码说明
代码 说明
200 表示请求成功
403 未授权
500 具体错误信息

更新说明

20200617 (此功能从20200623之后生效) 0、调整了插入策略,应产品经理[石军]的管理要求将原来单独策略进行合并插入;保证同一个产品的同一个子系统对应的项目项目评估类的策略只有一个的原则(已产生的策略联系石军处理历史数据)。 现在添加策略的逻辑调整为: 1、若传入的产品子系统找到了现有的项目评估类应用巡检策略(存在多个时优先使用创建时间最早的那一个) 则将插入的规则插入到改巡检策略之中 2、若当前产品子系统未找到项目评估类的应用巡检策略 则按照以前的逻辑新增一个应用巡检项目评估类的策略 并将规则插入到新创建的策略之下 3、同时传入的任务编号将关联到规则上,页面展示也将在巡检策略上取消展示任务编号 改为巡检规则上展示任务编号