Skip to content

Configuration Manual for Collector 「Huawei Cloud - RDS - PostgreSQL」

Before reading this, 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'
Refer to the appendix for the full table

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 for data collection
region_projects[#] str:list Required Key-value pairs where:
Key represents the region (e.g., 'cn-north-4')
Value represents the list of project IDs to collect within that region
Refer to the appendix for the full table

2. Configuration Examples

Specifying a Region

Collect RDS-PostgreSQL instance data for projects in the cn-north-4 region.

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

Configuring 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 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
20
21
# Example: Enable filters based on object's id and name properties, with the following configuration:
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-PostgreSQL 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
25
26
27
28
29
30
31
32
33
34
35
36
37
{
  "measurement": "huaweicloud_rds_postgresql",
  "tags": {
    "RegionId"               : "cn-north-4",
    "project_id"             : "c631f046252dxxxxxxxf253c62d48585",
    "enterprise_project_id"  : "0",
    "name"                   : "1d0c91561f4644daxxxxx68304b0520din01",
    "instance_id"            : "1d0c91561f4644dxxxxxxd68304b0520din01",
    "instance_name"          : "rds-df54-xxxx",
    "status"                 : "ACTIVE",
    "type"                   : "Single",
    "engine"                 : "PostgreSQL"
  },
  "fields": {
    "port"                   : "5432",
    "type"                   : "Single",
    "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"         : "14",
    "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 include Single, Ha, Replica, Enterprise, corresponding to single-instance, primary-secondary instance, read-only instance, distributed instance (Enterprise Edition)

X. Appendix

Huawei Cloud RDS-PostgreSQL 「Region ID」

Please refer to the official Huawei Cloud documentation: