0% found this document useful (0 votes)
51 views4 pages

Percona MongoDB Exporter

database exporter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views4 pages

Percona MongoDB Exporter

database exporter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

percona/mongodb_exporter

hub.docker.com/r/percona/mongodb_exporter

OverviewTags
https://github.com/percona/mongodb_exporter/⁠

MongoDB exporter
Go passing go report A+
release v0.41.1

This is the new MongoDB exporter implementation that handles ALL metrics exposed by
MongoDB monitoring commands. This new implementation loops over all the fields coverage unknown
exposed in diagnostic commands and tries to get data from them.

Currently, these metric sources are implemented: CLAs signed 140

$collStats
chat invalid server
$indexStats
getDiagnosticData
replSetGetStatus
serverStatus

Old Percona MongoDB exporter

old 0.1x.y version (ex master branch) is moved to the release-0.1x branch.

If you considering migrating from the old version of the exporter - you can

use flag --compatible-mode to expose metrics in the old metric names. This

will simplify migration to the new version for you.

Flags

Flag Description Example

-h, --help Show context-


sensitive help

--compatible-mode Exposes new metrics


in the new and old
format at the same
time

--discovering-mode Enable autodiscover


collections from
databases which set
in collstats-colls and
indexstats-colls

--mongodb.collstats- List of comma --mongodb.collstats-colls=testdb.testcol1,testdb.testcol2


colls separated
databases.collections
to get stats

1/4
Flag Description Example

--mongodb.direct- Whether or not a --mongodb.direct-connect=false


connect direct connect should
be made. Direct
connections are not
valid if multiple hosts
are specified or an
SRV URI is used

--mongodb.indexstats- List of comma --mongodb.indexstats-colls=db1.col1,db1.col2


colls separated
database.collections
to get index stats

--mongodb.uri MongoDB connection --


URI mongodb.uri=mongodb://user:[email protected]:27017/admin?
($MONGODB_URI) ssl=true

--mongodb.global- Use global


conn-pool connection pool
instead of creating
new connection for
each http request.

--web.listen-address Address to listen on --web.listen-address=":9216"


for web interface and
telemetry

--web.telemetry-path Metrics expose path --web.telemetry-path="/metrics"

--log.level Only log messages --log.level="error"


with the given
severity or above.
Valid levels: [debug,
info, warn, error]

-- Disable collecting
disable.diagnosticdata metrics from
getDiagnosticData

-- Disable collecting
disable.replicasetstatus metrics from
replSetGetStatus

--disable.dbstats Disable collecting


metrics from dbStats

--version Show version and


exit

Build the exporter


The build process uses the dockerized version of goreleaser so you don't need to install Go. Just run make
release and the new binaries will be generated under the build directory.

├── build
│ ├── config.yaml
│ ├── mongodb_exporter_7c73946_checksums.txt
│ ├── mongodb_exporter-7c73946.darwin-amd64.tar.gz
│ ├── mongodb_exporter-7c73946.linux-amd64.tar.gz
│ ├── mongodb_exporter_darwin_amd64
│ │ └── mongodb_exporter <--- MacOS binary
│ └── mongodb_exporter_linux_amd64
│ └── mongodb_exporter <--- Linux binary

Running the exporter

2/4
If you built the exporter using the method mentioned in the previous section, the generated binaries are in
mongodb_exporter_linux_amd64/mongodb_exporter or
mongodb_exporter_darwin_amd64/mongodb_exporter

Docker

A docker image is available on docker hub.

Permissions

Connecting user should have sufficient rights to query needed stats:

{
"role":"clusterMonitor",
"db":"admin"
},
{
"role":"read",
"db":"local"
}

More info about roles in MongoDB documentation⁠ .

Example

mongodb_exporter_linux_amd64/mongodb_exporter --mongodb.uri=mongodb://127.0.0.1:17001

Enabling collstats metrics gathering

--mongodb.collstats-colls receives a list of databases and collections to monitor using collstats. Usage
example: --mongodb.collstats-colls=database1.collection1,database2.collection2

mongodb_exporter_linux_amd64/mongodb_exporter --mongodb.uri=mongodb://127.0.0.1:17001 --
mongodb.collstats-colls=db1.c1,db2.c2

Enabling compatibility mode.

When compatibility mode is enabled by the --compatible-mode, the exporter will expose all new metrics with
the new naming and labeling schema and at the same time will expose metrics in the version 1 compatible
way. For example, if compatibility mode is enabled, the metric mongodb_ss_wt_log_log_bytes_written (new
format)

# HELP mongodb_ss_wt_log_log_bytes_written serverStatus.wiredTiger.log.


# TYPE mongodb_ss_wt_log_log_bytes_written untyped
mongodb_ss_wt_log_log_bytes_written 2.6208e+06

will be also exposed as mongodb_mongod_wiredtiger_log_bytes_total with the unwritten label.

HELP mongodb_mongod_wiredtiger_log_bytes_total mongodb_mongod_wiredtiger_log_bytes_total


# TYPE mongodb_mongod_wiredtiger_log_bytes_total untyped
mongodb_mongod_wiredtiger_log_bytes_total{type="unwritten"} 2.6208e+06

Cluster role labels

The exporter sets some topology labels in all metrics. The labels are:

cl_role: Cluster role according to this table:

Server type Label

mongos mongos

regular instance (primary or secondary) shardsvr

3/4
Server type Label

arbiter shardsvr

standalone (empty string)

cl_id: Cluster ID
rs_nm: Replicaset name
rs_state: Replicaset state is an integer from getDiagnosticData() -> replSetGetStatus.myState.
Check the official documentation⁠ for details on replicaset status values.

Submitting Bug Reports and adding new functionality

please see Contribution Guide

Docker Pull Command

docker pull percona/mongodb_exporter

4/4

You might also like