mirror of
https://github.com/netdata/netdata.git
synced 2025-04-16 02:24:15 +00:00

* First pass of changing netdata to Netdata * Second pass of netdata -> Netdata * Starting work on netdata with no whitespace after * Pass for netdata with no whitespace at the end * Pass for netdata with no whitespace at the front
171 lines
4.6 KiB
Markdown
171 lines
4.6 KiB
Markdown
# mongodb
|
|
|
|
Module monitor mongodb performance and health metrics
|
|
|
|
**Requirements:**
|
|
* `python-pymongo` package v2.4+.
|
|
|
|
You need to install it manually.
|
|
|
|
|
|
Number of charts depends on mongodb version, storage engine and other features (replication):
|
|
|
|
1. **Read requests**:
|
|
* query
|
|
* getmore (operation the cursor executes to get additional data from query)
|
|
|
|
2. **Write requests**:
|
|
* insert
|
|
* delete
|
|
* update
|
|
|
|
3. **Active clients**:
|
|
* readers (number of clients with read operations in progress or queued)
|
|
* writers (number of clients with write operations in progress or queued)
|
|
|
|
4. **Journal transactions**:
|
|
* commits (count of transactions that have been written to the journal)
|
|
|
|
5. **Data written to the journal**:
|
|
* volume (volume of data)
|
|
|
|
6. **Background flush** (MMAPv1):
|
|
* average ms (average time taken by flushes to execute)
|
|
* last ms (time taken by the last flush)
|
|
|
|
8. **Read tickets** (WiredTiger):
|
|
* in use (number of read tickets in use)
|
|
* available (number of available read tickets remaining)
|
|
|
|
9. **Write tickets** (WiredTiger):
|
|
* in use (number of write tickets in use)
|
|
* available (number of available write tickets remaining)
|
|
|
|
10. **Cursors**:
|
|
* opened (number of cursors currently opened by MongoDB for clients)
|
|
* timedOut (number of cursors that have timed)
|
|
* noTimeout (number of open cursors with timeout disabled)
|
|
|
|
11. **Connections**:
|
|
* connected (number of clients currently connected to the database server)
|
|
* unused (number of unused connections available for new clients)
|
|
|
|
12. **Memory usage metrics**:
|
|
* virtual
|
|
* resident (amount of memory used by the database process)
|
|
* mapped
|
|
* non mapped
|
|
|
|
13. **Page faults**:
|
|
* page faults (number of times MongoDB had to request from disk)
|
|
|
|
14. **Cache metrics** (WiredTiger):
|
|
* percentage of bytes currently in the cache (amount of space taken by cached data)
|
|
* percantage of tracked dirty bytes in the cache (amount of space taken by dirty data)
|
|
|
|
15. **Pages evicted from cache** (WiredTiger):
|
|
* modified
|
|
* unmodified
|
|
|
|
16. **Queued requests**:
|
|
* readers (number of read request currently queued)
|
|
* writers (number of write request currently queued)
|
|
|
|
17. **Errors**:
|
|
* msg (number of message assertions raised)
|
|
* warning (number of warning assertions raised)
|
|
* regular (number of regular assertions raised)
|
|
* user (number of assertions corresponding to errors generated by users)
|
|
|
|
18. **Storage metrics** (one chart for every database)
|
|
* dataSize (size of all documents + padding in the database)
|
|
* indexSize (size of all indexes in the database)
|
|
* storageSize (size of all extents in the database)
|
|
|
|
19. **Documents in the database** (one chart for all databases)
|
|
* documents (number of objects in the database among all the collections)
|
|
|
|
20. **tcmalloc metrics**
|
|
* central cache free
|
|
* current total thread cache
|
|
* pageheap free
|
|
* pageheap unmapped
|
|
* thread cache free
|
|
* transfer cache free
|
|
* heap size
|
|
|
|
21. **Commands total/failed rate**
|
|
* count
|
|
* createIndex
|
|
* delete
|
|
* eval
|
|
* findAndModify
|
|
* insert
|
|
|
|
22. **Locks metrics** (acquireCount metrics - number of times the lock was acquired in the specified mode)
|
|
* Global lock
|
|
* Database lock
|
|
* Collection lock
|
|
* Metadata lock
|
|
* oplog lock
|
|
|
|
23. **Replica set members state**
|
|
* state
|
|
|
|
24. **Oplog window**
|
|
* window (interval of time between the oldest and the latest entries in the oplog)
|
|
|
|
25. **Replication lag**
|
|
* member (time when last entry from the oplog was applied for every member)
|
|
|
|
26. **Replication set member heartbeat latency**
|
|
* member (time when last heartbeat was received from replica set member)
|
|
|
|
### prerequisite
|
|
Create a read-only user for Netdata in the admin database.
|
|
|
|
1. Authenticate as the admin user.
|
|
|
|
```
|
|
use admin
|
|
db.auth("admin", "<MONGODB_ADMIN_PASSWORD>")
|
|
```
|
|
|
|
2. Create a user.
|
|
|
|
```
|
|
# MongoDB 2.x.
|
|
db.addUser("netdata", "<UNIQUE_PASSWORD>", true)
|
|
|
|
# MongoDB 3.x or higher.
|
|
db.createUser({
|
|
"user":"netdata",
|
|
"pwd": "<UNIQUE_PASSWORD>",
|
|
"roles" : [
|
|
{role: 'read', db: 'admin' },
|
|
{role: 'clusterMonitor', db: 'admin'},
|
|
{role: 'read', db: 'local' }
|
|
]
|
|
})
|
|
```
|
|
|
|
### configuration
|
|
|
|
Sample:
|
|
|
|
```yaml
|
|
local:
|
|
name : 'local'
|
|
authdb: 'admin'
|
|
host : '127.0.0.1'
|
|
port : 27017
|
|
user : 'netdata'
|
|
pass : 'netdata'
|
|
|
|
```
|
|
|
|
If no configuration is given, module will attempt to connect to mongodb daemon on `127.0.0.1:27017` address
|
|
|
|
---
|
|
|
|
[]()
|