Skip to content

Collector Configuration Manual for "Volcengine-ECS"

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 complete 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 attributes. 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 attributes for filtering:

Attribute Description
InstanceId Instance ID
InstanceName Instance name
ZoneId Availability zone ID
Hostname Instance hostname
VpcId Private network ID
OsType Operating system type, values: Linux, Windows
Status Instance status
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Example: Enable filters to filter by InstanceId and name properties, 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_ecs__main as main


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

3. Data Reporting Format

After the data has been successfully synchronized, 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
29
30
31
32
33
34
35
36
37
38
39
40
{
  "measurement": "volcengine_ecs",
  "tags": {
    "DeploymentSetGroupNumber": "0",
    "DeploymentSetId": "xxx",
    "Hostname": "iv-xxx",
    "ImageId": "image-xxx",
    "InstanceChargeType": "PostPaid",
    "InstanceId": "i-xxx",
    "InstanceName": "ECS-0XQq",
    "InstanceTypeId": "ecs.s2-c1m2.small",
    "OsName": "CentOS Stream 9 64-bit",
    "OsType": "Linux",
    "ProjectName": "default",
    "RegionId": "cn-beijing",
    "EipAddress_IpAddress": "x.x.x.x",
    "Status": "RUNNING",
    "Uuid": "000c65ee-xxx",
    "VpcId": "vpc-xxx",
    "ZoneId": "cn-beijing-b",
    "StoppedMode": "KeepCharging",
    "name": "i-xxxx"
  },
  "fields": {
    "Cpus": "1",
    "MemorySize": "2048",
    "KeyPairId": "kp-xxx",
    "KeyPairName": "zsh-xxx",
    "CpuOptions": "{CPU configuration details}",
    "Placement": "{Dedicated host instance information}",
    "CreatedAt": "2024-03-11T14:01:05+08:00",
    "Description": "xxx",
    "LocalVolumes": "[Local disk configuration information corresponding to the instance]",
    "NetworkInterfaces": "[Network card information mounted on the instance]",
    "RdmaIpAddresses": "[RDMA IP addresses of each network card when querying high-performance computing GPU instances are returned in list form]",
    "UpdatedAt": "2024-03-13T10:14:00+08:00",
    "ExpiredAt": "",
    "message": "{Instance JSON data}"
  }
}

Fields in tags and fields may change with subsequent updates

The value of tags.name is the instance ID, serving as a unique identifier. fields.message, fields.Placement, fields.CpuOptions, fields.LocalVolumes, fields.NetworkInterfaces, and fields.RdmaIpAddresses are all JSON serialized strings.

X. Appendix

Please refer to the official Volcengine documentation: