"Good developers instrument their applications."
Unluckily, I've see many just collecting useless data, flooding systems with then, and even spending ore time handling them than doing real actual work. Mostly, they are developers quite unsure about the code they wrote (often, with good reasons...), incapable to profile it correctly. Moreover, when something nasty or weird happens, they are not able to collect the right information for a diagnosis.
The first rule about good tracing is exactly to collect what you need when you need. Just collecting everything creates only noise, impact performance, and risks to disclose sensitive data and break many laws. It's a dream of marketing departments, but they need to be put again into their cages and given some cheese to keep them quiet.
Tracing has to be dynamic so you can increase the collected data on demand to respond to events. Events should be properly triggered when something important happens. Flooding traces and logs with useless events just increase noise and make analyses very difficult. Most of the time, it's just "butts covering".
That's to keep system working at their full speed.
Then if you want data to spy your customers that's a wholly different need. A need I don't approve at all and refuse to "instrument" my applications for, and the sooner it's forbidden by laws, the better.