envoyproxy/xds-relay

Configure grpc keepalive settings

Open

#72 opened on Apr 27, 2020

 (0 comments) (0 reactions) (1 assignee)Go (29 forks)auto 404
good first issue

Repository metrics

Stars
 (135 stars)
PR merge metrics
 (PR metrics pending)

Description

xds-relay should configure server keepalive settings. It will help the grpc server handle stale streams and connections from sidecars. https://godoc.org/google.golang.org/grpc/keepalive#ServerParameters

type ServerParameters struct {
    // MaxConnectionIdle is a duration for the amount of time after which an
    // idle connection would be closed by sending a GoAway. Idleness duration is
    // defined since the most recent time the number of outstanding RPCs became
    // zero or the connection establishment.
    MaxConnectionIdle time.Duration // The current default value is infinity.
    // MaxConnectionAge is a duration for the maximum amount of time a
    // connection may exist before it will be closed by sending a GoAway. A
    // random jitter of +/-10% will be added to MaxConnectionAge to spread out
    // connection storms.
    MaxConnectionAge time.Duration // The current default value is infinity.
    // MaxConnectionAgeGrace is an additive period after MaxConnectionAge after
    // which the connection will be forcibly closed.
    MaxConnectionAgeGrace time.Duration // The current default value is infinity.
    // After a duration of this time if the server doesn't see any activity it
    // pings the client to see if the transport is still alive.
    // If set below 1s, a minimum value of 1s will be used instead.
    Time time.Duration // The current default value is 2 hours.
    // After having pinged for keepalive check, the server waits for a duration
    // of Timeout and if no activity is seen even after that the connection is
    // closed.
    Timeout time.Duration // The current default value is 20 seconds.
} 

MaxConnectionIdle : should be a few hours MaxConnectionAge : default infinity works well MaxConnectionAgeGrace: few minutes Time: 2minutes Timeout: default 20s works well

Contributor guide