We can't log every single HTTP request or else we will quickly flood the log with
getInstanceView requests, which could happen up to 30 times per second. Instead, we should design a system as follows:
- Instead of logging every request, we should store an in-memory structure of the requests, probably by connection.
- We log the initial connection; thereafter, we store the activity on that connection on an in-memory structure.
- On a certain frequency, perhaps after a certain amount of inactivity in the connection, we log the connection activity (either to the log or maybe an Aeon table).
- We should compress the activity as much as possible. For example, if a connection has 100 consecutive calls to
getInstanceView, we should try to collapse that into a single line.