# Querying Scaling Action Logs (V2)

#### Function

This API is used to query scaling action logs based on search criteria. The scaling actions include increasing instances and migrating instances to balance load. The results are displayed by page.

- The difference between the V2 and V1 APIs for querying scaling action logs is that V2 displays more detailed action logs, such as ELB migration logs.
- Search criteria can be the start time, end time, start line number, number of records, and scaling action type.
- If no search criteria are specified, a maximum of 20 scaling action logs can be queried by default.

#### URI

GET /autoscaling-api/v2/{project_id}/scaling_activity_log/{scaling_group_id}

You can type the question mark (?) and ampersand (&) at the end of the URI to define multiple search criteria. Scaling action logs can be searched by all optional parameters in the following table. For details, see the example request.

Table 1 Parameter description
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
project_id | Yes | String | Specifies the project ID.
scaling_group_id | Yes | String | Specifies the AS group ID.
log_id | No | String | Specifies the scaling action log ID.
start_time | No | String | Specifies the start time that complies with UTC for querying scaling action logs. The format of the start time is yyyy-MM-ddThh:mm:ssZ.
end_time | No | String | Specifies the end time that complies with UTC for querying scaling action logs. The format of the end time is yyyy-MM-ddThh:mm:ssZ.
start_number | No | Integer | Specifies the start line number. The default value is 0. The minimum parameter value is 0.
limit | No | Integer | Specifies the number of query records. The default value is 20. The value range is 0 to 100.

type

No

String

Specifies the types of the scaling actions to be queried. Different types are separated by commas (,).

- NORMAL: indicates a common scaling action.
- MANUAL_REMOVE: indicates manually removing instances from an AS group.
- MANUAL_DELETE: indicates manually removing and deleting instances from an AS group.
- MANUAL_ADD: indicates manually adding instances to an AS group.
- ELB_CHECK_DELETE: indicates that instances are removed from an AS group and deleted based on the ELB health check result.
- AUDIT_CHECK_DELETE: indicates that instances are removed from an AS group and deleted based on the OpenStack audit.
- DIFF: indicates that the number of expected instances is different from the actual number of instances.
- MODIFY_ELB: indicates the load balancer migration.

status

No

String

Specifies the status of the scaling action.

- SUCCESS: The scaling action has been performed.
- FAIL: Performing the scaling action failed.
- DOING: The scaling action is being performed.

#### Request Message

- Request parameters

  None

- Example request

  This example shows how to query the scaling action logs of the AS group with ID e5d27f5c-dd76-4a61-b4bc-a67c5686719a. The start time is 2018-11-22T00:00:00Z, and the end time is 2018-11-22T14:00:00Z.

      GET https://{Endpoint}/autoscaling-api/v2/{project_id}/scaling_activity_log/e5d27f5c-dd76-4a61-b4bc-a67c5686719a?start_time=2018-11-22T00:00:00Z&end_time=2018-11-22T14:00:00Z

#### Response Message

