Skip to content

Collector Configuration Manual for "Volcengine-Redis"

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:

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

2. Configuration Example

Specifying Regions

Collecting data from 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 by object attributes. 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 for filtering:

Attribute Description
InstanceId Instance ID
InstanceName Instance name
ChargeType Billing type
EngineVersion Redis version
RegionId Region ID
Status Instance status
VpcId Exclusive 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 filter based on InstanceId and name attributes of objects, 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_redis__main as main


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

3. Data Reporting Format

After successful synchronization of data, it can be viewed 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
{
  "measurement": "volcengine_redis",
  "tags": {
    "ChargeType": "PostPaid",
    "DeletionProtection": "enabled",
    "EngineVersion": "5.0",
    "InstanceClass": "PrimarySecondary",
    "InstanceId": "redis-xxxx",
    "InstanceName": "redis-xxxx",
    "MultiAZ": "disabled",
    "ProjectName": "default",
    "RegionId": "cn-beijing",
    "ShardedCluster": "0",
    "Status": "Running",
    "VpcId": "vpc-xxxx",
    "name": "redis-xxxx"
  },
  "fields": {
    "NodeNumber": "2",
    "Capacity": "{instance memory capacity information}",
    "CreateTime": "2024-04-01T06:54:02Z",
    "ExpiredTime": "",
    "ShardCapacity": 0.25,
    "ShardNumber": 1,
    "ZoneIds": "[list of availability zones where the instance resides]",
    "message": "{JSON data of the instance}"
  }
}

Fields in tags and fields may change with future updates.

The value of tags.name is the instance ID, used as a unique identifier. fields.message, fields.Capacity, and fields.ZoneIds are all JSON serialized strings.

X. Appendix

Please refer to the official Volcengine documentation: