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.
Open source


The prometheus.exporter.mongodb component embeds percona’s mongodb_exporter.


This exporter doesn’t collect metrics from multiple nodes. For this integration to work properly, you must have connect each node of your MongoDB cluster to a Grafana Agent Flow instance.

We strongly recommend configuring a separate user for Grafana Agent Flow, giving it only the strictly mandatory security privileges necessary for monitoring your node. Refer to the Percona documentation for more information.


prometheus.exporter.mongodb "LABEL" {
    mongodb_uri = "MONGODB_URI"


You can use the following arguments to configure the exporter’s behavior. Omitted fields take their default values.

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

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.

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.


This example uses a prometheus.scrape component to collect metrics from prometheus.exporter.mongodb:

prometheus.exporter.mongodb "example" {
  mongodb_uri = "mongodb://"

// 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"

Compatible components

prometheus.exporter.mongodb has exports that can be consumed by the following components:


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.