Sockets tapset and script - UPDATE

Mike Mason mmlnx@us.ibm.com
Fri Jan 19 18:09:00 GMT 2007


Here's an update to the sockets tapset and script I sent out in November.  Given that I made some significant changes, and this is my first major checkin, I'd like it sanity checked before committing it.  Note that I added a test and moved tokenize() and strtol() to the string.stp tapset file.  I still need to write the man page.

Thanks for your help!

Mike

Mike Mason wrote:
> Attached is a sockets tapset and a script that uses the tapset.  I 
> thought I'd post them for review even though they're not done.  The 
> tapset just contains what I needed to write the script.  More comments, 
> probes and helper functions are needed.  I also need to write some tests.
> 
> The tapset contains functions to map numbers to strings and strings to 
> numbers for:
> 
> - protocols
> - protocol families
> - socket types
> - socket states
> - socket flags
> - message flags
> 
> Mapping functions are something I think script writers need, not just 
> for sockets, but in a lot of other areas. Some of these functions using 
> mapping arrays.  What do people think of this approach?
> 
> The script (socktop) prints socket traffic for the top n processes and, 
> optionally, network device traffic. Besides being a useful script (I 
> hope), it demonstrates a few methods that should be applicable to many 
> scripts:
> 
> - using a shell script to process command line options
> - filtering on multiple categories (in this case, process ID and name, 
> user name, protocol, protocol family and socket type)
> - passing array-like data from a shell script to a systemtap script and 
> tokenizing that data in systemtap
> - passing in a timezone adjustment
> 
> Also, note the sign bit hack in the return probes. This is something I'd 
> like to remove before posting the script on the wiki (hint, hint :-).
> 
> Here's some example output from socktop:
> 
> [root@localhost probes]# ./socktop -P TCP -P UDP -d
> ======================= Fri Nov 17 14:10:57 2006 ========================
> ------------------------------- PROCESSES -------------------------------
> PID   UID     #SEND   #RECV SEND_KB RECV_KB PROT FAMILY   COMMAND
> 14668 0           0    2546       0    3635 TCP  INET     firefox-bin
> 6765  0          10      10      31       0 TCP  INET     Xvnc
> -------------------------------- DEVICES --------------------------------
> DEV             #XMIT         #RECV         XMIT_KB         RECV_KB
> eth0             1396          2643             121            3769
> =========================================================================
> 
> ======================= Fri Nov 17 14:11:02 2006 ========================
> ------------------------------- PROCESSES -------------------------------
> PID   UID     #SEND   #RECV SEND_KB RECV_KB PROT FAMILY   COMMAND
> 14668 0           0    2457       0    3487 TCP  INET     firefox-bin
> 6765  0          11      11      14       0 TCP  INET     Xvnc
> 29852 0           2       0       0       0 TCP  INET6    sshd
> -------------------------------- DEVICES --------------------------------
> DEV             #XMIT         #RECV         XMIT_KB         RECV_KB
> eth0             1309          2533              98            3620
> =========================================================================
> 
> ======================= Fri Nov 17 14:11:07 2006 ========================
> ------------------------------- PROCESSES -------------------------------
> PID   UID     #SEND   #RECV SEND_KB RECV_KB PROT FAMILY   COMMAND
> 14668 0           0    1886       0    2676 TCP  INET     firefox-bin
> 6765  0          83     292     532       2 TCP  INET     Xvnc
> 29852 0           1       0       0       0 TCP  INET6    sshd
> -------------------------------- DEVICES --------------------------------
> DEV             #XMIT         #RECV         XMIT_KB         RECV_KB
> eth0             1501          2478             624            2797
> =========================================================================
> 
> 
> [root@localhost probes]# ./socktop -d
> ======================= Fri Nov 17 14:09:45 2006 ========================
> ------------------------------- PROCESSES -------------------------------
> PID   UID     #SEND   #RECV SEND_KB RECV_KB PROT FAMILY   COMMAND
> 14668 0           0    2796       0    3969 TCP  INET     firefox-bin
> 6765  0         221     284     535     429 IP   LOCAL    Xvnc
> 6909  0          77     139     277     276 IP   LOCAL    wnck-applet
> 14668 0          53      79     103     220 IP   LOCAL    firefox-bin
> 6840  0          61     125      26      17 IP   LOCAL    metacity
> 6902  0          21      27      21      21 IP   LOCAL    nautilus
> 6765  0          11      11      32       0 TCP  INET     Xvnc
> 6900  0           3       7       0       0 IP   LOCAL    gnome-panel
> 6820  0           0       8       0       0 IP   LOCAL    gnome-settings-
> 1610  0           1       3       0       0 IP   NETLINK  ifconfig
> -------------------------------- DEVICES --------------------------------
> DEV             #XMIT         #RECV         XMIT_KB         RECV_KB
> eth0             1516          2888             129            4115
> =========================================================================
> 
> 
> All comments are welcome.
> 
> Mike Mason
> 
> 
> 
> 
> 
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: socket-01-19-07.tgz
Type: application/x-compressed
Size: 8901 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/systemtap/attachments/20070119/98ed0e06/attachment.bin>


More information about the Systemtap mailing list