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:
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.
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.


