envoyproxy/envoy

proposal: interval reporting for network access loggers

Open

#10,936 opened on Apr 24, 2020

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/access_loghelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

Network access loggers can be attached to listeners and tcp_proxies. They report once the connection is closed. This is a problem for long-running, stalled, and slow connections, since there is no telemetry until it's over, which complicates debugging of connection handling issues.

This proposal is to add an option, e.g. interval_duration: 10s, to invoke the access loggers log() function repeatedly (and immediately on the connection establishment). This means some data might not be populated in StreamInfo, so the access log needs to distinguish between missing and not-yet-populated states.

The alternative is to push down the functionality into the access log extension itself. For that to be possible:

  1. We would need ability to set up timers from FactoryContext.
  2. The latter point stands: we should be able to distinguish between missing and not yet defined.

Contributor guide