Skip to content

Collector Configuration Manual for "Volcengine-RabbitMQ"

Before reading this article, please read the following first:

Before using this collector, you must install the 'Core Integration Package' and its associated third-party dependency packages.

1. Configuration Structure

The configuration structure of this collector is as follows:

Field Type Required Description
regions list Required List of regions to collect data from
regions[#] str Required Region ID. For example: 'cn-shanghai'
Refer to the appendix for the full list

2. Configuration Example

Specifying Regions

Collecting data from the Beijing region.

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

Configuring Filters (Optional)

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
InstanceId Instance ID
InstanceName Instance Name
InstanceStatus Instance Status
ZoneId Availability Zone ID
ProjectName Project Name
Version RabbitMQ Version
VpcId Private Network ID
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Example: Enable the filter, filtering by InstanceId and name attributes, with the following configuration format:
def filter_instance(instance):
    '''
    Collect instances where instance_id is xxxxx or instance_name is xxxxx
    '''
    # return True
    instance_id = instance['InstanceId']
    instance_name = instance['name']
    if instance_id in ['xxxxx'] or instance_name in ['xxxxx']:
        return True
    return False


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


@DFF.API('Volcengine-RabbitMQ 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 }}}.

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
{
  "measurement": "volcengine_rabbitmq",
  "tags": {
    "InstanceId": "rbtmq-29243xxxxxxxx",
    "ArchType": "SingleNode",
    "ComputeSpec": "rabbitmq.n1.x2.medium",
    "ChargeDetail_ChargeType": "PostPaid",
    "InstanceName": "xxxxxx",
    "InstanceStatus": "Running",
    "ProjectName": "default",
    "RegionId": "cn-beijing",
    "SubnetId": "subnet-rs611z3zxxxxxxx",
    "Version": "3.8.18",
    "VpcId": "vpc-13fw9sis8nvnk3xxxxxx",
    "ZoneId": "cn-beijing-a",
    "EipId": "xxx",
    "name": "rbtmq-29243xxxxxxxx"
  },
  "fields": {
    "InstanceDescription": "xxx",
    "CreatedAt": "2024-03-11T14:01:05+08:00",
    "StorageSpace": 100,
    "UsedStorageSpace": 2,
    "TagMap": "{Bound 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. fields.message and fields.TagMap are strings serialized in JSON format.

X. Appendix

Please refer to the official Volcengine documentation: