Skip to content

Collector Configuration Manual for "Huawei Cloud - ECS"

Before reading this article, please read the following first:

Before using this collector, you must install the 'Integration Core Package' and its corresponding third-party dependency packages.

1. Configuration Structure

The configuration structure of this collector is as follows:

Configuration One (Recommended)

Field Type Required Description
regions list Required List of regions to collect data from
regions[#] str Required Region ID. Example: 'cn-north-4'
See appendix for full list

The collector will automatically retrieve all IAM projects under the region, then fetch resources based on IAM projects.

Configuration Two (Legacy Compatibility)

Field Type Required Description
region_projects dict Required List of "Region - Project ID" pairs for data collection
region_projects[#] str:list Required Key-value pair where:
Key represents the region (e.g., 'cn-north-4')
Value represents the list of project IDs under that region to be collected
See appendix for full list

2. Configuration Examples

Specify Region

Collect ECS instance data corresponding to projects under the cn-north-4 region.

Python
1
2
3
collector_configs = {
    'regions': ['cn-north-4']
}

Configure Filters (Optional)

This collector script supports user-defined filters, allowing users to filter target resources by object attributes. The filter function returns True|False.

  • True: Target resource needs to be collected.
  • False: Target resource does not need to be collected.

Supported object properties for filtering:

Property Description
status Instance status
id Instance ID
name Instance name
enterprise_project_id Enterprise project ID
vpc_id Virtual cloud ID
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Example: Enable filters, filter by object's name and id properties, configuration format as follows:

def filter_instance(instance):
    '''
    Collect metrics for instances with id i-xxxxxa, i-xxxxxb and name test
    '''
    instance_id = instance['id']
    name = instance['name']
    if instance_id in ['i-xxxxxa', 'i-xxxxxb'] and name in ['test']:
        return True
    return False

from guance_integration__runner import Runner
import guance_huaweicloud_ecs__main as main

@DFF.API('HuaweiCloud-ECS Collection', timeout=3600, fixed_crontab='*/15 * * * *')
def run():
    Runner(main.DataCollector(account, collector_configs, filters=[filter_instance])).run()

3. Data Reporting Format

After data synchronization, the data can be viewed in the "Infrastructure - Resource Catalog" section of {{( brand_name )}}.

Example of reported data:

JSON
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "measurement": "huaweicloud_ecs",
  "tags": {
    "RegionId"                            : "cn-north-4",
    "project_id"                          : "xxxxxxx",
    "enterprise_project_id"               : "xxxxxxx",
    "name"                                : "xxxxx",
    "instance_id"                         : "xxxxx",
    "instance_name"                       : "ecs-3384",
    "status"                              : "ACTIVE"
  },
  "fields": {
    "OS-EXT-AZ:availability_zone"         : "cn-southeast-1",
    "vpc_id"                              : "3dda7d4b-aec0-4838-a91a-28xxxxxxxx",
    "charging_mode"                       : "0",
    "resource_spec_code"                  : "sn3.small.1.linux",
    "resource_type"                       : "1",
    "metadata_os_type"                    : "Linux",
    "hostId"                              : "1e122315dac18163814b9e0d0fc6xxxxxx",
    "created"                             : "2022-06-16T10:13:24Z",
    "description"                         : "{JSON Data}",
    "addresses"                           : "{IP JSON Data}",
    "os-extended-volumes:volumes_attached": "{JSON Data}",
    "message"                             : "{Instance JSON Data}"
  }
}

Explanation of some parameters:

Parameter Name Description
resource_spec_code Resource specification
resource_type Resource type corresponding to the cloud server

Meanings of charging_mode values (cloud server billing types):

Value Description
0 Pay-as-you-go (postPaid - postpaid method)
1 Annual/Monthly billing (prePaid - prepaid method)
2 Spot instance billing

Fields in tags and fields may change with subsequent updates.

The value of tags.name is the instance ID, used as a unique identifier.

For the range of values and their meanings for status, see the appendix on cloud server statuses.

X. Appendix

Huawei Cloud ECS "Region ID"

Refer to the official Huawei Cloud documentation: