Skip to content

Configuration Manual for the "Tencent Cloud-MongoDB-Node" Collector

Before reading this article, please read:

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 MongoDB regions to collect data from
regions[#] str Required Region ID. For example: 'ap-shanghai'. Refer to the appendix for the complete table

2. Configuration Example

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

Configuration 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 properties for filtering:

Property Description
Address Node access address
Hidden Whether it's a Hidden node
NodeName Node name
Priority Node priority
ReplicateSetId Replica set ID
Role Role
SlaveDelay Master-slave delay, in seconds
Status Node status
Votes Node voting rights
WanServiceAddress Zone information
Zone Availability zone where the node resides
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 by configuring it based on the InstanceId and NodeName properties of the object:

def filter_instance(instance):
    '''
    return True|False
    '''
    instance_id = instance.get('InstanceId')
    node_name = instance.get('NodeName')
    if instance_id in ['xxx'] and node_name in ['xxx']:
        return True
    return False

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

def run():
    collectors = [
        main.DataCollector(account, collector_configs, filters=[filter_instance]),
    ]
    Runner(collectors).run()

3. Data Reporting Format

After data is synchronized successfully, you can view it in the {{( brand_name )}} "Infrastructure - Resource Catalog".

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
{
  "measurement": "tencentcloud_mongodb_node",
  "tags": {
      "Address"          : "172.xx.xx.x: xx",
      "GroupId"          : "node-primary",
      "Hidden"           : "False",
      "InstanceId"       : "cmgo-xxxx",
      "NodeName"         : "cmgo-xxxx_0-node-primary",
      "Priority"         : "1",
      "RegionId"         : "ap-shanghai",
      "ReplicateSetId"   : "cmgo-xxxx_0",
      "Role"             : "PRIMARY",
      "SlaveDelay"       : "0",
      "Status"           : "NORMAL",
      "Votes"            : "1",
      "WanServiceAddress": "",
      "Zone"             : "ap-shanghai-4",
      "name"             : "cmgo-xxxx_0-node-primary"
  },
  "fields": {
    "message": "{Instance JSON data}"
  }
}

Descriptions of some fields are provided below; refer to the appendix for detailed interface response parameters.

Field Type Description
Status string Node status
Includes: NORMAL/STARTUP/RECOVERING/STARTUP2/UNKNOWN/DOWN/ROLLBACK/REMOVED etc.

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 is a JSON serialized string

X. Appendix

Please refer to the official Huawei Cloud documentation: