/usr/share/systemtap/examples/network
NameSizeModeActions
autofs4.meta3970644editdlrm
autofs4.stp41670755editdlrm
connect_stat.meta4040644editdlrm
connect_stat.stp10190755editdlrm
dropwatch.meta4940644editdlrm
dropwatch.stp9000755editdlrm
netdev.meta3890644editdlrm
netdev.stp14580755editdlrm
netfilter_drop.meta6300644editdlrm
netfilter_drop.stp11560755editdlrm
netfilter_summary.meta5870644editdlrm
netfilter_summary.stp5910755editdlrm
netfilter_summary.txt28730644editdlrm
netfilter_summary_json.meta5110644editdlrm
netfilter_summary_json.stp10700644editdlrm
nettop.meta5190644editdlrm
nettop.stp9890755editdlrm
nettop.txt9530644editdlrm
net_xmit_json.meta4530644editdlrm
net_xmit_json.stp18010644editdlrm
nfsd-recent.meta4230644editdlrm
nfsd-recent.stp4420755editdlrm
nfsd-trace.meta3140644editdlrm
nfsd-trace.stp7010644editdlrm
nfsd-trace.txt8760644editdlrm
nfsdtop.meta4050644editdlrm
nfsdtop.stp33850755editdlrm
nfsd_unlink.meta4790644editdlrm
nfsd_unlink.stp5230755editdlrm
packet_contents.meta5500644editdlrm
packet_contents.stp2160755editdlrm
packet_contents.txt20660644editdlrm
sk_stream_wait_memory.meta7420644editdlrm
sk_stream_wait_memory.stp9990755editdlrm
socket-trace.meta7020644editdlrm
socket-trace.stp2220755editdlrm
socktop91440755editdlrm
socktop.meta5480644editdlrm
socktop.txt41350644editdlrm
stp_dump.meta3390644editdlrm
stp_dump.stp5680644editdlrm
stp_dump.txt16320644editdlrm
tcpdumplike.meta3810644editdlrm
tcpdumplike.stp5810755editdlrm
tcpipstat.meta7250644editdlrm
tcpipstat.stp182470755editdlrm
tcpipstat.txt8980644editdlrm
tcp_connections.meta6250644editdlrm
tcp_connections.stp3610755editdlrm
tcp_init_cwnd.meta5890644editdlrm
tcp_init_cwnd.stp3430755editdlrm
tcp_retransmission.meta2860644editdlrm
tcp_retransmission.stp11820644editdlrm
tcp_trace.meta6840644editdlrm
tcp_trace.stp190950755editdlrm
tcp_trace.txt34650644editdlrm
who_sent_it.meta5830644editdlrm
who_sent_it.stp4770644editdlrm
who_sent_it.txt8030644editdlrm
Edit: /usr/share/systemtap/examples/network/net_xmit_json.stp (1801B)
// This script tracks time between packet queue and transmit. The // information is provided to userspace via procfs in JSON format. global net_devices probe json_data { @json_output_data_start foreach (dev in net_devices) { if (@count(skb_queue_t[dev])) { @json_output_array_numeric_value("net_xmit_data", dev, "xmit_count", @sum(skb_queue_t[dev])) @json_output_array_numeric_value("net_xmit_data", dev, "xmit_latency", @count(skb_queue_t[dev])) } else { @json_output_array_numeric_value("net_xmit_data", dev, "xmit_count", 0) @json_output_array_numeric_value("net_xmit_data", dev, "xmit_latency", 0) } } @json_output_data_end } // Set up the metrics probe begin { // fallback instance device "eth0" if none specified if (argc == 0) { argv[1] = "eth0" argc = 1 } // remember all the network devices for (i = 1; i <= argc; i++) { dev = argv[i] net_devices[dev] = i - 1 } // Set the prefix to be used instead of the module name. json_set_prefix("net_xmit") // Add the metrics json_add_array("net_xmit_data", "Network transmit data indexed by ethernet device") json_add_array_numeric_metric("net_xmit_data", "xmit_count", "number of packets for xmit device", "count") json_add_array_numeric_metric("net_xmit_data", "xmit_latency", "sum of latency for xmit device", "") } // probes to track the information global skb_queue_start_t, skb_queue_t probe kernel.trace("net_dev_queue") { skb_queue_start_t[$skb] = gettimeofday_ns(); } probe kernel.trace("net_dev_start_xmit") ?, kernel.trace("net_dev_xmit") { t = gettimeofday_ns(); st = skb_queue_start_t[$skb] if (st){ skb_queue_t[kernel_string($dev->name)] <<< t - st delete skb_queue_start_t[$skb] } }