-
Notifications
You must be signed in to change notification settings - Fork 431
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* set up pbm and mongo instances for test * set up exporter for pbm metrics * downgrade mongo driver version to fix build * fix set up scripts for tests * bump pbm sdk version to fix dependency issue with mongo-tools * fix linter errors * fix new linter warnings * add impl and tests for agent status * drop direct metric comparison from tests * use constants for metric value * fix license header * re-use createmetric function across methods * fix linter errors * use existing replica set for tests * drop pbm backups directory * change module version to dev * use better types for enums * remove extra check on metrics collection * fix startup flags * fix opts for PMM * do not use direct connection for PBM * use correct host and port for tests
- Loading branch information
Showing
15 changed files
with
478 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,34 @@ | ||
# Usage Reference | ||
|
||
## Flags | ||
|Flag|Description|Example| | ||
|-----|-----|-----| | ||
|-h, \-\-help|Show context-sensitive help|| | ||
|--[no-]compatible-mode|Enable old mongodb-exporter compatible metrics|| | ||
|--[no-]discovering-mode|Enable autodiscover collections|| | ||
|--mongodb.collstats-colls|List of comma separared databases.collections to get $collStats|--mongodb.collstats-colls=db1,db2.col2| | ||
|--mongodb.indexstats-colls|List of comma separared databases.collections to get $indexStats|--mongodb.indexstats-colls=db1.col1,db2.col2| | ||
|--[no-]mongodb.direct-connect|Whether or not a direct connect should be made. Direct connections are not valid if multiple hosts are specified or an SRV URI is used|| | ||
|--[no-]mongodb.global-conn-pool|Use global connection pool instead of creating new pool for each http request|| | ||
|--mongodb.uri|MongoDB connection URI ($MONGODB_URI)|--mongodb.uri=mongodb://user:pass@127.0.0.1:27017/admin?ssl=true| | ||
|--web.listen-address|Address to listen on for web interface and telemetry|--web.listen-address=":9216"| | ||
|--web.telemetry-path|Metrics expose path|--web.telemetry-path="/metrics"| | ||
|--web.config|Path to the file having Prometheus TLS config for basic auth|--web.config=STRING| | ||
|--web.timeout-offset|Offset to subtract from the timeout in seconds|--web.timeout-offset=1| | ||
|--log.level|Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]|--log.level="error"| | ||
|--collector.diagnosticdata|Enable collecting metrics from getDiagnosticData| | ||
|--collector.replicasetstatus|Enable collecting metrics from replSetGetStatus| | ||
|--collector.dbstats|Enable collecting metrics from dbStats|| | ||
|--collector.dbstatsfreestorage|Enable collecting freeStorage metrics from dbStats. If the instance has a large number of collections or indexes, obtaining free space usage data may cause processing delays|| | ||
|--collector.topmetrics|Enable collecting metrics from top admin command| | ||
|--collector.currentopmetrics|Enable collecting metrics from currentop admin command| | ||
|--collector.indexstats|Enable collecting metrics from $indexStats| | ||
|--collector.collstats|Enable collecting metrics from $collStats| | ||
|--collect-all|Enable all collectors. Same as specifying all --collector.\<name\>| | ||
|--collector.collstats-limit=0|Disable collstats, dbstats, topmetrics and indexstats collector if there are more than \<n\> collections. 0=No limit| | ||
|--collector.profile-time-ts=30|Set time for scrape slow queries| This interval must be synchronized with the Prometheus scrape interval| | ||
|--collector.profile|Enable collecting metrics from profile| | ||
|--collector.shards|Enable collecting metrics related to Mongo shards| | ||
|--metrics.overridedescendingindex| Enable descending index name override to replace -1 with _DESC || | ||
|--version|Show version and exit| | ||
| Flag | Description | Example | | ||
|-----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------| | ||
| -h, \-\-help | Show context-sensitive help | | | ||
| --[no-]compatible-mode | Enable old mongodb-exporter compatible metrics | | | ||
| --[no-]discovering-mode | Enable autodiscover collections | | | ||
| --mongodb.collstats-colls | List of comma separared databases.collections to get $collStats | --mongodb.collstats-colls=db1,db2.col2 | | ||
| --mongodb.indexstats-colls | List of comma separared databases.collections to get $indexStats | --mongodb.indexstats-colls=db1.col1,db2.col2 | | ||
| --[no-]mongodb.direct-connect | Whether or not a direct connect should be made. Direct connections are not valid if multiple hosts are specified or an SRV URI is used | | | ||
| --[no-]mongodb.global-conn-pool | Use global connection pool instead of creating new pool for each http request | | | ||
| --mongodb.uri | MongoDB connection URI ($MONGODB_URI) | --mongodb.uri=mongodb://user:pass@127.0.0.1:27017/admin?ssl=true | | ||
| --web.listen-address | Address to listen on for web interface and telemetry | --web.listen-address=":9216" | | ||
| --web.telemetry-path | Metrics expose path | --web.telemetry-path="/metrics" | | ||
| --web.config | Path to the file having Prometheus TLS config for basic auth | --web.config=STRING | | ||
| --web.timeout-offset | Offset to subtract from the timeout in seconds | --web.timeout-offset=1 | | ||
| --log.level | Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] | --log.level="error" | | ||
| --collector.diagnosticdata | Enable collecting metrics from getDiagnosticData | | ||
| --collector.replicasetstatus | Enable collecting metrics from replSetGetStatus | | ||
| --collector.dbstats | Enable collecting metrics from dbStats | | | ||
| --collector.dbstatsfreestorage | Enable collecting freeStorage metrics from dbStats. If the instance has a large number of collections or indexes, obtaining free space usage data may cause processing delays | | | ||
| --collector.topmetrics | Enable collecting metrics from top admin command | | ||
| --collector.currentopmetrics | Enable collecting metrics from currentop admin command | | ||
| --collector.indexstats | Enable collecting metrics from $indexStats | | ||
| --collector.collstats | Enable collecting metrics from $collStats | | ||
| --collect-all | Enable all collectors. Same as specifying all --collector.\<name\> | | ||
| --collector.collstats-limit=0 | Disable collstats, dbstats, topmetrics and indexstats collector if there are more than \<n\> collections. 0=No limit | | ||
| --collector.profile-time-ts=30 | Set time for scrape slow queries | This interval must be synchronized with the Prometheus scrape interval | | ||
| --collector.profile | Enable collecting metrics from profile | | ||
| --collector.shards | Enable collecting metrics related to Mongo shards | | ||
| --collector.pbm | Enable collecting metrics related to Percona Backup for MongoDB | | ||
| --metrics.overridedescendingindex | Enable descending index name override to replace -1 with _DESC | | ||
| --version | Show version and exit | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
ARG TEST_MONGODB_IMAGE=mongo:4.2 | ||
ARG TEST_MONGODB_IMAGE=mongo:4.4 | ||
FROM ${TEST_MONGODB_IMAGE} | ||
USER root | ||
COPY docker/secret/keyfile /opt/keyfile | ||
RUN chown mongodb /opt/keyfile && chmod 400 /opt/keyfile && mkdir -p /home/mongodb/ && chown mongodb /home/mongodb | ||
RUN mkdir /opt/backups && touch /opt/backups/.gitkeep && chown mongodb /opt/backups | ||
USER mongodb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
storage: | ||
type: filesystem | ||
filesystem: | ||
path: /opt/backups/pbm |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#!/bin/bash | ||
docker exec -it --user root pbm-mongo-2-1 bash -c "chown -R mongodb /opt/backups" | ||
|
||
# PBM config fails if replica sets are not completely up, so give enough time for both replica sets and pbm agents to be up. | ||
sleep 20 | ||
|
||
docker exec pbm-mongo-2-1 bash -c "pbm config --file /etc/config/pbm.yaml" | ||
|
||
# Wait until agents are restarted after config has been updated | ||
sleep 5 | ||
|
||
docker exec pbm-mongo-2-1 bash -c "pbm backup" | ||
|
||
# Wait for backup to complete | ||
sleep 3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.