Add new mongodb plugins
* mongo_cpu_ram * mongodb_conn * mongodb_cpu * mongodb_ram
This commit is contained in:
parent
292cfb955a
commit
0a4891fcef
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
=head1 NAME
|
||||
MongoDB Connection Count Plugin
|
||||
|
||||
=head1 APPLICABLE SYSTEMS
|
||||
|
||||
MongoDB 3.X and 4.X with pymongo installed.
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
munin-node.conf
|
||||
defauts for host is 127.0.0.1 and port 27017
|
||||
and will work without being defined :
|
||||
|
||||
[mongodb_conn]
|
||||
env.host 127.0.0.1
|
||||
env.port 27017
|
||||
env.username user
|
||||
env.password P@55w0rd
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Alban Espie-Guillon <alban.espie@alterway.fr>
|
||||
based on Stefan Andersen <stefan@stefanandersen.dk> work.
|
||||
|
||||
=head1 LICENSE
|
||||
The Beer Ware License (Revision 42)
|
||||
<alban.espie@alterway.fr> wrote this file. As long
|
||||
as you retain this notice you can do whatever you want
|
||||
with this stuff. If we meet some day, and you think
|
||||
this stuff is worth it, you can buy me a beer in return.
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import pymongo
|
||||
|
||||
|
||||
def _get_connections():
|
||||
host = os.environ.get('host', '127.0.0.1')
|
||||
port = os.environ.get('port', 27017)
|
||||
username = os.environ.get('username', '')
|
||||
password = os.environ.get('password', '')
|
||||
conn = pymongo.MongoClient(host, int(port))
|
||||
if username:
|
||||
connAuth = conn['admin']
|
||||
connAuth.authenticate(username, password)
|
||||
|
||||
""" cli : db.serverStatus().connections """
|
||||
conn_status = conn.admin.command("serverStatus")['connections']
|
||||
return conn_status
|
||||
|
||||
|
||||
def run():
|
||||
connections = _get_connections()
|
||||
for connection, value in connections.items():
|
||||
print(connection + ".value", value)
|
||||
|
||||
|
||||
def config():
|
||||
print("""
|
||||
graph_title MongoDB Connections Count
|
||||
graph_vlabel Connections count
|
||||
graph_category db
|
||||
graph_args --base 1000 -l 0
|
||||
current.label current
|
||||
current.draw AREASTACK
|
||||
available.label available
|
||||
available.draw AREASTACK
|
||||
active.label active
|
||||
active.draw AREASTACK
|
||||
""")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) > 1 and sys.argv[1] == "config":
|
||||
config()
|
||||
else:
|
||||
run()
|
|
@ -0,0 +1,77 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# Author : Alban Espie-Guillon <alban.espie@alterway.fr>
|
||||
# Based on http://github.com/perusio/nginx-munin Author: António P. P. Almeida <appa@perusio.net>
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# Except as contained in this notice, the name(s) of the above copyright
|
||||
# holders shall not be used in advertising or otherwise to promote the sale,
|
||||
# use or other dealings in this Software without prior written authorization.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
|
||||
=head1 NAME
|
||||
|
||||
mongodb_cpu - Munin plugin to show CPU used by mongodb.
|
||||
|
||||
=encoding utf8
|
||||
|
||||
=head1 APPLICABLE SYSTEMS
|
||||
|
||||
Any mongodb host
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
1.0
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
None known
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Based on a script by António P. P. Almeida <appa@perusio.net>. Modified by Alban Espie-Guillon <alban.espie@alterway.fr>
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
MIT
|
||||
|
||||
=cut
|
||||
|
||||
## Munin config method.
|
||||
if (exists $ARGV[0] and $ARGV[0] eq "config") {
|
||||
print "graph_title Mongodb CPU usage\n";
|
||||
print "graph_vlabel CPU\n";
|
||||
print "graph_category db\n";
|
||||
print "graph_args --base 1000 -r --lower-limit 0\n";
|
||||
print "graph_scale no\n";
|
||||
print "graph_period second\n";
|
||||
print "cpu.label CPU\n";
|
||||
print "cpu.type GAUGE\n";
|
||||
print "cpu.draw AREASTACK\n";
|
||||
print "cpu.min 0\n";
|
||||
exit 0;
|
||||
} else {
|
||||
my $c = `ps u -p \$(pidof mongod) | awk 'NR > 1 {print \$3}'`;
|
||||
print "cpu.value $c";
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# Author : Alban Espie-Guillon <alban.espie@alterway.fr>
|
||||
# Based on http://github.com/perusio/nginx-munin Author: António P. P. Almeida <appa@perusio.net>
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# Except as contained in this notice, the name(s) of the above copyright
|
||||
# holders shall not be used in advertising or otherwise to promote the sale,
|
||||
# use or other dealings in this Software without prior written authorization.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
|
||||
=head1 NAME
|
||||
|
||||
mongodb_ram - Munin plugin to show RAM used by mongodb.
|
||||
|
||||
=encoding utf8
|
||||
|
||||
=head1 APPLICABLE SYSTEMS
|
||||
|
||||
Any mongodb host
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
1.0
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
None known
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Based on a script by António P. P. Almeida <appa@perusio.net>. Modified by Alban Espie-Guillon <alban.espie@alterway.fr>
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
MIT
|
||||
|
||||
=cut
|
||||
|
||||
## Munin config method.
|
||||
if (exists $ARGV[0] and $ARGV[0] eq "config") {
|
||||
print "graph_title Mongodb RAM usage\n";
|
||||
print "graph_vlabel RAM\n";
|
||||
print "graph_category db\n";
|
||||
print "graph_args --base 1024 -l 0 --upper-limit 4138442752\n";
|
||||
print "ram.label RAM\n";
|
||||
print "ram.type GAUGE\n";
|
||||
print "ram.draw AREASTACK\n";
|
||||
print "ram.min 0\n";
|
||||
exit 0;
|
||||
} else {
|
||||
my $m = `ps u -p \$(pidof mongod) | awk 'NR > 1 {nm += \$5} END {print nm*1024}'`;
|
||||
print "ram.value $m";
|
||||
}
|
Loading…
Reference in New Issue