云监控服务 CES-批量查询监控数据:常见4XX问题处理

时间:2024-09-03 19:24:11

常见4XX问题处理

  1. HTTP状态码

    400

    错误码

    ces.0014

    可能原因

    原因1:请求参数格式错误。详见下方【案例一】

    原因2:必传字段没有传。详见下方【案例二】

    案例一 请求参数格式错误

    1. from、to属性对应的值应该换算为毫秒进行传参。
    2. period属性支持的枚举值:1,300,1200,3600,14400,86400。
    3. filter属性支持的枚举值:average,max,min,sum,variance。

      请求参数

      {
      	"from": 1724331974,   ##传参为秒级非毫秒级
      	"to": 1724315493,     ##传参为秒级非毫秒级
      	"period": "10086",    ##period属性对应的枚举值不存在10086
      	"filter": "standard", ##filter属性对应的枚举值不存在standard
      	"metrics": [{
      		"dimensions": [{
      			"name": "instance_id",
      			"value": "129718f5-833d-4f78-b685-6b1c3091ea69"
      		}],
      		"metric_name": "mem_usedPercent",
      		"namespace": "AGT.E CS "
      	}]
      }

      响应参数

      {
      	"http_code": 400,
      	"message": {
      		"details": "Some content in message body is not correct, error message: [from, to]",##from,to属性问题
      		"code": "ces.0014"
      	},
      	"encoded_authorization_message": null
      }

      案例二 必传字段没有传

      filter必传字段没有传,更多必传字段请查询接口文档。

      请求参数

      {
      	"from": 1724119607020,
      	"to": 1724123207020,
      	"period": "1",
      	"metrics": [{
      		"dimensions": [{
      			"name": "instance_id",
      			"value": "238764d4-c4e1-4274-88a1-5956b057766b"
      		}],
      		"metric_name": "mem_usedPercent",
      		"namespace": "AGT.ECS"
      	}]
      }

      响应参数

      {
      	"http_code": 400,
      	"message": {
      		"details": "Some content in message body is not correct, error message: [filter]",  ##filter属性问题
      		"code": "ces.0014"
      	},
      	"encoded_authorization_message": null
      }
  2. HTTP状态码

    404

    错误码

    APIGW.0101

    可能原因

    原因1:路径的URI与接口文档不一致。详见下方【案例一】

    案例一 路径的URI与接口文档不一致

    请求路径中URI中的版本号写错,应该为V1.0非V1。正确URI为/V1.0/{project_id}/batch-query-metric-data。

    请求路径

    POST  /V1/04f9aca88c00d3202fd4c01ed679daf0/batch-query-metric-data

    响应参数

    {
    	"error_code": "APIGW.0101",
    	"error_msg": "The API does not exist or has not been published in the environment",
    	"request_id": "7d7a8258354300ac158c7b14a158d6ec"
    }
  3. HTTP状态码

    401

    错误码

    ces.0015

    可能原因

    原因1:请求 IAM 获取Token中写的项目ID与调用批量查询监控数据接口接口使用的项目ID不同。

    原因2:Token 过期。

    原因3:Token内容复制过程少复制或多复制其他内容。

    原因4:ak与sk不匹配。

    定位思路

    根据可能原因进行故障排查。

    解决方法

    原因1:请求IAM 获取Token 请求参数写的项目ID与调用批量查询监控数据接口使用的项目ID不同。

    解决方法: 将获取Token请求参数中项目ID参数与调用批量查询监控数据接口使用的项目ID保存一致。

    原因2:Token 过期。

    解决方法: 重新生成Token。

    原因3:Token内容复制过程少复制或多复制其他内容。

    解决方法: 获取正确的Token。

    原因4:ak与sk不匹配。

    解决方法: 获取租户匹配的AK与SK。

    案例

    Token异常导致认证失败。

    请求头

    X-Auth-Token:MIIqDgYJKoZIhvcNAQcCoIIp-zCC......+6CIyAFrbHVxQZJ2Jq    ##Token异常

    请求参数

    {
    	"from": 1724311893283,
    	"to": 1724315493283,
    	"period": "1",
    	"filter": "average",
    	"metrics": [{
    		"dimensions": [{
    			"name": "instance_id",
    			"value": "129718f5-833d-4f78-b685-6b1c3091ea69"
    		}],
    		"metric_name": "mem_usedPercent",
    		"namespace": "AGT.ECS"
    	}]
    }

    响应参数

    {
    	"http_code": 401,
    	"message": {
    		"details": "Authenticate failed.",
    		"code": "ces.0015"
    	},
    	"encoded_authorization_message": null
    }
  4. HTTP状态码

    403

    错误码

    ces.0050

    可能原因

    原因1:用户策略中没有ces:metricData:list细粒度权限。详见下方【案例一】

    案例一 用户策略中没有ces:metricData:list细粒度权限

    用户策略中没有 ces:metricData:list 细粒度权限。需要在用户所属策略中添加该action。

    请求头

    X-Auth-Token:MIIqDgYJKoZIhvcNAQcCoIIp-zCC......+6CIyAFrbHVxQZJ2Jq

    请求参数

    {
    	"from": 1724311893283,
    	"to": 1724315493283,
    	"period": "1",
    	"filter": "average",
    	"metrics": [{
    		"dimensions": [{
    			"name": "instance_id",
    			"value": "129718f5-833d-4f78-b685-6b1c3091ea69"
    		}],
    		"metric_name": "mem_usedPercent",
    		"namespace": "AGT.ECS"
    	}]
    }

    响应参数

    {
    	"http_code": 403,
    	"message": {
    		"details": "Policy doesn't allow [ces:metricData:list] to be performed.",   ##用户策略中没有 ces:metricData:list 细粒度权限
    		"code": "ces.0050"
    	},
    	"encoded_authorization_message": null
    }
  5. HTTP状态码

    429

    错误码

    ces.0429

    可能原因

    原因1:API被流控。详见下方【案例一】

    案例一 API被流控

    请求API被流控。 若API被流控,需第一时间找运维人员配置新的流程策略。

    请求参数

    {
    	"from": 1724311893283,
    	"to": 1724315493283,
    	"period": "1",
    	"filter": "average",
    	"metrics": [{
    		"dimensions": [{
    			"name": "instance_id",
    			"value": "129718f5-833d-4f78-b685-6b1c3091ea69"
    		}],
    		"metric_name": "mem_usedPercent",
    		"namespace": "AGT.ECS"
    	}]
    }

    响应参数

    {
    	"http_code": 429,
    	"message": {
    		"details": "Too Many Requests.", 
    		"code": "ces.0429"
    	},
    	"encoded_authorization_message": null
    }
support.huaweicloud.com/ces_faq/ces_faq_0111.html