run singal agent successfully now

This commit is contained in:
Kun Huang 2015-10-23 12:06:07 +08:00
parent 3ec61813cf
commit abbbc744ba
4 changed files with 32 additions and 8 deletions

View File

@ -35,10 +35,10 @@ def _parse_agents_from_file(config):
# TODO this map should be saved in a config file # TODO this map should be saved in a config file
# TODO refar to pre/exec/post # TODO refar to pre/exec/post
agents_map = { agents_map = {
"mysql": "bash /opt/stack/scalpels/scripts/mysql-live.sh", "mysql": "bash /opt/stack/scalpels/scripts/mysql-live.sh", #XXX doesn't work now, needs works on interapt pipeline
"rabbit": "", "rabbit": "python /opt/stack/scalpels/scripts/rbt-trace.py",
"traffic": "", "rpc": "bash /opt/stack/scalpels/scripts/port-input-traffic.sh 5672",
"rpctraffic": "", "traffic": "bash /opt/stack/scalpels/scripts/device-input-traffic.sh eth1",
} }
def run(config): def run(config):
@ -51,12 +51,13 @@ def run(config):
if ag_exec: if ag_exec:
ag_p = subprocess.Popen(ag_exec.split(), stdout=subprocess.PIPE) ag_p = subprocess.Popen(ag_exec.split(), stdout=subprocess.PIPE)
running_agents.append(ag_p) running_agents.append(ag_p)
time.sleep(5) time.sleep(15)
data = [] data = []
for ag_p in running_agents: for ag_p in running_agents:
# shell scripts has depend child which can't be killed by subprocess' API # shell scripts has depend child which can't be killed by subprocess' API
# it should be ag_p.kill() # it should be ag_p.kill()
os.system("pkill -P %s" % ag_p.pid) #os.system("pkill -P %s" % ag_p.pid)
ag_p.send_signal(signal.SIGINT)
stdout = ag_p.stdout.read() stdout = ag_p.stdout.read()
data.append(stdout) data.append(stdout)
rets = [] rets = []

20
scripts/device-input-traffic.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# Author: Kun Huang <academicgareth@gmail.com>
dev=${1:-eth0}
packages=`cat /sys/class/net/$dev/statistics/rx_packets `
bytes=`cat /sys/class/net/$dev/statistics/rx_bytes `
interval=3
trap 'break' INT
while [ 1 -eq 1 ] ; do
sleep $interval
n_packages=`cat /sys/class/net/$dev/statistics/rx_packets `
n_bytes=`cat /sys/class/net/$dev/statistics/rx_bytes `
python -c "print '%0.2f pkt/s' % (float($n_packages-$packages)/int($interval))"
python -c "print '%0.2f byte/s' % (float($n_bytes-$bytes)/int($interval))"
packages=$n_packages
bytes=$n_bytes
done

View File

@ -3,6 +3,7 @@
# Author: Kun Huang <academicgareth@gmail.com> # Author: Kun Huang <academicgareth@gmail.com>
import json import json
import subprocess
from kombu import Connection from kombu import Connection
from kombu import Exchange from kombu import Exchange
@ -53,7 +54,8 @@ class Worker(ConsumerMixin):
with Connection('amqp://guest:guest@localhost:5672//') as conn: with Connection('amqp://guest:guest@localhost:5672//') as conn:
try: try:
subprocess.check_call("sudo rabbitmqctl trace_on", shell=True)
worker = Worker(conn) worker = Worker(conn)
worker.run() worker.run()
except KeyboardInterrupt: except KeyboardInterrupt:
print debug subprocess.check_call("sudo rabbitmqctl trace_off", shell=True)

View File

@ -12,5 +12,6 @@
{ {
"name": "rpctraffic" "name": "rpctraffic"
} }
] ],
"sleep": 5,
} }