Skip to content

Configuration Manual for the "Alibaba Cloud-EIP" Collector

Before reading this article, please read the following first:

Before using this collector, you must install the 'Integration Core Package' and its corresponding 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-hangzhou'
Refer to the appendix for the full list

2. Configuration Example

Specify Regions

Collect data from Hangzhou and Shanghai regions.

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

Configure 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: The target resource should be collected.
  • False: The target resource should not be collected.

Supported object attributes for filtering:

Attribute Description
AllocationId Instance ID of EIP
Name Name of EIP
IpAddress IP address of EIP
Status Status of EIP
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 based on instance ID and name properties, with the following configuration format:
def filter_instance(instance):
    '''
    Collect instances with AllocationId as xxxxx or Name as xxxxx
    '''
    # return True
    allocation_id = instance['AllocationId']
    eip_name = instance['Name']
    if allocation_id in ['xxxxx'] or eip_name in ['xxxxx']:
        return True
    return False


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


@DFF.API('AlibabaCloud-EIP 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 synchronization is successful, you can view the data 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
{
  "measurement": "aliyun_eip",
  "tags": {
    "name"              : "eip-xxxxx",
    "AllocationId"      : "eip-bp1lfsikwo4roa0mcqg9u",
    "EIPName"           : "",
    "Status"            : "InUse",
    "RegionId"          : "cn-hangzhou",
    "IpAddress"         : "47.96.22.249",
  },
  "fields": {
    "Bandwidth"         : "1",
    "InternetChargeType": "PayByTraffic",
    "BusinessStatus"    : "Normal",
    "ChargeType"        : "PostPaid",
    "AllocationTime": "2022-01-20T03:06:51Z",
    "ExpiredTime"   : "",
    "message"       : "{JSON serialized instance data}"
  }
}

Explanation of some parameters:

tags.InternetChargeType (Payment type) values and their meanings:

Value Description
PayByBandwidth Fixed bandwidth billing
PayByTraffic Traffic-based billing

tags.ChargeType (Billing mode) values and their meanings:

Value Description
PrePaid Annual/Monthly
PostPaid Pay-as-you-go

tags.Status (Billing mode) values and their meanings:

Value Description
Associating Associating
Unassociating Unassociating
InUse Allocated
Available Available
Releasing Releasing

Fields in tags and fields may change with subsequent updates

The value of tags.name is the instance ID, used as a unique identifier, and fields.message is a JSON serialized string

X. Appendix

Please refer to the official Alibaba Cloud documentation: