Skip to content

Configuration Manual for Collector 「Tencent Cloud-Nat Gateway」

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 appendix for full list

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, allowing users to screen target resources by 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
NatGatewayId ID of the NAT gateway
NatGatewayName Name of the NAT gateway
Zone Availability zone of the NAT gateway
VpcId VPC instance ID
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Example: Enable filter based on NatGatewayId and NetworkState properties, configuration format as follows:
# Instance filter

def filter_instance(instance):
    '''
    Collect NAT gateway instances with NatGatewayId nat-xxxxxxx, nat-yyyyyyy
    '''
    nat_gateway_id = instance['NatGatewayId']
    if nat_gateway_id in ['nat-xxxxxxx', 'nat-yyyyyyy']:
        return True
    return False

from guance_integration__runner import Runner
import guance_tencentcloud_nat_gateway__main as main

@DFF.API('TencentCloud-Nat Gateway 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, 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
21
22
23
24
25
{
  "measurement": "tencentcloud_nat_gateway",
  "tags": {
    "name"               : "nat-xxxxxx",
    "RegionId"           : "ap-shanghai",
    "NatGatewayId"       : "ap-shanghai-1",
    "NatGatewayName"     : "xxxx",
    "Zone"               : "ap-nanjing-3",
  },
  "fields": {
    "State"                                  : "AVAILABLE",
    "NetworkState"                           : "AVAILABLE",
    "VpcId"                                  : "vpc-xxxxxx",
    "RestrictState"                          : "NORMAL",
    "CreatedTime"                            : "2024-06-13 16:04:12",
    "InternetMaxBandwidthOut"                : 10,
    "MaxConcurrentConnection"                : 1000000,
    "PublicIpAddressSet"                     : "{Bound public IP objects array for NAT gateway}",
    "DestinationIpPortTranslationNatRuleSet" : "{NAT gateway port forwarding rules}",
    "DirectConnectGatewayIds"                : "{Bound dedicated gateway IDs}",
    "SecurityGroupSet"                       : "{List of security groups bound to NAT gateway}",
    "SourceIpTranslationNatRuleSet"          : "{SNAT forwarding rules for NAT gateway}",
    "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.PublicIpAddressSet.DestinationIpPortTranslationNatRuleSet, fileds.DirectConnectGatewayIds, fields.SecurityGroupSet, fields.SourceIpTranslationNatRuleSet are all strings after JSON serialization

X. Appendix

Refer to the official Tencent Cloud documentation: