Skip to content

Configuration Manual for the "Volcengine-MongoDB Replica Level" Collector

Before reading this article, please first 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 regions to collect data from
regions[#] str Required Region ID. For example: 'cn-beijing'
Refer to the appendix for the complete list

2. Configuration Examples

Specifying Regions

Collect 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 through 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 property filters:

Property Description
InstanceId Instance ID
InstanceName Instance name
ZoneId Availability zone ID
ChargeStatus Instance billing status
ChargeType Instance billing type, possible values: Prepaid(annual/monthly)、PostPaid(pay-as-you-go)
DBEngineVersion Database engine version, possible values: MongoDB_4_0、MongoDB_5_0
InstanceStatus Instance status
StorageType Instance storage type
ProjectName Belonging project
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Example: Enable the filter based on the InstanceId and name properties of the object, with the following configuration:
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_mongodb_replica_set__main as main

@DFF.API('Volcengine-MongoDB-Reolica-Set 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 synchronizes successfully, it can be viewed 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
24
25
26
27
28
29
30
{
  "measurement": "volcengine_mongodb_sharded_cluster",
  "tags": {
    "ChargeStatus": "Normal",
    "ChargeType": "PostPaid",
    "AutoRenew": "false",
    "DBEngineVersion": "MongoDB_4_0",
    "InstanceId": "mongo-xxxx",
    "InstanceName": "mongo-xxxx",
    "InstanceStatus": "Running",
    "InstanceType": "ReplicaSet",
    "ProjectName": "default",
    "RegionId": "cn-beijing",
    "StorageType": "LocalSSD",
    "SubnetId": "subnet-xxxx",
    "VpcId": "vpc-xxxx",
    "ZoneId": "cn-beijing-a",
    "name": "mongo-xxxx"
  },
  "fields": {
    "Nodes": "[Node information]",
    "ClosedTime": "",
    "CreateTime": "2024-03-22T05:24:40Z",
    "ExpiredTime": "",
    "ReclaimTime": "",
    "UpdateTime": "2024-03-22T05:26:36Z",
    "PrivateEndpoint": "mongdb://:xxxx",
    "message": "{JSON instance 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.Nodes and fields.message are JSON serialized strings.

X. Appendix

Please refer to the official Volcengine documentation: