From ee8837f101a86274ac7e891eaa8c724d0b4cd291 Mon Sep 17 00:00:00 2001 From: Duke Nguyen Date: Tue, 21 Jul 2020 14:59:35 +0000 Subject: [PATCH] Change latency spike --- release/kubernetes-manifests.yaml | 5 ++--- src/productcatalogservice/server.go | 22 +++++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/release/kubernetes-manifests.yaml b/release/kubernetes-manifests.yaml index 8935c1c..1bfff16 100644 --- a/release/kubernetes-manifests.yaml +++ b/release/kubernetes-manifests.yaml @@ -360,7 +360,6 @@ spec: - name: server # image: gcr.io/qwiklab-gke-debugging/productcatalogservice:v0.1.0 image: gcr.io/cloud-ops-demo-app/productservice:latest - # imagePullPolicy: Always ports: - containerPort: 3550 env: @@ -374,8 +373,8 @@ spec: value: "1" - name: ENABLE_RELOAD value: "1" - # - name: LATENCY_SPIKE - # value: "1" + - name: LATENCY_SPIKE + value: "1" # - name: JAEGER_SERVICE_ADDR # value: "jaeger-collector:14268" readinessProbe: diff --git a/src/productcatalogservice/server.go b/src/productcatalogservice/server.go index 3cececb..4c2abcb 100644 --- a/src/productcatalogservice/server.go +++ b/src/productcatalogservice/server.go @@ -241,25 +241,29 @@ func (p *productCatalog) Watch(req *healthpb.HealthCheckRequest, ws healthpb.Hea func (p *productCatalog) ListProducts(context.Context, *pb.Empty) (*pb.ListProductsResponse, error) { time.Sleep(extraLatency) - rand.Seed(time.Now().UnixNano()) - n := 3 * (1 + rand.Intn(20)) // n will be between 0 and v - time.Sleep(time.Duration(n)*time.Second) - return &pb.ListProductsResponse{Products: parseCatalog()}, nil -} - -func (p *productCatalog) GetProduct(ctx context.Context, req *pb.GetProductRequest) (*pb.Product, error) { if s := os.Getenv("LATENCY_SPIKE"); s != "" { // v, err := strconv.Atoi(s) // if err != nil { // log.Fatalf("faigit chaled to parse EXTRA_LATENCY (%s) as int: %+v", v, err) // } // rand.Seed(time.Now().UnixNano()) - n := 3 * (1 + rand.Intn(10)) // n will be between 0 and v + n := 3 + rand.Intn(25) // n will be between 0 and v time.Sleep(time.Duration(n)*time.Second) log.Infof("extra latency enabled (duration: %v)", extraLatency) } else { time.Sleep(extraLatency) - } + } + return &pb.ListProductsResponse{Products: parseCatalog()}, nil +} + +func (p *productCatalog) GetProduct(ctx context.Context, req *pb.GetProductRequest) (*pb.Product, error) { + if s := os.Getenv("LATENCY_SPIKE"); s != "" { + n := 3 + rand.Intn(25) // n will be between 0 and v + time.Sleep(time.Duration(n)*time.Second) + log.Infof("extra latency enabled (duration: %v)", extraLatency) + } else { + time.Sleep(extraLatency) + } var found *pb.Product for i := 0; i < len(parseCatalog()); i++ { if req.Id == parseCatalog()[i].Id {