update munin plugins to work with usage-db, add new ones
This commit is contained in:
		
							parent
							
								
									17e232de50
								
							
						
					
					
						commit
						9008d4339a
					
				| 
						 | 
				
			
			@ -4,10 +4,10 @@
 | 
			
		|||
Use the following in /etc/munin/plugin-conf.d/wormhole :
 | 
			
		||||
 | 
			
		||||
[wormhole_*]
 | 
			
		||||
env.serverdir /path/to/your/wormhole/server
 | 
			
		||||
env.usagedb /path/to/your/wormhole/server/usage.sqlite
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import os, sys, time, json
 | 
			
		||||
import os, sys, time, sqlite3
 | 
			
		||||
 | 
			
		||||
CONFIG = """\
 | 
			
		||||
graph_title Magic-Wormhole Transit Usage (since reboot)
 | 
			
		||||
| 
						 | 
				
			
			@ -19,15 +19,18 @@ bytes.type GAUGE
 | 
			
		|||
"""
 | 
			
		||||
 | 
			
		||||
if len(sys.argv) > 1 and sys.argv[1] == "config":
 | 
			
		||||
    print CONFIG.rstrip()
 | 
			
		||||
    print(CONFIG.rstrip())
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
serverdir = os.environ["serverdir"]
 | 
			
		||||
fn = os.path.join(serverdir, "stats.json")
 | 
			
		||||
with open(fn) as f:
 | 
			
		||||
    data = json.load(f)
 | 
			
		||||
if time.time() > data["valid_until"]:
 | 
			
		||||
dbfile = os.environ["usagedb"]
 | 
			
		||||
assert os.path.exists(dbfile)
 | 
			
		||||
db = sqlite3.connect(dbfile)
 | 
			
		||||
 | 
			
		||||
MINUTE = 60.0
 | 
			
		||||
rebooted = db.execute("SELECT `rebooted` FROM `current`").fetchone()[0]
 | 
			
		||||
if time.time() > rebooted + 5*MINUTE:
 | 
			
		||||
    sys.exit(1) # expired
 | 
			
		||||
 | 
			
		||||
t = data["transit"]["since_reboot"]
 | 
			
		||||
print "bytes.value", t["bytes"]
 | 
			
		||||
value = db.execute("SELECT SUM(`total_bytes`) FROM `usage` WHERE `started` > ?",
 | 
			
		||||
                   (rebooted,)).fetchone()[0]
 | 
			
		||||
print("bytes.value", value)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										39
									
								
								misc/munin/wormhole_transit_active
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								misc/munin/wormhole_transit_active
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
#! /usr/bin/env python
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
Use the following in /etc/munin/plugin-conf.d/wormhole :
 | 
			
		||||
 | 
			
		||||
[wormhole_*]
 | 
			
		||||
env.usagedb /path/to/your/wormhole/server/usage.sqlite
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import os, sys, time, sqlite3
 | 
			
		||||
 | 
			
		||||
CONFIG = """\
 | 
			
		||||
graph_title Magic-Wormhole Transit Active Channels
 | 
			
		||||
graph_vlabel Channels
 | 
			
		||||
graph_category network
 | 
			
		||||
waiting.label Transit Waiting
 | 
			
		||||
waiting.draw LINE1
 | 
			
		||||
waiting.type GAUGE
 | 
			
		||||
connected.label Transit Connected
 | 
			
		||||
connected.draw LINE1
 | 
			
		||||
connected.type GAUGE
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
if len(sys.argv) > 1 and sys.argv[1] == "config":
 | 
			
		||||
    print(CONFIG.rstrip())
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
dbfile = os.environ["usagedb"]
 | 
			
		||||
assert os.path.exists(dbfile)
 | 
			
		||||
db = sqlite3.connect(dbfile)
 | 
			
		||||
 | 
			
		||||
MINUTE = 60.0
 | 
			
		||||
rebooted,waiting,connected = db.execute("SELECT `rebooted`,`waiting`,`connected`"
 | 
			
		||||
                                        " FROM `current`").fetchone()
 | 
			
		||||
if time.time() > rebooted + 5*MINUTE:
 | 
			
		||||
    sys.exit(1) # expired
 | 
			
		||||
 | 
			
		||||
print("waiting.value", waiting)
 | 
			
		||||
print("connected.value", connected)
 | 
			
		||||
| 
						 | 
				
			
			@ -4,10 +4,10 @@
 | 
			
		|||
Use the following in /etc/munin/plugin-conf.d/wormhole :
 | 
			
		||||
 | 
			
		||||
[wormhole_*]
 | 
			
		||||
env.serverdir /path/to/your/wormhole/server
 | 
			
		||||
env.usagedb /path/to/your/wormhole/server/usage.sqlite
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import os, sys, time, json
 | 
			
		||||
import os, sys, time, sqlite3
 | 
			
		||||
 | 
			
		||||
CONFIG = """\
 | 
			
		||||
