Skip to content

Configuration Manual for Collector 「Tencent Cloud-CVM」

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: 'ap-shanghai'
See the full list in the appendix

2. Configuration Examples

Specifying Regions

Collect data from Shanghai and Guangzhou regions.

Python
1
2
3
collector_configs = {
    'regions': [ 'ap-shanghai', 'ap-guangzhou' ]
}

Configuring Filters (Optional)

This collector script supports user-defined filters that allow users to select target resources by 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
RegionId Region
InstanceId Instance ID
InstanceChargeType Billing type
InstanceType Instance type
OsName Operating system name
InstanceName Instance name
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Example: Enable filters based on the InstanceId and OsName properties, with the following configuration format:

def filter_instance(instance):
    '''
    Collect metrics for instances with InstanceId ins-0d7620xxxxxxxa, ins-0d7620xxxxxxxb and OsName TencentOS Server 3.1 (TK4).
    '''
    instance_id = instance['InstanceId']
    os_name = instance['OsName']
    if instance_id in ['ins-0d7620xxxxxxxa', 'ins-0d7620xxxxxxxb'] and os_name in ['TencentOS Server 3.1 (TK4)']:
        return True
    return False

from guance_integration__runner import Runner
import guance_tencentcloud_cvm__main as main

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

3. Data Reporting Format

After data is synchronized successfully, it 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
{
  "measurement": "tencentcloud_cvm",
  "tags": {
    "name"              : "ins-bahxxxx",
    "RegionId"          : "ap-shanghai",
    "Zone"              : "ap-shanghai-1",
    "InstanceId"        : "ins-bahxxxx",
    "InstanceChargeType": "POSTPAID_BY_HOUR",
    "InstanceType"      : "SA2.MEDIUM2",
    "OsName"            : "TencentOS Server 3.1 (TK4)"
  },
  "fields": {
    "CPU"               : 2,
    "Memory"            : 2,
    "InstanceState"     : "RUNNING",
    "PublicIpAddresses" : "{public IP data}",
    "PrivateIpAddresses": "{private IP data}",
    "SystemDisk"        : "{system disk JSON data}",
    "DataDisks"         : "{data disk JSON data}",
    "Placement"         : "{region JSON data}",
    "ExpiredTime"       : "2022-05-07T01:51:38Z",
    "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, fields.DataDisks, fields.Placement, fields.PrivateIpAddresses, fields.PublicIpAddresses, fields.SystemDisk are all strings serialized in JSON format

X. Appendix

Refer to the official Tencent Cloud documentation: