Caution
Grafana Alloy is the new name for our distribution of the OTel collector. Grafana Agent has been deprecated and is in Long-Term Support (LTS) through October 31, 2025. Grafana Agent will reach an End-of-Life (EOL) on November 1, 2025. Read more about why we recommend migrating to Grafana Alloy.
Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
prometheus.exporter.mongodb
The prometheus.exporter.mongodb
component embeds percona’s mongodb_exporter
.
Note
For this integration to work properly, you must have connect each node of your MongoDB cluster to an agent instance. That’s because this exporter does not collect metrics from multiple nodes.
We strongly recommend configuring a separate user for the Grafana Agent, giving it only the strictly mandatory security privileges necessary for monitoring your node. Refer to the Percona documentation for more information.
Usage
prometheus.exporter.mongodb "LABEL" {
mongodb_uri = "MONGODB_URI"
}
Arguments
You can use the following arguments to configure the exporter’s behavior. Omitted fields take their default values.
Name | Type | Description | Default | Required |
---|---|---|---|---|
mongodb_uri | string | MongoDB node connection URI. | yes | |
direct_connect | boolean | Whether or not a direct connect should be made. Direct connections are not valid if multiple hosts are specified or an SRV URI is used. | false | no |
discovering_mode | boolean | Wheter or not to enable autodiscover collections. | false | no |
tls_basic_auth_config_path | string | Path to the file having Prometheus TLS config for basic auth. Only enable if you want to use TLS based authentication. | no |
MongoDB node connection URI must be in the Standard Connection String Format
For tls_basic_auth_config_path
, check tls_config
for reference on the file format to be used.
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
does not expose any component-specific
debug information.
Debug metrics
prometheus.exporter.mongodb
does not expose any component-specific
debug metrics.
Example
This 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 = "REMOTE_WRITE_URL"
}
}