metasmoke
metasmoke copied to clipboard
Logging Roadmap
Here are some ideas I have for logging, most of which would be fun to have and so hopefully y'all will be able to take some of them on -- I certainly can't take all of them in any reasonable amount of time:
- [x] Logs by path, possibly with regex search
- [x] Links to per user/per session logs from the big user data + roles page (also look at #578 while you're at it)
- [ ] Some kind of graphical representation of traffic per page. The full request data expires after 2 weeks, but we keep timestamped requests forever. @Undo1 mentioned a heatmap?
- [ ] Historical page speeds as a big (but easy to do) upgrade for /query_times. Line graph with 3 lines, db time, view time, and total time is sorta what I'm thinking, but you can do whatever seems good. Redis also has data on when on when we moved forward a commit, so we could cross reference this with sha's for extra sparkle.
- [ ] Some kind of alert system if we suddenly start getting 500's or 404 on pages we haven't before. Redis has a list of timestamps+status codes sorted by page.
- [x] Unify the time formatting
- [ ] Fix that errors extend off the page
- [x] Fix the websocket and add it to every page that has logs
- [ ] Grab the miniprofiler data and store that too. If someone can figure out how to grab it, I can store it.
- [x] @Undo1 also suggested coloring based on timing. Not sure how that'd work with the error code coloring we already have, but wanted to stick that here.
Have anything else you think would be useful? Add to the list!
I built this because after looking at various logging frameworks, I decided that it'd be best to just build it myself. I did not see greylog, but it seemed to be that the biggest barrier to using a fancy logging framework like that is actually getting all the data from rails into the logging framework. Redis logs was also a fun project. If there are better solutions out there, you're welcome to find one, sort out how we'd do integration and hosting, then get someone to impliment it. I just wanted logs that don't let Art and I see IPs and that are more helpful then the mess that the prod log is. (sorry if I sound rude, it's not intentional -- a fancy logging framework would be very nice, just I think it's harder than you think)
Pretty sure miniprofiler has a redis adapter that we could use instead of the file system like we do currently