It's ptrace itself: every traced syscall requires at least one (but usually 3-4) ptrace(2) calls, plus scattered wait(2)/waitpid(2) calls depending on the operation.
If you want to capture events like file opens and network traffic, I'd take a look at eBPF or the Linux Audit Framework.