Skip to content

Commit 1414368

Browse files
committed
feat: add tracing codes to chaslib
Signed-off-by: namkyu1999 <[email protected]>
1 parent 9035b4d commit 1414368

File tree

46 files changed

+270
-70
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+270
-70
lines changed

chaoslib/litmus/aws-ssm-chaos/lib/ssm/aws-ssm-chaos-by-id.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ import (
1010
"github.com/litmuschaos/litmus-go/chaoslib/litmus/aws-ssm-chaos/lib"
1111
experimentTypes "github.com/litmuschaos/litmus-go/pkg/aws-ssm/aws-ssm-chaos/types"
1212
"github.com/litmuschaos/litmus-go/pkg/cerrors"
13-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
13+
"github.com/litmuschaos/litmus-go/pkg/clients"
1414
"github.com/litmuschaos/litmus-go/pkg/cloud/aws/ssm"
1515
"github.com/litmuschaos/litmus-go/pkg/log"
16+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1617
"github.com/litmuschaos/litmus-go/pkg/types"
1718
"github.com/litmuschaos/litmus-go/pkg/utils/common"
1819
"github.com/palantir/stacktrace"
@@ -25,6 +26,8 @@ var (
2526

2627
// PrepareAWSSSMChaosByID contains the prepration and injection steps for the experiment
2728
func PrepareAWSSSMChaosByID(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
29+
span := telemetry.StartTracing(clients, "InjectAWSSSMChaosByIDChaos")
30+
defer span.End()
2831

2932
// inject channel is used to transmit signal notifications.
3033
inject = make(chan os.Signal, 1)

chaoslib/litmus/aws-ssm-chaos/lib/ssm/aws-ssm-chaos-by-tag.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,19 @@ import (
1010
"github.com/litmuschaos/litmus-go/chaoslib/litmus/aws-ssm-chaos/lib"
1111
experimentTypes "github.com/litmuschaos/litmus-go/pkg/aws-ssm/aws-ssm-chaos/types"
1212
"github.com/litmuschaos/litmus-go/pkg/cerrors"
13-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
13+
"github.com/litmuschaos/litmus-go/pkg/clients"
1414
"github.com/litmuschaos/litmus-go/pkg/cloud/aws/ssm"
1515
"github.com/litmuschaos/litmus-go/pkg/log"
16+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1617
"github.com/litmuschaos/litmus-go/pkg/types"
1718
"github.com/litmuschaos/litmus-go/pkg/utils/common"
1819
"github.com/palantir/stacktrace"
1920
)
2021

2122
// PrepareAWSSSMChaosByTag contains the prepration and injection steps for the experiment
2223
func PrepareAWSSSMChaosByTag(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
24+
span := telemetry.StartTracing(clients, "InjectAWSSSMChaosByTagChaos")
25+
defer span.End()
2326

2427
// inject channel is used to transmit signal notifications.
2528
inject = make(chan os.Signal, 1)

chaoslib/litmus/azure-disk-loss/lib/azure-disk-loss.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ import (
1111
"github.com/Azure/azure-sdk-for-go/profiles/latest/compute/mgmt/compute"
1212
experimentTypes "github.com/litmuschaos/litmus-go/pkg/azure/disk-loss/types"
1313
"github.com/litmuschaos/litmus-go/pkg/cerrors"
14-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
14+
"github.com/litmuschaos/litmus-go/pkg/clients"
1515
diskStatus "github.com/litmuschaos/litmus-go/pkg/cloud/azure/disk"
1616
instanceStatus "github.com/litmuschaos/litmus-go/pkg/cloud/azure/instance"
1717
"github.com/litmuschaos/litmus-go/pkg/events"
1818
"github.com/litmuschaos/litmus-go/pkg/log"
1919
"github.com/litmuschaos/litmus-go/pkg/probe"
20+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
2021
"github.com/litmuschaos/litmus-go/pkg/types"
2122
"github.com/litmuschaos/litmus-go/pkg/utils/common"
2223
"github.com/litmuschaos/litmus-go/pkg/utils/retry"
@@ -30,6 +31,8 @@ var (
3031

3132
// PrepareChaos contains the prepration and injection steps for the experiment
3233
func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
34+
span := telemetry.StartTracing(clients, "InjectAzureDiskLossChaos")
35+
defer span.End()
3336

3437
// inject channel is used to transmit signal notifications.
3538
inject = make(chan os.Signal, 1)

chaoslib/litmus/azure-instance-stop/lib/azure-instance-stop.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@ import (
1010

1111
experimentTypes "github.com/litmuschaos/litmus-go/pkg/azure/instance-stop/types"
1212
"github.com/litmuschaos/litmus-go/pkg/cerrors"
13-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
13+
"github.com/litmuschaos/litmus-go/pkg/clients"
1414
azureCommon "github.com/litmuschaos/litmus-go/pkg/cloud/azure/common"
1515
azureStatus "github.com/litmuschaos/litmus-go/pkg/cloud/azure/instance"
1616
"github.com/litmuschaos/litmus-go/pkg/events"
1717
"github.com/litmuschaos/litmus-go/pkg/log"
1818
"github.com/litmuschaos/litmus-go/pkg/probe"
19+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1920
"github.com/litmuschaos/litmus-go/pkg/types"
2021
"github.com/litmuschaos/litmus-go/pkg/utils/common"
2122
"github.com/palantir/stacktrace"
@@ -28,6 +29,8 @@ var (
2829

2930
// PrepareAzureStop will initialize instanceNameList and start chaos injection based on sequence method selected
3031
func PrepareAzureStop(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
32+
span := telemetry.StartTracing(clients, "InjectAzureInstanceStopChaos")
33+
defer span.End()
3134

3235
// inject channel is used to transmit signal notifications
3336
inject = make(chan os.Signal, 1)

chaoslib/litmus/container-kill/lib/container-kill.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ package lib
33
import (
44
"context"
55
"fmt"
6+
"os"
67
"strconv"
78
"strings"
89

910
"github.com/litmuschaos/litmus-go/pkg/cerrors"
11+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1012
"github.com/palantir/stacktrace"
1113

12-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
14+
"github.com/litmuschaos/litmus-go/pkg/clients"
1315
experimentTypes "github.com/litmuschaos/litmus-go/pkg/generic/container-kill/types"
1416
"github.com/litmuschaos/litmus-go/pkg/log"
1517
"github.com/litmuschaos/litmus-go/pkg/probe"
@@ -24,6 +26,8 @@ import (
2426

2527
// PrepareContainerKill contains the preparation steps before chaos injection
2628
func PrepareContainerKill(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
29+
span := telemetry.StartTracing(clients, "InjectContainerKillChaos")
30+
defer span.End()
2731

2832
var err error
2933
// Get the target pod details for the chaos execution
@@ -188,6 +192,8 @@ func injectChaosInParallelMode(experimentsDetails *experimentTypes.ExperimentDet
188192

189193
// createHelperPod derive the attributes for helper pod and create the helper pod
190194
func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, chaosDetails *types.ChaosDetails, targets, nodeName, runID string) error {
195+
span := telemetry.StartTracing(clients, "CreateContainerKillHelperPod")
196+
defer span.End()
191197

192198
privilegedEnable := false
193199
if experimentsDetails.ContainerRuntime == "crio" {
@@ -231,7 +237,7 @@ func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clie
231237
"./helpers -name container-kill",
232238
},
233239
Resources: chaosDetails.Resources,
234-
Env: getPodEnv(experimentsDetails, targets),
240+
Env: getPodEnv(clients.Context, experimentsDetails, targets),
235241
VolumeMounts: []apiv1.VolumeMount{
236242
{
237243
Name: "cri-socket",
@@ -259,7 +265,7 @@ func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clie
259265
}
260266

261267
// getPodEnv derive all the env required for the helper pod
262-
func getPodEnv(experimentsDetails *experimentTypes.ExperimentDetails, targets string) []apiv1.EnvVar {
268+
func getPodEnv(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, targets string) []apiv1.EnvVar {
263269

264270
var envDetails common.ENVDetails
265271
envDetails.SetEnv("TARGETS", targets).
@@ -275,6 +281,8 @@ func getPodEnv(experimentsDetails *experimentTypes.ExperimentDetails, targets st
275281
SetEnv("STATUS_CHECK_TIMEOUT", strconv.Itoa(experimentsDetails.Timeout)).
276282
SetEnv("EXPERIMENT_NAME", experimentsDetails.ExperimentName).
277283
SetEnv("INSTANCE_ID", experimentsDetails.InstanceID).
284+
SetEnv("OTEL_EXPORTER_OTLP_ENDPOINT", os.Getenv(telemetry.OTELExporterOTLPEndpoint)).
285+
SetEnv("TRACE_PARENT", telemetry.GetMarshalledSpanFromContext(ctx)).
278286
SetEnvFromDownwardAPI("v1", "metadata.name")
279287

280288
return envDetails.ENV

chaoslib/litmus/disk-fill/lib/disk-fill.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ package lib
33
import (
44
"context"
55
"fmt"
6+
"os"
67
"strconv"
78
"strings"
89

910
"github.com/litmuschaos/litmus-go/pkg/cerrors"
11+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1012
"github.com/palantir/stacktrace"
1113

12-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
14+
"github.com/litmuschaos/litmus-go/pkg/clients"
1315
experimentTypes "github.com/litmuschaos/litmus-go/pkg/generic/disk-fill/types"
1416
"github.com/litmuschaos/litmus-go/pkg/log"
1517
"github.com/litmuschaos/litmus-go/pkg/probe"
@@ -25,6 +27,8 @@ import (
2527

2628
// PrepareDiskFill contains the preparation steps before chaos injection
2729
func PrepareDiskFill(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
30+
span := telemetry.StartTracing(clients, "InjectDiskFillChaos")
31+
defer span.End()
2832

2933
var err error
3034
// It will contain all the pod & container details required for exec command
@@ -197,6 +201,8 @@ func injectChaosInParallelMode(experimentsDetails *experimentTypes.ExperimentDet
197201

198202
// createHelperPod derive the attributes for helper pod and create the helper pod
199203
func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, chaosDetails *types.ChaosDetails, targets, appNodeName, runID string) error {
204+
span := telemetry.StartTracing(clients, "CreateDiskFillHelperPod")
205+
defer span.End()
200206

201207
privilegedEnable := true
202208
terminationGracePeriodSeconds := int64(experimentsDetails.TerminationGracePeriodSeconds)
@@ -239,7 +245,7 @@ func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clie
239245
"./helpers -name disk-fill",
240246
},
241247
Resources: chaosDetails.Resources,
242-
Env: getPodEnv(experimentsDetails, targets),
248+
Env: getPodEnv(clients.Context, experimentsDetails, targets),
243249
VolumeMounts: []apiv1.VolumeMount{
244250
{
245251
Name: "socket-path",
@@ -267,7 +273,7 @@ func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clie
267273
}
268274

269275
// getPodEnv derive all the env required for the helper pod
270-
func getPodEnv(experimentsDetails *experimentTypes.ExperimentDetails, targets string) []apiv1.EnvVar {
276+
func getPodEnv(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, targets string) []apiv1.EnvVar {
271277

272278
var envDetails common.ENVDetails
273279
envDetails.SetEnv("TARGETS", targets).
@@ -283,6 +289,8 @@ func getPodEnv(experimentsDetails *experimentTypes.ExperimentDetails, targets st
283289
SetEnv("INSTANCE_ID", experimentsDetails.InstanceID).
284290
SetEnv("SOCKET_PATH", experimentsDetails.SocketPath).
285291
SetEnv("CONTAINER_RUNTIME", experimentsDetails.ContainerRuntime).
292+
SetEnv("OTEL_EXPORTER_OTLP_ENDPOINT", os.Getenv(telemetry.OTELExporterOTLPEndpoint)).
293+
SetEnv("TRACE_PARENT", telemetry.GetMarshalledSpanFromContext(ctx)).
286294
SetEnvFromDownwardAPI("v1", "metadata.name")
287295

288296
return envDetails.ENV

chaoslib/litmus/docker-service-kill/lib/docker-service-kill.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import (
66
"strconv"
77

88
"github.com/litmuschaos/litmus-go/pkg/cerrors"
9+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
910
"github.com/palantir/stacktrace"
1011

11-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
12+
"github.com/litmuschaos/litmus-go/pkg/clients"
1213
"github.com/litmuschaos/litmus-go/pkg/events"
1314
experimentTypes "github.com/litmuschaos/litmus-go/pkg/generic/docker-service-kill/types"
1415
"github.com/litmuschaos/litmus-go/pkg/log"
@@ -24,6 +25,8 @@ import (
2425

2526
// PrepareDockerServiceKill contains prepration steps before chaos injection
2627
func PrepareDockerServiceKill(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
28+
span := telemetry.StartTracing(clients, "InjectDockerServiceKillChaos")
29+
defer span.End()
2730

2831
var err error
2932
if experimentsDetails.TargetNode == "" {
@@ -111,6 +114,8 @@ func PrepareDockerServiceKill(experimentsDetails *experimentTypes.ExperimentDeta
111114

112115
// createHelperPod derive the attributes for helper pod and create the helper pod
113116
func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, chaosDetails *types.ChaosDetails, appNodeName string) error {
117+
span := telemetry.StartTracing(clients, "CreateDockerServiceKillHelperPod")
118+
defer span.End()
114119

115120
privileged := true
116121
terminationGracePeriodSeconds := int64(experimentsDetails.TerminationGracePeriodSeconds)

chaoslib/litmus/ebs-loss/lib/ebs-loss-by-id/lib/ebs-loss-by-id.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ import (
99

1010
ebsloss "github.com/litmuschaos/litmus-go/chaoslib/litmus/ebs-loss/lib"
1111
"github.com/litmuschaos/litmus-go/pkg/cerrors"
12-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
12+
"github.com/litmuschaos/litmus-go/pkg/clients"
1313
experimentTypes "github.com/litmuschaos/litmus-go/pkg/kube-aws/ebs-loss/types"
1414
"github.com/litmuschaos/litmus-go/pkg/log"
15+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1516
"github.com/litmuschaos/litmus-go/pkg/types"
1617
"github.com/litmuschaos/litmus-go/pkg/utils/common"
1718
"github.com/palantir/stacktrace"
@@ -24,6 +25,8 @@ var (
2425

2526
// PrepareEBSLossByID contains the prepration and injection steps for the experiment
2627
func PrepareEBSLossByID(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
28+
span := telemetry.StartTracing(clients, "InjectEBSLossByIDChaos")
29+
defer span.End()
2730

2831
// inject channel is used to transmit signal notifications.
2932
inject = make(chan os.Signal, 1)

chaoslib/litmus/ebs-loss/lib/ebs-loss-by-tag/lib/ebs-loss-by-tag.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ import (
99

1010
ebsloss "github.com/litmuschaos/litmus-go/chaoslib/litmus/ebs-loss/lib"
1111
"github.com/litmuschaos/litmus-go/pkg/cerrors"
12-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
12+
"github.com/litmuschaos/litmus-go/pkg/clients"
1313
experimentTypes "github.com/litmuschaos/litmus-go/pkg/kube-aws/ebs-loss/types"
1414
"github.com/litmuschaos/litmus-go/pkg/log"
15+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1516
"github.com/litmuschaos/litmus-go/pkg/types"
1617
"github.com/litmuschaos/litmus-go/pkg/utils/common"
1718
"github.com/palantir/stacktrace"
@@ -24,6 +25,8 @@ var (
2425

2526
// PrepareEBSLossByTag contains the prepration and injection steps for the experiment
2627
func PrepareEBSLossByTag(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
28+
span := telemetry.StartTracing(clients, "InjectEBSLossByTagChaos")
29+
defer span.End()
2730

2831
// inject channel is used to transmit signal notifications.
2932
inject = make(chan os.Signal, 1)

chaoslib/litmus/ec2-terminate-by-id/lib/ec2-terminate-by-id.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ import (
99
"time"
1010

1111
"github.com/litmuschaos/litmus-go/pkg/cerrors"
12-
clients "github.com/litmuschaos/litmus-go/pkg/clients"
12+
"github.com/litmuschaos/litmus-go/pkg/clients"
1313
awslib "github.com/litmuschaos/litmus-go/pkg/cloud/aws/ec2"
1414
"github.com/litmuschaos/litmus-go/pkg/events"
1515
experimentTypes "github.com/litmuschaos/litmus-go/pkg/kube-aws/ec2-terminate-by-id/types"
1616
"github.com/litmuschaos/litmus-go/pkg/log"
1717
"github.com/litmuschaos/litmus-go/pkg/probe"
18+
"github.com/litmuschaos/litmus-go/pkg/telemetry"
1819
"github.com/litmuschaos/litmus-go/pkg/types"
1920
"github.com/litmuschaos/litmus-go/pkg/utils/common"
2021
"github.com/palantir/stacktrace"
@@ -27,6 +28,8 @@ var (
2728

2829
// PrepareEC2TerminateByID contains the prepration and injection steps for the experiment
2930
func PrepareEC2TerminateByID(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
31+
span := telemetry.StartTracing(clients, "InjectEC2TerminateByIDChaos")
32+
defer span.End()
3033

3134
// inject channel is used to transmit signal notifications.
3235
inject = make(chan os.Signal, 1)

0 commit comments

Comments
 (0)