Varnish by default logs to a ring-buffer instead of a textfile. It's possible to have a daemon read from there and output to a file or stdout in ncsa-format. So currently you could use "varnishncsa" and pipe that into goaccess. But maybe we could add the possiblity to read from varnish directly? This way we could maybe add some varnish-specific fields to filter/search by, like filtering requests if that came in from the client or went out to the backend-servers (fetching data), filtering on what backend-servers received the request, filtering if requests were able to be served from the cache or not, ...
That's all something that you could have varnishncsa filter out beforehand and then pipe only the filtered output to goaccess. There is also another varnish-tool that outputs live requests from the ring-buffer as multiline-output. So we could even avoid parsing data from the ring-buffer (binary) ourselves but just call "varnishlog" under the hood, then parse the multiline-output coming from there into our fields. But it would be great to have certain fields (like mentioned above) available in the tui and maybe even filter on certain things without needing to live goaccess.
For filtering live-logs we could also pass down some of our filters to varnishlog as arguments so we get less output which needs to be processed. But if you want to interactively add/change/remove filters that would effectively mean restarting the process (starting with empty logs again). In my use-case of analysing mainly live logs interactively that would be okay - though some people might want to decide if that's a filter they want to pass down to varnishlog (and have goaccess parse only partial log-data) or filter in goaccess live.
Varnish by default logs to a ring-buffer instead of a textfile. It's possible to have a daemon read from there and output to a file or stdout in ncsa-format. So currently you could use "varnishncsa" and pipe that into goaccess. But maybe we could add the possiblity to read from varnish directly? This way we could maybe add some varnish-specific fields to filter/search by, like filtering requests if that came in from the client or went out to the backend-servers (fetching data), filtering on what backend-servers received the request, filtering if requests were able to be served from the cache or not, ...
That's all something that you could have varnishncsa filter out beforehand and then pipe only the filtered output to goaccess. There is also another varnish-tool that outputs live requests from the ring-buffer as multiline-output. So we could even avoid parsing data from the ring-buffer (binary) ourselves but just call "varnishlog" under the hood, then parse the multiline-output coming from there into our fields. But it would be great to have certain fields (like mentioned above) available in the tui and maybe even filter on certain things without needing to live goaccess.
For filtering live-logs we could also pass down some of our filters to varnishlog as arguments so we get less output which needs to be processed. But if you want to interactively add/change/remove filters that would effectively mean restarting the process (starting with empty logs again). In my use-case of analysing mainly live logs interactively that would be okay - though some people might want to decide if that's a filter they want to pass down to varnishlog (and have goaccess parse only partial log-data) or filter in goaccess live.