graph_title Magic-Wormhole Transit Usage (all time)
 | 
			
		||||
| 
						 | 
				
			
			@ -19,15 +19,17 @@ bytes.type GAUGE
 | 
			
		|||
"""
 | 
			
		||||
 | 
			
		||||
if len(sys.argv) > 1 and sys.argv[1] == "config":
 | 
			
		||||
    print CONFIG.rstrip()
 | 
			
		||||
    print(CONFIG.rstrip())
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
serverdir = os.environ["serverdir"]
 | 
			
		||||
fn = os.path.join(serverdir, "stats.json")
 | 
			
		||||
with open(fn) as f:
 | 
			
		||||
    data = json.load(f)
 | 
			
		||||
if time.time() > data["valid_until"]:
 | 
			
		||||
dbfile = os.environ["usagedb"]
 | 
			
		||||
assert os.path.exists(dbfile)
 | 
			
		||||
db = sqlite3.connect(dbfile)
 | 
			
		||||
 | 
			
		||||
MINUTE = 60.0
 | 
			
		||||
rebooted = db.execute("SELECT `rebooted` FROM `current`").fetchone()[0]
 | 
			
		||||
if time.time() > rebooted + 5*MINUTE:
 | 
			
		||||
    sys.exit(1) # expired
 | 
			
		||||
 | 
			
		||||
t = data["transit"]["all_time"]
 | 
			
		||||
print "bytes.value", t["bytes"]
 | 
			
		||||
value = db.execute("SELECT SUM(`total_bytes`) FROM `usage`").fetchone()[0]
 | 
			
		||||
print("bytes.value", value)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										49
									
								
								misc/munin/wormhole_transit_errors
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								misc/munin/wormhole_transit_errors
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,49 @@
 | 
			
		|||
#! /usr/bin/env python
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
Use the following in /etc/munin/plugin-conf.d/wormhole :
 | 
			
		||||
 | 
			
		||||
[wormhole_*]
 | 
			
		||||
env.usagedb /path/to/your/wormhole/server/usage.sqlite
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import os, sys, time, sqlite3
 | 
			
		||||
 | 
			
		||||
CONFIG = """\
 | 
			
		||||
graph_title Magic-Wormhole Transit Server Errors (since reboot)
 | 
			
		||||
graph_vlabel Events Since Reboot
 | 
			
		||||
graph_category network
 | 
			
		||||
errory.label Errory
 | 
			
		||||
errory.draw LINE1
 | 
			
		||||
errory.type GAUGE
 | 
			
		||||
lonely.label Lonely
 | 
			
		||||
lonely.draw LINE1
 | 
			
		||||
lonely.type GAUGE
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
if len(sys.argv) > 1 and sys.argv[1] == "config":
 | 
			
		||||
    print(CONFIG.rstrip())
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
dbfile = os.environ["usagedb"]
 | 
			
		||||
assert os.path.exists(dbfile)
 | 
			
		||||
db = sqlite3.connect(dbfile)
 | 
			
		||||
 | 
			
		||||
MINUTE = 60.0
 | 
			
		||||
rebooted = db.execute("SELECT `rebooted` FROM `current`").fetchone()[0]
 | 
			
		||||
if time.time() > rebooted + 5*MINUTE:
 | 
			
		||||
    sys.exit(1) # expired
 | 
			
		||||
 | 
			
		||||
count = db.execute("SELECT COUNT() FROM `usage`"
 | 
			
		||||
                   " WHERE"
 | 
			
		||||
                "  `started` > ? AND"
 | 
			
		||||
                "  `result` = 'errory'",
 | 
			
		||||
                (rebooted,)).fetchone()[0]
 | 
			
		||||
print("errory.value", count)
 | 
			
		||||
 | 
			
		||||
count = db.execute("SELECT COUNT() FROM `usage`"
 | 
			
		||||
                   " WHERE"
 | 
			
		||||
                "  `started` > ? AND"
 | 
			
		||||
                "  `result` = 'lonely'",
 | 
			
		||||
                (rebooted,)).fetchone()[0]
 | 
			
		||||
print("lonely.value", count)
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user