diff options
-rwxr-xr-x | punani/bin/punani | 16 | ||||
-rwxr-xr-x | retiolum/scripts/adv_graphgen/all_the_graphs.sh | 19 | ||||
-rwxr-xr-x | retiolum/scripts/adv_graphgen/anonytize.sh | 2 | ||||
-rwxr-xr-x | retiolum/scripts/adv_graphgen/parse_tinc_anon.py | 17 | ||||
-rwxr-xr-x | retiolum/scripts/adv_graphgen/parse_tinc_stats.py | 26 | ||||
-rwxr-xr-x | retiolum/scripts/adv_graphgen/sanitize.sh | 2 | ||||
-rwxr-xr-x | util/bin/statsc | 4 | ||||
-rwxr-xr-x | util/bin/timer | 14 |
8 files changed, 86 insertions, 14 deletions
diff --git a/punani/bin/punani b/punani/bin/punani index 97c7ac85..23ba5e00 100755 --- a/punani/bin/punani +++ b/punani/bin/punani @@ -8,26 +8,28 @@ PKGS="$*" ## find package manager if ! :; then : # dummy case, so the rest has a common format -elif for PACKER_CMD in yum +elif for PACKER_CMD in aptitude apt-get do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then INSTALL_PARAM='-y install' REMOVE_PARAM='-y remove' -elif for PACKER_CMD in brew - do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then - INSTALL_PARAM='install' - REMOVE_PARAM='remove' - elif for PACKER_CMD in bauerbill packer yaourt pacman do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then INSTALL_PARAM='--noconfirm -S --needed' REMOVE_PARAM='-Rcs' -elif for PACKER_CMD in aptitude apt-get +elif for PACKER_CMD in yum do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then INSTALL_PARAM='-y install' REMOVE_PARAM='-y remove' +elif for PACKER_CMD in brew + do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then + INSTALL_PARAM='install' + REMOVE_PARAM='remove' + + + else echo "Error 2: no known package manager found; no punani for you!" >&2 exit 23 diff --git a/retiolum/scripts/adv_graphgen/all_the_graphs.sh b/retiolum/scripts/adv_graphgen/all_the_graphs.sh index 36b37f03..1640a446 100755 --- a/retiolum/scripts/adv_graphgen/all_the_graphs.sh +++ b/retiolum/scripts/adv_graphgen/all_the_graphs.sh @@ -1,5 +1,14 @@ -#!/bin/sh -echo "`date` begin all graphs" >> /tmp/build_graph -cd $(dirname $(readlink -f $0)) -(./anonytize.sh /srv/http/pub/graphs/retiolum/ && echo "`date` anonytize done" >> /tmp/build_graph)& -(./sanitize.sh /srv/http/priv/graphs/retiolum/ && echo "`date` sanitize done" >> /tmp/build_graph)& +#!/bin/bash + +( + echo "`date` begin all graphs" >> /tmp/build_graph + cd $(dirname $(readlink -f $0)) + PATH=$PATH:../../../util/bin/ + export LOG_FILE=/var/log/retiolum.log + begin=`timer` + (./anonytize.sh /srv/http/pub/graphs/retiolum/ && echo "`date` anonytize done" >> /tmp/build_graph)& + (./sanitize.sh /srv/http/priv/graphs/retiolum/ && echo "`date` sanitize done" >> /tmp/build_graph)& +# wait +# graphitec "retiolum.graph.buildtime" "$(timer $begin)" >> /tmp/build_graph + echo "`date` end all graphs" >> /tmp/build_graph +)& diff --git a/retiolum/scripts/adv_graphgen/anonytize.sh b/retiolum/scripts/adv_graphgen/anonytize.sh index 1ebfe972..d49793cb 100755 --- a/retiolum/scripts/adv_graphgen/anonytize.sh +++ b/retiolum/scripts/adv_graphgen/anonytize.sh @@ -5,7 +5,7 @@ GRAPH_SETTER1=dot GRAPH_SETTER2=circo GRAPH_SETTER3='neato -Goverlap=prism ' GRAPH_SETTER4=sfdp -LOG_FILE=/var/log/syslog +LOG_FILE=${LOG_FILE:-/var/log/syslog} TYPE=svg TYPE2=png OPENER=/bin/true diff --git a/retiolum/scripts/adv_graphgen/parse_tinc_anon.py b/retiolum/scripts/adv_graphgen/parse_tinc_anon.py index 3b0383da..c603d398 100755 --- a/retiolum/scripts/adv_graphgen/parse_tinc_anon.py +++ b/retiolum/scripts/adv_graphgen/parse_tinc_anon.py @@ -3,6 +3,17 @@ from BackwardsReader import BackwardsReader import sys,json #supernodes= [ "kaah","supernode","euer","pa_sharepoint","oxberg" ] +try: + import socket + from time import time + host = "localhost" + port = 2003 + g_path = "retiolum" + begin = time() + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((host,port)) +except Exception as e: + print >>sys.stderr, "Cannot connect to graphite: " + str(e) """ TODO: Refactoring needed to pull the edges out of the node structures again, it should be easier to handle both structures""" DUMP_FILE = "/krebs/db/availability" @@ -133,3 +144,9 @@ def decode_input(FILE): nodes = decode_input(sys.stdin) nodes = delete_unused_nodes(nodes) write_digraph(nodes) +try: + end = time() + msg = '%s.graph.anon_build_time %d %d\n' % (g_path,((end-begin)*1000),end) + s.send(msg) + s.close() +except Exception as e: print >>sys.stderr, e diff --git a/retiolum/scripts/adv_graphgen/parse_tinc_stats.py b/retiolum/scripts/adv_graphgen/parse_tinc_stats.py index 54dcc4ab..a255a918 100755 --- a/retiolum/scripts/adv_graphgen/parse_tinc_stats.py +++ b/retiolum/scripts/adv_graphgen/parse_tinc_stats.py @@ -2,6 +2,18 @@ # -*- coding: utf8 -*- from BackwardsReader import BackwardsReader import sys,json +try: + from time import time + import socket + host = "localhost" + port = 2003 + g_path = "retiolum" + begin = time() + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((host,port)) +except Exception as e: + print >>sys.stderr, "Cannot connect to graphite: " + str(e) + supernodes= [ "kaah","supernode","euer","pa_sharepoint","oxberg" ] """ TODO: Refactoring needed to pull the edges out of the node structures again, it should be easier to handle both structures""" @@ -36,6 +48,12 @@ def write_stat_node(nodes): ''' num_conns = 0 num_nodes = len(nodes) + try: + msg = '%s.num_nodes %d %d\n' %(g_path,num_nodes,begin) + s.send(msg) + #print >>sys.stderr, msg + except Exception as e: print sys.stderr,e + #except: pass for k,v in nodes.iteritems(): num_conns+= len(v['to']) node_text = " stats_node [label=\"Statistics\\l" @@ -183,3 +201,11 @@ try: except Exception,e: sys.stderr.write("Cannot dump graph: %s" % str(e)) write_digraph(nodes) + +try: + end = time() + msg = '%s.graph.detail_build_time %d %d\n' % (g_path,((end-begin)*1000),end) + s.send(msg) + print >>sys.stderr,msg + s.close() +except Exception as e: print >>sys.stderr, e diff --git a/retiolum/scripts/adv_graphgen/sanitize.sh b/retiolum/scripts/adv_graphgen/sanitize.sh index 50f1659f..c46662f3 100755 --- a/retiolum/scripts/adv_graphgen/sanitize.sh +++ b/retiolum/scripts/adv_graphgen/sanitize.sh @@ -5,7 +5,7 @@ GRAPH_SETTER1=dot GRAPH_SETTER2=circo GRAPH_SETTER3='neato -Goverlap=prism ' GRAPH_SETTER4=sfdp -LOG_FILE=/var/log/syslog +LOG_FILE=${LOG_FILE:-/var/log/syslog} TYPE=svg TYPE2=png OPENER=/bin/true diff --git a/util/bin/statsc b/util/bin/statsc new file mode 100755 index 00000000..ff86ccb8 --- /dev/null +++ b/util/bin/statsc @@ -0,0 +1,4 @@ +#!/bin/sh +# see https://github.com/etsy/statsd for syntax +[ $# -eq 0 ] && echo "usage: $0 MESSAGE" +echo "$1" | nc -w 1 -u 127.0.0.1 8125 diff --git a/util/bin/timer b/util/bin/timer new file mode 100755 index 00000000..0ccf514a --- /dev/null +++ b/util/bin/timer @@ -0,0 +1,14 @@ +#!/bin/bash +curr=$(date '+%s%N') +etime=${curr:0:${#curr}-6} +if [[ $# -eq 0 ]];then + echo $etime +else + [ "$1" == "-h" -o "$1" == "--help" ] && \ + echo "usage: $0 [start_ms]" && \ + echo " if no start_ms is given, return the currentime" && \ + echo " if start_ms is given, return the difference" && exit 0 + stime=$1 + [[ -z "$stime" ]] && stime=$etime + echo $((etime - stime)) +fi |