云监控服务 CES-批量查询监控数据:常见4XX问题处理
常见4XX问题处理
- HTTP状态码
400
错误码
ces.0014
可能原因
原因1:请求参数格式错误。详见下方【案例一】
原因2:必传字段没有传。详见下方【案例二】
案例一 请求参数格式错误
- from、to属性对应的值应该换算为毫秒进行传参。
- period属性支持的枚举值:1,300,1200,3600,14400,86400。
- 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 }
- 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" }
- 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 }
- 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 }
- 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 }