Skip to content

Configuration Manual for the "Huawei Cloud - RDS - MariaDB" Collector

Before reading this article, please read the following first:

Before using this collector, you must install the 'Core Integration 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 be collected
regions[#] str Required Region ID. Example: 'cn-north-4'
Full table in the appendix

The collector will automatically retrieve all IAM projects under the region, then obtain resources based on the 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 In the key-value pairs:
Key represents the region (e.g., 'cn-north-4')
Value represents the list of project IDs to be collected under that region
Full table in the appendix

2. Configuration Example

Specify Region

Collect RDS-MariaDB instance data for projects corresponding to the cn-north-4 region.

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

Configure Filter (Optional)

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

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

Supported object properties:

Property Description
id Instance ID
port Instance Port
engine Instance Engine
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Example: Enable the filter, filter objects by their id and name attributes, configuration format as follows:
def filter_instance(instance):
    '''
    Collect instances with instance_id 'xxxx' or instance_name 'xxxx'
    '''
    # return True
    instance_id = instance['id']
    instance_name = instance['instance_name']
    if instance_id in ['xxxx'] and instance_name in ['xxxx']:
        return True
    return False

###### Do not modify the following contents #####
from guance_integration__runner import Runner
import guance_huaweicloud_rds__main as main

@DFF.API('HuaweiCloud-RDS-MariaDB 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 is successful, the data 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
25
26
27
28
29
30
31
32
33
34
35
36
{
  "measurement": "huaweicloud_rds",
  "tags": {
    "RegionId"               : "cn-north-4",
    "project_id"             : "c631f046252dxxxxxxxf253c62d48585",
    "enterprise_project_id"  : "0",
    "name"                   : "xxxxxxxxxxxx",
    "instance_id"            : "xxxxxxxxxxxx",
    "instance_name"          : "rds-df54-xxxx",
    "status"                 : "ACTIVE",
    "type"                   : "Single",
    "engine"                 : "MariaDB"
  },
  "fields": {
    "security_group_id"      : "d13ebb59-d4fe-xxxx-xxxx-c22bcea6f987",
    "switch_strategy"        : "xxx",
    "time_zone"              : "UTC+08:00",
    "enable_ssl"             : "False",
    "charge_info.charge_mode": "postPaid",
    "engine_version"         : "5.7",
    "port"                   : "3306",
    "created_time"           : "2022-06-21T06:17:27+0000",
    "updated_time"           : "2022-06-21T06:20:03+0000",
    "alias"                  : "xxx",
    "private_ips"            : "[\"192.xxx.x.144\"]",
    "public_ips"             : "[]",
    "datastore"              : "{Database Information}",
    "cpu"                    : "2",
    "mem"                    : "4",
    "volume"                 : "{Volume Information}",
    "nodes"                  : "[{Primary-Secondary Instance Information}]",
    "related_instance"       : "[]",
    "backup_strategy"        : "{Backup Strategy}",
    "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

The following fields are strings after JSON serialization

  • fields.message
  • fields.private_ips
  • fields.public_ips
  • fields.volume
  • fields.nodes
  • fields.related_instance
  • fields.backup_strategy

Type values are Single, Ha, Replica, or Enterprise, corresponding respectively to single-instance, primary-secondary instance, read-only instance, distributed instance (Enterprise Edition)

X. Appendix

Huawei Cloud RDS 'Region ID'

Please refer to the official Huawei Cloud documentation: