From 0f9df22616f9d96ab80f2096c861ad1123203f07 Mon Sep 17 00:00:00 2001 From: wojtekt Date: Tue, 19 Jun 2018 14:31:29 +0200 Subject: [PATCH] Log long operations on iptables --- pkg/util/iptables/BUILD | 1 + pkg/util/iptables/iptables.go | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/pkg/util/iptables/BUILD b/pkg/util/iptables/BUILD index d803ccb390b..698034508cc 100644 --- a/pkg/util/iptables/BUILD +++ b/pkg/util/iptables/BUILD @@ -55,6 +55,7 @@ go_library( "//vendor/github.com/godbus/dbus:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/trace:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", ] + select({ "@io_bazel_rules_go//go/platform:linux": [ diff --git a/pkg/util/iptables/iptables.go b/pkg/util/iptables/iptables.go index 2b932adab3d..469f0acf257 100644 --- a/pkg/util/iptables/iptables.go +++ b/pkg/util/iptables/iptables.go @@ -28,6 +28,7 @@ import ( godbus "github.com/godbus/dbus" "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/sets" + utiltrace "k8s.io/apiserver/pkg/util/trace" utildbus "k8s.io/kubernetes/pkg/util/dbus" utilversion "k8s.io/kubernetes/pkg/util/version" utilexec "k8s.io/utils/exec" @@ -317,6 +318,9 @@ func (runner *runner) SaveInto(table Table, buffer *bytes.Buffer) error { runner.mu.Lock() defer runner.mu.Unlock() + trace := utiltrace.New("iptables save") + defer trace.LogIfLong(2 * time.Second) + // run and return iptablesSaveCmd := iptablesSaveCommand(runner.protocol) args := []string{"-t", string(table)} @@ -355,6 +359,9 @@ func (runner *runner) restoreInternal(args []string, data []byte, flush FlushFla runner.mu.Lock() defer runner.mu.Unlock() + trace := utiltrace.New("iptables restore") + defer trace.LogIfLong(2 * time.Second) + if !flush { args = append(args, "--noflush") } @@ -370,6 +377,7 @@ func (runner *runner) restoreInternal(args []string, data []byte, flush FlushFla if err != nil { return err } + trace.Step("Locks grabbed") defer func(locker iptablesLocker) { if err := locker.Close(); err != nil { glog.Errorf("Failed to close iptables locks: %v", err)