Documentation for automated readers
A curated documentation index is available at: https://grafana.com/llms.txt
A complete documentation index is available at: https://grafana.com/llms-full.txt
These indexes can help with page discovery before fetching individual documents.
This page is also available in Markdown, which may be easier for automated readers and AI tools to parse than HTML. The Markdown version is available at https://grafana.com/docs/grafana-cloud/send-data/alloy/reference/components/prometheus/prometheus.exporter.mongodb.md, or by sending Accept: text/markdown to https://grafana.com/docs/grafana-cloud/send-data/alloy/reference/components/prometheus/prometheus.exporter.mongodb/. For broader documentation discovery, the curated index is available at https://grafana.com/llms.txt and the complete index is available at https://grafana.com/llms-full.txt.
prometheus.exporter.mongodb
The prometheus.exporter.mongodb component embeds the Percona mongodb_exporter to collect metrics from a MongoDB node.
Note
This exporter doesn’t collect metrics from multiple nodes. For this component to work properly, you must connect each node of your MongoDB cluster to an Alloy instance.
Grafana recommends that you configure a separate user for Alloy with only the security privileges needed to monitor your node. Refer to the Percona documentation for more information.
You can specify multiple prometheus.exporter.mongodb components by giving them different labels.
Usage
prometheus.exporter.mongodb "<LABEL>" {
mongodb_uri = "<MONGODB_URI>"
}Arguments
You can use the following arguments with prometheus.exporter.mongodb:
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
mongodb_uri | secret | MongoDB connection URI. | yes | |
collect_all | bool | Enables all collectors. | true | no |
compatible_mode | bool | Exposes metrics under both current and mongodb_exporter 0.1x names. | true | no |
currentop_slow_time | duration | Minimum running time of an operation before the exporter reports it. | "1m" | no |
direct_connect | bool | Whether to connect directly to one host instead of the whole cluster. | false | no |
discovering_mode | bool | Whether to automatically discover collections. | false | no |
enable_coll_stats | bool | Enables collecting collection statistics. | false | no |
enable_currentop_metrics | bool | Enables collecting current operation metrics. | false | no |
enable_db_stats | bool | Enables collecting database statistics. | false | no |
enable_db_stats_free_storage | bool | Enables collecting free storage statistics from dbStats. | false | no |
enable_diagnostic_data | bool | Enables collecting diagnostic data. | false | no |
enable_fcv | bool | Enables collecting Feature Compatibility Version (FCV) metrics. | false | no |
enable_index_stats | bool | Enables collecting index statistics. | false | no |
enable_pbm_metrics | bool | Enables collecting Percona Backup for MongoDB (PBM) metrics. | false | no |
enable_profile | bool | Enables collecting profile metrics. | false | no |
enable_replicaset_config | bool | Enables collecting replica set configuration. | false | no |
enable_replicaset_status | bool | Enables collecting replica set status. | false | no |
enable_shards | bool | Enables collecting sharding information. | false | no |
enable_top_metrics | bool | Enables collecting top metrics. | false | no |
Set mongodb_uri to a MongoDB connection string that uses either the mongodb or mongodb+srv scheme.
collect_all defaults to true and turns on every collector.
While it’s true, it overrides discovering_mode and each enable_* argument, so setting any of them to false has no effect.
Set collect_all to false to choose collectors individually.
When compatible_mode is true, the exporter exposes each metric under its current name.
It also exposes a second copy under the matching mongodb_exporter 0.1x name, where one exists.
Refer to Info on Percona MongoDB exporter versions for details.
The currentop_slow_time argument applies whenever the exporter collects current operation metrics.
The exporter collects them when you set enable_currentop_metrics to true, or when collect_all is true.
The exporter doesn’t collect current operation metrics from a mongos instance.
You can’t use direct_connect with multiple hosts or an SRV URI.
The MongoDB driver returns an error if your mongodb_uri contains either.
The component sets the instance label on its exported targets to the host portion of mongodb_uri.
Blocks
The prometheus.exporter.mongodb component doesn’t support any blocks. You can configure this component with arguments.
Exported fields
The following fields are exported and can be referenced by other components.
| Name | Type | Description |
|---|---|---|
targets | list(map(string)) | The targets that can be used to collect exporter metrics. |
For example, the targets can either be passed to a discovery.relabel component to rewrite the targets’ label sets or to a prometheus.scrape component that collects the exposed metrics.
The exported targets use the configured in-memory traffic address specified by the run command.
Component health
prometheus.exporter.mongodb is only reported as unhealthy if given an invalid configuration.
In those cases, exported fields retain their last healthy values.
Debug information
prometheus.exporter.mongodb doesn’t expose any component-specific debug information.
Debug metrics
prometheus.exporter.mongodb doesn’t expose any component-specific debug metrics.
Example
The following example uses a prometheus.scrape component to collect metrics from prometheus.exporter.mongodb:
prometheus.exporter.mongodb "example" {
mongodb_uri = "mongodb://127.0.0.1:27017"
}
// Configure a prometheus.scrape component to collect MongoDB metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.mongodb.example.targets
forward_to = [ prometheus.remote_write.default.receiver ]
}
prometheus.remote_write "default" {
endpoint {
url = "<PROMETHEUS_REMOTE_WRITE_URL>"
}
}Replace the following:
<PROMETHEUS_REMOTE_WRITE_URL>: The URL of the Prometheusremote_writecompatible server to send metrics to.
Compatible components
prometheus.exporter.mongodb has exports that can be consumed by the following components:
- Components that consume Targets
Note
Connecting some components may not be sensible or components may require further configuration to make the connection work correctly. Refer to the linked documentation for more details.
Was this page helpful?
Related resources from Grafana Labs


