Status | |
---|---|
Stability | beta: metrics |
Distributions | contrib |
Issues | |
Code Owners | @schmikei | Seeking more code owners! |
This receiver fetches stats from a MongoDB instance using the golang
mongo driver. Stats are collected
via MongoDB's dbStats
and serverStatus
commands.
The purpose of this receiver is to allow users to monitor metrics from standalone MongoDB clusters. This includes non-Atlas managed MongoDB Servers.
This receiver supports MongoDB versions:
- 4.0+
- 5.0
- 6.0
- 7.0
Mongodb recommends to set up a least privilege user (LPU) with a clusterMonitor
role in order to collect metrics. Please refer to lpu.sh for an example of how to configure these permissions.
The following settings are optional:
hosts
(default: [localhost:27017
]): list ofhost:port
or unix domain socket endpoints.Thetransport
option is no longer available.- For standalone MongoDB deployments this is the hostname and port of the mongod instance
- For replica sets specify the hostnames and ports of the mongod instances that are in the replica set configuration. If the
replica_set
field is specified, nodes will be autodiscovered. - For a sharded MongoDB deployment, please specify a list of the
mongos
hosts.
username
: If authentication is required, the user can withclusterMonitor
permissions can be provided here.password
: If authentication is required, the password can be provided here.collection_interval
: (default =1m
): This receiver collects metrics on an interval. This value must be a string readable by Golang's time.ParseDuration. Valid time units arens
,us
(orµs
),ms
,s
,m
,h
.initial_delay
(default =1s
): defines how long this receiver waits before starting.replica_set
: If the deployment of MongoDB is a replica set then this allows users to specify the replica set name which allows for autodiscovery of other nodes in the replica set.timeout
: (default =1m
) The timeout of running commands against mongo.tls
: (defaults defined here): TLS control. By default insecure settings are rejected and certificate verification is on.direct_connection
: If true, then the driver will not try to autodiscover other nodes, and perform instead a direct connection o the host.
receivers:
mongodb:
hosts:
- endpoint: localhost:27017
username: otel
password: ${env:MONGODB_PASSWORD}
collection_interval: 60s
initial_delay: 1s
tls:
insecure: true
insecure_skip_verify: true
The full list of settings exposed for this receiver are documented here with detailed sample configurations here.
The following metric are available with versions:
mongodb.extent.count
< 4.4 with mmapv1 storage engine
Details about the metrics produced by this receiver can be found in metadata.yaml
See the Collector feature gates for an overview of feature gates in the collector.
STABLE: receiver.mongodb.removeDatabaseAttr
The feature gate receiver.mongodb.removeDatabaseAttr
will remove the database name attribute from data points
because it is already found on the resource. This feature gate cannot be changed and will be removed soon.