Skip to content

Commit e777dbf

Browse files
committed
fix: fix context logic
Signed-off-by: namkyu1999 <[email protected]>
1 parent f6e11c5 commit e777dbf

File tree

5 files changed

+11
-18
lines changed

5 files changed

+11
-18
lines changed

bin/runner.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/litmuschaos/chaos-runner/pkg/utils"
1010
"github.com/litmuschaos/chaos-runner/pkg/utils/analytics"
1111
"github.com/sirupsen/logrus"
12+
"go.opentelemetry.io/otel"
1213
)
1314

1415
func init() {
@@ -34,9 +35,9 @@ func main() {
3435
ctx = telemetry.GetTraceParentContext()
3536

3637
engineDetails := utils.EngineDetails{}
37-
clients := utils.ClientSets{Context: ctx}
38+
clients := utils.ClientSets{}
3839

39-
span := telemetry.StartTracing(clients, "ExecuteChaosRunner")
40+
ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "ExecuteChaosRunner")
4041
defer span.End()
4142

4243
// Getting kubeConfig and Generate ClientSets
@@ -85,7 +86,7 @@ func main() {
8586
continue
8687
}
8788
// derive the envs from the chaos experiment and override their values from chaosengine if any
88-
if err := experiment.SetENV(engineDetails, clients); err != nil {
89+
if err := experiment.SetENV(ctx, engineDetails, clients); err != nil {
8990
log.Errorf("unable to patch ENV, error: %v", err)
9091
experiment.ExperimentSkipped(utils.ExperimentEnvParseErrorReason, engineDetails, clients)
9192
engineDetails.ExperimentSkippedPatchEngine(&experiment, clients)
@@ -111,7 +112,7 @@ func main() {
111112
experiment.ExperimentDependencyCheck(engineDetails, clients)
112113

113114
// Creation of PodTemplateSpec, and Final Job
114-
if err := utils.BuildingAndLaunchJob(&experiment, clients); err != nil {
115+
if err := utils.BuildingAndLaunchJob(ctx, &experiment, clients); err != nil {
115116
log.Errorf("unable to construct chaos experiment job, error: %v", err)
116117
experiment.ExperimentSkipped(utils.ExperimentDependencyCheckReason, engineDetails, clients)
117118
engineDetails.ExperimentSkippedPatchEngine(&experiment, clients)

pkg/telemetry/tracing.go

-8
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,15 @@ import (
66
"os"
77

88
"github.com/litmuschaos/chaos-runner/pkg/log"
9-
"github.com/litmuschaos/chaos-runner/pkg/utils"
109
"go.opentelemetry.io/otel"
1110
"go.opentelemetry.io/otel/propagation"
12-
"go.opentelemetry.io/otel/trace"
1311
)
1412

1513
const (
1614
TracerName = "litmuschaos.io/chaos-runner"
1715
TraceParent = "TRACE_PARENT"
1816
)
1917

20-
func StartTracing(clients utils.ClientSets, spanName string) trace.Span {
21-
ctx, span := otel.Tracer(TracerName).Start(clients.Context, spanName)
22-
clients.Context = ctx
23-
return span
24-
}
25-
2618
func GetTraceParentContext() context.Context {
2719
traceParent := os.Getenv(TraceParent)
2820

pkg/utils/builders.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/litmuschaos/elves/kubernetes/jobspec"
1212
"github.com/litmuschaos/elves/kubernetes/podtemplatespec"
1313
"github.com/pkg/errors"
14+
"go.opentelemetry.io/otel"
1415
batchv1 "k8s.io/api/batch/v1"
1516
corev1 "k8s.io/api/core/v1"
1617
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -113,8 +114,8 @@ func getEnvFromMap(m map[string]corev1.EnvVar) []corev1.EnvVar {
113114
}
114115

115116
// BuildingAndLaunchJob builds Job, and then launch it.
116-
func BuildingAndLaunchJob(experiment *ExperimentDetails, clients ClientSets) error {
117-
span := telemetry.StartTracing(clients, "CreateExperimentJob")
117+
func BuildingAndLaunchJob(ctx context.Context, experiment *ExperimentDetails, clients ClientSets) error {
118+
ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "CreateExperimentJob")
118119
defer span.End()
119120

120121
experiment.VolumeOpts.VolumeOperations(experiment)

pkg/utils/environment.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package utils
22

33
import (
4+
"context"
45
"os"
56
"strconv"
67
"strings"
@@ -33,7 +34,7 @@ func (engineDetails *EngineDetails) SetEngineUID(clients ClientSets) error {
3334
}
3435

3536
// SetENV sets ENV values in experimentDetails struct.
36-
func (expDetails *ExperimentDetails) SetENV(engineDetails EngineDetails, clients ClientSets) error {
37+
func (expDetails *ExperimentDetails) SetENV(ctx context.Context, engineDetails EngineDetails, clients ClientSets) error {
3738

3839
// Setting envs from engine fields other than env
3940
expDetails.setEnv("CHAOSENGINE", engineDetails.Name).
@@ -47,7 +48,7 @@ func (expDetails *ExperimentDetails) SetENV(engineDetails EngineDetails, clients
4748
setEnv("DEFAULT_HEALTH_CHECK", expDetails.DefaultHealthCheck).
4849
setEnv("CHAOS_SERVICE_ACCOUNT", expDetails.SvcAccount).
4950
setEnv("OTEL_EXPORTER_OTLP_ENDPOINT", os.Getenv(telemetry.OTELExporterOTLPEndpoint)).
50-
setEnv("TRACE_PARENT", telemetry.GetMarshalledSpanFromContext(clients.Context))
51+
setEnv("TRACE_PARENT", telemetry.GetMarshalledSpanFromContext(ctx))
5152

5253
// Get the Default ENV's from ChaosExperiment
5354
log.Info("Getting the ENV Variables")

pkg/utils/types.go

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package utils
22

33
import (
4-
"context"
54
"flag"
65

76
"github.com/litmuschaos/chaos-operator/api/litmuschaos/v1alpha1"
@@ -78,7 +77,6 @@ type VolumeOpts struct {
7877
type ClientSets struct {
7978
KubeClient kubernetes.Interface
8079
LitmusClient clientV1alpha1.Interface
81-
Context context.Context
8280
}
8381

8482
// EventAttributes is for collecting all the events-related details

0 commit comments

Comments
 (0)