Skip to content

Instantly share code, notes, and snippets.

@cirocosta
Created June 1, 2019 15:28
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save cirocosta/7e53cde47405f422ef66c8c2ff563630 to your computer and use it in GitHub Desktop.
diff --git a/gardener/gardener.go b/gardener/gardener.go
index fee431f..cb4077f 100644
--- a/gardener/gardener.go
+++ b/gardener/gardener.go
@@ -1,9 +1,11 @@
package gardener
import (
+ "context"
"errors"
"fmt"
"io"
+ "runtime/trace"
"time"
"github.com/cloudfoundry/dropsonde/metrics"
@@ -165,6 +167,9 @@ type Gardener struct {
// Create creates a container by combining the results of networker.Network,
// volumizer.Create and containzer.Create.
func (g *Gardener) Create(containerSpec garden.ContainerSpec) (ctr garden.Container, err error) {
+ ctx, task := trace.NewTask(context.TODO(), "Create")
+ defer task.End()
+
if containerSpec.Handle == "" {
containerSpec.Handle = g.UidGenerator.Generate()
}
@@ -214,11 +219,18 @@ func (g *Gardener) Create(containerSpec garden.ContainerSpec) (ctr garden.Contai
}
}()
- if err := g.Volumizer.GC(log.Session(VolumizerSession)); err != nil {
- log.Error("graph-cleanup-failed", err)
- }
+ var (
+ runtimeSpec specs.Spec
+ )
+
+ trace.WithRegion(ctx, "volumizer-create", func() {
+ gcErr := g.Volumizer.GC(log.Session(VolumizerSession))
+ if gcErr != nil {
+ log.Error("graph-cleanup-failed", gcErr)
+ }
- runtimeSpec, err := g.Volumizer.Create(log, containerSpec)
+ runtimeSpec, err = g.Volumizer.Create(log, containerSpec)
+ })
if err != nil {
return nil, err
}
@@ -232,7 +244,11 @@ func (g *Gardener) Create(containerSpec garden.ContainerSpec) (ctr garden.Contai
Limits: containerSpec.Limits,
BaseConfig: runtimeSpec,
}
- if err := g.Containerizer.Create(log, desiredSpec); err != nil {
+
+ trace.WithRegion(ctx, "containerizer-create", func() {
+ err = g.Containerizer.Create(log, desiredSpec)
+ })
+ if err != nil {
return nil, err
}
@@ -247,7 +263,10 @@ func (g *Gardener) Create(containerSpec garden.ContainerSpec) (ctr garden.Contai
return nil, err
}
- if err = g.Networker.Network(log, containerSpec, actualSpec.Pid); err != nil {
+ trace.WithRegion(ctx, "networker-create", func() {
+ err = g.Networker.Network(log, containerSpec, actualSpec.Pid)
+ })
+ if err != nil {
return nil, err
}
@cirocosta
Copy link
Author

cirocosta commented Jun 1, 2019

Screen Shot 2019-06-01 at 10 13 15 AM


Screen Shot 2019-06-01 at 10 15 09 AM


Screen Shot 2019-06-01 at 10 15 26 AM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment