And I run everything through Segment rather than embedding individual trackers directly. Segment either relays data to other services or loads required JS on page load.
The long term solution is usually building an in-house analytics service but it's not easy and cheap. We're also developing a generic analytics platform that can be installed with one-click to your favorite cloud provider so that you can store your event data in your database and build an internal analytics service without coding. Check out: https://github.com/rakam-io/rakam
It is actually easy to implement GA-like functionality in JS, send the event data to the server, and process it e.g. daily. You can start slowly, e.g. track only clicks (make it sync), visit time and scroll (both async).
Of course my homegrown analytics reporting is far from Google's, but at least I have found a great balance between getting useful usage data on my sites, and at the same time respecting the visitors' privacy.
Keen IO is a great alternative. Full disclosure, I'm a product manager at Keen. That said, we do help some of our customers move off of GA to gain more control and flexibility in their analytics
Thanks for the comment Josh. We just completely revamped our pricing. I'd love to get your feedback on what we've done, especially given your previous experience
Quick plug for a log analyser: https://goaccess.io which I installed after realising it did all the things I actually wanted from GA (I don't actually need detailed user tracking)
Grep is unfortunately close to useless. It gives little to no insights on how long/deep a user stayed on a page, or where they went after that. Or what form fields are getting in the way of users from completing whatever you'd like them to do.