Skip to content

Collector Configuration Manual for "Huawei Cloud-RocketMQ"

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 full list

The collector will automatically retrieve all IAM projects under the region and 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 to collect data from
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 under that region
Refer to the appendix for the full list

2. Configuration Example

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

Optional Configuration Filters

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

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

Supported object properties for filtering:

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
def filter_instance(instance):
    '''
    Collect instances with instance_id xxxx
    '''
    instance_id = instance.get('instance_id')
    if instance_id in ['xxx']:
        return True
    return False


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


@DFF.API('HuaweiCloud-RocketMQ 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, you can view the data 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
{
  "measurement": "huaweicloud_rocketmq",
  "tags": {
    "RegionId"             : "cn-north-4",
    "project_id"           : "xxx",
    "enterprise_project_id": "0",
    "name"                 : "c0b0ea90-xxxx-xxxx-xxxx-cba3d38cf2f9",
    "instance_id"          : "c0b0ea90-xxxx-xxxx-xxxx-cba3d38cf2f9",
    "instance_name"        : "rocketmq-xxxxx",
    "engine"               : "reliability",
    "status"               : "RUNNING",
  },
  "fields": {
    "charging_mode"        : "1",
    "type"                 : "cluster.small",
    "engine_version"       : "4.8.0",
    "created_at"           : "1687158517888",
    "description"          : "",
    "enable_publicip"      : false,
    "maintain_begin"       : "02:00:00",
    "maintain_end"         : "06:00:00",
    "resource_spec_code"   : "",
    "specification"        : "rocketmq.4u8g.cluster.small * 1 broker",
    "storage_space"        : 250,
    "total_storage_space"  : 300,
    "used_storage_space"   : 0,
    "message"              : "{JSON serialized instance data}"
  }
}

Descriptions of some fields are as follows:

Field Type Description
specification String Instance specification.
charging_mode String Billing mode, 1 indicates pay-as-you-go, 0 indicates subscription billing.
created_at String Completion creation time. Timestamp format indicating the total milliseconds since January 1, 1970 UTC.
resource_spec_code String Resource specification
maintain_begin String Maintenance window start time, in HH:mm:ss format
maintain_end String Maintenance window end time, in HH:mm:ss format

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 fields.message is a JSON-serialized string.

X. Appendix

Please refer to the official Huawei Cloud documentation: