From a12c6617739e783d2885a8666dae82e6c144948c Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Tue, 24 Jan 2017 16:15:11 +0100 Subject: [PATCH] pkg/util: move trace.go to k8s.io/apiserver/pkg/util/trace --- .../replication/replication_controller.go | 4 ++-- .../endpoints/handlers/rest.go | 18 +++++++++--------- pkg/storage/cacher.go | 12 ++++++------ pkg/storage/etcd/etcd_helper.go | 18 +++++++++--------- pkg/storage/etcd3/store.go | 12 ++++++------ pkg/storage/watch_cache.go | 8 ++++---- plugin/pkg/scheduler/generic_scheduler.go | 4 ++-- .../k8s.io/apiserver/pkg/util/trace}/trace.go | 4 ++-- 8 files changed, 40 insertions(+), 40 deletions(-) rename {pkg/util => staging/src/k8s.io/apiserver/pkg/util/trace}/trace.go (97%) diff --git a/pkg/controller/replication/replication_controller.go b/pkg/controller/replication/replication_controller.go index a83180e9a38..7c3e474a893 100644 --- a/pkg/controller/replication/replication_controller.go +++ b/pkg/controller/replication/replication_controller.go @@ -32,6 +32,7 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" + utiltrace "k8s.io/apiserver/pkg/util/trace" "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" @@ -40,7 +41,6 @@ import ( "k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/informers" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/metrics" "k8s.io/kubernetes/pkg/util/workqueue" ) @@ -596,7 +596,7 @@ func (rm *ReplicationManager) manageReplicas(filteredPods []*v1.Pod, rc *v1.Repl // it did not expect to see any more of its pods created or deleted. This function is not meant to be invoked // concurrently with the same key. func (rm *ReplicationManager) syncReplicationController(key string) error { - trace := util.NewTrace("syncReplicationController: " + key) + trace := utiltrace.New("syncReplicationController: " + key) defer trace.LogIfLong(250 * time.Millisecond) startTime := time.Now() diff --git a/pkg/genericapiserver/endpoints/handlers/rest.go b/pkg/genericapiserver/endpoints/handlers/rest.go index 1dd89983266..b936d8b77a4 100644 --- a/pkg/genericapiserver/endpoints/handlers/rest.go +++ b/pkg/genericapiserver/endpoints/handlers/rest.go @@ -27,6 +27,9 @@ import ( "strings" "time" + "github.com/emicklei/go-restful" + "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" @@ -40,12 +43,9 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" + utiltrace "k8s.io/apiserver/pkg/util/trace" "k8s.io/kubernetes/pkg/genericapiserver/endpoints/handlers/responsewriters" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest" - "k8s.io/kubernetes/pkg/util" - - "github.com/emicklei/go-restful" - "github.com/golang/glog" ) // ContextFunc returns a Context given a request - a context must be returned @@ -133,7 +133,7 @@ func GetResource(r rest.Getter, e rest.Exporter, scope RequestScope) restful.Rou return getResourceHandler(scope, func(ctx request.Context, name string, req *restful.Request) (runtime.Object, error) { // For performance tracking purposes. - trace := util.NewTrace("Get " + req.Request.URL.Path) + trace := utiltrace.New("Get " + req.Request.URL.Path) defer trace.LogIfLong(500 * time.Millisecond) // check for export @@ -245,7 +245,7 @@ func (r *responder) Error(err error) { func ListResource(r rest.Lister, rw rest.Watcher, scope RequestScope, forceWatch bool, minRequestTimeout time.Duration) restful.RouteFunction { return func(req *restful.Request, res *restful.Response) { // For performance tracking purposes. - trace := util.NewTrace("List " + req.Request.URL.Path) + trace := utiltrace.New("List " + req.Request.URL.Path) w := res.ResponseWriter @@ -352,7 +352,7 @@ func ListResource(r rest.Lister, rw rest.Watcher, scope RequestScope, forceWatch func createHandler(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface, includeName bool) restful.RouteFunction { return func(req *restful.Request, res *restful.Response) { // For performance tracking purposes. - trace := util.NewTrace("Create " + req.Request.URL.Path) + trace := utiltrace.New("Create " + req.Request.URL.Path) defer trace.LogIfLong(500 * time.Millisecond) w := res.ResponseWriter @@ -707,7 +707,7 @@ func patchResource( func UpdateResource(r rest.Updater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) restful.RouteFunction { return func(req *restful.Request, res *restful.Response) { // For performance tracking purposes. - trace := util.NewTrace("Update " + req.Request.URL.Path) + trace := utiltrace.New("Update " + req.Request.URL.Path) defer trace.LogIfLong(500 * time.Millisecond) w := res.ResponseWriter @@ -794,7 +794,7 @@ func UpdateResource(r rest.Updater, scope RequestScope, typer runtime.ObjectType func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope RequestScope, admit admission.Interface) restful.RouteFunction { return func(req *restful.Request, res *restful.Response) { // For performance tracking purposes. - trace := util.NewTrace("Delete " + req.Request.URL.Path) + trace := utiltrace.New("Delete " + req.Request.URL.Path) defer trace.LogIfLong(500 * time.Millisecond) w := res.ResponseWriter diff --git a/pkg/storage/cacher.go b/pkg/storage/cacher.go index e031073aa53..fffac82a8b0 100644 --- a/pkg/storage/cacher.go +++ b/pkg/storage/cacher.go @@ -24,6 +24,9 @@ import ( "sync" "time" + "github.com/golang/glog" + "golang.org/x/net/context" + "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -34,11 +37,8 @@ import ( utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" + utiltrace "k8s.io/apiserver/pkg/util/trace" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/util" - - "github.com/golang/glog" - "golang.org/x/net/context" ) // CacherConfig contains the configuration for a given Cache. @@ -413,7 +413,7 @@ func (c *Cacher) GetToList(ctx context.Context, key string, resourceVersion stri return err } - trace := util.NewTrace(fmt.Sprintf("cacher %v: List", c.objectType.String())) + trace := utiltrace.New(fmt.Sprintf("cacher %v: List", c.objectType.String())) defer trace.LogIfLong(500 * time.Millisecond) c.ready.wait() @@ -469,7 +469,7 @@ func (c *Cacher) List(ctx context.Context, key string, resourceVersion string, p return err } - trace := util.NewTrace(fmt.Sprintf("cacher %v: List", c.objectType.String())) + trace := utiltrace.New(fmt.Sprintf("cacher %v: List", c.objectType.String())) defer trace.LogIfLong(500 * time.Millisecond) c.ready.wait() diff --git a/pkg/storage/etcd/etcd_helper.go b/pkg/storage/etcd/etcd_helper.go index f92f6ac143a..2790480a1ac 100644 --- a/pkg/storage/etcd/etcd_helper.go +++ b/pkg/storage/etcd/etcd_helper.go @@ -23,6 +23,10 @@ import ( "reflect" "time" + etcd "github.com/coreos/etcd/client" + "github.com/golang/glog" + "golang.org/x/net/context" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion" @@ -30,14 +34,10 @@ import ( "k8s.io/apimachinery/pkg/watch" "k8s.io/apiserver/pkg/storage/etcd/metrics" utilcache "k8s.io/apiserver/pkg/util/cache" + utiltrace "k8s.io/apiserver/pkg/util/trace" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/storage" etcdutil "k8s.io/kubernetes/pkg/storage/etcd/util" - "k8s.io/kubernetes/pkg/util" - - etcd "github.com/coreos/etcd/client" - "github.com/golang/glog" - "golang.org/x/net/context" ) // Creates a new storage interface from the client @@ -92,7 +92,7 @@ func (h *etcdHelper) Versioner() storage.Versioner { // Implements storage.Interface. func (h *etcdHelper) Create(ctx context.Context, key string, obj, out runtime.Object, ttl uint64) error { - trace := util.NewTrace("etcdHelper::Create " + getTypeName(obj)) + trace := utiltrace.New("etcdHelper::Create " + getTypeName(obj)) defer trace.LogIfLong(250 * time.Millisecond) if ctx == nil { glog.Errorf("Context is nil") @@ -301,7 +301,7 @@ func (h *etcdHelper) GetToList(ctx context.Context, key string, resourceVersion if ctx == nil { glog.Errorf("Context is nil") } - trace := util.NewTrace("GetToList " + getTypeName(listObj)) + trace := utiltrace.New("GetToList " + getTypeName(listObj)) listPtr, err := meta.GetItemsPtr(listObj) if err != nil { return err @@ -338,7 +338,7 @@ func (h *etcdHelper) GetToList(ctx context.Context, key string, resourceVersion // decodeNodeList walks the tree of each node in the list and decodes into the specified object func (h *etcdHelper) decodeNodeList(nodes []*etcd.Node, filter storage.FilterFunc, slicePtr interface{}) error { - trace := util.NewTrace("decodeNodeList " + getTypeName(slicePtr)) + trace := utiltrace.New("decodeNodeList " + getTypeName(slicePtr)) defer trace.LogIfLong(400 * time.Millisecond) v, err := conversion.EnforcePtr(slicePtr) if err != nil || v.Kind() != reflect.Slice { @@ -383,7 +383,7 @@ func (h *etcdHelper) List(ctx context.Context, key string, resourceVersion strin if ctx == nil { glog.Errorf("Context is nil") } - trace := util.NewTrace("List " + getTypeName(listObj)) + trace := utiltrace.New("List " + getTypeName(listObj)) defer trace.LogIfLong(400 * time.Millisecond) listPtr, err := meta.GetItemsPtr(listObj) if err != nil { diff --git a/pkg/storage/etcd3/store.go b/pkg/storage/etcd3/store.go index bcecfbfc384..2ecfd6c9016 100644 --- a/pkg/storage/etcd3/store.go +++ b/pkg/storage/etcd3/store.go @@ -25,18 +25,18 @@ import ( "strings" "time" + "github.com/coreos/etcd/clientv3" + "github.com/golang/glog" + "golang.org/x/net/context" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" + utiltrace "k8s.io/apiserver/pkg/util/trace" "k8s.io/kubernetes/pkg/storage" "k8s.io/kubernetes/pkg/storage/etcd" - "k8s.io/kubernetes/pkg/util" - - "github.com/coreos/etcd/clientv3" - "github.com/golang/glog" - "golang.org/x/net/context" ) type store struct { @@ -216,7 +216,7 @@ func (s *store) conditionalDelete(ctx context.Context, key string, out runtime.O func (s *store) GuaranteedUpdate( ctx context.Context, key string, out runtime.Object, ignoreNotFound bool, precondtions *storage.Preconditions, tryUpdate storage.UpdateFunc, suggestion ...runtime.Object) error { - trace := util.NewTrace(fmt.Sprintf("GuaranteedUpdate etcd3: %s", reflect.TypeOf(out).String())) + trace := utiltrace.New(fmt.Sprintf("GuaranteedUpdate etcd3: %s", reflect.TypeOf(out).String())) defer trace.LogIfLong(500 * time.Millisecond) v, err := conversion.EnforcePtr(out) diff --git a/pkg/storage/watch_cache.go b/pkg/storage/watch_cache.go index 81367a474a3..b2d8f4a828b 100644 --- a/pkg/storage/watch_cache.go +++ b/pkg/storage/watch_cache.go @@ -29,9 +29,9 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" + utiltrace "k8s.io/apiserver/pkg/util/trace" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/clock" - "k8s.io/kubernetes/pkg/util" ) const ( @@ -281,7 +281,7 @@ func (w *watchCache) List() []interface{} { // waitUntilFreshAndBlock waits until cache is at least as fresh as given . // NOTE: This function acquired lock and doesn't release it. // You HAVE TO explicitly call w.RUnlock() after this function. -func (w *watchCache) waitUntilFreshAndBlock(resourceVersion uint64, trace *util.Trace) error { +func (w *watchCache) waitUntilFreshAndBlock(resourceVersion uint64, trace *utiltrace.Trace) error { startTime := w.clock.Now() go func() { // Wake us up when the time limit has expired. The docs @@ -313,7 +313,7 @@ func (w *watchCache) waitUntilFreshAndBlock(resourceVersion uint64, trace *util. } // WaitUntilFreshAndList returns list of pointers to objects. -func (w *watchCache) WaitUntilFreshAndList(resourceVersion uint64, trace *util.Trace) ([]interface{}, uint64, error) { +func (w *watchCache) WaitUntilFreshAndList(resourceVersion uint64, trace *utiltrace.Trace) ([]interface{}, uint64, error) { err := w.waitUntilFreshAndBlock(resourceVersion, trace) defer w.RUnlock() if err != nil { @@ -323,7 +323,7 @@ func (w *watchCache) WaitUntilFreshAndList(resourceVersion uint64, trace *util.T } // WaitUntilFreshAndGet returns a pointers to object. -func (w *watchCache) WaitUntilFreshAndGet(resourceVersion uint64, key string, trace *util.Trace) (interface{}, bool, uint64, error) { +func (w *watchCache) WaitUntilFreshAndGet(resourceVersion uint64, key string, trace *utiltrace.Trace) (interface{}, bool, uint64, error) { err := w.waitUntilFreshAndBlock(resourceVersion, trace) defer w.RUnlock() if err != nil { diff --git a/plugin/pkg/scheduler/generic_scheduler.go b/plugin/pkg/scheduler/generic_scheduler.go index f46aa5cc02b..6d8ab4058ab 100644 --- a/plugin/pkg/scheduler/generic_scheduler.go +++ b/plugin/pkg/scheduler/generic_scheduler.go @@ -26,8 +26,8 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/errors" + utiltrace "k8s.io/apiserver/pkg/util/trace" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/workqueue" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" @@ -87,7 +87,7 @@ type genericScheduler struct { // If it succeeds, it will return the name of the node. // If it fails, it will return a Fiterror error with reasons. func (g *genericScheduler) Schedule(pod *v1.Pod, nodeLister algorithm.NodeLister) (string, error) { - trace := util.NewTrace(fmt.Sprintf("Scheduling %s/%s", pod.Namespace, pod.Name)) + trace := utiltrace.New(fmt.Sprintf("Scheduling %s/%s", pod.Namespace, pod.Name)) defer trace.LogIfLong(100 * time.Millisecond) nodes, err := nodeLister.List() diff --git a/pkg/util/trace.go b/staging/src/k8s.io/apiserver/pkg/util/trace/trace.go similarity index 97% rename from pkg/util/trace.go rename to staging/src/k8s.io/apiserver/pkg/util/trace/trace.go index fe93db8df6f..b228aa1bff9 100644 --- a/pkg/util/trace.go +++ b/staging/src/k8s.io/apiserver/pkg/util/trace/trace.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package util +package trace import ( "bytes" @@ -35,7 +35,7 @@ type Trace struct { steps []traceStep } -func NewTrace(name string) *Trace { +func New(name string) *Trace { return &Trace{name, time.Now(), nil} }