the-tcpdump-group/tcpdump — pull request #349 by adarqui (2013-12-09 05:52:07+00:00)
Title: tcpdump redis support - a better alternative to redis-cli MONITOR

Here it is again, this time with TCHECK/TCHECK2 etc. I tested partials and 'underflows', it breaks out gracefully into the 'trunc' label. Here's an example of the redis parser in action (we can grep for redisCommand, redisReply, and redisBulkReply):

22:09:35.835990 IP 127.0.0.1.49072 > 127.0.0.1.6379: Flags [P.], seq 1:19, ack 1, win 342, options [nop,nop,TS val 4216890 ecr 4216890], length 18 redisCommand: flushall
22:09:35.954593 IP 127.0.0.1.6379 > 127.0.0.1.49072: Flags [P.], seq 1:6, ack 19, win 342, options [nop,nop,TS val 4216919 ecr 4216890], length 5 redisReply: +OK
00:41:12.153834 IP 127.0.0.1.33228 > 127.0.0.1.6379: Flags [P.], seq 1:21, ack 1, win 342, options [nop,nop,TS val 6490969 ecr 6490969], length 20 redisCommand: GET Y
00:41:12.153870 IP 127.0.0.1.6379 > 127.0.0.1.33228: Flags [P.], seq 1:8, ack 21, win 342, options [nop,nop,TS val 6490969 ecr 6490969], length 7 redisBulkReply: 2
00:46:15.184230 IP 127.0.0.1.33234 > 127.0.0.1.6379: Flags [P.], seq 1:26, ack 1, win 342, options [nop,nop,TS val 6566727 ecr 6566727], length 25 redisCommand: HGETALL hi
00:46:15.184326 IP 127.0.0.1.6379 > 127.0.0.1.33234: Flags [P.], seq 1:33, ack 26, win 342, options [nop,nop,TS val 6566727 ecr 6566727], length 32 redisCommand: 1 2 3 4
00:46:20.880895 IP 127.0.0.1.33235 > 127.0.0.1.6379: Flags [P.], seq 1:21, ack 1, win 342, options [nop,nop,TS val 6568151 ecr 6568151], length 20 redisCommand: GET O
00:46:20.880973 IP 127.0.0.1.6379 > 127.0.0.1.33235: Flags [P.], seq 1:8, ack 21, win 342, options [nop,nop,TS val 6568151 ecr 6568151], length 7 redisBulkReply: 1
00:46:28.056590 IP 127.0.0.1.33236 > 127.0.0.1.6379: Flags [P.], seq 1:34, ack 1, win 342, options [nop,nop,TS val 6569945 ecr 6569945], length 33 redisCommand: SET PING PONG
00:46:28.056687 IP 127.0.0.1.6379 > 127.0.0.1.33236: Flags [P.], seq 1:6, ack 34, win 342, options [nop,nop,TS val 6569945 ecr 6569945], length 5 redisReply: +OK
00:46:33.852512 IP 127.0.0.1.33237 > 127.0.0.1.6379: Flags [P.], seq 1:23, ack 1, win 342, options [nop,nop,TS val 6571394 ecr 6571394], length 22 redisCommand: SETXINVALID
00:46:33.852610 IP 127.0.0.1.6379 > 127.0.0.1.33237: Flags [P.], seq 1:37, ack 23, win 342, options [nop,nop,TS val 6571394 ecr 6571394], length 36 redisReply: -ERR unknown command 'SETXINVALID'

Thanks for your time (again),

adarqui