Skip to content

Configuration Manual for the "Huawei Cloud - EIP Bandwidth" Collector

Before reading this article, please read the following first:

Before using this collector, you must install the 'Integration Core Package' and its associated 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. For example: 'cn-north-4'
Refer to the appendix for the complete list

The collector will automatically retrieve all IAM projects under the region and then obtain resources based on these IAM projects

Configuration Two (Old Version Compatibility)

Field Type Required Description
region_projects dict Required List of 'Region - Project ID' pairs for data collection
region_projects[#] str:list Required In the key-value pairs:
Key represents the region (for example: 'cn-north-4')
Value represents the list of project IDs in that region to be collected
Refer to the appendix for the complete list

2. Configuration Examples

Specify Regions

Collect EIP bandwidth 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 attributes for filtering:

Attribute Description
id Bandwidth ID
name Bandwidth name
enterprise_project_id Enterprise project ID
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Example: Enable the filter, filter by object's name and id attributes, with the following configuration format:

def filter_instance(instance):
    '''
    Collect metrics where id is i-xxxxxa, i-xxxxxb and name is 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_bandwidth__main as main

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

3. Data Reporting Format

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

An example of the reported data is as follows:

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_bandwidth",
  "tags": {
    "RegionId"               : "cn-north-4",
    "project_id"             : "xxxxxxx",
    "enterprise_project_id"  : "0",
    "name"                   : "15e410a4-xxxxxx",
    "bandwidth_id"           : "15e410a4-xxxxxx",
    "bandwidth_name"         : "bandwidth-xxxx",
    "bandwidth_type"         : "bgp",
  },
  "fields": {
    "admin_state"            : "NORMAL",
    "bandwidth_rules"        : "[{bandwidth rule objects}]",
    "created_at"             : "2023-07-10T11:46:23Z",
    "updated_at"             : "2023-07-10T11:47:25Z",
    "ingress_size"           : "10",
    "publicip_info"          : "{Elastic Public IP information}",
    "rule_quota"             : "0",
    "size"                   : "10",
    "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, serving as a unique identifier

X. Appendix

Huawei Cloud EIP Bandwidth "Region ID"

Please refer to the official Huawei Cloud documentation: