Creating a Policy
Function
This API is used to create a policy. [It is not supported in versions later than 1.8.0.] (tag:hcs) The value must contain 1 to 64 characters starting with a letter. Only digits, letters, underscores (_), and hyphens (-) are allowed. In an AS group, for the same metric (metric_name), the value of metric_threshold with metric_operation set to > must be greater than that of metric_threshold with metric_operation set to <. In an AS group, you can create only one alarm policy with the same metric_operation for each metric. In a policy, conditions of metrics with the same metric_name cannot conflict. The year in the trigger time (launch_time) of a scheduled policy cannot be later than 2099. The year in the start time (start_time) and end time (end_time) of a periodic policy cannot be later than 2099. An AS group supports a maximum of 10 scheduled and periodic policies, and 10 alarm policies. In an AS group, alarm policies cannot affect each other.
URI
POST /v1/{project_id}/pe/policy
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
resourcetype |
Yes |
String |
Resource type. Example: node |
Content-Type |
Yes |
String |
Content type, which is application/json;charset=utf-8. Enumeration values:
|
Cluster-Id |
Yes |
String |
Cluster ID. |
Namespace |
Yes |
String |
Namespace. |
X-Auth-Token |
Yes |
String |
User token obtained from IAM. |
Reserved-Info |
No |
String |
Custom field. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
name |
Yes |
String |
Policy name. |
policy_type |
Yes |
String |
Policy type. Value: SCHEDULED RECURRENCE ALARM Enumeration values:
|
group_id |
Yes |
String |
Policy group ID. |
rule |
Yes |
AlarmRule object |
Policy trigger rule. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
actions |
Yes |
Array of Action objects |
Action executed after a specified policy is matched. |
conditions |
Yes |
Array of AlarmConditions objects |
Condition contents. A rule can contain multiple conditions in AND relationships. One condition describes the matching method of one metric. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
type |
Yes |
String |
scale_out_k8s and scale_out_vm indicate a scale-out. scale_in_k8s and scale_in_vm indicate a scale-in. Note: The value containing k8s indicates a scale-in or -out for containerized applications and that containing vm indicates a scale-in or -out for process applications. Enumeration values:
|
parameters |
Yes |
Array of Parameter objects |
Number of scale-in or -out instances. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
scale_unit |
Yes |
Integer |
Number of scale-in or -out instances. The value is between the minimum number of instances to the maximum number of instances in a policy group. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
metric_namespace |
Yes |
String |
Metric namespace. Enumeration values:
|
metric_name |
Yes |
String |
Metric name. Enumeration values:
|
metric_unit |
Yes |
String |
Unit. Note: The value is retrieved from an AMS API and varies with the metric name. |
period |
Yes |
Integer |
Statistical period (unit: s). Enumeration values:
|
evaluation_periods |
Yes |
Integer |
Number of consecutive periods. Enumeration values:
|
statistic |
Yes |
String |
Statistic. Enumeration values:
|
metric_operation |
Yes |
String |
Metric operator. Option: > or <. For example, you can use > in a threshold criterion (when the value of a metric is greater than metric_thresholdUpdate) to trigger actions. Enumeration values:
|
metric_threshold |
Yes |
Integer |
Threshold condition. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
errorCode |
String |
Error code. |
errorMessage |
String |
Details. |
policy_id |
String |
Policy ID. |
Example Requests
-
Example of an alarm policy
POST https://{EndPoint}/v1/{project_id}/pe/policy { "name" : "policy_2", "policy_type" : "RECURRENCE", "rule" : { "conditions" : [ { "launch_time" : "13:45", "recurrence_type" : "Weekly", "recurrence_value" : "0,1,4", "start_time" : "2017-01-26T03:33Z", "end_time" : "2099-01-31T03:33Z" } ], "actions" : [ { "type" : "scale_set_k8s", "parameters" : { "scale_unit" : 1 } } ] } }
-
Example of a scheduled policy
POST https://{EndPoint}/v1/{project_id}/pe/policy { "name" : "policy_1", "policy_type" : "ALARM", "rule" : { "conditions" : [ { "metric_namespace" : "PAAS.CONTAINER", "metric_name" : "cpuUsage", "metric_unit" : "Percent", "period" : 60, "evaluation_periods" : 1, "statistic" : "average", "metric_operation" : ">", "metric_threshold" : 70 } ], "actions" : [ { "type" : "scale_out_k8s", "parameters" : { "scale_unit" : 1 } } ] } }
-
Example of a periodic policy
POST https://{EndPoint}/v1/{project_id}/pe/policy { "name" : "policy1", "policy_type" : "SCHEDULED", "rule" : { "conditions" : [ { "launch_time" : "2017-03-04T03:37Z", "recurrence_type" : null, "recurrence_value" : null, "start_time" : null, "end_time" : null } ], "actions" : [ { "type" : "scale_set_k8s", "parameters" : { "scale_unit" : 1 } } ] } }
Example Responses
Status code: 200
OK: The request is successful.
{ "errorCode" : "SVCSTG.PE.0", "errorMessage" : "", "policy_id" : "1b9994f0-847a-45e4-aeee-e8b604dddb34" }
Status Codes
Status Code |
Description |
---|---|
200 |
OK: The request is successful. |
400 |
Bad Request: Invalid request. The client should not repeat the request without modifications. |
401 |
Unauthorized: The authorization information is incorrect or invalid. |
403 |
Forbidden: The request is rejected. The server has received the request and understood it, but the server refuses to respond to it. The client should not repeat the request without modifications. |
500 |
Internal Server Error: The server is able to receive the request but unable to understand the request. |
503 |
Service Unavailable: The requested service is invalid. The client should not repeat the request without modifications. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot