mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-18 23:45:52 +08:00
update
This commit is contained in:
@@ -176,6 +176,21 @@ def dtFileList():
|
||||
return mw.returnJson(True, 'ok!', file_info)
|
||||
|
||||
|
||||
def dtSimpleTrace():
|
||||
args = getArgs()
|
||||
data = checkArgs(args, ['pid'])
|
||||
if not data[0]:
|
||||
return data[1]
|
||||
|
||||
plugins_shell = getPluginDir() + '/shell/simple_trace.sh'
|
||||
cmd = plugins_shell + ' "' + args['pid'] + '"'
|
||||
|
||||
print(cmd)
|
||||
data = mw.execShell("bash " + cmd)
|
||||
print(data)
|
||||
return mw.returnJson(True, '执行成功!')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
func = sys.argv[1]
|
||||
if func == 'status':
|
||||
@@ -206,5 +221,7 @@ if __name__ == "__main__":
|
||||
print(dtGetFilePath())
|
||||
elif func == 'remove_file_path':
|
||||
print(dtRemoveFilePath())
|
||||
elif func == 'simple_trace':
|
||||
print(dtSimpleTrace())
|
||||
else:
|
||||
print('error')
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
||||
export PATH
|
||||
|
||||
|
||||
# debug
|
||||
# /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/dynamic-tracking/shell/simple_trace.sh "22431"
|
||||
|
||||
# dtrace -x ustackframes=100 -n 'pid$target::mach_msg_trap:entry { @[ustack()] = count(); } tick-30s { exit(0); }' -p 18572 -o out.SystemUIServer_stacks
|
||||
# /Users/midoks/Desktop/mwdev/server/dynamic-tracking/FlameGraph/stackcollapse.pl out.SystemUIServer_stacks > kernel.cbt
|
||||
# /Users/midoks/Desktop/mwdev/server/dynamic-tracking/FlameGraph/flamegraph.pl kernel.cbt > kernel.svg
|
||||
|
||||
curPath=`pwd`
|
||||
rootPath=$(dirname "$curPath")
|
||||
serverPath=$(dirname "$rootPath")
|
||||
|
||||
sysName=`uname`
|
||||
PID=$1
|
||||
|
||||
echo $rootPath # /Users/midoks/Desktop/mwdev/server
|
||||
echo $curPath # /Users/midoks/Desktop/mwdev/server/mdserver-web
|
||||
|
||||
APP_DIR=${rootPath}/dynamic-tracking
|
||||
DST_FILE_DIR=${APP_DIR}/trace/PID_${PID}
|
||||
mkdir -p $DST_FILE_DIR
|
||||
|
||||
DST_FILE=${DST_FILE_DIR}/out.SystemUIServer_stacks
|
||||
|
||||
if [ ! -f $DST_FILE ];then
|
||||
sudo dtrace -x ustackframes=100 -n 'pid$target::mach_msg_trap:entry { @[ustack()] = count(); } tick-30s { exit(0); }' -p "$PID" -o $DST_FILE
|
||||
fi
|
||||
|
||||
${APP_DIR}/FlameGraph/stackcollapse.pl $DST_FILE > ${DST_FILE_DIR}/kernel.cbt
|
||||
${APP_DIR}/FlameGraph/flamegraph.pl ${DST_FILE_DIR}/kernel.cbt > ${DST_FILE_DIR}/main.svg
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
</div>
|
||||
|
||||
<div class="search pull-right">
|
||||
<form target="hid" onsubmit='getLogs(1,$("#SearchValue").prop("value"))'>
|
||||
<input type="text" id="SearchValue" class="ser-text pull-left" placeholder="进程ID" />
|
||||
<form target="hid" onsubmit='return false;'>
|
||||
<input type="text" id="searchValue" class="ser-text pull-left" placeholder="进程ID" />
|
||||
<button type="button" class="data-collect pull-left">采样</button>
|
||||
</form>
|
||||
</div>
|
||||
@@ -70,8 +70,6 @@
|
||||
oallowfullscreen="oallowfullscreen"
|
||||
webkitallowfullscreen="webkitallowfullscreen"
|
||||
allowfullscreen="true"></iframe>
|
||||
<!-- <iframe class="tab-block on" src=""></iframe> -->
|
||||
<!-- <div class="tab-block on"></div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -33,6 +33,11 @@ function dynamicTrackingLoad(){
|
||||
|
||||
$('.data-collect').click(function(){
|
||||
layer.msg('开始采样',{icon:0,time:2000});
|
||||
var pid = $('#searchValue').val();
|
||||
|
||||
dtPost('simple_trace', '', {pid:pid}, function(rdata){
|
||||
console.log(rdata);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user