Skip to content

Commit

Permalink
Enable TCP keepalive on relay and ems connections (#376)
Browse files Browse the repository at this point in the history
  • Loading branch information
ronenh committed May 8, 2024
1 parent b68f4cb commit 4d888c1
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 8 deletions.
18 changes: 14 additions & 4 deletions cmd/topazd/topaz_run.go
Expand Up @@ -4,7 +4,6 @@ import (
"os"

"github.com/aserto-dev/aserto-management/controller"
"github.com/aserto-dev/go-aserto/client"
"github.com/aserto-dev/topaz/pkg/app"
"github.com/aserto-dev/topaz/pkg/app/topaz"
"github.com/aserto-dev/topaz/pkg/cc/config"
Expand Down Expand Up @@ -78,9 +77,20 @@ var cmdRun = &cobra.Command{
return err
}

controllerFactory := controller.NewFactory(topazApp.Logger, topazApp.Configuration.ControllerConfig, client.NewDialOptionsProvider())

runtime, runtimeCleanup, err := topaz.NewRuntimeResolver(topazApp.Context, topazApp.Logger, topazApp.Configuration, controllerFactory, decisionlog, directory)
controllerFactory := controller.NewFactory(
topazApp.Logger,
topazApp.Configuration.ControllerConfig,
app.KeepAliveDialOptionsProvider(),
)

runtime, runtimeCleanup, err := topaz.NewRuntimeResolver(
topazApp.Context,
topazApp.Logger,
topazApp.Configuration,
controllerFactory,
decisionlog,
directory,
)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Expand Up @@ -20,7 +20,7 @@ require (
github.com/aserto-dev/certs v0.0.6
github.com/aserto-dev/clui v0.8.3
github.com/aserto-dev/errors v0.0.7
github.com/aserto-dev/go-aserto v0.31.3
github.com/aserto-dev/go-aserto v0.31.4
github.com/aserto-dev/go-authorizer v0.20.6
github.com/aserto-dev/go-directory v0.31.3
github.com/aserto-dev/go-directory-cli v0.31.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Expand Up @@ -431,8 +431,8 @@ github.com/aserto-dev/clui v0.8.3 h1:foEJuVpMFVP4La3SxUcinxRLOZx/TyS2BRuahbywYFg
github.com/aserto-dev/clui v0.8.3/go.mod h1:KsL/g2x5LAbkEE4ofW/ZoA4FDOIdAyLes/5ullvzUt8=
github.com/aserto-dev/errors v0.0.7 h1:pBn9RhP2iiDl30oAWsf8aLxvt4yCpLKZOCJRIaeRMUs=
github.com/aserto-dev/errors v0.0.7/go.mod h1:wiQ68oKTyAQVAv+SvB5GyuAD6PewalA/D6Fq30gNUbQ=
github.com/aserto-dev/go-aserto v0.31.3 h1:qBoh89FOTC3W2cgw8zVyHpLbJgivrMo7hG5iS4lmEuk=
github.com/aserto-dev/go-aserto v0.31.3/go.mod h1:6mW3wUC62a8TbqYH64lq350MBj+W3WwtlxXNZRybbOY=
github.com/aserto-dev/go-aserto v0.31.4 h1:i4EYTNwyARhEZrN00CU7OnXJCE5xwo6w67ncwJcxmBM=
github.com/aserto-dev/go-aserto v0.31.4/go.mod h1:6mW3wUC62a8TbqYH64lq350MBj+W3WwtlxXNZRybbOY=
github.com/aserto-dev/go-authorizer v0.20.6 h1:fSpnjQwz5k49dl9fBVyzMPbI/dxI/KXCuKpx3ztAv0U=
github.com/aserto-dev/go-authorizer v0.20.6/go.mod h1:UYrV3teiX6KlShTzX7HC8KvAJsRI9QUyxJEWbVFYBFU=
github.com/aserto-dev/go-decision-logs v0.0.4 h1:beu/mhqZ92ovhSIPOv2f4q0Ci7HWNLla/j/x+ZD5eHw=
Expand Down
11 changes: 10 additions & 1 deletion pkg/app/topaz.go
Expand Up @@ -26,6 +26,7 @@ import (
"github.com/rs/zerolog"
"google.golang.org/grpc"
"google.golang.org/grpc/health/grpc_health_v1"
"google.golang.org/grpc/keepalive"

console "github.com/aserto-dev/go-topaz-ui"
builder "github.com/aserto-dev/service-host"
Expand Down Expand Up @@ -264,13 +265,21 @@ func mapToGRPCPorts(api map[string]*builder.API) map[string]services {
return portMap
}

func KeepAliveDialOptionsProvider() client.DialOptionsProvider {
kacp := keepalive.ClientParameters{
Time: 30 * time.Second, // send pings every 30 seconds if there is no activity
Timeout: 5 * time.Second, // wait 5 seconds for ping ack before considering the connection dead
}
return client.NewDialOptionsProvider(grpc.WithKeepaliveParams(kacp))
}

func (e *Topaz) GetDecisionLogger(cfg config.DecisionLogConfig) (decisionlog.DecisionLogger, error) {
var decisionlogger decisionlog.DecisionLogger
var err error

switch cfg.Type {
case "self":
decisionlogger, err = self.New(e.Context, cfg.Config, e.Logger, client.NewDialOptionsProvider())
decisionlogger, err = self.New(e.Context, cfg.Config, e.Logger, KeepAliveDialOptionsProvider())
if err != nil {
return nil, err
}
Expand Down

0 comments on commit 4d888c1

Please sign in to comment.