Cleanup and fixes

This commit is contained in:
Megan O'Keefe 2020-02-16 17:10:30 -05:00
parent a1165b0574
commit 156fa24a1e
18 changed files with 120 additions and 117 deletions

1
.gitignore vendored
View file

@ -9,3 +9,4 @@ pkg/
.idea .idea
.skaffold-*.yaml .skaffold-*.yaml
.kubernetes-manifests-*/ .kubernetes-manifests-*/
.project

View file

@ -38,10 +38,6 @@ spec:
# value: "False" # value: "False"
# - name: TRACE # - name: TRACE
# value: "False" # value: "False"
# - name: PROFILER
# value: "False"
# - name: DEBUGGER
# value: "False"
#- name: JAEGER_SERVICE_ADDR #- name: JAEGER_SERVICE_ADDR
# value: "jaeger-collector:14268" # value: "jaeger-collector:14268"
resources: resources:

View file

@ -57,8 +57,6 @@ spec:
# value: "False" # value: "False"
# - name: PROFILER # - name: PROFILER
# value: "False" # value: "False"
# - name: DEBUGGER
# value: "False"
# - name: JAEGER_SERVICE_ADDR # - name: JAEGER_SERVICE_ADDR
# value: "jaeger-collector:14268" # value: "jaeger-collector:14268"
resources: resources:

View file

@ -35,8 +35,6 @@ spec:
env: env:
- name: PORT - name: PORT
value: "7000" value: "7000"
# - name: STATS
# value: "False"
# - name: TRACE # - name: TRACE
# value: "False" # value: "False"
# - name: PROFILER # - name: PROFILER

View file

@ -34,14 +34,10 @@ spec:
env: env:
- name: PORT - name: PORT
value: "8080" value: "8080"
# - name: STATS # - name: TRACE
# value: "False" # value: "False"
# - name: TRACE # - name: PROFILER
# value: "False" # value: "False"
# - name: PROFILER
# value: "False"
# - name: DEBUGGER
# value: "False"
readinessProbe: readinessProbe:
periodSeconds: 5 periodSeconds: 5
exec: exec:

View file

@ -65,14 +65,10 @@ spec:
value: "checkoutservice:5050" value: "checkoutservice:5050"
- name: AD_SERVICE_ADDR - name: AD_SERVICE_ADDR
value: "adservice:9555" value: "adservice:9555"
# - name: STATS
# value: "False"
# - name: TRACE # - name: TRACE
# value: "False" # value: "False"
# - name: PROFILER # - name: PROFILER
# value: "False" # value: "False"
# - name: DEBUGGER
# value: "False"
# - name: JAEGER_SERVICE_ADDR # - name: JAEGER_SERVICE_ADDR
# value: "jaeger-collector:14268" # value: "jaeger-collector:14268"
resources: resources:

View file

@ -34,16 +34,14 @@ spec:
env: env:
- name: PORT - name: PORT
value: "3550" value: "3550"
# - name: STATS # - name: STATS
# value: "False" # value: "False"
# - name: TRACE # - name: TRACE
# value: "False" # value: "False"
# - name: PROFILER # - name: PROFILER
# value: "False" # value: "False"
# - name: DEBUGGER # - name: JAEGER_SERVICE_ADDR
# value: "False" # value: "jaeger-collector:14268"
# - name: JAEGER_SERVICE_ADDR
# value: "jaeger-collector:14268"
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:3550"] command: ["/bin/grpc_health_probe", "-addr=:3550"]

View file

@ -44,16 +44,12 @@ spec:
value: "8080" value: "8080"
- name: PRODUCT_CATALOG_SERVICE_ADDR - name: PRODUCT_CATALOG_SERVICE_ADDR
value: "productcatalogservice:3550" value: "productcatalogservice:3550"
# - name: STATS # - name: TRACE
# value: "False" # value: "False"
# - name: TRACE # - name: PROFILER
# value: "False" # value: "False"
# - name: PROFILER # - name: DEBUGGER
# value: "False" # value: "False"
# - name: DEBUGGER
# value: "False"
# - name: JAEGER_SERVICE_ADDR
# value: "jaeger-collector:14268"
resources: resources:
requests: requests:
cpu: 100m cpu: 100m

View file

@ -33,16 +33,14 @@ spec:
env: env:
- name: PORT - name: PORT
value: "50051" value: "50051"
# - name: STATS # - name: STATS
# value: "False" # value: "False"
# - name: TRACE # - name: TRACE
# value: "False" # value: "False"
# - name: PROFILER # - name: PROFILER
# value: "False" # value: "False"
# - name: DEBUGGER # - name: JAEGER_SERVICE_ADDR
# value: "False" # value: "jaeger-collector:14268"
# - name: JAEGER_SERVICE_ADDR
# value: "jaeger-collector:14268"
readinessProbe: readinessProbe:
periodSeconds: 5 periodSeconds: 5
exec: exec:

