pomerium/pkg
Joe Kralicky 927f24e1ff
Envoy resource monitoring & overload manager configuration (#5106)
* Initial envoy cgroup resource monitor implementation

* Add cgroupv1 support; add metrics instrumentation

* Slight refactor for more efficient memory limit detection

Instead of reading memory.max/limit_in_bytes on every tick, we
read it once, then again only when it is modified.

To support this change, logic for computing the saturation was moved out
of the cgroup driver and into the resource monitor, and the driver
interface now has separate methods for reading memory usage and limit.

* Code cleanup/lint fixes

* Add platform build tags

* Add unit tests

* Fix lint issues

* Add runtime flag to allow disabling resource monitor

* Clamp saturation values to the range [0.0, 1.0]

* Switch to x/sys/unix; handle inotify IN_IGNORED events
2024-05-28 16:57:09 -04:00
..
cmd/pomerium core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
contextutil core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
counter metrics: add linear probabilistic counter (#4776) 2023-12-04 08:51:41 -05:00
cryptutil core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
derivecert cryptutil: generate certificates from deriveca (#3992) 2023-02-23 08:38:56 -07:00
encoding/base58 core/ci: update linting (#4844) 2023-12-14 09:07:54 -08:00
envoy Envoy resource monitoring & overload manager configuration (#5106) 2024-05-28 16:57:09 -04:00
fanout core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
grpc core/identity: dynamic authenticator registration (#5105) 2024-05-07 16:45:39 -06:00
grpcutil core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
health health-checks: zero route availability improvements (#5111) 2024-05-17 16:47:27 -04:00
hpke config: no longer stub out HPKE public key fetch (#4853) 2023-12-12 09:57:58 -08:00
httputil core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
identity core/identity: dynamic authenticator registration (#5105) 2024-05-07 16:45:39 -06:00
logutil protoutil: add NewAny method for deterministic serialization (#2462) 2021-08-09 17:51:57 -06:00
metrics Envoy resource monitoring & overload manager configuration (#5106) 2024-05-28 16:57:09 -04:00
netutil add metrics aggregation (#3452) 2022-06-30 10:52:45 -04:00
policy core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
protoutil core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
slices integration: check for profile cookies (#4847) 2023-12-12 10:07:13 -08:00
storage core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
telemetry/requestid core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
webauthnutil core/lint: upgrade golangci-lint, replace interface{} with any (#5099) 2024-05-02 14:33:52 -06:00
zero health-checks: add route reachability (#5093) 2024-05-02 13:31:48 -04:00