From c4323f6001e51956408e6f2d1b0c09d55e369b79 Mon Sep 17 00:00:00 2001 From: Cloud User Date: Mon, 5 Mar 2018 10:35:04 +0000 Subject: [PATCH] added some exercise files and fixed misprints --- java/src/main/java/lesson01/README.md | 8 +-- .../main/java/lesson01/exercise/Hello.java | 17 ++++++ .../main/java/lesson01/solution/Hello.java | 13 ++++- .../main/java/lesson02/exercise/Hello.java | 56 +++++++++++++++++++ java/src/main/java/lesson03/README.md | 8 +-- java/src/main/java/lesson04/README.md | 6 +- 6 files changed, 95 insertions(+), 13 deletions(-) create mode 100644 java/src/main/java/lesson01/exercise/Hello.java create mode 100644 java/src/main/java/lesson02/exercise/Hello.java diff --git a/java/src/main/java/lesson01/README.md b/java/src/main/java/lesson01/README.md index ccf549c..61cc15e 100644 --- a/java/src/main/java/lesson01/README.md +++ b/java/src/main/java/lesson01/README.md @@ -30,7 +30,6 @@ public class Hello { } String helloTo = args[0]; new Hello().sayHello(helloTo); - tracer.close(); } } ``` @@ -79,6 +78,7 @@ public class Hello { } String helloTo = args[0]; new Hello(GlobalTracer.get()).sayHello(helloTo); + tracer.close(); } } ``` @@ -137,10 +137,10 @@ the tracer as originating from a `hello-world` service. If we run the program now, we should see a span logged: ``` -$ ./run.sh lesson01.exercise.Hello Bryan -[lesson01.exercise.Hello.main()] INFO com.uber.jaeger.Configuration - Initialized tracer=Tracer(...) +$ ./run.sh lesson01.solution.Hello Bryan +[lesson01.solution.Hello.main()] INFO com.uber.jaeger.Configuration - Initialized tracer=Tracer(...) Hello, Bryan! -[lesson01.exercise.Hello.main()] INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: 76509ca0cd333055:76509ca0cd333055:0:1 - say-hello +[lesson01.solution.Hello.main()] INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: 76509ca0cd333055:76509ca0cd333055:0:1 - say-hello ``` If you have Jaeger backend running, you should be able to see the trace in the UI. diff --git a/java/src/main/java/lesson01/exercise/Hello.java b/java/src/main/java/lesson01/exercise/Hello.java new file mode 100644 index 0000000..2391d4f --- /dev/null +++ b/java/src/main/java/lesson01/exercise/Hello.java @@ -0,0 +1,17 @@ +package lesson01.exercise; + +public class Hello { + + private void sayHello(String helloTo) { + String helloStr = String.format("Hello, %s!", helloTo); + System.out.println(helloStr); + } + + public static void main(String[] args) { + if (args.length != 1) { + throw new IllegalArgumentException("Expecting one argument"); + } + String helloTo = args[0]; + new Hello().sayHello(helloTo); + } +} diff --git a/java/src/main/java/lesson01/solution/Hello.java b/java/src/main/java/lesson01/solution/Hello.java index 38c0edb..e56f25b 100644 --- a/java/src/main/java/lesson01/solution/Hello.java +++ b/java/src/main/java/lesson01/solution/Hello.java @@ -2,8 +2,10 @@ import io.opentracing.Span; import com.google.common.collect.ImmutableMap; +import com.uber.jaeger.Configuration; +import com.uber.jaeger.Configuration.ReporterConfiguration; +import com.uber.jaeger.Configuration.SamplerConfiguration; import com.uber.jaeger.Tracer; -import lib.Tracing; public class Hello { @@ -31,8 +33,15 @@ public static void main(String[] args) { throw new IllegalArgumentException("Expecting one argument"); } String helloTo = args[0]; - Tracer tracer = Tracing.init("hello-world"); + Tracer tracer = initTracer("hello-world"); new Hello(tracer).sayHello(helloTo); tracer.close(); } + + public static com.uber.jaeger.Tracer initTracer(String service) { + SamplerConfiguration samplerConfig = new SamplerConfiguration("const", 1); + ReporterConfiguration reporterConfig = new ReporterConfiguration(true, null, null, null, null); + Configuration config = new Configuration(service, samplerConfig, reporterConfig); + return (com.uber.jaeger.Tracer) config.getTracer(); + } } diff --git a/java/src/main/java/lesson02/exercise/Hello.java b/java/src/main/java/lesson02/exercise/Hello.java new file mode 100644 index 0000000..2017ea4 --- /dev/null +++ b/java/src/main/java/lesson02/exercise/Hello.java @@ -0,0 +1,56 @@ +package lesson02.exercise; + +import io.opentracing.Span; +import com.google.common.collect.ImmutableMap; +import com.uber.jaeger.Tracer; +import lib.Tracing; + +public class Hello { + + private final Tracer tracer; + + private Hello(Tracer tracer) { + this.tracer = tracer; + } + + private void sayHello(String helloTo) { + Span span = tracer.buildSpan("say-hello").startManual(); + span.setTag("hello-to", helloTo); + + String helloStr = formatString(span, helloTo); + printHello(span, helloStr); + + span.finish(); + } + + private String formatString(Span rootSpan, String helloTo) { + Span span = tracer.buildSpan("formatString").startManual(); + try { + String helloStr = String.format("Hello, %s!", helloTo); + span.log(ImmutableMap.of("event", "string-format", "value", helloStr)); + return helloStr; + } finally { + span.finish(); + } + } + + private void printHello(Span rootSpan, String helloStr) { + Span span = tracer.buildSpan("printHello").startManual(); + try { + System.out.println(helloStr); + span.log(ImmutableMap.of("event", "println")); + } finally { + span.finish(); + } + } + + public static void main(String[] args) { + if (args.length != 1) { + throw new IllegalArgumentException("Expecting one argument"); + } + String helloTo = args[0]; + Tracer tracer = Tracing.init("hello-world"); + new Hello(tracer).sayHello(helloTo); + tracer.close(); + } +} diff --git a/java/src/main/java/lesson03/README.md b/java/src/main/java/lesson03/README.md index 0f52687..01ef203 100644 --- a/java/src/main/java/lesson03/README.md +++ b/java/src/main/java/lesson03/README.md @@ -199,25 +199,25 @@ public String format(@QueryParam("helloTo") String helloTo, @Context HttpHeaders ### Take It For a Spin As before, first run the `formatter` and `publisher` apps in separate terminals. -Then run `lesson03.exercise.Hello`. You should see the outputs like this: +Then run `lesson03.solution.Hello`. You should see the outputs like this: ``` # client -$ ./run.sh lesson03.exercise.Hello Bryan +$ ./run.sh lesson03.solution.Hello Bryan INFO com.uber.jaeger.Configuration - Initialized tracer=Tracer(...) INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: 5fe2d9de96c3887a:72910f6018b1bd09:5fe2d9de96c3887a:1 - formatString INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: 5fe2d9de96c3887a:62d73167c129ecd7:5fe2d9de96c3887a:1 - printHello INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: 5fe2d9de96c3887a:5fe2d9de96c3887a:0:1 - say-hello # formatter -$ ./run.sh lesson03.exercise.Formatter server +$ ./run.sh lesson03.solution.Formatter server [skip noise] INFO org.eclipse.jetty.server.Server: Started @3968ms INFO com.uber.jaeger.reporters.LoggingReporter: Span reported: 5fe2d9de96c3887a:b73ff97ea68a36f8:72910f6018b1bd09:1 - format 127.0.0.1 - - "GET /format?helloTo=Bryan HTTP/1.1" 200 13 "-" "okhttp/3.9.0" 3 # publisher -$ ./run.sh lesson03.exercise.Publisher server +$ ./run.sh lesson03.solution.Publisher server [skip noise] INFO org.eclipse.jetty.server.Server: Started @3388ms Hello, Bryan! diff --git a/java/src/main/java/lesson04/README.md b/java/src/main/java/lesson04/README.md index 72de4b5..3ca6f63 100644 --- a/java/src/main/java/lesson04/README.md +++ b/java/src/main/java/lesson04/README.md @@ -69,21 +69,21 @@ with two arguments, e.g. `Bryan Bonjour`. The `publisher` should print `Bonjour, ``` # client -$ ./run.sh lesson04.exercise.Hello Bryan Bonjour +$ ./run.sh lesson04.solution.Hello Bryan Bonjour INFO com.uber.jaeger.Configuration - Initialized tracer=Tracer(...) INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: e6ee8a816c8386ce:ef06ddba375ff053:e6ee8a816c8386ce:1 - formatString INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: e6ee8a816c8386ce:20cdfed1d23892c1:e6ee8a816c8386ce:1 - printHello INFO com.uber.jaeger.reporters.LoggingReporter - Span reported: e6ee8a816c8386ce:e6ee8a816c8386ce:0:1 - say-hello # formatter -$ ./run.sh lesson04.exercise.Formatter server +$ ./run.sh lesson04.solution.Formatter server [skip noise] INFO org.eclipse.jetty.server.Server: Started @3508ms INFO com.uber.jaeger.reporters.LoggingReporter: Span reported: e6ee8a816c8386ce:cd2c1d243ddf319b:ef06ddba375ff053:1 - format 127.0.0.1 - - "GET /format?helloTo=Bryan HTTP/1.1" 200 15 "-" "okhttp/3.9.0" 69 # publisher -$ ./run.sh lesson03.exercise.Publisher server +$ ./run.sh lesson03.solution.Publisher server [skip noise] INFO org.eclipse.jetty.server.Server: Started @3388ms Bonjour, Bryan!