From 156dfcec8a5a4a9085b011e58188519455fa4806 Mon Sep 17 00:00:00 2001 From: Megan O'Keefe <3137106+askmeegs@users.noreply.github.com> Date: Mon, 19 Aug 2019 14:28:03 -0400 Subject: [PATCH 1/9] [cartservice] Increases health check timeout (#240) * Increases cartservice health check rpc timeout * remove stopwatch from health check * cleanup * Cleanup --- release/kubernetes-manifests.yaml | 4 ++-- src/cartservice/HealthImpl.cs | 1 - src/cartservice/cartservice.csproj | 2 +- src/cartservice/cartstore/RedisCartStore.cs | 21 ++++++++++----------- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/release/kubernetes-manifests.yaml b/release/kubernetes-manifests.yaml index d9827fb..f82d8dc 100644 --- a/release/kubernetes-manifests.yaml +++ b/release/kubernetes-manifests.yaml @@ -411,12 +411,12 @@ spec: readinessProbe: initialDelaySeconds: 15 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] livenessProbe: initialDelaySeconds: 15 periodSeconds: 10 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] --- apiVersion: v1 kind: Service diff --git a/src/cartservice/HealthImpl.cs b/src/cartservice/HealthImpl.cs index f231c7c..44290d1 100644 --- a/src/cartservice/HealthImpl.cs +++ b/src/cartservice/HealthImpl.cs @@ -15,7 +15,6 @@ namespace cartservice { public override Task Check(HealthCheckRequest request, ServerCallContext context){ Console.WriteLine ("Checking CartService Health"); - return Task.FromResult(new HealthCheckResponse { Status = dependency.Ping() ? HealthCheckResponse.Types.ServingStatus.Serving : HealthCheckResponse.Types.ServingStatus.NotServing }); diff --git a/src/cartservice/cartservice.csproj b/src/cartservice/cartservice.csproj index 3fea4a1..4c1e378 100644 --- a/src/cartservice/cartservice.csproj +++ b/src/cartservice/cartservice.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/cartservice/cartstore/RedisCartStore.cs b/src/cartservice/cartstore/RedisCartStore.cs index bc7b7e8..30dc955 100644 --- a/src/cartservice/cartstore/RedisCartStore.cs +++ b/src/cartservice/cartstore/RedisCartStore.cs @@ -45,13 +45,13 @@ namespace cartservice.cartstore var cart = new Hipstershop.Cart(); emptyCartBytes = cart.ToByteArray(); connectionString = $"{redisAddress},ssl=false,allowAdmin=true,connectRetry=5"; - + redisConnectionOptions = ConfigurationOptions.Parse(connectionString); // Try to reconnect if first retry failed (up to 5 times with exponential backoff) redisConnectionOptions.ConnectRetry = REDIS_RETRY_NUM; redisConnectionOptions.ReconnectRetryPolicy = new ExponentialRetry(100); - + redisConnectionOptions.KeepAlive = 180; } @@ -78,11 +78,11 @@ namespace cartservice.cartstore Console.WriteLine("Connecting to Redis: " + connectionString); redis = ConnectionMultiplexer.Connect(redisConnectionOptions); - + if (redis == null || !redis.IsConnected) { Console.WriteLine("Wasn't able to connect to redis"); - + // We weren't able to connect to redis despite 5 retries with exponential backoff throw new ApplicationException("Wasn't able to connect to redis"); } @@ -96,14 +96,14 @@ namespace cartservice.cartstore Console.WriteLine($"Small test result: {res}"); redis.InternalError += (o, e) => { Console.WriteLine(e.Exception); }; - redis.ConnectionRestored += (o, e) => + redis.ConnectionRestored += (o, e) => { isRedisConnectionOpened = true; - Console.WriteLine("Connection to redis was retored successfully"); + Console.WriteLine("Connection to redis was retored successfully"); }; - redis.ConnectionFailed += (o, e) => + redis.ConnectionFailed += (o, e) => { - Console.WriteLine("Connection failed. Disposing the object"); + Console.WriteLine("Connection failed. Disposing the object"); isRedisConnectionOpened = false; }; @@ -118,9 +118,9 @@ namespace cartservice.cartstore try { EnsureRedisConnected(); - + var db = redis.GetDatabase(); - + // Access the cart from the cache var value = await db.HashGetAsync(userId, CART_FIELD_NAME); @@ -202,7 +202,6 @@ namespace cartservice.cartstore { try { - var redis = ConnectionMultiplexer.Connect(redisConnectionOptions); var cache = redis.GetDatabase(); var res = cache.Ping(); return res != TimeSpan.Zero; From 1e143c570f6fb49703e0737620bbd4e7d6244278 Mon Sep 17 00:00:00 2001 From: askmeegs Date: Mon, 19 Aug 2019 15:14:05 -0400 Subject: [PATCH 2/9] Release v0.1.2 --- release/kubernetes-manifests.yaml | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/release/kubernetes-manifests.yaml b/release/kubernetes-manifests.yaml index f82d8dc..0d0ee71 100644 --- a/release/kubernetes-manifests.yaml +++ b/release/kubernetes-manifests.yaml @@ -32,7 +32,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/emailservice:v0.1.1 + image: gcr.io/google-samples/emailservice:v0.1.2 ports: - containerPort: 8080 env: @@ -85,7 +85,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/microservices-demo/checkoutservice:v0.1.1 + image: gcr.io/google-samples/checkoutservice:v0.1.2 ports: - containerPort: 5050 readinessProbe: @@ -148,7 +148,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/recommendationservice:v0.1.1 + image: gcr.io/google-samples/recommendationservice:v0.1.2 ports: - containerPort: 8080 readinessProbe: @@ -202,7 +202,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/microservices-demo/frontend:v0.1.1 + image: gcr.io/google-samples/frontend:v0.1.2 ports: - containerPort: 8080 readinessProbe: @@ -290,7 +290,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/paymentservice:v0.1.1 + image: gcr.io/google-samples/paymentservice:v0.1.2 ports: - containerPort: 50051 env: @@ -339,7 +339,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/productcatalogservice:v0.1.1 + image: gcr.io/google-samples/productcatalogservice:v0.1.2 ports: - containerPort: 3550 env: @@ -391,7 +391,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/cartservice:v0.1.1 + image: gcr.io/google-samples/cartservice:v0.1.2 ports: - containerPort: 7070 env: @@ -411,12 +411,12 @@ spec: readinessProbe: initialDelaySeconds: 15 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] + command: ["/bin/grpc_health_probe", "-addr=:7070"] livenessProbe: initialDelaySeconds: 15 periodSeconds: 10 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] + command: ["/bin/grpc_health_probe", "-addr=:7070"] --- apiVersion: v1 kind: Service @@ -450,9 +450,9 @@ spec: initContainers: - name: wait-frontend image: alpine:3.6 - command: ['sh', '-c', 'set -x; apk add --no-cache curl && - until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do - echo "waiting for http://${FRONTEND_ADDR}"; + command: ['sh', '-c', 'set -x; apk add --no-cache curl && + until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do + echo "waiting for http://${FRONTEND_ADDR}"; sleep 2; done;'] env: @@ -460,7 +460,7 @@ spec: value: "frontend:80" containers: - name: main - image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.1.1 + image: gcr.io/google-samples/loadgenerator:v0.1.2 env: - name: FRONTEND_ADDR value: "frontend:80" @@ -490,7 +490,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/currencyservice:v0.1.1 + image: gcr.io/google-samples/currencyservice:v0.1.2 ports: - name: grpc containerPort: 7000 @@ -539,7 +539,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/microservices-demo/shippingservice:v0.1.1 + image: gcr.io/google-samples/shippingservice:v0.1.2 ports: - containerPort: 50051 env: @@ -645,7 +645,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/adservice:v0.1.1 + image: gcr.io/google-samples/adservice:v0.1.2 ports: - containerPort: 9555 env: @@ -683,4 +683,4 @@ spec: - name: grpc port: 9555 targetPort: 9555 ---- \ No newline at end of file +--- From c052e6971617363114f54b947afccf7e49a5122b Mon Sep 17 00:00:00 2001 From: Megan O'Keefe <3137106+askmeegs@users.noreply.github.com> Date: Mon, 19 Aug 2019 15:21:56 -0400 Subject: [PATCH 3/9] Adds cartservice timeout to all manifests (#241) --- kubernetes-manifests/cartservice.yaml | 4 ++-- release/kubernetes-manifests.yaml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/kubernetes-manifests/cartservice.yaml b/kubernetes-manifests/cartservice.yaml index fcfe0f5..31175da 100644 --- a/kubernetes-manifests/cartservice.yaml +++ b/kubernetes-manifests/cartservice.yaml @@ -48,12 +48,12 @@ spec: readinessProbe: initialDelaySeconds: 15 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] livenessProbe: initialDelaySeconds: 15 periodSeconds: 10 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] --- apiVersion: v1 kind: Service diff --git a/release/kubernetes-manifests.yaml b/release/kubernetes-manifests.yaml index 0d0ee71..8c99b44 100644 --- a/release/kubernetes-manifests.yaml +++ b/release/kubernetes-manifests.yaml @@ -411,12 +411,12 @@ spec: readinessProbe: initialDelaySeconds: 15 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] livenessProbe: initialDelaySeconds: 15 periodSeconds: 10 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] --- apiVersion: v1 kind: Service @@ -450,9 +450,9 @@ spec: initContainers: - name: wait-frontend image: alpine:3.6 - command: ['sh', '-c', 'set -x; apk add --no-cache curl && - until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do - echo "waiting for http://${FRONTEND_ADDR}"; + command: ['sh', '-c', 'set -x; apk add --no-cache curl && + until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do + echo "waiting for http://${FRONTEND_ADDR}"; sleep 2; done;'] env: From 6b75fd5bf891ca6b2862cd04c43ba45edbfaed6c Mon Sep 17 00:00:00 2001 From: askmeegs Date: Mon, 19 Aug 2019 15:23:46 -0400 Subject: [PATCH 4/9] Release v0.1.2 --- release/kubernetes-manifests.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/release/kubernetes-manifests.yaml b/release/kubernetes-manifests.yaml index 8c99b44..975ff6e 100644 --- a/release/kubernetes-manifests.yaml +++ b/release/kubernetes-manifests.yaml @@ -32,7 +32,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/emailservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/emailservice:v0.1.2 ports: - containerPort: 8080 env: @@ -85,7 +85,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/checkoutservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/checkoutservice:v0.1.2 ports: - containerPort: 5050 readinessProbe: @@ -148,7 +148,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/recommendationservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/recommendationservice:v0.1.2 ports: - containerPort: 8080 readinessProbe: @@ -202,7 +202,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/frontend:v0.1.2 + image: gcr.io/google-samples/microservices-demo/frontend:v0.1.2 ports: - containerPort: 8080 readinessProbe: @@ -290,7 +290,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/paymentservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/paymentservice:v0.1.2 ports: - containerPort: 50051 env: @@ -339,7 +339,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/productcatalogservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/productcatalogservice:v0.1.2 ports: - containerPort: 3550 env: @@ -391,7 +391,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/cartservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/cartservice:v0.1.2 ports: - containerPort: 7070 env: @@ -450,9 +450,9 @@ spec: initContainers: - name: wait-frontend image: alpine:3.6 - command: ['sh', '-c', 'set -x; apk add --no-cache curl && - until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do - echo "waiting for http://${FRONTEND_ADDR}"; + command: ['sh', '-c', 'set -x; apk add --no-cache curl && + until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do + echo "waiting for http://${FRONTEND_ADDR}"; sleep 2; done;'] env: @@ -460,7 +460,7 @@ spec: value: "frontend:80" containers: - name: main - image: gcr.io/google-samples/loadgenerator:v0.1.2 + image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.1.2 env: - name: FRONTEND_ADDR value: "frontend:80" @@ -490,7 +490,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/currencyservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/currencyservice:v0.1.2 ports: - name: grpc containerPort: 7000 @@ -539,7 +539,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/shippingservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/shippingservice:v0.1.2 ports: - containerPort: 50051 env: @@ -645,7 +645,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/adservice:v0.1.2 + image: gcr.io/google-samples/microservices-demo/adservice:v0.1.2 ports: - containerPort: 9555 env: From 3f577b60a0bdb2aac3157499e6c1165c4450d310 Mon Sep 17 00:00:00 2001 From: askmeegs Date: Mon, 19 Aug 2019 15:26:01 -0400 Subject: [PATCH 5/9] Release v0.1.2 From 4681320f8060e4e15831f524d448cc4cf7b55bdd Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Fri, 20 Sep 2019 12:11:49 -0700 Subject: [PATCH 6/9] got rid of errors in Stackdriver Logging (#245) --- src/emailservice/logger.py | 1 + src/loadgenerator/loadgen.sh | 2 +- src/recommendationservice/logger.py | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/emailservice/logger.py b/src/emailservice/logger.py index a7fb527..578595e 100644 --- a/src/emailservice/logger.py +++ b/src/emailservice/logger.py @@ -37,4 +37,5 @@ def getJSONLogger(name): handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.INFO) + logger.propagate = False return logger diff --git a/src/loadgenerator/loadgen.sh b/src/loadgenerator/loadgen.sh index 2a68db7..2a33434 100755 --- a/src/loadgenerator/loadgen.sh +++ b/src/loadgenerator/loadgen.sh @@ -24,4 +24,4 @@ if [[ -z "${FRONTEND_ADDR}" ]]; then fi set -x -locust --host="http://${FRONTEND_ADDR}" --no-web -c "${USERS:-10}" +locust --host="http://${FRONTEND_ADDR}" --no-web -c "${USERS:-10}" 2>&1 diff --git a/src/recommendationservice/logger.py b/src/recommendationservice/logger.py index a7fb527..578595e 100644 --- a/src/recommendationservice/logger.py +++ b/src/recommendationservice/logger.py @@ -37,4 +37,5 @@ def getJSONLogger(name): handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.INFO) + logger.propagate = False return logger From 2177813c44a83f3f6bc77e14d88accf986dd3a4c Mon Sep 17 00:00:00 2001 From: djmailhot Date: Sun, 29 Sep 2019 05:40:48 -0700 Subject: [PATCH 7/9] cartservice: Create genproto.sh (#249) * Add src/cartservice/genproto.sh * Add grpc generation to cartservice/genproto.sh * Remove grpc from cartservice/genproto.sh due to errors --- .../{generate_protos.bat => genproto.bat} | 0 src/cartservice/genproto.sh | 26 +++++++++++++++++++ 2 files changed, 26 insertions(+) rename src/cartservice/{generate_protos.bat => genproto.bat} (100%) create mode 100755 src/cartservice/genproto.sh diff --git a/src/cartservice/generate_protos.bat b/src/cartservice/genproto.bat similarity index 100% rename from src/cartservice/generate_protos.bat rename to src/cartservice/genproto.bat diff --git a/src/cartservice/genproto.sh b/src/cartservice/genproto.sh new file mode 100755 index 0000000..f1a8588 --- /dev/null +++ b/src/cartservice/genproto.sh @@ -0,0 +1,26 @@ +#!/bin/bash -eu +# +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Generate the C# code for .proto files +set -e + +PROTODIR=../../pb + +# enter this directory +CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +protoc --csharp_out=$CWD/grpc_generated -I $PROTODIR $PROTODIR/demo.proto + From 24ca9eecef23b3c4e20cc58dc003113f713d8654 Mon Sep 17 00:00:00 2001 From: Joseph Sirianni Date: Wed, 16 Oct 2019 13:11:05 -0400 Subject: [PATCH 8/9] use python 3.7, as python:3-slim is now using python 3.8. (#254) --- src/emailservice/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emailservice/Dockerfile b/src/emailservice/Dockerfile index 3d649a5..ff88c76 100644 --- a/src/emailservice/Dockerfile +++ b/src/emailservice/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3-slim as base +FROM python:3.7-slim as base FROM base as builder From a95997be9439577086a579e328e278f87c7e14df Mon Sep 17 00:00:00 2001 From: Ben Wells Date: Wed, 16 Oct 2019 21:45:55 +0100 Subject: [PATCH 9/9] Remove deps files from node paymentservice (#252) --- src/paymentservice/Gopkg.lock | 9 --------- src/paymentservice/Gopkg.toml | 30 ------------------------------ 2 files changed, 39 deletions(-) delete mode 100644 src/paymentservice/Gopkg.lock delete mode 100644 src/paymentservice/Gopkg.toml diff --git a/src/paymentservice/Gopkg.lock b/src/paymentservice/Gopkg.lock deleted file mode 100644 index bef2d00..0000000 --- a/src/paymentservice/Gopkg.lock +++ /dev/null @@ -1,9 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - inputs-digest = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/src/paymentservice/Gopkg.toml b/src/paymentservice/Gopkg.toml deleted file mode 100644 index d7072c2..0000000 --- a/src/paymentservice/Gopkg.toml +++ /dev/null @@ -1,30 +0,0 @@ -# Gopkg.toml example -# -# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - - -[prune] - go-tests = true - unused-packages = true