What kind of information would you like in the OTP debug events?

So I’m working on :sys.handle_debug hooks in WebSockex. The problem is I don’t if I have too many or too few hooks.

It’s one of those problems where, I don’t know the information that one might want to be able to debug with my library.

But that made me think of another question, how useful are the messages when :sys.trace/2 is enabled on complex libraries that depend on GenServer?

I honestly don’t know the question to that answer.

I feel like when you have a library like WebSockex it’s super nice to easily be able to know things like when data was sent over the socket using the debug mechanisms built into OTP. On the other hand, there are sparse debug events emitted from GenServer. Which seems like enough to most people.

So what kind of opinions does everyone else have?

If you were debugging, are the events I am emitting in WebSockex useful or noise?
Do you wish we could emit debug events in libraries that are based on the traditional :gen modules?
Are the debug capabilities in the :sys module kind of meh and useless to you?

Edit: Here are the the events that I’m planning to emit in WebSockex.

Absolutely not IO.puts at all, ever. Any logging or debugging or so should go through the Log module, which you should use info or debug or warn or whatever as appropriate, that way the user can choose what they want to hear.

Actually, that is following the way that :sys.handle_debug/4 is expecting. If you look closely I am writing to the io_dev and not to stdout.

Likewise, it’s not me rolling my own debugging, it’s just me following the OTP Special Process Design Principles to implement its debugging construct.

Sorry if I didn’t make that clear in the original post.