From cfa32d0c109075014b38e9093fe02ea3ee661100 Mon Sep 17 00:00:00 2001 From: Megan O'Keefe Date: Sat, 15 Feb 2020 17:51:47 -0500 Subject: [PATCH] adservice - java --- kubernetes-manifests/adservice.yaml | 4 ++ .../src/main/java/hipstershop/AdService.java | 63 +++++++++++++++---- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/kubernetes-manifests/adservice.yaml b/kubernetes-manifests/adservice.yaml index 713ebcd..befd3d8 100644 --- a/kubernetes-manifests/adservice.yaml +++ b/kubernetes-manifests/adservice.yaml @@ -34,6 +34,10 @@ spec: env: - name: PORT value: "9555" + - name: OC_STATS + value: "True" + - name: OC_TRACE + value: "True" #- name: JAEGER_SERVICE_ADDR # value: "jaeger-collector:14268" resources: diff --git a/src/adservice/src/main/java/hipstershop/AdService.java b/src/adservice/src/main/java/hipstershop/AdService.java index 4817e1b..d9ec137 100644 --- a/src/adservice/src/main/java/hipstershop/AdService.java +++ b/src/adservice/src/main/java/hipstershop/AdService.java @@ -213,21 +213,17 @@ public final class AdService { .build(); } - private static void initStackdriver() { - logger.info("Initialize Stackdriver"); - + private static void initStats() { + boolean ocStats = Boolean.parseBoolean(System.getenv("OC_STATS")); + if (!ocStats) { + logger.info("Stats disabled."); + return; + } long sleepTime = 10; /* seconds */ int maxAttempts = 5; boolean statsExporterRegistered = false; - boolean traceExporterRegistered = false; - for (int i = 0; i < maxAttempts; i++) { try { - if (!traceExporterRegistered) { - StackdriverTraceExporter.createAndRegister( - StackdriverTraceConfiguration.builder().build()); - traceExporterRegistered = true; - } if (!statsExporterRegistered) { StackdriverStatsExporter.createAndRegister( StackdriverStatsConfiguration.builder() @@ -240,7 +236,7 @@ public final class AdService { logger.log( Level.WARN, "Failed to register Stackdriver Exporter." - + " Tracing and Stats data will not reported to Stackdriver. Error message: " + + " Stats data will not reported to Stackdriver. Error message: " + e.toString()); } else { logger.info("Attempt to register Stackdriver Exporter in " + sleepTime + " seconds "); @@ -252,9 +248,49 @@ public final class AdService { } } } - logger.info("Stackdriver initialization complete."); + logger.info("Stats enabled - Stackdriver Exporter initialized."); } + private static void initTracing() { + boolean ocTrace = Boolean.parseBoolean(System.getenv("OC_TRACE")); + if (!ocTrace) { + logger.info("Tracing disabled."); + return; + } + long sleepTime = 10; /* seconds */ + int maxAttempts = 5; + boolean traceExporterRegistered = false; + + for (int i = 0; i < maxAttempts; i++) { + try { + if (!traceExporterRegistered) { + StackdriverTraceExporter.createAndRegister( + StackdriverTraceConfiguration.builder().build()); + traceExporterRegistered = true; + } + } catch (Exception e) { + if (i == (maxAttempts - 1)) { + logger.log( + Level.WARN, + "Failed to register Stackdriver Exporter." + + " Tracing data will not reported to Stackdriver. Error message: " + + e.toString()); + } else { + logger.info("Attempt to register Stackdriver Exporter in " + sleepTime + " seconds "); + try { + Thread.sleep(TimeUnit.SECONDS.toMillis(sleepTime)); + } catch (Exception se) { + logger.log(Level.WARN, "Exception while sleeping" + se.toString()); + } + } + } + } + logger.info("Tracing enabled - Stackdriver exporter initialized."); + } + + + + private static void initJaeger() { String jaegerAddr = System.getenv("JAEGER_SERVICE_ADDR"); if (jaegerAddr != null && !jaegerAddr.isEmpty()) { @@ -282,7 +318,8 @@ public final class AdService { new Thread( new Runnable() { public void run() { - initStackdriver(); + initStats(); + initTracing(); } }) .start();