View file

@ -0,0 +1,2 @@
connection.project.dir=
eclipse.preferences.version=1

View file

@ -214,7 +214,11 @@ public final class AdService {
} }
private static void initStats() { 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) { if (!stats) {
logger.info("Stats disabled."); logger.info("Stats disabled.");
return; return;
@ -252,7 +256,11 @@ public final class AdService {
} }
private static void initTracing() { 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) { if (!trace) {
logger.info("Tracing disabled."); logger.info("Tracing disabled.");
return; return;

View file

@ -72,28 +72,29 @@ type checkoutService struct {
func main() { func main() {
stats, err := getenvBool("STATS") stats, err := getenvBool("STATS")
if err != nil { 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 stats = true
} }
trace, err := getenvBool("TRACE") trace, err := getenvBool("TRACE")
if err != nil { 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 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 { if trace == true {
log.Info("Tracing enabled.")
go initTracing() go initTracing()
} else { } else {
log.Info("Tracing disabled.") 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 { if profiler == true {
log.Info("Profiling enabled.")
go initProfiling("checkoutservice", "1.0.0") go initProfiling("checkoutservice", "1.0.0")
} else { } else {
log.Info("Profiling disabled.") log.Info("Profiling disabled.")
@ -256,7 +257,7 @@ func (cs *checkoutService) PlaceOrder(ctx context.Context, req *pb.PlaceOrderReq
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to charge card: %+v", err) 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) shippingTrackingID, err := cs.shipOrder(ctx, req.Address, prep.cartItems)
if err != nil { 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 { if err := cs.sendOrderConfirmation(ctx, req.Email, orderResult); err != nil {
log.Warnf("failed to send order confirmation to %q: %+v", req.Email, err) log.Warnf("failed to send order confirmation to %q: %+v", req.Email, err)
} else { } 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} resp := &pb.PlaceOrderResponse{Order: orderResult}
return resp, nil return resp, nil

View file

@ -31,10 +31,10 @@ if (profiler == "true") {
var trace = process.env.TRACE || "true"; var trace = process.env.TRACE || "true";
trace = trace.toLowerCase(); trace = trace.toLowerCase();
if (trace == "true") { if (trace == "true") {
console.log("Trace enabled.") console.log("Tracing enabled.")
require('@google-cloud/trace-agent').start(); require('@google-cloud/trace-agent').start();
} else { } else {
console.log("Trace disabled.") console.log("Tracing disabled.")
} }
var debug = process.env.DEBUGGER || "true"; var debug = process.env.DEBUGGER || "true";

View file

@ -29,7 +29,9 @@ from grpc_health.v1 import health_pb2
from grpc_health.v1 import health_pb2_grpc from grpc_health.v1 import health_pb2_grpc
from opencensus.trace.exporters import stackdriver_exporter from opencensus.trace.exporters import stackdriver_exporter
from opencensus.trace.exporters import print_exporter
from opencensus.trace.ext.grpc import server_interceptor from opencensus.trace.ext.grpc import server_interceptor
from opencensus.common.transports.async_ import AsyncTransport
from opencensus.trace.samplers import always_on from opencensus.trace.samplers import always_on
# import googleclouddebugger # import googleclouddebugger
@ -38,25 +40,6 @@ import googlecloudprofiler
from logger import getJSONLogger from logger import getJSONLogger
logger = getJSONLogger('emailservice-server') 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: # try:
# googleclouddebugger.enable( # googleclouddebugger.enable(
# module='emailserver', # module='emailserver',
@ -181,16 +164,36 @@ def initStackdriverProfiling():
logger.warning("Could not initialize Stackdriver Profiler after retrying, giving up") logger.warning("Could not initialize Stackdriver Profiler after retrying, giving up")
return return
if __name__ == '__main__': if __name__ == '__main__':
logger.info('starting the email service in dummy mode.') # Profiler
try: try:
enable_profiler = os.environ["ENABLE_PROFILER"] profiler = os.getenv('PROFILER', "true")
if enable_profiler != "1": profiler = profiler.lower()
if profiler != "true":
raise KeyError() raise KeyError()
else: else:
logger.info("Profiler enabled.")
initStackdriverProfiling() initStackdriverProfiling()
except KeyError: 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) start(dummy_mode = True)

View file

@ -108,11 +108,13 @@ func main() {
} }
if trace == true { if trace == true {
log.Info("Tracing enabled.")
go initTracing(log) go initTracing(log)
} else { } else {
log.Info("Tracing disabled.") log.Info("Tracing disabled.")
} }
if profiler == true { if profiler == true {
log.Info("Profiling enabled.")
go initProfiling(log, "frontend", "1.0.0") go initProfiling(log, "frontend", "1.0.0")
} else { } else {
log.Info("Profiling disabled") log.Info("Profiling disabled")

View file

@ -54,7 +54,7 @@ var (
port = "3550" port = "3550"
reloadCatalog bool reloadCatalog bool
stats bool stats bool
) )
func init() { func init() {
@ -96,11 +96,13 @@ func main() {
} }
if trace == true { if trace == true {
log.Info("Tracing enabled.")
go initTracing() go initTracing()
} else { } else {
log.Info("Tracing disabled.") log.Info("Tracing disabled.")
} }
if profiler == true { if profiler == true {
log.Info("Profiling enabled.")
go initProfiling("productcatalogservice", "1.0.0") go initProfiling("productcatalogservice", "1.0.0")
} else { } else {
log.Info("Profiling disabled.") log.Info("Profiling disabled.")

View file

@ -26,6 +26,7 @@ import grpc
from opencensus.trace.exporters import print_exporter from opencensus.trace.exporters import print_exporter
from opencensus.trace.exporters import stackdriver_exporter from opencensus.trace.exporters import stackdriver_exporter
from opencensus.trace.ext.grpc import server_interceptor from opencensus.trace.ext.grpc import server_interceptor
from opencensus.common.transports.async_ import AsyncTransport
from opencensus.trace.samplers import always_on from opencensus.trace.samplers import always_on
import demo_pb2 import demo_pb2
@ -74,7 +75,7 @@ class RecommendationService(demo_pb2_grpc.RecommendationServiceServicer):
indices = random.sample(range(num_products), num_return) indices = random.sample(range(num_products), num_return)
# fetch product ids from indices # fetch product ids from indices
prod_list = [filtered_products[i] for i in 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 # build and return response
response = demo_pb2.ListRecommendationsResponse() response = demo_pb2.ListRecommendationsResponse()
response.product_ids.extend(prod_list) response.product_ids.extend(prod_list)
@ -90,8 +91,9 @@ if __name__ == "__main__":
# Profiler # Profiler
try: try:
profiler = os.getenv('PROFILER', True) profiler = os.getenv('PROFILER', "true")
if profiler != "True": profiler = profiler.lower()
if profiler != "true":
raise KeyError() raise KeyError()
else: else:
logger.info("Profiler enabled.") logger.info("Profiler enabled.")
@ -99,38 +101,42 @@ if __name__ == "__main__":
except KeyError: except KeyError:
logger.info("Profiler disabled.") logger.info("Profiler disabled.")
# Trace # Tracing
trace = os.getenv('TRACE', True) try:
if trace != True: 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.") logger.info("Tracing disabled.")
tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() 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
debugger = os.getenv('DEBUGGER', True) try:
if debugger != True: debugger = os.getenv('DEBUGGER', "true")
logger.info("Debugger disabled.") debugger = debugger.lower()
tracer_interceptor = server_interceptor.OpenCensusServerInterceptor() if debugger != "true":
else: raise KeyError()
logger.info("Debugger enabled.") else:
try: logger.info("Debugger enabled.")
try:
googleclouddebugger.enable( googleclouddebugger.enable(
module='recommendationserver', module='recommendationserver',
version='1.0.0' version='1.0.0'
) )
except Exception, err: except Exception, err:
logger.error("could not enable debugger") logger.error("Could not enable debugger")
logger.error(traceback.print_exc()) logger.error(traceback.print_exc())
pass pass
except KeyError:
logger.info("Debugger disabled.")
port = os.environ.get('PORT', "8080") port = os.environ.get('PORT', "8080")
catalog_addr = os.environ.get('PRODUCT_CATALOG_SERVICE_ADDR', '') catalog_addr = os.environ.get('PRODUCT_CATALOG_SERVICE_ADDR', '')

View file

@ -78,11 +78,13 @@ func main() {
} }
if trace == true { if trace == true {
log.Info("Tracing enabled.")
go initTracing() go initTracing()
} else { } else {
log.Info("Tracing disabled.") log.Info("Tracing disabled.")
} }
if profiler == true { if profiler == true {
log.Info("Profiling enabled.")
go initProfiling("shippingservice", "1.0.0") go initProfiling("shippingservice", "1.0.0")
} else { } else {
log.Info("Profiling disabled.") log.Info("Profiling disabled.")