prometheus.exporter.mongodb
General availability (GA) Open source Grafana Cloud

prometheus.exporter.mongodb

The prometheus.exporter.mongodb component embeds the Percona mongodb_exporter.

Note

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

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

Usage

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

Arguments

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

NameTypeDescriptionDefaultRequired
mongodb_urisecretMongoDB node connection URI.yes
collect_allboolEnables all collectors.trueno
compatible_modeboolEnables metric names compatible with mongodb_exporter <v0.20.0.trueno
direct_connectboolWhether or not a direct connect should be made. Direct connections aren’t valid if multiple hosts are specified or an SRV URI is used.falseno
discovering_modeboolWhether or not to enable autodiscover collections.falseno
enable_coll_statsboolEnables collecting collection statistics.falseno
enable_currentop_metricsboolEnables collecting current operation metrics.falseno
enable_db_stats_free_storageboolEnables collecting free storage statistics from dbStats.falseno
enable_db_statsboolEnables collecting database statistics.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

MongoDB node connection URI must be in the Standard Connection String Format

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.