Internally computed columns
While the #36 (closed) describes how a data source would look like, that one expects the information to come from some external source.
However, we may want to compute some more columns on information we already have. This might be choosing the best DNS name based on IP address and previous DNS traffic, choosing the best name overall (either from DNS, from SSL certificate, a Host header, Mac name, or some fallback source like reverse resolving) or grouping connections together under the original request somehow (eg. accesses to CDNs and such being accounted under the request, not as a separate service).
For this, we need an access to already existing data. The proposal is to have a trait:
-
init (mpsc, req_iface)
so the updates can be sent somewhere. We may want to extend the commands to specify not only a key, but actualRc<Headers>
(which can come from below). The req iface is an interface that allows querying the set of current proto flows (much simpler than the actual aggregator frontend query, something like „all proto flows“ or „all proto flows with this IP address“). - update (proto flow) whenever there are some changes to that proto flow (eg. new information is added to it).