Hi guys,

I am recently interested in socket programming. I found this gem in kernel
socket:

http://lxr.free-electrons.com/source/include/uapi/linux/tcp.h#L148

Example code like this:

import socket, struct
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('www.google.com', 80))
s.send('GET / HTTP/1.1\r\n\r\n')
s.recv(1024)
a=struct.unpack("B"*7+"I"*24, s.getsockopt(socket.SOL_TCP, socket.TCP_INFO,
104))
b=['tcpi_state', 'tcpi_ca_state', 'tcpi_retransmits', 'tcpi_probes',
'tcpi_backoff', 'tcpi_options', 'tcpi_snd_wscale+tcpi_rcv_wscale',
'tcpi_rto', 'tcpi_ato', 'tcpi_snd_mss', 'tcpi_rcv_mss', 'tcpi_unacked',
'tcpi_sacked', 'tcpi_lost', 'tcpi_retrans', 'tcpi_fackets',
'tcpi_last_data_sent', 'tcpi_last_ack_sent   ', 'tcpi_last_data_recv',
'tcpi_last_ack_recv', 'tcpi_pmtu', 'tcpi_rcv_ssthresh', 'tcpi_rtt',
'tcpi_rttvar', 'tcpi_snd_ssthresh', 'tcpi_snd_cwnd', 'tcpi_advmss',
'tcpi_reordering', 'tcpi_rcv_rtt', 'tcpi_rcv_space', 'tcpi_total_retrans',]
print '\r\n'.join('%s: %s' % x for x in zip(b, a))


I find metrics like tcpi_lost, tcpi_retrans, tcpi_rtt, tcpi_rcv_rtt
potentially very useful to monitor server performance. It would be awesome
if uWSGI consider adding some of the info to the stats server. (or some
where better)

What do you guys think?
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to