Skip to content

Collector Configuration Manual for "Huawei Cloud - EIP"

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 fetch all IAM projects under the region and then retrieve resources based on IAM projects.

Configuration Two (Legacy Compatibility)

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

2. Configuration Examples

Specify Region

Collect EIP instance data for 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 or False.

  • True: The target resource should be collected.
  • False: The target resource should not be collected.

Supported object properties:

Property Description
status Instance status
id Instance ID
alias Instance name
enterprise_project_id Enterprise project ID
public_ip_address Public IP address
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Example: Enable filters, filter based on the name and id properties of the object. Configuration format is 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['alias']
    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_eip__main as main

@DFF.API('HuaweiCloud-EIP 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, you can view the data 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
{
  "measurement": "huaweicloud_eip",
  "tags": {
    "RegionId"               : "cn-north-4",
    "project_id"             : "xxxxxxx",
    "enterprise_project_id"  : "0",
    "name"                   : "b87409f5-xxxxxx",
    "eip_id"                 : "b87409f5-xxxxxx",
    "eip_name"               : "dev",
    "alias"                  : "dev",
    "associate_instance_type": "PORT",
    "associate_instance_id"  : "xxxxx",
    "status"                 : "ACTIVE"
  },
  "fields": {
    "type"                   : "EIP",
    "description"            : "xxx",
    "created_at"             : "2023-07-10T11:46:23Z",
    "updated_at"             : "2023-07-10T11:47:25Z",
    "bandwidth"              : "{Bandwidth Configuration}",
    "tags"                   : "{Instance Tags}",
    "message"                : "{Instance JSON Data}"
  }
}

Fields in tags and fields may change with subsequent updates.

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

X. Appendix

Huawei Cloud EIP "Region ID"

Please refer to the official Huawei Cloud documentation: