Menu

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.

Open source

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

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

NameTypeDescriptionDefaultRequired
mongodb_uristringMongoDB node connection URI.yes
direct_connectbooleanWhether or not a direct connect should be made. Direct connections are not valid if multiple hosts are specified or an SRV URI is used.falseno
discovering_modebooleanWheter or not to enable autodiscover collections.falseno
tls_basic_auth_config_pathstringPath 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.

NameTypeDescription
targetslist(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:

river
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"
  }
}