https://performiq.com/kb/index.php?title=Item_fix.py&feed=atom&action=history
Item fix.py - Revision history
2024-03-28T11:50:02Z
Revision history for this page on the wiki
MediaWiki 1.37.1
https://performiq.com/kb/index.php?title=Item_fix.py&diff=3108&oldid=prev
PeterHarding at 06:13, 19 July 2009
2009-07-19T06:13:55Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:13, 19 July 2009</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l9">Line 9:</td>
<td colspan="2" class="diff-lineno">Line 9:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>"""</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>"""</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Parse Ben <del style="font-weight: bold; text-decoration: none;">Lee</del>'s LR log files to show the underlying function</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Parse Ben's LR log files to show the underlying function</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>invocation sequence in the designated log file. </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>invocation sequence in the designated log file. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l292">Line 292:</td>
<td colspan="2" class="diff-lineno">Line 292:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Python]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Python]]</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category:Examples]]</ins></div></td></tr>
</table>
PeterHarding
https://performiq.com/kb/index.php?title=Item_fix.py&diff=2173&oldid=prev
PeterHarding: New page: <pre> #! /usr/bin/env python # # Purpose: Parse and display an informix log file # # $Id:$ # #--------------------------------------------------------------------- """ Parse Ben Lee's L...
2008-05-24T07:40:36Z
<p>New page: <pre> #! /usr/bin/env python # # Purpose: Parse and display an informix log file # # $Id:$ # #--------------------------------------------------------------------- """ Parse Ben Lee's L...</p>
<p><b>New page</b></p><div><pre><br />
#! /usr/bin/env python<br />
#<br />
# Purpose: Parse and display an informix log file<br />
#<br />
# $Id:$<br />
#<br />
#---------------------------------------------------------------------<br />
<br />
"""<br />
Parse Ben Lee's LR log files to show the underlying function<br />
invocation sequence in the designated log file. <br />
<br />
Another option shows timing of start of function.<br />
<br />
Instructions for use:<br />
<br />
1. You should change to the loadgen directory - the one containing the log files generated by Ben's code.<br />
<br />
2. Run:<br />
<br />
$ prune_log.py -t *.log<br />
<br />
This produces a logs.sorted file contining the merged and sorted rewritten logs.<br />
<br />
3. Then run:<br />
<br />
$ time_line.py<br />
<br />
This produces 'time_line.txt' which contains the time line and concurrency map.<br />
<br />
"""<br />
<br />
#---------------------------------------------------------------------<br />
<br />
import re<br />
import os<br />
import sys<br />
import glob<br />
import time<br />
import getopt<br />
import pickle<br />
<br />
#---------------------------------------------------------------------<br />
<br />
__version__ = "1.0.0"<br />
<br />
debugFlg = 0<br />
stdoutFlg = 0<br />
verboseFlg = 0<br />
directoryFlg = None<br />
<br />
filename = "x.lst"<br />
mode = None<br />
data = None<br />
<br />
#---------------------------------------------------------------------<br />
<br />
class Line:<br />
Max_0 = 0<br />
Max_1 = 0<br />
<br />
def __init__(self, l):<br />
self.flag = None<br />
self.line = l<br />
<br />
def __str__(self):<br />
if self.flag:<br />
s = ' ' * self.leading<br />
s += self.split[0]<br />
spacer = ' ' * (Line.Max_0 - len(self.split[0]) + 1)<br />
s += spacer + self.split[1]<br />
spacer = ' ' * (Line.Max_1 - len(self.split[1]) + 1)<br />
s += spacer + self.split[2]<br />
return s<br />
else:<br />
return self.line;<br />
<br />
def leading(self, no):<br />
self.leading = no<br />
<br />
def split(self, p):<br />
self.flag = 1<br />
self.split = p<br />
<br />
#---------------------------------------------------------------------<br />
<br />
def startSeconds(s):<br />
return time.mktime(time.strptime(s, "%Y-%m-%d %H:%M:%S"))<br />
<br />
#---------------------------------------------------------------------<br />
<br />
def seconds(hms):<br />
s = hms.split(':')<br />
<br />
return ((s[0] * 60) + s[1]) * 60 + s[2]<br />
<br />
#---------------------------------------------------------------------<br />
<br />
def hms(t_secs):<br />
hm = t_secs / 60<br />
hours = hm / 60<br />
mins = hm % 60<br />
secs = t_secs % 60<br />
<br />
return "%02d:%02d:%02d" % ( hours, mins, secs)<br />
<br />
#---------------------------------------------------------------------<br />
<br />
def parse(filename):<br />
global t_start<br />
<br />
print filename<br />
<br />
tmatch = re.search(r'(.*?).lst', filename)<br />
if tmatch:<br />
name = tmatch.group(1)<br />
else:<br />
name = filename + ".lst"<br />
filename += ".lst"<br />
<br />
outfile = name + ".out"<br />
<br />
try:<br />
ifo = open(filename, 'r')<br />
except IOError, msg:<br />
sys.stderr.write(filename + ': cannot open: ' + `msg` + '\n')<br />
sys.exit(1)<br />
<br />
try:<br />
ofo = open(outfile, 'w')<br />
except IOError, msg:<br />
sys.stderr.write(outfile + ': cannot open: ' + `msg` + '\n')<br />
sys.exit(1)<br />
<br />
cnt = 0<br />
<br />
max_0 = 0<br />
max_1 = 0<br />
<br />
lines = []<br />
<br />
while 1:<br />
line = ifo.readline()<br />
<br />
if not line: break<br />
<br />
line = line[:-1]<br />
line = line.replace("\r","")<br />
<br />
l = Line(line)<br />
<br />
lines.append(l)<br />
<br />
if re.search("^#", line):<br />
continue<br />
<br />
if re.search("^$", line):<br />
continue<br />
<br />
if re.search("^\r$", line):<br />
continue<br />
<br />
cnt += 1<br />
<br />
tmatch = re.search("^ *([^ ]?)", line)<br />
if tmatch:<br />
ch = tmatch.group(1)<br />
no_leading_spaces = line.index(ch)<br />
<br />
l.leading(no_leading_spaces)<br />
<br />
line = line[no_leading_spaces:]<br />
<br />
p = line.split(' ')<br />
<br />
len_0 = len(p[0])<br />
if len_0 > max_0:<br />
max_0 = len_0<br />
<br />
len_1 = len(p[1])<br />
if len_1 > max_1:<br />
max_1 = len_1<br />
<br />
l.split(p)<br />
<br />
try:<br />
print "[%s]" % str(p)<br />
print >>ofo, "[%s]" % str(p)<br />
except:<br />
print "%s" % line<br />
sys.exit(0)<br />
<br />
print ":::::::::::::::::::::::::"<br />
<br />
Line.Max_0 = max_0<br />
Line.Max_1 = max_1<br />
<br />
for i in range(len(lines)):<br />
print lines[i]<br />
<br />
ifo.close()<br />
ofo.close()<br />
<br />
print >>sys.stderr, "Processed %d lines" % cnt<br />
<br />
#---------------------------------------------------------------------<br />
<br />
def main():<br />
global filename<br />
global debugFlg<br />
global stdoutFlg<br />
global verboseFlg<br />
<br />
try:<br />
opts, args = getopt.getopt(sys.argv[1:], "df:vV?")<br />
except getopt.error, msg:<br />
print __doc__<br />
return 1<br />
<br />
for o, a in opts:<br />
if o == '-d':<br />
debugFlg = 1<br />
elif o == '-f':<br />
filename = a<br />
elif o == '-v':<br />
verboseFlg = 1<br />
elif o == '-V':<br />
print "Version: %s" % __version__<br />
return 1<br />
elif o == '-?':<br />
print __doc__<br />
return 1<br />
<br />
if (debugFlg):<br />
print ">> Flg %s" % debugFlg<br />
<br />
parse(filename)<br />
<br />
return 1<br />
<br />
#---------------------------------------------------------------------<br />
<br />
if __name__ == '__main__' or __name__ == sys.argv[0]:<br />
sys.exit(main())<br />
<br />
#---------------------------------------------------------------------<br />
<br />
"""<br />
Revision History:<br />
<br />
Date Who Description<br />
-------- --- --------------------------------------------------<br />
20040812 plh Initial implementation<br />
<br />
Problems to fix:<br />
<br />
To Do:<br />
<br />
Issues:<br />
<br />
"""<br />
<br />
"""<br />
"Name=org.apache.struts.taglib.html.TOKEN", "Value={AgentisTOKEN}", ENDITEM,<br />
"Name=panelControlMap_subFormName", "Value=QueueLinkMap", ENDITEM,<br />
"Name=panelControlMap_panelName", "Value=null", ENDITEM,<br />
"Name=MetaDataDrivenTagMap_tableName", "Value=0", ENDITEM,<br />
"Name=MetaDataDrivenTagMap_columnName", "Value=0", ENDITEM,<br />
"Name=MetaDataDrivenTagMap_recordNumber", "Value=0", ENDITEM,<br />
"Name=MetaDataDrivenTagMap_agentId", "Value=0", ENDITEM,<br />
"Name=", "Value=", ENDITEM,<br />
"Name=", "Value=", ENDITEM,<br />
"Name=ConfirmationActionForm_role", "Value=*UNKNOWN:role*", ENDITEM,<br />
"Name=ConfirmationActionForm_token", "Value=*UNKNOWN:token*", ENDITEM,<br />
"Name=ConfirmationActionForm_param1", "Value=*UNKNOWN:param1*", ENDITEM,<br />
"Name=ConfirmationActionForm_param2", "Value=*UNKNOWN:param2*", ENDITEM,<br />
<br />
"Name=QueueLinkMap_taskId", value_task, ENDITEM,<br />
<br />
"Name=QueueLinkMap_requestId", "Value=", ENDITEM,<br />
"Name=QueueLinkMap_awbNumber", "Value=", ENDITEM,<br />
"Name=QueueLinkMap_queueLinkId", "Value=", ENDITEM,<br />
"Name=QueueLinkMap_orgUnitName", "Value=", ENDITEM,<br />
"Name=QueueLinkMap_orgUnitId", "Value=", ENDITEM,<br />
"Name=BodyLinkMap_taskId", "Value=", ENDITEM,<br />
"Name=BodyLinkMap_awbNumber", "Value=", ENDITEM,<br />
"Name=BodyLinkMap_requestId", "Value=", ENDITEM,<br />
"Name=BodyLinkMap_queueLinkId", "Value=", ENDITEM,<br />
"""<br />
</pre><br />
<br />
[[Category:Python]]</div>
PeterHarding