Robert Milkowski
2018-12-03 11:56:23 UTC
Hi,
Just a teaser:
# dtrace -q -n vlserver*:::GetEntry-done \
'{printf("%Y client: %s volname: %s rc: %s\n", walltimestamp, \
args[1]->ci_remote, args[3]->volname, afs_errorstr[args[0]]);}'
2018 Nov 19 15:55:15 client: 10.170.57.130 volname: zz.vldb.13 rc: OK
2018 Nov 19 15:55:28 client: 10.170.57.130 volname: ms.dist rc: OK
2018 Nov 19 15:55:57 client: 10.170.57.130 volname: ms.distXX rc: VL_NOENT
...
This is a probe provided by vlserver directly. Obviously one can achieve the
same by using PID provider, but it gets more complicated and does require
understanding of the code and is more involved.
This works on Solaris and should work on FreeBSD as well. It shouldn't be
hard to get it working with SystemTAP on Linux either (although looks like
Linux will be going with ebpf in the future).
Best regards,
Robert Milkowski
Just a teaser:
# dtrace -q -n vlserver*:::GetEntry-done \
'{printf("%Y client: %s volname: %s rc: %s\n", walltimestamp, \
args[1]->ci_remote, args[3]->volname, afs_errorstr[args[0]]);}'
2018 Nov 19 15:55:15 client: 10.170.57.130 volname: zz.vldb.13 rc: OK
2018 Nov 19 15:55:28 client: 10.170.57.130 volname: ms.dist rc: OK
2018 Nov 19 15:55:57 client: 10.170.57.130 volname: ms.distXX rc: VL_NOENT
...
This is a probe provided by vlserver directly. Obviously one can achieve the
same by using PID provider, but it gets more complicated and does require
understanding of the code and is more involved.
This works on Solaris and should work on FreeBSD as well. It shouldn't be
hard to get it working with SystemTAP on Linux either (although looks like
Linux will be going with ebpf in the future).
Best regards,
Robert Milkowski