Skip to content

Collector Configuration Manual for "Volcengine-MongoDB Sharded Level"

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: 'cn-beijing'
See the full table in the appendix

2. Configuration Examples

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

Property Description
InstanceId Instance ID
InstanceName Instance name
ZoneId Availability zone ID
ChargeStatus Billing status of the instance
ChargeType Billing type of the instance, values include: Prepaid (annual/monthly), PostPaid (pay-as-you-go)
DBEngineVersion Database engine version, values include: MongoDB_4_0, MongoDB_5_0
InstanceStatus Instance status
StorageType Storage type of the instance
ProjectName Associated 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, filter by InstanceId and name properties, configuration format as follows:
def filter_instance(instance):
    '''
    Collect instances with instance_id as xxxxx or instance_name as 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_sharded_cluster__main as main

@DFF.API('Volcengine-MongoDB-Sharded-Cluster 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 {{( brand_name )}} 'Infrastructure - Resource Catalog'.

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
{
  "measurement": "volcengine_mongodb_sharded_cluster",
  "tags": {
    "ChargeStatus": "Normal",
    "ChargeType": "PostPaid",
    "ConfigServersId": "mongo-shard-xxx",
    "DBEngineVersion": "MongoDB_4_0",
    "AutoRenew": "false",
    "InstanceId": "mongo-shard-xxxx",
    "InstanceName": "mongo-shard-xxxx",
    "InstanceStatus": "Running",
    "InstanceType": "ShardedCluster",
    "ProjectName": "default",
    "RegionId": "cn-beijing",
    "StorageType": "LocalSSD",
    "MongosId": "mongo-shard-xxx",
    "SubnetId": "subnet-xxxx",
    "VpcId": "vpc-xxxx",
    "ZoneId": "cn-beijing-a",
    "name": "mongo-shard-xxxx"
  },
  "fields": {
    "Mongos": "[List of Mongos information]",
    "Shards": "[List of Shards information]",
    "ConfigServers": "[List of ConfigServers information]",
    "PrivateEndpoint": "mongodb://:xxx",
    "ClosedTime": "",
    "CreateTime": "2024-03-22T05:24:40Z",
    "ExpiredTime": "",
    "ReclaimTime": "",
    "UpdateTime": "2024-03-22T05:26:36Z",
    "message": "{JSON data of the instance}"
  }
}

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.Mongos, fields.Shards, fields.ConfigServers, fields.message are all JSON serialized strings

X. Appendix

Refer to the official Volcengine documentation: