For my purposes, app name isn't long enough so we put a comment at the start of every SQL that has a unique ID generated in the application. This ensures that we can tell one connection apart from another even when both are coming from the same feature/action (applicationName is set to this) even using connection pooling. Before, we had different requests reusing the same pid of course and if they happened to have the same appName, we didn't know it was a new process on app side.
We also log that same request ID to NewRelic and when an app process needs to use multiple databases, it links those for research of events after the fact as well.
I would be interested to hear what others are doing.