Skip to content

Configuration Manual for "Volcengine-CLB" Collector

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. Example: 'cn-shanghai'
See appendix for full list

2. Configuration Examples

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 that allow users to filter target resources based on object attributes. The filter function returns True or False.

  • True: The target resource should be collected.
  • False: The target resource should not be collected.

Supported object attributes for filtering:

Attribute Description
LoadBalancerId Instance ID
LoadBalancerName Instance name
Type Type of load balancer instance
public: public load balancer;
private: internal load balancer;
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Example: Enable a filter based on the LoadBalancerId attribute of an object, with the following configuration format:
def filter_instance(instance):
    '''
    Collect instances with LoadBalancerId as xxxxx
    '''
    # return True
    lb_id = instance['LoadBalancerId']
    if lb_id in ['xxxxx']:
        return True
    return False

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

@DFF.API('Volcengine-CLB 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
{
  "measurement": "volcengine_clb",
  "tags": {
    "RegionId"               : "cn-beijing",
    "ProjectName"            : "default",
    "AccountId"              : "205465415",
    "LoadBalancerId"         : "clb-xxx",
    "LoadBalancerName"       : "clb-test",
    "Type"                   : "public",
    "Status"                 : "Active",
    "name"                   : "clb-xxx"
  },
  "fields": {
    "Listeners"              : "[{Listener}]",
    "MasterZoneId"           : "cn-beijing-a",
    "SlaveZoneId"            : "cn-beijing-b",
    "VpcId"                  : "vpc-xxx",
    "EniAddress"             : "192.XX.XX.44",
    "EipAddress"             : "10.XX.XX.27",
    "LoadBalancerBillingType": "2",
    "LoadBalancerSpec"       : "small_1",
    "Description"            : "Test instance",
    "CreateTime"             : "2024-03-11T16:37:37Z",
    "UpdateTime"             : "2024-03-11T16:37:37Z",
    "ExpiredTime"            : "2024-03-11T16:37:37Z",
    "Tags"                   : "{Cloud platform tag information}",
    "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.Listeners
  • fields.Tags

X. Appendix

Please refer to the official Volcengine documentation: