From 156fa24a1e8e0dae6ffee81173b6c4c90991e982 Mon Sep 17 00:00:00 2001 From: Megan O'Keefe Date: Sun, 16 Feb 2020 17:10:30 -0500 Subject: [PATCH] Cleanup and fixes --- .gitignore | 3 +- kubernetes-manifests/adservice.yaml | 4 -- kubernetes-manifests/checkoutservice.yaml | 2 - kubernetes-manifests/currencyservice.yaml | 2 - kubernetes-manifests/emailservice.yaml | 12 ++-- kubernetes-manifests/frontend.yaml | 4 -- .../productcatalogservice.yaml | 18 +++--- .../recommendationservice.yaml | 16 ++--- kubernetes-manifests/shippingservice.yaml | 18 +++--- .../org.eclipse.buildship.core.prefs | 2 + .../src/main/java/hipstershop/AdService.java | 12 +++- src/checkoutservice/main.go | 23 +++---- src/currencyservice/server.js | 4 +- src/emailservice/email_server.py | 49 ++++++++------- src/frontend/main.go | 2 + src/productcatalogservice/server.go | 4 +- .../recommendation_server.py | 60 ++++++++++--------- src/shippingservice/main.go | 2 + 18 files changed, 120 insertions(+), 117 deletions(-) create mode 100644 src/adservice/.settings/org.eclipse.buildship.core.prefs diff --git a/.gitignore b/.gitignore index 601a695..257b129 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ pkg/ .vs/ .idea .skaffold-*.yaml -.kubernetes-manifests-*/ \ No newline at end of file +.kubernetes-manifests-*/ +.project \ No newline at end of file diff --git a/kubernetes-manifests/adservice.yaml b/kubernetes-manifests/adservice.yaml index e7b7238..dd2fe48 100644 --- a/kubernetes-manifests/adservice.yaml +++ b/kubernetes-manifests/adservice.yaml @@ -38,10 +38,6 @@ spec: # value: "False" # - name: TRACE # value: "False" - # - name: PROFILER - # value: "False" - # - name: DEBUGGER - # value: "False" #- name: JAEGER_SERVICE_ADDR # value: "jaeger-collector:14268" resources: diff --git a/kubernetes-manifests/checkoutservice.yaml b/kubernetes-manifests/checkoutservice.yaml index fe7395f..5dd515d 100644 --- a/kubernetes-manifests/checkoutservice.yaml +++ b/kubernetes-manifests/checkoutservice.yaml @@ -57,8 +57,6 @@ spec: # value: "False" # - name: PROFILER # value: "False" - # - name: DEBUGGER - # value: "False" # - name: JAEGER_SERVICE_ADDR # value: "jaeger-collector:14268" resources: diff --git a/kubernetes-manifests/currencyservice.yaml b/kubernetes-manifests/currencyservice.yaml index 5d13cef..9db3d41 100644 --- a/kubernetes-manifests/currencyservice.yaml +++ b/kubernetes-manifests/currencyservice.yaml @@ -35,8 +35,6 @@ spec: env: - name: PORT value: "7000" - # - name: STATS - # value: "False" # - name: TRACE # value: "False" # - name: PROFILER diff --git a/kubernetes-manifests/emailservice.yaml b/kubernetes-manifests/emailservice.yaml index 6ca187f..101ce49 100644 --- a/kubernetes-manifests/emailservice.yaml +++ b/kubernetes-manifests/emailservice.yaml @@ -34,14 +34,10 @@ spec: env: - name: PORT value: "8080" - # - name: STATS - # value: "False" - # - name: TRACE - # value: "False" - # - name: PROFILER - # value: "False" - # - name: DEBUGGER - # value: "False" + # - name: TRACE + # value: "False" + # - name: PROFILER + # value: "False" readinessProbe: periodSeconds: 5 exec: diff --git a/kubernetes-manifests/frontend.yaml b/kubernetes-manifests/frontend.yaml index ef93616..6536247 100644 --- a/kubernetes-manifests/frontend.yaml +++ b/kubernetes-manifests/frontend.yaml @@ -65,14 +65,10 @@ spec: value: "checkoutservice:5050" - name: AD_SERVICE_ADDR value: "adservice:9555" - # - name: STATS - # value: "False" # - name: TRACE # value: "False" # - name: PROFILER # value: "False" - # - name: DEBUGGER - # value: "False" # - name: JAEGER_SERVICE_ADDR # value: "jaeger-collector:14268" resources: diff --git a/kubernetes-manifests/productcatalogservice.yaml b/kubernetes-manifests/productcatalogservice.yaml index da674a3..a7ca340 100644 --- a/kubernetes-manifests/productcatalogservice.yaml +++ b/kubernetes-manifests/productcatalogservice.yaml @@ -34,16 +34,14 @@ spec: env: - name: PORT value: "3550" - # - name: STATS - # value: "False" - # - name: TRACE - # value: "False" - # - name: PROFILER - # value: "False" - # - name: DEBUGGER - # value: "False" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" + # - name: STATS + # value: "False" + # - name: TRACE + # value: "False" + # - name: PROFILER + # value: "False" + # - name: JAEGER_SERVICE_ADDR + # value: "jaeger-collector:14268" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:3550"] diff --git a/kubernetes-manifests/recommendationservice.yaml b/kubernetes-manifests/recommendationservice.yaml index d926d05..7bf2aca 100644 --- a/kubernetes-manifests/recommendationservice.yaml +++ b/kubernetes-manifests/recommendationservice.yaml @@ -44,16 +44,12 @@ spec: value: "8080" - name: PRODUCT_CATALOG_SERVICE_ADDR value: "productcatalogservice:3550" - # - name: STATS - # value: "False" - # - name: TRACE - # value: "False" - # - name: PROFILER - # value: "False" - # - name: DEBUGGER - # value: "False" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" + # - name: TRACE + # value: "False" + # - name: PROFILER + # value: "False" + # - name: DEBUGGER + # value: "False" resources: requests: cpu: 100m diff --git a/kubernetes-manifests/shippingservice.yaml b/kubernetes-manifests/shippingservice.yaml index 8809861..eec097d 100644 --- a/kubernetes-manifests/shippingservice.yaml +++ b/kubernetes-manifests/shippingservice.yaml @@ -33,16 +33,14 @@ spec: env: - name: PORT value: "50051" - # - name: STATS - # value: "False" - # - name: TRACE - # value: "False" - # - name: PROFILER - # value: "False" - # - name: DEBUGGER - # value: "False" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" + # - name: STATS + # value: "False" + # - name: TRACE + # value: "False" + # - name: PROFILER + # value: "False" + # - name: JAEGER_SERVICE_ADDR + # value: "jaeger-collector:14268" readinessProbe: periodSeconds: 5 exec: diff --git a/src/adservice/.settings/org.eclipse.buildship.core.prefs b/src/adservice/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000..e889521 --- /dev/null +++ b/src/adservice/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,2 @@ +connection.project.dir= +eclipse.preferences.version=1 diff --git a/src/adservice/src/main/java/hipstershop/AdService.java b/src/adservice/src/main/java/hipstershop/AdService.java index fab4535..c23c4ea 100644 --- a/src/adservice/src/main/java/hipstershop/AdService.java +++ b/src/adservice/src/main/java/hipstershop/AdService.java @@ -214,7 +214,11 @@ public final class AdService { } private static void initStats() { - boolean stats = Boolean.parseBoolean(System.getenv("STATS")); + String statsEnv = System.getenv("STATS"); + if (statsEnv == null) { + statsEnv = "true"; + } + boolean stats = Boolean.parseBoolean(statsEnv); if (!stats) { logger.info("Stats disabled."); return; @@ -252,7 +256,11 @@ public final class AdService { } private static void initTracing() { - boolean trace = Boolean.parseBoolean(System.getenv("TRACE")); + String traceEnv = System.getenv("TRACE"); + if (traceEnv == null) { + traceEnv = "true"; + } + boolean trace = Boolean.parseBoolean(traceEnv); if (!trace) { logger.info("Tracing disabled."); return; diff --git a/src/checkoutservice/main.go b/src/checkoutservice/main.go index 28f17e7..c1aedcb 100644 --- a/src/checkoutservice/main.go +++ b/src/checkoutservice/main.go @@ -72,28 +72,29 @@ type checkoutService struct { func main() { stats, err := getenvBool("STATS") if err != nil { - log.Errorf("Could not get STATS var: %v, defaulting to True", err) + log.Debugf("Could not get STATS var: %v, defaulting to True", err) stats = true } trace, err := getenvBool("TRACE") if err != nil { - log.Errorf("Could not get TRACE var: %v, defaulting to True", err) + log.Debugf("Could not get TRACE var: %v, defaulting to True", err) trace = true } - - profiler, err := getenvBool("PROFILER") - if err != nil { - log.Errorf("Could not get PROFILER var: %v, defaulting to True", err) - profiler = true - } - if trace == true { + log.Info("Tracing enabled.") go initTracing() } else { log.Info("Tracing disabled.") } + + profiler, err := getenvBool("PROFILER") + if err != nil { + log.Debugf("Could not get PROFILER var: %v, defaulting to True", err) + profiler = true + } if profiler == true { + log.Info("Profiling enabled.") go initProfiling("checkoutservice", "1.0.0") } else { log.Info("Profiling disabled.") @@ -256,7 +257,7 @@ func (cs *checkoutService) PlaceOrder(ctx context.Context, req *pb.PlaceOrderReq if err != nil { return nil, status.Errorf(codes.Internal, "failed to charge card: %+v", err) } - log.Infof("payment went through (transaction_id: %s)", txID) + log.Debugf("payment went through (transaction_id: %s)", txID) shippingTrackingID, err := cs.shipOrder(ctx, req.Address, prep.cartItems) if err != nil { @@ -276,7 +277,7 @@ func (cs *checkoutService) PlaceOrder(ctx context.Context, req *pb.PlaceOrderReq if err := cs.sendOrderConfirmation(ctx, req.Email, orderResult); err != nil { log.Warnf("failed to send order confirmation to %q: %+v", req.Email, err) } else { - log.Infof("order confirmation email sent to %q", req.Email) + // log.Infof("order confirmation email sent to %q", req.Email) } resp := &pb.PlaceOrderResponse{Order: orderResult} return resp, nil diff --git a/src/currencyservice/server.js b/src/currencyservice/server.js index 7e652b3..818262f 100644 --- a/src/currencyservice/server.js +++ b/src/currencyservice/server.js @@ -31,10 +31,10 @@ if (profiler == "true") { var trace = process.env.TRACE || "true"; trace = trace.toLowerCase(); if (trace == "true") { - console.log("Trace enabled.") + console.log("Tracing enabled.") require('@google-cloud/trace-agent').start(); } else { - console.log("Trace disabled.") + console.log("Tracing disabled.") } var debug = process.env.DEBUGGER || "true"; diff --git a/src/emailservice/email_server.py b/src/emailservice/email_server.py index d8b6d9c..beaffdd 100644 --- a/src/emailservice/email_server.py +++ b/src/emailservice/email_server.py @@ -29,7 +29,9 @@ from grpc_health.v1 import health_pb2 from grpc_health.v1 import health_pb2_grpc from opencensus.trace.exporters import stackdriver_exporter +from opencensus.trace.exporters import print_exporter from opencensus.trace.ext.grpc import server_interceptor +from opencensus.common.transports.async_ import AsyncTransport from opencensus.trace.samplers import always_on # import googleclouddebugger @@ -38,25 +40,6 @@ import googlecloudprofiler from logger import getJSONLogger logger = getJSONLogger('emailservice-server') - -trace = os.getenv('TRACE', True) - -if trace != False: - logger.info("Tracing enabled.") - try: - sampler = always_on.AlwaysOnSampler() - exporter = stackdriver_exporter.StackdriverExporter( - project_id=os.environ.get('GCP_PROJECT_ID'), - transport=AsyncTransport) - tracer_interceptor = server_interceptor.OpenCensusServerInterceptor(sampler, exporter) - except: - tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() -else: - logger.info("Tracing disabled.") - tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() - - - # try: # googleclouddebugger.enable( # module='emailserver', @@ -181,16 +164,36 @@ def initStackdriverProfiling(): logger.warning("Could not initialize Stackdriver Profiler after retrying, giving up") return + if __name__ == '__main__': - logger.info('starting the email service in dummy mode.') + # Profiler try: - enable_profiler = os.environ["ENABLE_PROFILER"] - if enable_profiler != "1": + profiler = os.getenv('PROFILER', "true") + profiler = profiler.lower() + if profiler != "true": raise KeyError() else: + logger.info("Profiler enabled.") initStackdriverProfiling() except KeyError: - logger.info("Skipping Stackdriver Profiler Python agent initialization. Set environment variable ENABLE_PROFILER=1 to enable.") + logger.info("Profiler disabled.") + + # Tracing + try: + trace = os.getenv('TRACE', "true") + trace = trace.lower() + if trace != "true": + raise KeyError() + else: + logger.info("Tracing enabled.") + sampler = always_on.AlwaysOnSampler() + exporter = stackdriver_exporter.StackdriverExporter( + project_id=os.environ.get('GCP_PROJECT_ID'), + transport=AsyncTransport) + tracer_interceptor = server_interceptor.OpenCensusServerInterceptor(sampler, exporter) + except KeyError: + logger.info("Tracing disabled.") + tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() start(dummy_mode = True) diff --git a/src/frontend/main.go b/src/frontend/main.go index ff714c6..c1390ed 100644 --- a/src/frontend/main.go +++ b/src/frontend/main.go @@ -108,11 +108,13 @@ func main() { } if trace == true { + log.Info("Tracing enabled.") go initTracing(log) } else { log.Info("Tracing disabled.") } if profiler == true { + log.Info("Profiling enabled.") go initProfiling(log, "frontend", "1.0.0") } else { log.Info("Profiling disabled") diff --git a/src/productcatalogservice/server.go b/src/productcatalogservice/server.go index 2bce62d..e22067c 100644 --- a/src/productcatalogservice/server.go +++ b/src/productcatalogservice/server.go @@ -54,7 +54,7 @@ var ( port = "3550" reloadCatalog bool - stats bool + stats bool ) func init() { @@ -96,11 +96,13 @@ func main() { } if trace == true { + log.Info("Tracing enabled.") go initTracing() } else { log.Info("Tracing disabled.") } if profiler == true { + log.Info("Profiling enabled.") go initProfiling("productcatalogservice", "1.0.0") } else { log.Info("Profiling disabled.") diff --git a/src/recommendationservice/recommendation_server.py b/src/recommendationservice/recommendation_server.py index 351fe8f..634b8e7 100644 --- a/src/recommendationservice/recommendation_server.py +++ b/src/recommendationservice/recommendation_server.py @@ -26,6 +26,7 @@ import grpc from opencensus.trace.exporters import print_exporter from opencensus.trace.exporters import stackdriver_exporter from opencensus.trace.ext.grpc import server_interceptor +from opencensus.common.transports.async_ import AsyncTransport from opencensus.trace.samplers import always_on import demo_pb2 @@ -74,7 +75,7 @@ class RecommendationService(demo_pb2_grpc.RecommendationServiceServicer): indices = random.sample(range(num_products), num_return) # fetch product ids from indices prod_list = [filtered_products[i] for i in indices] - logger.info("[Recv ListRecommendations] product_ids={}".format(prod_list)) + # logger.info("[Recv ListRecommendations] product_ids={}".format(prod_list)) # build and return response response = demo_pb2.ListRecommendationsResponse() response.product_ids.extend(prod_list) @@ -90,8 +91,9 @@ if __name__ == "__main__": # Profiler try: - profiler = os.getenv('PROFILER', True) - if profiler != "True": + profiler = os.getenv('PROFILER', "true") + profiler = profiler.lower() + if profiler != "true": raise KeyError() else: logger.info("Profiler enabled.") @@ -99,38 +101,42 @@ if __name__ == "__main__": except KeyError: logger.info("Profiler disabled.") - # Trace - trace = os.getenv('TRACE', True) - if trace != True: + # Tracing + try: + trace = os.getenv('TRACE', "true") + trace = trace.lower() + if trace != "true": + raise KeyError() + else: + logger.info("Tracing enabled.") + sampler = always_on.AlwaysOnSampler() + exporter = stackdriver_exporter.StackdriverExporter( + project_id=os.environ.get('GCP_PROJECT_ID'), + transport=AsyncTransport) + tracer_interceptor = server_interceptor.OpenCensusServerInterceptor(sampler, exporter) + except KeyError: logger.info("Tracing disabled.") tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() - else: - logger.info("Tracing enabled.") - try: - sampler = always_on.AlwaysOnSampler() - exporter = stackdriver_exporter.StackdriverExporter( - project_id=os.environ.get('GCP_PROJECT_ID'), - transport=AsyncTransport) - tracer_interceptor = server_interceptor.OpenCensusServerInterceptor(sampler, exporter) - except: - tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() # Debugger - debugger = os.getenv('DEBUGGER', True) - if debugger != True: - logger.info("Debugger disabled.") - tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() - else: - logger.info("Debugger enabled.") - try: + try: + debugger = os.getenv('DEBUGGER', "true") + debugger = debugger.lower() + if debugger != "true": + raise KeyError() + else: + logger.info("Debugger enabled.") + try: googleclouddebugger.enable( module='recommendationserver', version='1.0.0' ) - except Exception, err: - logger.error("could not enable debugger") - logger.error(traceback.print_exc()) - pass + except Exception, err: + logger.error("Could not enable debugger") + logger.error(traceback.print_exc()) + pass + except KeyError: + logger.info("Debugger disabled.") port = os.environ.get('PORT', "8080") catalog_addr = os.environ.get('PRODUCT_CATALOG_SERVICE_ADDR', '') diff --git a/src/shippingservice/main.go b/src/shippingservice/main.go index 47807ee..4840511 100644 --- a/src/shippingservice/main.go +++ b/src/shippingservice/main.go @@ -78,11 +78,13 @@ func main() { } if trace == true { + log.Info("Tracing enabled.") go initTracing() } else { log.Info("Tracing disabled.") } if profiler == true { + log.Info("Profiling enabled.") go initProfiling("shippingservice", "1.0.0") } else { log.Info("Profiling disabled.")