On erlang vm (beamvm), you can safely trace in production. It makes tracing and debugging tools in other ecosystems look like they are primitive in comparison.
I think erlang ecosystem has its own warts like any other one but debugging definitely isn't one
Here are a few examples of what you can do in erlang/elixir:
Inspect function calls that match specific argumrnt patterns, which can get pretty detailed.
Tag processes by id, future processes under a supervisor, or other criteria, and limit tracing to these.
Limit tracing to n occurences. As in automatically disable tracing after it triggered n times.
Typically one combines these and more to identify issues pretty rapidly.