- Response parameters

  Table 2 Response parameters
  Parameter | Type | Description
  --- | --- | ---
  total_number | Integer | Specifies the total number of query records.
  start_number | Integer | Specifies the start line number.
  limit | Integer | Specifies the maximum number of resources to be queried.
  scaling_activity_log | Array of scaling_activity_log objects | Specifies scaling action logs. For details, see Table 3.

  Table 3 scaling_activity_log field description
  Parameter | Type | Description
  --- | --- | ---

  status

  String

  Specifies the status of the scaling action.
  - SUCCESS: The scaling action has been performed.
  - FAIL: Performing the scaling action failed.
  - DOING: The scaling action is being performed.

  start_time | String | Specifies the start time of the scaling action. The time format must comply with UTC.
  end_time | String | Specifies the end time of the scaling action. The time format must comply with UTC.
  id | String | Specifies the scaling action log ID.
  instance_removed_list | Array of scaling_instance objects | Specifies names of the ECSs that are removed from the AS group in a scaling action. For details, see Table 4.
  instance_deleted_list | Array of scaling_instance objects | Specifies names of the ECSs that are removed from the AS group and deleted in a scaling action. For details, see Table 4.
  instance_added_list | Array of scaling_instance objects | Specifies names of the ECSs that are added to the AS group in a scaling action. For details, see Table 4.
  instance_failed_list | Array of scaling_instance objects | Specifies the ECSs for which a scaling action fails. For details, see Table 4.
  instance_standby_list | Array of scaling_instance objects | Specifies the ECSs that are set to standby mode or for which standby mode is canceled in a scaling action. For details, see Table 4. This parameter is reserved.
  scaling_value | String | Specifies the number of added or deleted instances during the scaling.
  description | String | Specifies the description of the scaling action.
  instance_value | Integer | Specifies the number of instances in the AS group.
  desire_value | Integer | Specifies the expected number of instances for the scaling action.
  lb_bind_success_list | Array of modify_lb objects | Specifies the load balancers that are bound to the AS group. For details, see Table 5.
  lb_bind_failed_list | Array of modify_lb objects | Specifies the load balancers that failed to be bound to the AS group. For details, see Table 5.
  lb_unbind_success_list | Array of modify_lb objects | Specifies the load balancers that are unbound from the AS group. For details, see Table 5.
  lb_unbind_failed_list | Array of modify_lb objects | Specifies the load balancers that failed to be unbound from the AS group. For details, see Table 5.
  type | String | Specifies the type of the scaling action.

  Table 4 scaling_instance field description
  Parameter | Type | Description
  --- | --- | ---
  instance_name | String | Specifies the ECS name.
  instance_id | String | Specifies the ECS ID.
  failed_reason | String | Specifies the cause of the instance scaling failure.
  failed_details | String | Specifies details of the instance scaling failure.
  instance_config | String | Specifies the information about instance configurations.

  Table 5 modify_lb field description
  Parameter | Type | Description
  --- | --- | ---
  lbaas_listener | lbaas_listener object | Specifies information about an enhanced load balancer. For details, see Table 6.
  listener | String | Specifies information about a classic load balancer.
  failed_reason | String | Specifies the cause of a load balancer migration failure.
  failed_details | String | Specifies the details of a load balancer migration failure.

  Table 6 lbaas_listener field description
  Parameter | Type | Description
  --- | --- | ---
  listener_id | String | Specifies the listener ID.
  pool_id | String | Specifies the backend ECS group ID.
  protocol_port | Integer | Specifies the backend protocol port, which is the port on which a backend ECS listens for traffic.
  weight | Integer | Specifies the weight, which determines the portion of requests a backend ECS processes when being compared to other backend ECSs added to the same listener.

- Example response

      {
          "limit": 20,
          "scaling_activity_log": [
          {
            "id": "8753a18c-931d-4cb8-8d49-6c99396af348",
            "instance_value": 0,
            "desire_value": 0,
            "scaling_value": 0,
            "start_time": "2018-11-22T13:46:20Z",
            "end_time": "2018-11-22T13:47:38Z",
            "status": "SUCCESS",
            "lb_bind_success_list": [
              {
                "lbaas_listener": {
                  "weight": 1,
                  "listener_id": null,
                  "pool_id": "0f0a9dd8-2e1d-4432-8ca2-49adc75aa662",
                  "protocol_port": 82
                }
              }
            ],
            "lb_bind_failed_list": [],
            "lb_unbind_success_list": [],
            "lb_unbind_failed_list": [],
            "type": "MODIFY_ELB"
          },
          {
            "id": "44152cf2-a005-4507-b6e9-66a2a64eff52",
            "instance_value": 0,
            "desire_value": 1,
            "scaling_value": 1,
            "start_time": "2018-11-22T13:44:22Z",
            "end_time": "2018-11-22T13:46:02Z",
            "instance_added_list": [
              {
                "instance_id": "8e273bac-d303-46dc-9883-628be2294bdf",
                "instance_name": "as-config-t66a_9W8L9SSK"
              }
            ],
            "instance_deleted_list": [],
            "instance_removed_list": [],
            "instance_failed_list": [],
            "status": "SUCCESS",
            "description": "{\"reason\":[{\"change_reason\":\"MANNUAL\",\"old_value\":0,\"change_time\":\"2018-11-22T13:44:19Z\",\"new_value\":1}]}",
            "type": "NORMAL"
          }
      ],
          "total_number": 2,
          "start_number": 0
      }

#### Returned Values

- Normal

  200

- Abnormal

  Returned Value | Description
  --- | ---
  400 Bad Request | The server failed to process the request.
  401 Unauthorized | You must enter the username and password to access the requested page.
  403 Forbidden | You are forbidden to access the requested page.
  404 Not Found | The server could not find the requested page.
  405 Method Not Allowed | You are not allowed to use the method specified in the request.
  406 Not Acceptable | The response generated by the server could not be accepted by the client.
  407 Proxy Authentication Required | You must use the proxy server for authentication so that the request can be processed.
  408 Request Timeout | The request timed out.
  409 Conflict | The request could not be processed due to a conflict.
  500 Internal Server Error | Failed to complete the request because of an internal service error.
  501 Not Implemented | Failed to complete the request because the server does not support the requested function.
  502 Bad Gateway | Failed to complete the request because the request is invalid.
  503 Service Unavailable | Failed to complete the request because the system is unavailable.
  504 Gateway Timeout | A gateway timeout error occurred.

#### Error Codes

See Error Codes.

Parent topic: Scaling Action Logs