Skip to content

Commit

Permalink
Merge pull request #5 from lightstep/fluh
Browse files Browse the repository at this point in the history
Always flush before shutdown, get providers consistently
  • Loading branch information
jaronoff97 authored Jul 12, 2023
2 parents eb587e7 + 714c301 commit 93c463e
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 11 deletions.
8 changes: 4 additions & 4 deletions cmd/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ var (
otel.PodWatcher{},
kubernetes.StartPortForward{Port: 4317, LabelSelector: steps.LabelSelector},
metrics.NewCreateCounter("localhost:4317", true),
metrics.ShutdownMeter{},
metrics.NewShutdownMeter("localhost:4317", true),
traces.NewStartTrace("localhost:4317", true),
traces.ShutdownTracer{},
traces.NewShutdownTracer("localhost:4317", true),
kubernetes.FinishPortForward{Port: 4317, LabelSelector: steps.LabelSelector},
kubernetes.StartPortForward{Port: 8888, LabelSelector: steps.LabelSelector},
otel.QueryCollector{},
Expand Down Expand Up @@ -113,9 +113,9 @@ var (
otel.PodWatcher{},
kubernetes.StartPortForward{Port: 4317, LabelSelector: steps.LabelSelector},
metrics.NewCreateCounter("localhost:4317", true),
metrics.ShutdownMeter{},
metrics.NewShutdownMeter("localhost:4317", true),
traces.NewStartTrace("localhost:4317", true),
traces.ShutdownTracer{},
traces.NewShutdownTracer("localhost:4317", true),
kubernetes.FinishPortForward{Port: 4317, LabelSelector: steps.LabelSelector},
kubernetes.StartPortForward{Port: 8888, LabelSelector: steps.LabelSelector},
otel.QueryCollector{},
Expand Down
6 changes: 4 additions & 2 deletions pkg/steps/dependencies/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ processors:
batch:

exporters:
logging:
verbosity: normal
otlp:
endpoint: ${DESTINATION}
headers:
Expand All @@ -18,11 +20,11 @@ service:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
exporters: [otlp, logging]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
exporters: [otlp, logging]
logs:
receivers: [otlp]
processors: [batch]
Expand Down
20 changes: 18 additions & 2 deletions pkg/steps/metrics/shutdownmeter.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,14 @@ import (
"github.com/lightstep/collector-cluster-check/pkg/steps/dependencies"
)

type ShutdownMeter struct{}
type ShutdownMeter struct {
endpoint string
insecure bool
}

func NewShutdownMeter(endpoint string, insecure bool) *ShutdownMeter {
return &ShutdownMeter{endpoint: endpoint, insecure: insecure}
}

var _ steps.Step = ShutdownMeter{}

Expand All @@ -21,7 +28,13 @@ func (c ShutdownMeter) Description() string {
}

func (c ShutdownMeter) Run(ctx context.Context, deps *steps.Deps) steps.Results {
err := deps.MeterProvider.Shutdown(ctx)
err := deps.MeterProvider.ForceFlush(ctx)
if err != nil && strings.Contains(err.Error(), "DeadlineExceeded") {
return steps.NewResults(c, steps.NewFailureResultWithHelp(err, "A connection couldn't be established, check firewall rules"))
} else if err != nil {
return steps.NewResults(c, steps.NewFailureResultWithHelp(err, "This could mean an incorrect access token was used"))
}
err = deps.MeterProvider.Shutdown(ctx)
if err != nil && strings.Contains(err.Error(), "DeadlineExceeded") {
return steps.NewResults(c, steps.NewFailureResultWithHelp(err, "A connection couldn't be established, check firewall rules"))
} else if err != nil {
Expand All @@ -31,5 +44,8 @@ func (c ShutdownMeter) Run(ctx context.Context, deps *steps.Deps) steps.Results
}

func (c ShutdownMeter) Dependencies(config *steps.Config) []steps.Dependency {
if len(c.endpoint) > 0 {
return []steps.Dependency{dependencies.NewCreateMeterProvider(c.endpoint, c.insecure, config.Http, config.Token)}
}
return []steps.Dependency{dependencies.CreateMeterProviderFromConfig(config)}
}
20 changes: 18 additions & 2 deletions pkg/steps/traces/shutdowntracer.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,14 @@ import (
"github.com/lightstep/collector-cluster-check/pkg/steps/dependencies"
)

type ShutdownTracer struct{}
type ShutdownTracer struct {
endpoint string
insecure bool
}

func NewShutdownTracer(endpoint string, insecure bool) *ShutdownTracer {
return &ShutdownTracer{endpoint: endpoint, insecure: insecure}
}

var _ steps.Step = ShutdownTracer{}

Expand All @@ -21,7 +28,13 @@ func (c ShutdownTracer) Description() string {
}

func (c ShutdownTracer) Run(ctx context.Context, deps *steps.Deps) steps.Results {
err := deps.TracerProvider.Shutdown(ctx)
err := deps.TracerProvider.ForceFlush(ctx)
if err != nil && strings.Contains(err.Error(), "DeadlineExceeded") {
return steps.NewResults(c, steps.NewFailureResultWithHelp(err, "A connection couldn't be established, check firewall rules"))
} else if err != nil {
return steps.NewResults(c, steps.NewFailureResultWithHelp(err, "This could mean an incorrect access token was used"))
}
err = deps.TracerProvider.Shutdown(ctx)
if err != nil && strings.Contains(err.Error(), "DeadlineExceeded") {
return steps.NewResults(c, steps.NewFailureResultWithHelp(err, "A connection couldn't be established, check firewall rules"))
} else if err != nil {
Expand All @@ -31,5 +44,8 @@ func (c ShutdownTracer) Run(ctx context.Context, deps *steps.Deps) steps.Results
}

func (c ShutdownTracer) Dependencies(config *steps.Config) []steps.Dependency {
if len(c.endpoint) > 0 {
return []steps.Dependency{dependencies.NewCreateTraceProvider(c.endpoint, c.insecure, config.Http, config.Token)}
}
return []steps.Dependency{dependencies.CreateTracerProviderFromConfig(config)}
}
2 changes: 1 addition & 1 deletion pkg/steps/traces/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func (c StartTrace) Description() string {

func (c StartTrace) Run(ctx context.Context, deps *steps.Deps) steps.Results {
_, span := deps.TracerProvider.Tracer(instrumentation).Start(ctx, operationName)
defer span.End()
span.End()
return steps.NewResults(c, steps.NewSuccessfulResult("started and ended trace"))
}

Expand Down

0 comments on commit 93c463e

Please sign in to comment.