General availability (GA) Open source
Last reviewed: October 6, 2026

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

Alloy
prometheus.exporter.mongodb "<LABEL>" {
  mongodb_uri = "<MONGODB_URI>"
}

Arguments

You can use the following arguments with prometheus.exporter.mongodb:

NameTypeDescriptionDefaultRequired
mongodb_urisecretMongoDB connection URI.yes
collect_allboolEnables all collectors.trueno
compatible_modeboolExposes metrics under both current and mongodb_exporter 0.1x names.trueno
currentop_slow_timedurationMinimum running time of an operation before the exporter reports it."1m"no
direct_connectboolWhether to connect directly to one host instead of the whole cluster.falseno
discovering_modeboolWhether to automatically discover collections.falseno
enable_coll_statsboolEnables collecting collection statistics.falseno
enable_currentop_metricsboolEnables collecting current operation metrics.falseno
enable_db_statsboolEnables collecting database statistics.falseno
enable_db_stats_free_storageboolEnables collecting free storage statistics from dbStats.falseno
enable_diagnostic_databoolEnables collecting diagnostic data.falseno
enable_fcvboolEnables collecting Feature Compatibility Version (FCV) metrics.falseno
enable_index_statsboolEnables collecting index statistics.falseno
enable_pbm_metricsboolEnables collecting Percona Backup for MongoDB (PBM) metrics.falseno
enable_profileboolEnables collecting profile metrics.falseno
enable_replicaset_configboolEnables collecting replica set configuration.falseno
enable_replicaset_statusboolEnables collecting replica set status.falseno
enable_shardsboolEnables collecting sharding information.falseno
enable_top_metricsboolEnables collecting top metrics.falseno

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.

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

Alloy
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 Prometheus remote_write compatible server to send metrics to.

Compatible components

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

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.