From 14f1827371858d668b50d3311465bce0a6d97e07 Mon Sep 17 00:00:00 2001 From: amit kumar Date: Wed, 18 Aug 2021 19:01:22 +0200 Subject: [PATCH 1/3] Jaeger sample --- addons/jaeger/Web-Service1/pom.xml | 109 ++++ .../domain/model/aggregate/Aggregate.java | 18 + .../domain/services/MyMetricFactory.java | 45 ++ .../services/RequestBuilderCarrier.java | 25 + .../interfaces/rest/NameGeneratorService.java | 64 ++ .../src/main/resources/application.yaml | 76 +++ .../interfaces/rest/HelloResourceIT.java | 21 + addons/jaeger/Web-Service2/pom.xml | 109 ++++ .../domain/model/aggregate/Aggregate.java | 18 + .../domain/services/MyMetricFactory.java | 41 ++ .../services/RequestBuilderCarrier.java | 25 + .../interfaces/rest/AnimalNameService.java | 63 ++ .../src/main/resources/animals.txt | 594 ++++++++++++++++++ .../src/main/resources/application.yaml | 76 +++ .../interfaces/rest/HelloResourceIT.java | 21 + addons/jaeger/Web-Service3/pom.xml | 108 ++++ .../domain/model/aggregate/Aggregate.java | 18 + .../domain/services/MyMetricFactory.java | 41 ++ .../services/RequestBuilderCarrier.java | 25 + .../interfaces/rest/ScientistNameService.java | 69 ++ .../src/main/resources/application.yaml | 74 +++ .../src/main/resources/scientists.txt | 417 ++++++++++++ .../interfaces/rest/HelloResourceIT.java | 21 + 23 files changed, 2078 insertions(+) create mode 100644 addons/jaeger/Web-Service1/pom.xml create mode 100644 addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java create mode 100644 addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java create mode 100644 addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java create mode 100644 addons/jaeger/Web-Service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java create mode 100644 addons/jaeger/Web-Service1/src/main/resources/application.yaml create mode 100644 addons/jaeger/Web-Service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java create mode 100644 addons/jaeger/Web-Service2/pom.xml create mode 100644 addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java create mode 100644 addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java create mode 100644 addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java create mode 100644 addons/jaeger/Web-Service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java create mode 100644 addons/jaeger/Web-Service2/src/main/resources/animals.txt create mode 100644 addons/jaeger/Web-Service2/src/main/resources/application.yaml create mode 100644 addons/jaeger/Web-Service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java create mode 100644 addons/jaeger/Web-Service3/pom.xml create mode 100644 addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java create mode 100644 addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java create mode 100644 addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java create mode 100644 addons/jaeger/Web-Service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java create mode 100644 addons/jaeger/Web-Service3/src/main/resources/application.yaml create mode 100644 addons/jaeger/Web-Service3/src/main/resources/scientists.txt create mode 100644 addons/jaeger/Web-Service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java diff --git a/addons/jaeger/Web-Service1/pom.xml b/addons/jaeger/Web-Service1/pom.xml new file mode 100644 index 0000000..ec66b7c --- /dev/null +++ b/addons/jaeger/Web-Service1/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + + + org.seedstack.samples + samples + 20.11-SNAPSHOT + ../../pom.xml + + + Jaeger-sample-1 + + + 6.1.6.Final + 1.2.3 + 3.12.1 + 3.3.0 + + + + + + org.seedstack + seedstack-maven-plugin + + + build-capsule + + package + + + + + + + + + + + org.seedstack.seed + seed-core + + + org.seedstack.seed + seed-security-core + + + org.seedstack.seed + seed-web-core + + + org.seedstack.seed + seed-web-security + + + org.seedstack.seed + seed-rest-jersey2 + + + org.seedstack.seed + seed-web-undertow + + + org.seedstack.business + business-core + + + org.seedstack.addons.modelmapper + modelmapper + + + ch.qos.logback + logback-classic + ${logback.version} + + + org.hibernate.validator + hibernate-validator + ${hibernate-validator.version} + + + + org.seedstack.seed + seed-testing-junit4 + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + io.rest-assured + rest-assured + ${rest-assured.version} + test + + + + org.seedstack.addons.jaeger + jaeger + 1.0.0-SNAPSHOT + + + + diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java new file mode 100644 index 0000000..1a2a644 --- /dev/null +++ b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java @@ -0,0 +1,18 @@ +package org.generated.project.domain.model.aggregate; + +import org.seedstack.business.domain.BaseAggregateRoot; + + +public class Aggregate extends BaseAggregateRoot { + private String id; + + + public Aggregate(String id) { + this.id = id; + } + + @Override + public String getId() { + return id; + } +} diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java new file mode 100644 index 0000000..87bebbb --- /dev/null +++ b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java @@ -0,0 +1,45 @@ +/* + * Creation : 9 Jun 2021 + */ +package org.generated.project.domain.services; + +import java.util.Map; + +import io.jaegertracing.internal.metrics.Counter; +import io.jaegertracing.internal.metrics.Gauge; +import io.jaegertracing.internal.metrics.Timer; +import io.jaegertracing.spi.MetricsFactory; + +public class MyMetricFactory implements MetricsFactory { + + @Override + public Counter createCounter(String name, Map tags) { + return new Counter() { + + @Override + public void inc(long delta) { + } + }; + } + + @Override + public Timer createTimer(final String name, final Map tags) { + return new Timer() { + + @Override + public void durationMicros(long time) { + } + }; + } + + @Override + public Gauge createGauge(final String name, final Map tags) { + return new Gauge() { + + @Override + public void update(long amount) { + } + }; + } + +} \ No newline at end of file diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java new file mode 100644 index 0000000..67531a1 --- /dev/null +++ b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java @@ -0,0 +1,25 @@ +package org.generated.project.domain.services; + +import io.opentracing.propagation.TextMap; +import okhttp3.Request; + +import java.util.Iterator; +import java.util.Map; + +public class RequestBuilderCarrier implements TextMap { + private final Request.Builder requestBuilder; + + public RequestBuilderCarrier(Request.Builder requestBuilder) { + this.requestBuilder = requestBuilder; + } + + @Override + public Iterator> iterator() { + throw new UnsupportedOperationException("carrier is writer-only"); + } + + @Override + public void put(String key, String value) { + requestBuilder.addHeader(key, value); + } +} diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java new file mode 100644 index 0000000..099601e --- /dev/null +++ b/addons/jaeger/Web-Service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java @@ -0,0 +1,64 @@ +package org.generated.project.interfaces.rest; + +import java.io.IOException; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +import org.generated.project.domain.services.RequestBuilderCarrier; +import org.seedstack.jaeger.ServiceName; + +import io.opentracing.Span; +import io.opentracing.SpanContext; +import io.opentracing.Tracer; +import io.opentracing.propagation.Format; +import io.opentracing.propagation.TextMap; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +@Path("/api/v1/names") +public class NameGeneratorService { + + OkHttpClient client = new OkHttpClient(); + + @ServiceName("name-svc") + private Tracer tracer; + + @GET + @Path("/random") + public String name() throws Exception { + + Span span = tracer.buildSpan("generate-name").start(); + + Span scientistSpan = tracer.buildSpan("scientist-name-service").asChildOf(span).start(); + String scientist = makeRequest("http://localhost:8090/api/v1/scientists/random", scientistSpan); + scientistSpan.finish(); + + Span animalSpan = tracer.buildSpan("animal-name-service").asChildOf(span).start(); + String animal = makeRequest("http://localhost:9000/api/v1/animals/random", animalSpan); + animalSpan.finish(); + + String name = scientist + "<-->" + animal; + span.setTag("name", "HeynameTag"); + span.finish(); + return name; + } + + private String makeRequest(String url, Span span) throws IOException { + Request.Builder requestBuilder = new Request.Builder().url(url); + + SpanContext spanContext = span.context(); + Format format = Format.Builtin.HTTP_HEADERS; + RequestBuilderCarrier requestBuilderCarriernew = new RequestBuilderCarrier(requestBuilder); + + tracer.inject(spanContext, format, requestBuilderCarriernew); + + Request request = requestBuilder.build(); + + try (Response response = client.newCall(request).execute()) { + return response.body().string(); + } + } + +} \ No newline at end of file diff --git a/addons/jaeger/Web-Service1/src/main/resources/application.yaml b/addons/jaeger/Web-Service1/src/main/resources/application.yaml new file mode 100644 index 0000000..be90acb --- /dev/null +++ b/addons/jaeger/Web-Service1/src/main/resources/application.yaml @@ -0,0 +1,76 @@ +# Put main configuration in this file +# See http://seedstack.org/docs/seed/configuration for more information + +logging: + level: INFO + +application: + # Unique identifier of the application accross your organization + id: Web-Service1 + # Make sure all your application base packages are listed below + basePackages: [ org.generated.project ] + +security: + # The security configuration realm uses the 'users' section below (replace it with a more useful realm later) + # See http://seedstack.org/docs/seed/manual/security/#realms for more information + realms: ConfigurationRealm + users: + # A default 'demo' user is defined with password 'demo' + demo: demo +web: + server: + host: localhost + port: 8080 + + # The 'urls' section below in used to secure HTTP requests + # See http://seedstack.org/docs/seed/manual/security/#http-access-control for more information + urls: + # - + # pattern: /api/** + # filters: authcBasic + + +jaeger: + #whether using Jaeger in devMode (boolean ) + devMode: false + samplerConfig: + #The sampler type ( String ). Valid values: remote (default),ratelimiting, probabilistic, const. Optional ( String ) + samplerType: const + #The integer or floating point value that makes sense for the correct samplerType (Number). Optional ( String ) + samplerParam: 1 + #The HTTP host:port when using the remote controlled sampler. optional, ( String ) + samplerManagerHostPort: 128.0.0.1 + senderConfig: + #The hostname for communicating with agent via UDP ( String ) + agentHost: 127.0.0.1 + #The port for communicating with agent via UDP ( String ) + agentPort: 6831 + #The traces endpoint, in case the client should connect directly to the Collector, like http://jaeger-collector:14268/api/traces ( String ) + endPoint: http://localhost:14268/api/traces + #Authentication Token to send as "Bearer" to the endpoint ( String ) + authToken: myauthtoken + #Username to send as part of "Basic" authentication to the endpoint ( String ) + userName: myusername + #Password to send as part of "Basic" authentication to the endpoint ( String ) + password: mypassword + reporterConfig: + #Whether the reporter should also log the spans ( boolean ) + reporterLogSpans: true + #The reporter's maximum queue size ( String ) + reporterMaxQueueSize: 10000 + #The reporter's flush interval (ms) ( String ) + reporterFlushInterval: 1000 + codecConfig: + #Comma separated list of formats to use for propagating the trace context.Defaults to the standard Jaeger format.Valid values are jaeger, b3 + propagation: jaeger,b3 + tracerConfig: + #Opt-in to use 128 bit traceIds. By default, uses 64 bits ( boolean ). + traceId128Bit: false + #The fully qualified class name of the Metrics factory (Optional). (Class) + metricsFactory: #org.generated.project.domain.services.MyMetricFactory + #A comma separated list of name = value tracer level tags, which get added to all reported spans.default is optional + tracerTags: + tracerTag1: TracerValue1 + tracerTag2: TracerValue2 + + diff --git a/addons/jaeger/Web-Service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java b/addons/jaeger/Web-Service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java new file mode 100644 index 0000000..ca4962f --- /dev/null +++ b/addons/jaeger/Web-Service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java @@ -0,0 +1,21 @@ +package org.generated.project.interfaces.rest; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.seedstack.seed.Configuration; +import org.seedstack.seed.testing.junit4.SeedITRunner; +import org.seedstack.seed.undertow.LaunchWithUndertow; + +@RunWith(SeedITRunner.class) +@LaunchWithUndertow +public class HelloResourceIT { + @Configuration("runtime.web.baseUrl") + private String baseUrl; + + @Test + public void testHelloWorld() throws Exception { + // Response response = given().auth().basic("demo", "demo").expect().statusCode(200).when().get(baseUrl + "/hello"); + + // assertThat(response.body().asString()).isEqualTo("Hello World!"); + } +} diff --git a/addons/jaeger/Web-Service2/pom.xml b/addons/jaeger/Web-Service2/pom.xml new file mode 100644 index 0000000..163b8b8 --- /dev/null +++ b/addons/jaeger/Web-Service2/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + + + org.seedstack.samples + samples + 20.11-SNAPSHOT + ../../pom.xml + + + Jaeger-sample-2 + + + 6.1.6.Final + 1.2.3 + 3.12.1 + 3.3.0 + + + + + + org.seedstack + seedstack-maven-plugin + + + build-capsule + + package + + + + + + + + + + + org.seedstack.seed + seed-core + + + org.seedstack.seed + seed-security-core + + + org.seedstack.seed + seed-web-core + + + org.seedstack.seed + seed-web-security + + + org.seedstack.seed + seed-rest-jersey2 + + + org.seedstack.seed + seed-web-undertow + + + org.seedstack.business + business-core + + + org.seedstack.addons.modelmapper + modelmapper + + + ch.qos.logback + logback-classic + ${logback.version} + + + org.hibernate.validator + hibernate-validator + ${hibernate-validator.version} + + + + org.seedstack.seed + seed-testing-junit4 + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + io.rest-assured + rest-assured + ${rest-assured.version} + test + + + + org.seedstack.addons.jaeger + jaeger + 1.0.0-SNAPSHOT + + + + diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java new file mode 100644 index 0000000..1a2a644 --- /dev/null +++ b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java @@ -0,0 +1,18 @@ +package org.generated.project.domain.model.aggregate; + +import org.seedstack.business.domain.BaseAggregateRoot; + + +public class Aggregate extends BaseAggregateRoot { + private String id; + + + public Aggregate(String id) { + this.id = id; + } + + @Override + public String getId() { + return id; + } +} diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java new file mode 100644 index 0000000..d01e2cb --- /dev/null +++ b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java @@ -0,0 +1,41 @@ +/* + * Creation : 9 Jun 2021 + */ +package org.generated.project.domain.services; + +import java.util.Map; + +import io.jaegertracing.internal.metrics.Counter; +import io.jaegertracing.internal.metrics.Gauge; +import io.jaegertracing.internal.metrics.Timer; +import io.jaegertracing.spi.MetricsFactory; + +public class MyMetricFactory implements MetricsFactory { + + @Override + public Counter createCounter(String name, Map tags) { + return new Counter() { + @Override + public void inc(long delta) { + } + }; + } + + @Override + public Timer createTimer(final String name, final Map tags) { + return new Timer() { + @Override + public void durationMicros(long time) { + } + }; + } + + @Override + public Gauge createGauge(final String name, final Map tags) { + return new Gauge() { + @Override + public void update(long amount) { + } + }; + } +} \ No newline at end of file diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java new file mode 100644 index 0000000..67531a1 --- /dev/null +++ b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java @@ -0,0 +1,25 @@ +package org.generated.project.domain.services; + +import io.opentracing.propagation.TextMap; +import okhttp3.Request; + +import java.util.Iterator; +import java.util.Map; + +public class RequestBuilderCarrier implements TextMap { + private final Request.Builder requestBuilder; + + public RequestBuilderCarrier(Request.Builder requestBuilder) { + this.requestBuilder = requestBuilder; + } + + @Override + public Iterator> iterator() { + throw new UnsupportedOperationException("carrier is writer-only"); + } + + @Override + public void put(String key, String value) { + requestBuilder.addHeader(key, value); + } +} diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java new file mode 100644 index 0000000..6bd48eb --- /dev/null +++ b/addons/jaeger/Web-Service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java @@ -0,0 +1,63 @@ +package org.generated.project.interfaces.rest; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.stream.Collectors; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.MultivaluedMap; + +import org.seedstack.jaeger.ServiceName; + +import io.opentracing.Span; +import io.opentracing.SpanContext; +import io.opentracing.Tracer; +import io.opentracing.propagation.Format; +import io.opentracing.propagation.TextMapAdapter; + +@Path("/api/v1/animals") +public class AnimalNameService { + + private final List animalNames; + private Random random; + + @ServiceName("animal-svc") + private Tracer tracer; + + public AnimalNameService() throws IOException { + + InputStream inputStream = this.getClass().getResourceAsStream("/animals.txt"); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { + animalNames = reader.lines().collect(Collectors.toList()); + } + random = new Random(); + } + + @GET + @Path("/random") + public String name(@Context HttpHeaders headers) { + + MultivaluedMap rawHeaders = headers.getRequestHeaders(); + final Map header = new HashMap<>(); + + for (Map.Entry> entry : rawHeaders.entrySet()) { + header.put(entry.getKey(), entry.getValue().get(0)); + } + + SpanContext parentContext = tracer.extract(Format.Builtin.HTTP_HEADERS, new TextMapAdapter(header)); + Span span = tracer.buildSpan("find-random-animal-name").asChildOf(parentContext).start(); + span.setTag("animal", "HeyanimalTag"); + String name = animalNames.get(random.nextInt(animalNames.size())); + span.finish(); + return name; + } +} diff --git a/addons/jaeger/Web-Service2/src/main/resources/animals.txt b/addons/jaeger/Web-Service2/src/main/resources/animals.txt new file mode 100644 index 0000000..603a075 --- /dev/null +++ b/addons/jaeger/Web-Service2/src/main/resources/animals.txt @@ -0,0 +1,594 @@ +Aardvark +Abyssinian +Adelie Penguin +Affenpinscher +Afghan Hound +African Bush Elephant +African Civet +African Clawed Frog +African Forest Elephant +African Palm Civet +African Penguin +African Tree Toad +African Wild Dog +Ainu Dog +Airedale Terrier +Akbash +Akita +Alaskan Malamute +Albatross +Aldabra Giant Tortoise +Alligator +Alpine Dachsbracke +American Bulldog +American Cocker Spaniel +American Coonhound +American Eskimo Dog +American Foxhound +American Pit Bull Terrier +American Staffordshire Terrier +American Water Spaniel +Anatolian Shepherd Dog +Angelfish +Ant +Anteater +Antelope +Appenzeller Dog +Arctic Fox +Arctic Hare +Arctic Wolf +Armadillo +Asian Elephant +Asian Giant Hornet +Asian Palm Civet +Asiatic Black Bear +Australian Cattle Dog +Australian Kelpie Dog +Australian Mist +Australian Shepherd +Australian Terrier +Avocet +Axolotl +Aye Aye +Baboon +Bactrian Camel +Badger +Balinese +Banded Palm Civet +Bandicoot +Barb +Barn Owl +Barnacle +Barracuda +Basenji Dog +Basking Shark +Basset Hound +Bat +Bavarian Mountain Hound +Beagle +Bear +Bearded Collie +Bearded Dragon +Beaver +Bedlington Terrier +Beetle +Bengal Tiger +Bernese Mountain Dog +Bichon Frise +Binturong +Bird +Birds Of Paradise +Birman +Bison +Black Bear +Black Rhinoceros +Black Russian Terrier +Black Widow Spider +Bloodhound +Blue Lacy Dog +Blue Whale +Bluetick Coonhound +Bobcat +Bolognese Dog +Bombay +Bongo +Bonobo +Booby +Border Collie +Border Terrier +Bornean Orang-utan +Borneo Elephant +Boston Terrier +Bottle Nosed Dolphin +Boxer Dog +Boykin Spaniel +Brazilian Terrier +Brown Bear +Budgerigar +Buffalo +Bull Mastiff +Bull Shark +Bull Terrier +Bulldog +Bullfrog +Bumble Bee +Burmese +Burrowing Frog +Butterfly +Butterfly Fish +Caiman +Caiman Lizard +Cairn Terrier +Camel +Canaan Dog +Capybara +Caracal +Carolina Dog +Cassowary +Cat +Caterpillar +Catfish +Cavalier King Charles Spaniel +Centipede +Cesky Fousek +Chameleon +Chamois +Cheetah +Chesapeake Bay Retriever +Chicken +Chihuahua +Chimpanzee +Chinchilla +Chinese Crested Dog +Chinook +Chinstrap Penguin +Chipmunk +Chow Chow +Cichlid +Clouded Leopard +Clown Fish +Clumber Spaniel +Coati +Cockroach +Collared Peccary +Collie +Common Buzzard +Common Frog +Common Loon +Common Toad +Coral +Cottontop Tamarin +Cougar +Cow +Coyote +Crab +Crab-Eating Macaque +Crane +Crested Penguin +Crocodile +Cross River Gorilla +Curly Coated Retriever +Cuscus +Cuttlefish +Dachshund +Dalmatian +Darwin's Frog +Deer +Desert Tortoise +Deutsche Bracke +Dhole +Dingo +Discus +Doberman Pinscher +Dodo +Dog +Dogo Argentino +Dogue De Bordeaux +Dolphin +Donkey +Dormouse +Dragonfly +Drever +Duck +Dugong +Dunker +Dusky Dolphin +Dwarf Crocodile +Eagle +Earwig +Eastern Gorilla +Eastern Lowland Gorilla +Echidna +Edible Frog +Egyptian Mau +Electric Eel +Elephant +Elephant Seal +Elephant Shrew +Emperor Penguin +Emperor Tamarin +Emu +English Cocker Spaniel +English Shepherd +English Springer Spaniel +Entlebucher Mountain Dog +Epagneul Pont Audemer +Eskimo Dog +Estrela Mountain Dog +Falcon +Fennec Fox +Ferret +Field Spaniel +Fin Whale +Finnish Spitz +Fire-Bellied Toad +Fish +Fishing Cat +Flamingo +Flat Coat Retriever +Flounder +Fly +Flying Squirrel +Fossa +Fox +Fox Terrier +French Bulldog +Frigatebird +Frilled Lizard +Frog +Fur Seal +Galapagos Penguin +Galapagos Tortoise +Gar +Gecko +Gentoo Penguin +Geoffroys Tamarin +Gerbil +German Pinscher +German Shepherd +Gharial +Giant African Land Snail +Giant Clam +Giant Panda Bear +Giant Schnauzer +Gibbon +Gila Monster +Giraffe +Glass Lizard +Glow Worm +Goat +Golden Lion Tamarin +Golden Oriole +Golden Retriever +Goose +Gopher +Gorilla +Grasshopper +Great Dane +Great White Shark +Greater Swiss Mountain Dog +Green Bee-Eater +Greenland Dog +Grey Mouse Lemur +Grey Reef Shark +Grey Seal +Greyhound +Grizzly Bear +Grouse +Guinea Fowl +Guinea Pig +Guppy +Hammerhead Shark +Hamster +Hare +Harrier +Havanese +Hedgehog +Hercules Beetle +Hermit Crab +Heron +Highland Cattle +Himalayan +Hippopotamus +Honey Bee +Horn Shark +Horned Frog +Horse +Horseshoe Crab +Howler Monkey +Human +Humboldt Penguin +Hummingbird +Humpback Whale +Hyena +Ibis +Ibizan Hound +Iguana +Impala +Indian Elephant +Indian Palm Squirrel +Indian Rhinoceros +Indian Star Tortoise +Indochinese Tiger +Indri +Insect +Irish Setter +Irish WolfHound +Jack Russel +Jackal +Jaguar +Japanese Chin +Japanese Macaque +Javan Rhinoceros +Javanese +Jellyfish +Kakapo +Kangaroo +Keel Billed Toucan +Killer Whale +King Crab +King Penguin +Kingfisher +Kiwi +Koala +Komodo Dragon +Kudu +Labradoodle +Labrador Retriever +Ladybird +Leaf-Tailed Gecko +Lemming +Lemur +Leopard +Leopard Cat +Leopard Seal +Leopard Tortoise +Liger +Lion +Lionfish +Little Penguin +Lizard +Llama +Lobster +Long-Eared Owl +Lynx + +Macaroni Penguin +Macaw +Magellanic Penguin +Magpie +Maine Coon +Malayan Civet +Malayan Tiger +Maltese +Manatee +Mandrill +Manta Ray +Marine Toad +Markhor +Marsh Frog +Masked Palm Civet +Mastiff +Mayfly +Meerkat +Millipede +Minke Whale +Mole +Molly +Mongoose +Mongrel +Monitor Lizard +Monkey +Monte Iberia Eleuth +Moorhen +Moose +Moray Eel +Moth +Mountain Gorilla +Mountain Lion +Mouse +Mule +Neanderthal +Neapolitan Mastiff +Newfoundland +Newt +Nightingale +Norfolk Terrier +Norwegian Forest +Numbat +Nurse Shark +Ocelot +Octopus +Okapi +Old English Sheepdog +Olm +Opossum +Orang-utan +Ostrich +Otter +Oyster +Pademelon +Panther +Parrot +Patas Monkey +Peacock +Pekingese +Pelican +Penguin +Persian +Pheasant +Pied Tamarin +Pig +Pika +Pike +Pink Fairy Armadillo +Piranha +Platypus +Pointer +Poison Dart Frog +Polar Bear +Pond Skater +Poodle +Pool Frog +Porcupine +Possum +Prawn +Proboscis Monkey +Puffer Fish +Puffin +Pug +Puma +Purple Emperor +Puss Moth +Pygmy Hippopotamus +Pygmy Marmoset +Quail +Quetzal +Quokka +Quoll +Rabbit +Raccoon +Raccoon Dog +Radiated Tortoise +Ragdoll +Rat +Rattlesnake +Red Knee Tarantula +Red Panda +Red Wolf +Red-handed Tamarin +Reindeer +Rhinoceros +River Dolphin +River Turtle +Robin +Rock Hyrax +Rockhopper Penguin +Roseate Spoonbill +Rottweiler +Royal Penguin +Russian Blue +Sabre-Toothed Tiger +Saint Bernard +Salamander +Sand Lizard +Saola +Scorpion +Scorpion Fish +Sea Dragon +Sea Lion +Sea Otter +Sea Slug +Sea Squirt +Sea Turtle +Sea Urchin +Seahorse +Seal +Serval +Sheep +Shih Tzu +Shrimp +Siamese +Siamese Fighting Fish +Siberian +Siberian Husky +Siberian Tiger +Silver Dollar +Skunk +Sloth +Slow Worm +Snail +Snake +Snapping Turtle +Snowshoe +Snowy Owl +Somali +South China Tiger +Spadefoot Toad +Sparrow +Spectacled Bear +Sperm Whale +Spider Monkey +Spiny Dogfish +Sponge +Squid +Squirrel +Squirrel Monkey +Sri Lankan Elephant +Staffordshire Bull Terrier +Stag Beetle +Starfish +Stellers Sea Cow +Stick Insect +Stingray +Stoat +Striped Rocket Frog +Sumatran Elephant +Sumatran Orang-utan +Sumatran Rhinoceros +Sumatran Tiger +Sun Bear +Swan +Tang +Tapanuli Orang-utan +Tapir +Tarsier +Tasmanian Devil +Tawny Owl +Termite +Tetra +Thorny Devil +Tibetan Mastiff +Tiffany +Tiger +Tiger Salamander +Tiger Shark +Tortoise +Toucan +Tree Frog +Tropicbird +Tuatara +Turkey +Turkish Angora +Uakari +Uguisu +Umbrellabird +Vampire Bat +Vervet Monkey +Vulture +Wallaby +Walrus +Warthog +Wasp +Water Buffalo +Water Dragon +Water Vole +Weasel +Welsh Corgi +West Highland Terrier +Western Gorilla +Western Lowland Gorilla +Whale Shark +Whippet +White Faced Capuchin +White Rhinoceros +White Tiger +Wild Boar +Wildebeest +Wolf +Wolverine +Wombat +Woodlouse +Woodpecker +Woolly Mammoth +Woolly Monkey +Wrasse +X-Ray Tetra +Yak +Yellow-Eyed Penguin +Yorkshire Terrier +Zebra +Zebra Shark +Zebu +Zonkey +Zorse \ No newline at end of file diff --git a/addons/jaeger/Web-Service2/src/main/resources/application.yaml b/addons/jaeger/Web-Service2/src/main/resources/application.yaml new file mode 100644 index 0000000..9d1e385 --- /dev/null +++ b/addons/jaeger/Web-Service2/src/main/resources/application.yaml @@ -0,0 +1,76 @@ +# Put main configuration in this file +# See http://seedstack.org/docs/seed/configuration for more information + +logging: + level: INFO + +application: + # Unique identifier of the application accross your organization + id: Web-Service2 + # Make sure all your application base packages are listed below + basePackages: [ org.generated.project ] + +security: + # The security configuration realm uses the 'users' section below (replace it with a more useful realm later) + # See http://seedstack.org/docs/seed/manual/security/#realms for more information + realms: ConfigurationRealm + users: + # A default 'demo' user is defined with password 'demo' + demo: demo +web: + server: + host: localhost + port: 9000 + + # The 'urls' section below in used to secure HTTP requests + # See http://seedstack.org/docs/seed/manual/security/#http-access-control for more information + urls: + # - + # pattern: /api/** + # filters: authcBasic + + +jaeger: + #whether using Jaeger in devMode (boolean ) + devMode: false + samplerConfig: + #The sampler type ( String ). Valid values: remote (default),ratelimiting, probabilistic, const. Optional ( String ) + samplerType: const + #The integer or floating point value that makes sense for the correct samplerType (Number). Optional ( String ) + samplerParam: 1 + #The HTTP host:port when using the remote controlled sampler. optional, ( String ) + samplerManagerHostPort: 128.0.0.1 + senderConfig: + #The hostname for communicating with agent via UDP ( String ) + agentHost: 127.0.0.1 + #The port for communicating with agent via UDP ( String ) + agentPort: 6831 + #The traces endpoint, in case the client should connect directly to the Collector, like http://jaeger-collector:14268/api/traces ( String ) + endPoint: http://localhost:14268/api/traces + #Authentication Token to send as "Bearer" to the endpoint ( String ) + authToken: myauthtoken + #Username to send as part of "Basic" authentication to the endpoint ( String ) + userName: myusername + #Password to send as part of "Basic" authentication to the endpoint ( String ) + password: mypassword + reporterConfig: + #Whether the reporter should also log the spans ( boolean ) + reporterLogSpans: true + #The reporter's maximum queue size ( String ) + reporterMaxQueueSize: 10000 + #The reporter's flush interval (ms) ( String ) + reporterFlushInterval: 1000 + codecConfig: + #Comma separated list of formats to use for propagating the trace context.Defaults to the standard Jaeger format.Valid values are jaeger, b3 + propagation: jaeger,b3 + tracerConfig: + #Opt-in to use 128 bit traceIds. By default, uses 64 bits ( boolean ). + traceId128Bit: false + #The fully qualified class name of the Metrics factory (Optional). (Class) + metricsFactory: #org.generated.project.domain.services.MyMetricFactory + #A comma separated list of name = value tracer level tags, which get added to all reported spans.default is optional + tracerTags: + tracerTag1: TracerValue1 + tracerTag2: TracerValue2 + + diff --git a/addons/jaeger/Web-Service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java b/addons/jaeger/Web-Service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java new file mode 100644 index 0000000..ca4962f --- /dev/null +++ b/addons/jaeger/Web-Service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java @@ -0,0 +1,21 @@ +package org.generated.project.interfaces.rest; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.seedstack.seed.Configuration; +import org.seedstack.seed.testing.junit4.SeedITRunner; +import org.seedstack.seed.undertow.LaunchWithUndertow; + +@RunWith(SeedITRunner.class) +@LaunchWithUndertow +public class HelloResourceIT { + @Configuration("runtime.web.baseUrl") + private String baseUrl; + + @Test + public void testHelloWorld() throws Exception { + // Response response = given().auth().basic("demo", "demo").expect().statusCode(200).when().get(baseUrl + "/hello"); + + // assertThat(response.body().asString()).isEqualTo("Hello World!"); + } +} diff --git a/addons/jaeger/Web-Service3/pom.xml b/addons/jaeger/Web-Service3/pom.xml new file mode 100644 index 0000000..54d3450 --- /dev/null +++ b/addons/jaeger/Web-Service3/pom.xml @@ -0,0 +1,108 @@ + + + 4.0.0 + + + org.seedstack.samples + samples + 20.11-SNAPSHOT + ../../pom.xml + + + Jaeger-sample-3 + + + 6.1.6.Final + 1.2.3 + 3.12.1 + 3.3.0 + + + + + + org.seedstack + seedstack-maven-plugin + + + build-capsule + + package + + + + + + + + + + org.seedstack.seed + seed-core + + + org.seedstack.seed + seed-security-core + + + org.seedstack.seed + seed-web-core + + + org.seedstack.seed + seed-web-security + + + org.seedstack.seed + seed-rest-jersey2 + + + org.seedstack.seed + seed-web-undertow + + + org.seedstack.business + business-core + + + org.seedstack.addons.modelmapper + modelmapper + + + ch.qos.logback + logback-classic + ${logback.version} + + + org.hibernate.validator + hibernate-validator + ${hibernate-validator.version} + + + + org.seedstack.seed + seed-testing-junit4 + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + io.rest-assured + rest-assured + ${rest-assured.version} + test + + + + org.seedstack.addons.jaeger + jaeger + 1.0.0-SNAPSHOT + + + + diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java new file mode 100644 index 0000000..1a2a644 --- /dev/null +++ b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java @@ -0,0 +1,18 @@ +package org.generated.project.domain.model.aggregate; + +import org.seedstack.business.domain.BaseAggregateRoot; + + +public class Aggregate extends BaseAggregateRoot { + private String id; + + + public Aggregate(String id) { + this.id = id; + } + + @Override + public String getId() { + return id; + } +} diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java new file mode 100644 index 0000000..d01e2cb --- /dev/null +++ b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java @@ -0,0 +1,41 @@ +/* + * Creation : 9 Jun 2021 + */ +package org.generated.project.domain.services; + +import java.util.Map; + +import io.jaegertracing.internal.metrics.Counter; +import io.jaegertracing.internal.metrics.Gauge; +import io.jaegertracing.internal.metrics.Timer; +import io.jaegertracing.spi.MetricsFactory; + +public class MyMetricFactory implements MetricsFactory { + + @Override + public Counter createCounter(String name, Map tags) { + return new Counter() { + @Override + public void inc(long delta) { + } + }; + } + + @Override + public Timer createTimer(final String name, final Map tags) { + return new Timer() { + @Override + public void durationMicros(long time) { + } + }; + } + + @Override + public Gauge createGauge(final String name, final Map tags) { + return new Gauge() { + @Override + public void update(long amount) { + } + }; + } +} \ No newline at end of file diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java new file mode 100644 index 0000000..67531a1 --- /dev/null +++ b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java @@ -0,0 +1,25 @@ +package org.generated.project.domain.services; + +import io.opentracing.propagation.TextMap; +import okhttp3.Request; + +import java.util.Iterator; +import java.util.Map; + +public class RequestBuilderCarrier implements TextMap { + private final Request.Builder requestBuilder; + + public RequestBuilderCarrier(Request.Builder requestBuilder) { + this.requestBuilder = requestBuilder; + } + + @Override + public Iterator> iterator() { + throw new UnsupportedOperationException("carrier is writer-only"); + } + + @Override + public void put(String key, String value) { + requestBuilder.addHeader(key, value); + } +} diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java new file mode 100644 index 0000000..d618316 --- /dev/null +++ b/addons/jaeger/Web-Service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java @@ -0,0 +1,69 @@ +package org.generated.project.interfaces.rest; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.stream.Collectors; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.MultivaluedMap; + +import org.seedstack.jaeger.ServiceName; + +import io.opentracing.Span; +import io.opentracing.SpanContext; +import io.opentracing.Tracer; +import io.opentracing.propagation.Format; +import io.opentracing.propagation.TextMapAdapter; + +@Path("/api/v1/scientists") +public class ScientistNameService { + + private final List scientistsNames; + private Random random; + + @ServiceName("scientist-svc") + private Tracer tracer; + + // just for testing, its not used + @ServiceName("scientist-svc1") + private Tracer tracer1; + + public ScientistNameService() throws IOException { + InputStream inputStream = this.getClass().getResourceAsStream("/scientists.txt"); + + try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { + scientistsNames = reader.lines().collect(Collectors.toList()); + } + random = new Random(); + } + + @GET + @Path("/random") + public String name(@Context HttpHeaders headers) { + + MultivaluedMap rawHeaders = headers.getRequestHeaders(); + final Map header = new HashMap<>(); + + for (Map.Entry> entry : rawHeaders.entrySet()) { + header.put(entry.getKey(), entry.getValue().get(0)); + } + + SpanContext parentContext = tracer.extract(Format.Builtin.HTTP_HEADERS, new TextMapAdapter(header)); + Span span = tracer.buildSpan("find-random-scientist-name").asChildOf(parentContext).start(); + span.setTag("scientist", "HeyscientistTag"); + String name = scientistsNames.get(random.nextInt(scientistsNames.size())); + span.finish(); + + System.out.println("tracer1=" + tracer1); + return name; + } +} \ No newline at end of file diff --git a/addons/jaeger/Web-Service3/src/main/resources/application.yaml b/addons/jaeger/Web-Service3/src/main/resources/application.yaml new file mode 100644 index 0000000..f8b6d25 --- /dev/null +++ b/addons/jaeger/Web-Service3/src/main/resources/application.yaml @@ -0,0 +1,74 @@ +# Put main configuration in this file +# See http://seedstack.org/docs/seed/configuration for more information + +logging: + level: INFO + +application: + # Unique identifier of the application accross your organization + id: Web-Service3 + # Make sure all your application base packages are listed below + basePackages: [ org.generated.project ] + +security: + # The security configuration realm uses the 'users' section below (replace it with a more useful realm later) + # See http://seedstack.org/docs/seed/manual/security/#realms for more information + realms: ConfigurationRealm + users: + # A default 'demo' user is defined with password 'demo' + demo: demo +web: + server: + host: localhost + port: 8090 + # The 'urls' section below in used to secure HTTP requests + # See http://seedstack.org/docs/seed/manual/security/#http-access-control for more information + urls: + # - + # pattern: /api/** + # filters: authcBasic + +jaeger: + #whether using Jaeger in devMode(boolean).if true trace will not reported to backend Server + devMode: false + samplerConfig: + #The samplerType(String).valid values are remote (default),ratelimiting, probabilistic,const. + samplerType: const + #The samplerParam(Integer) that makes sense for the sampling. + samplerParam: 1 + #The http host:port(String) when using the remote controlled sampler. + samplerManagerHostPort: 128.0.0.1 + senderConfig: + #The hostname(String) for communicating with agent via udp. + agentHost: 127.0.0.1 + #The port(Integer) for communicating with agent via udp. + agentPort: 6831 + #The traces http endpoint(String),like http://jaeger-collector:14268/api/traces. + endPoint: http://localhost:14268/api/traces + #Authentication Token(String) to send as "Bearer" to the http endpoint. + authToken: myauthtoken + #Username(String) to send as part of "Basic" authentication to the http endpoint. + userName: myusername + #Password(String) to send as part of "Basic" authentication to the endpoint. + password: mypassword + reporterConfig: + #Whether the reporter should also log the spans(boolean) + reporterLogSpans: true + #The reporter's maximum queue size(Integer) + reporterMaxQueueSize: 10000 + #The reporter's flush interval in miliseconds(Integer) + reporterFlushInterval: 1000 + codecConfig: + #Comma separated list of trace formats.Defaults is Jaeger.Valid values are jaeger,b3,w3c + propagation: jaeger,b3 + tracerConfig: + #Opt-in to use 128 bit traceIds. By default, uses 64 bits(boolean). + traceId128Bit: false + #The fully qualified class name of the Metrics factory (Optional).(Class) + metricsFactory: + #Tracer level tags, which get added to all reported spans.optional + tracerTags: + tracerTag1: TracerValue1 + tracerTag2: TracerValue2 + + diff --git a/addons/jaeger/Web-Service3/src/main/resources/scientists.txt b/addons/jaeger/Web-Service3/src/main/resources/scientists.txt new file mode 100644 index 0000000..0edf9a2 --- /dev/null +++ b/addons/jaeger/Web-Service3/src/main/resources/scientists.txt @@ -0,0 +1,417 @@ +Louis Agassiz +Maria Gaetana Agnesi +Al-Battani +Abu Nasr Al-Farabi +Alhazen +Jim Al-Khalili +Muhammad ibn Musa al-Khwarizmi +Mihailo Petrovic Alas +Angel Alcala +Salim Ali +Luis Alvarez +Andre Marie Ampère +Anaximander +Carl Anderson +Mary Anning +Virginia Apgar +Archimedes +Agnes Arber +Aristarchus +Aristotle +Svante Arrhenius +Oswald Avery +Amedeo Avogadro +Avicenna +Charles Babbage +Francis Bacon +Alexander Bain +John Logie Baird +Joseph Banks +Ramon Barba +John Bardeen +Charles Barkla +Ibn Battuta +William Bayliss +George Beadle +Arnold Orville Beckman +Henri Becquerel +Emil Adolf Behring +Alexander Graham Bell +Emile Berliner +Claude Bernard +Timothy John Berners-Lee +Daniel Bernoulli +Jacob Berzelius +Henry Bessemer +Hans Bethe +Homi Jehangir Bhabha +Alfred Binet +Clarence Birdseye +Kristian Birkeland +Elizabeth Blackwell +Alfred Blalock +Katharine Burr Blodgett +Franz Boas +David Bohm +Aage Bohr +Niels Bohr +Ludwig Boltzmann +Max Born +Carl Bosch +Robert Bosch +Jagadish Chandra Bose +Satyendra Nath Bose +Walther Wilhelm Georg Bothe +Robert Boyle +Lawrence Bragg +Tycho Brahe +Brahmagupta +Hennig Brand +Georg Brandt +Wernher Von Braun +J Harlen Bretz +Louis de Broglie +Alexander Brongniart +Robert Brown +Michael E. Brown +Lester R. Brown +Eduard Buchner +Linda Buck +William Buckland +Georges-Louis Leclerc, Comte de Buffon +Robert Bunsen +Luther Burbank +Jocelyn Bell Burnell +Macfarlane Burnet +Thomas Burnet +Benjamin Cabrera +Santiago Ramon y Cajal +Rachel Carson +George Washington Carver +Henry Cavendish +Anders Celsius +James Chadwick +Subrahmanyan Chandrasekhar +Erwin Chargaff +Noam Chomsky +Steven Chu +Leland Clark +John Cockcroft +Arthur Compton +Nicolaus Copernicus +Gerty Theresa Cori +Charles-Augustin de Coulomb +Jacques Cousteau +Brian Cox +Francis Crick +James Croll +Nicholas Culpeper +Marie Curie +Pierre Curie +Georges Cuvier +Adalbert Czerny +Gottlieb Daimler +John Dalton +James Dwight Dana +Charles Darwin +Humphry Davy +Peter Debye +Max Delbruck +Jean Andre Deluc +Democritus +René Descartes +Rudolf Christian Karl Diesel +Diophantus +Paul Dirac +Prokop Divis +Theodosius Dobzhansky +Frank Drake +K. Eric Drexler +John Eccles +Arthur Eddington +Thomas Edison +Paul Ehrlich +Albert Einstein +Gertrude Elion +Empedocles +Eratosthenes +Euclid +Leonhard Euler +Michael Faraday +Pierre de Fermat +Enrico Fermi +Richard Feynman +Fibonacci – Leonardo of Pisa +Emil Fischer +Ronald Fisher +Alexander Fleming +Ambrose Fleming +Howard Florey +Henry Ford +Lee De Forest +Dian Fossey +Leon Foucault +Benjamin Franklin +Rosalind Franklin +Sigmund Freud +Galen +Galileo Galilei +Francis Galton +Luigi Galvani +George Gamow +Martin Gardner +Carl Friedrich Gauss +Murray Gell-Mann +Sophie Germain +Willard Gibbs +William Gilbert +Sheldon Lee Glashow +Robert Goddard +Maria Goeppert-Mayer +Thomas Gold +Jane Goodall +Stephen Jay Gould +Fritz Haber +Ernst Haeckel +Otto Hahn +Albrecht von Haller +Edmund Halley +Thomas Harriot +William Harvey +Stephen Hawking +Otto Haxel +Werner Heisenberg +Hermann von Helmholtz +Jan Baptist von Helmont +Joseph Henry +Caroline Herschel +John Herschel +William Herschel +Gustav Ludwig Hertz +Heinrich Hertz +Karl F. Herzfeld +George de Hevesy +Antony Hewish +David Hilbert +Maurice Hilleman +Hipparchus +Hippocrates +Shintaro Hirase +Dorothy Hodgkin +Robert Hooke +Frederick Gowland Hopkins +William Hopkins +Grace Murray Hopper +Frank Hornby +Jack Horner +Bernardo Houssay +Fred Hoyle +Edwin Hubble +Alexander von Humboldt +Zora Neale Hurston +James Hutton +Christiaan Huygens +Hypatia +Ernesto Illy +Ernst Ising +Keisuke Ito +Mae Carol Jemison +Edward Jenner +J. Hans D. Jensen +Irene Joliot-Curie +James Prescott Joule +Percy Lavon Julian +Michio Kaku +Heike Kamerlingh Onnes +Pyotr Kapitsa +Friedrich August Kekulé +Frances Kelsey +Pearl Kendrick +Johannes Kepler +Abdul Qadeer Khan +Omar Khayyam +Alfred Kinsey +Gustav Kirchoff +Martin Klaproth +Robert Koch +Emil Kraepelin +Thomas Kuhn +Stephanie Kwolek +Joseph-Louis Lagrange +Jean-Baptiste Lamarck +Hedy Lamarr +Edwin Herbert Land +Karl Landsteiner +Pierre-Simon Laplace +Max von Laue +Antoine Lavoisier +Ernest Lawrence +Henrietta Leavitt +Antonie van Leeuwenhoek +Inge Lehmann +Gottfried Leibniz +Georges Lemaître +Leonardo da Vinci +Niccolo Leoniceno +Aldo Leopold +Rita Levi-Montalcini +Claude Levi-Strauss +Willard Frank Libby +Justus von Liebig +Carolus Linnaeus +Joseph Lister +John Locke +Hendrik Antoon Lorentz +Konrad Lorenz +Ada Lovelace +Percival Lowell +Lucretius +Charles Lyell +Trofim Lysenko +Ernst Mach +Marcello Malpighi +Jane Marcet +Guglielmo Marconi +Lynn Margulis +Matthew Maury +James Clerk Maxwell +Ernst Mayr +Barbara McClintock +Lise Meitner +Gregor Mendel +Dmitri Mendeleev +Franz Mesmer +Antonio Meucci +John Michell +Albert Abraham Michelson +Thomas Midgeley Jr. +Milutin Milanković +Maria Mitchell +Mario Molina +Thomas Hunt Morgan +Samuel Morse +Henry Moseley +Ukichiro Nakaya +John Napier +Giulio Natta +John Needham +John von Neumann +Thomas Newcomen +Isaac Newton +Charles Nicolle +Florence Nightingale +Tim Noakes +Alfred Nobel +Emmy Noether +Christiane Nusslein-Volhard +Bill Nye +Hans Christian Oersted +Georg Ohm +J. Robert Oppenheimer +Wilhelm Ostwald +William Oughtred +Blaise Pascal +Louis Pasteur +Wolfgang Ernst Pauli +Linus Pauling +Randy Pausch +Ivan Pavlov +Cecilia Payne-Gaposchkin +Wilder Penfield +Marguerite Perey +William Perkin +John Philoponus +Jean Piaget +Philippe Pinel +Max Planck +Pliny the Elder +Karl Popper +Beatrix Potter +Joseph Priestley +Proclus +Claudius Ptolemy +Pythagoras +Adolphe Quetelet +Harriet Quimby +Thabit ibn Qurra +C. V. Raman +Srinivasa Ramanujan +William Ramsay +John Ray +Prafulla Chandra Ray +Francesco Redi +Sally Ride +Bernhard Riemann +Wilhelm Röntgen +Hermann Rorschach +Ronald Ross +Ibn Rushd +Ernest Rutherford +Carl Sagan +Abdus Salam +Jonas Salk +Frederick Sanger +Alberto Santos-Dumont +Walter Schottky +Erwin Schrödinger +Theodor Schwann +Glenn Seaborg +Hans Selye +Charles Sherrington +Gene Shoemaker +Ernst Werner von Siemens +George Gaylord Simpson +B. F. Skinner +William Smith +Frederick Soddy +Mary Somerville +Arnold Sommerfeld +Hermann Staudinger +Nicolas Steno +Nettie Stevens +William John Swainson +Leo Szilard +Niccolo Tartaglia +Edward Teller +Nikola Tesla +Thales of Miletus +Theon of Alexandria +Benjamin Thompson +J. J. Thomson +William Thomson +Henry David Thoreau +Kip S. Thorne +Clyde Tombaugh +Susumu Tonegawa +Evangelista Torricelli +Charles Townes +Youyou Tu +Alan Turing +Neil deGrasse Tyson +Harold Urey +Craig Venter +Vladimir Vernadsky +Andreas Vesalius +Rudolf Virchow +Artturi Virtanen +Alessandro Volta +Selman Waksman +George Wald +Alfred Russel Wallace +John Wallis +Ernest Walton +James Watson +James Watt +Alfred Wegener +John Archibald Wheeler +Maurice Wilkins +Thomas Willis +E. O. Wilson +Sven Wingqvist +Sergei Winogradsky +Carl Woese +Friedrich Wöhler +Wilbur and Orville Wright +Wilhelm Wundt +Chen-Ning Yang +Ahmed Zewail \ No newline at end of file diff --git a/addons/jaeger/Web-Service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java b/addons/jaeger/Web-Service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java new file mode 100644 index 0000000..ca4962f --- /dev/null +++ b/addons/jaeger/Web-Service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java @@ -0,0 +1,21 @@ +package org.generated.project.interfaces.rest; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.seedstack.seed.Configuration; +import org.seedstack.seed.testing.junit4.SeedITRunner; +import org.seedstack.seed.undertow.LaunchWithUndertow; + +@RunWith(SeedITRunner.class) +@LaunchWithUndertow +public class HelloResourceIT { + @Configuration("runtime.web.baseUrl") + private String baseUrl; + + @Test + public void testHelloWorld() throws Exception { + // Response response = given().auth().basic("demo", "demo").expect().statusCode(200).when().get(baseUrl + "/hello"); + + // assertThat(response.body().asString()).isEqualTo("Hello World!"); + } +} From 49d02111a65f63448c532e92682a7cd6d6722175 Mon Sep 17 00:00:00 2001 From: amit kumar Date: Thu, 19 Aug 2021 13:06:34 +0200 Subject: [PATCH 2/3] readme --- addons/jaeger/README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 addons/jaeger/README.md diff --git a/addons/jaeger/README.md b/addons/jaeger/README.md new file mode 100644 index 0000000..b060a83 --- /dev/null +++ b/addons/jaeger/README.md @@ -0,0 +1,30 @@ +# jaeger-sample +jaeger-sample apps for Jaeger-Addon + +Web-Service1 is the root service which calls Web-Service2 and Web-Service3. + +Web-Service2 and Web-Service3 can also run independently. + + + +Steps to Run: + +1. run maven build for each Web-Service +2. mvn seedstack:run is the command to start each Web-Service +3. Web-Service1, Web-Service2, Web-Service3 will start on port 8080, 9000, 8090 respectively +4. you need a collector to collect the traces send by above web services and that can be downloaded from https://www.jaegertracing.io/download/ ( see binary for windows, simpler one ). +5. start the jaeger-all-in-one.exe as back-end service (Collector) + + +URLs of Web Services- + +Web-Service1-> http://localhost:8080/api/v1/names/random + +Web-Service2-> http://localhost:9000/api/v1/animals/random + +Web-Service3-> http://localhost:8090/api/v1/scientists/random + +now access- http://localhost:16686/search to check the traces + + + From e5833307179dc271b1436c69357f921c5e292338 Mon Sep 17 00:00:00 2001 From: amit kumar Date: Sat, 21 Aug 2021 18:39:42 +0200 Subject: [PATCH 3/3] jaeger sample apps --- addons/jaeger/README.md | 21 +++++++++---------- .../{Web-Service1 => web-service1}/pom.xml | 2 +- .../domain/model/aggregate/Aggregate.java | 0 .../domain/services/MyMetricFactory.java | 0 .../services/RequestBuilderCarrier.java | 0 .../interfaces/rest/NameGeneratorService.java | 4 ++-- .../src/main/resources/application.yaml | 0 .../interfaces/rest/HelloResourceIT.java | 0 .../{Web-Service2 => web-service2}/pom.xml | 2 +- .../domain/model/aggregate/Aggregate.java | 0 .../domain/services/MyMetricFactory.java | 0 .../services/RequestBuilderCarrier.java | 0 .../interfaces/rest/AnimalNameService.java | 4 ++-- .../src/main/resources/animals.txt | 0 .../src/main/resources/application.yaml | 0 .../interfaces/rest/HelloResourceIT.java | 0 .../{Web-Service3 => web-service3}/pom.xml | 2 +- .../domain/model/aggregate/Aggregate.java | 0 .../domain/services/MyMetricFactory.java | 0 .../services/RequestBuilderCarrier.java | 0 .../interfaces/rest/ScientistNameService.java | 10 ++------- .../src/main/resources/application.yaml | 0 .../src/main/resources/scientists.txt | 0 .../interfaces/rest/HelloResourceIT.java | 0 24 files changed, 19 insertions(+), 26 deletions(-) rename addons/jaeger/{Web-Service1 => web-service1}/pom.xml (98%) rename addons/jaeger/{Web-Service1 => web-service1}/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java (100%) rename addons/jaeger/{Web-Service1 => web-service1}/src/main/java/org/generated/project/domain/services/MyMetricFactory.java (100%) rename addons/jaeger/{Web-Service1 => web-service1}/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java (100%) rename addons/jaeger/{Web-Service1 => web-service1}/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java (96%) rename addons/jaeger/{Web-Service1 => web-service1}/src/main/resources/application.yaml (100%) rename addons/jaeger/{Web-Service1 => web-service1}/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java (100%) rename addons/jaeger/{Web-Service2 => web-service2}/pom.xml (98%) rename addons/jaeger/{Web-Service2 => web-service2}/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java (100%) rename addons/jaeger/{Web-Service2 => web-service2}/src/main/java/org/generated/project/domain/services/MyMetricFactory.java (100%) rename addons/jaeger/{Web-Service2 => web-service2}/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java (100%) rename addons/jaeger/{Web-Service2 => web-service2}/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java (96%) rename addons/jaeger/{Web-Service2 => web-service2}/src/main/resources/animals.txt (100%) rename addons/jaeger/{Web-Service2 => web-service2}/src/main/resources/application.yaml (100%) rename addons/jaeger/{Web-Service2 => web-service2}/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java (100%) rename addons/jaeger/{Web-Service3 => web-service3}/pom.xml (98%) rename addons/jaeger/{Web-Service3 => web-service3}/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java (100%) rename addons/jaeger/{Web-Service3 => web-service3}/src/main/java/org/generated/project/domain/services/MyMetricFactory.java (100%) rename addons/jaeger/{Web-Service3 => web-service3}/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java (100%) rename addons/jaeger/{Web-Service3 => web-service3}/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java (89%) rename addons/jaeger/{Web-Service3 => web-service3}/src/main/resources/application.yaml (100%) rename addons/jaeger/{Web-Service3 => web-service3}/src/main/resources/scientists.txt (100%) rename addons/jaeger/{Web-Service3 => web-service3}/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java (100%) diff --git a/addons/jaeger/README.md b/addons/jaeger/README.md index b060a83..250104e 100644 --- a/addons/jaeger/README.md +++ b/addons/jaeger/README.md @@ -1,30 +1,29 @@ -# jaeger-sample -jaeger-sample apps for Jaeger-Addon +# Sample Apps for Jaeger-Addon -Web-Service1 is the root service which calls Web-Service2 and Web-Service3. +web-service1 is the root service which calls web-service2 and web-service3. -Web-Service2 and Web-Service3 can also run independently. +web-service2 and web-service3 can also run independently. Steps to Run: -1. run maven build for each Web-Service -2. mvn seedstack:run is the command to start each Web-Service -3. Web-Service1, Web-Service2, Web-Service3 will start on port 8080, 9000, 8090 respectively +1. run maven build for each web-service +2. mvn seedstack:run is the command to start each web-service +3. web-service1, web-service2, web-service3 will start on port 8080, 9000, 8090 respectively 4. you need a collector to collect the traces send by above web services and that can be downloaded from https://www.jaegertracing.io/download/ ( see binary for windows, simpler one ). 5. start the jaeger-all-in-one.exe as back-end service (Collector) URLs of Web Services- -Web-Service1-> http://localhost:8080/api/v1/names/random +web-service1-> http://localhost:8080/api/v1/names/random -Web-Service2-> http://localhost:9000/api/v1/animals/random +web-service2-> http://localhost:9000/api/v1/animals/random -Web-Service3-> http://localhost:8090/api/v1/scientists/random +web-service3-> http://localhost:8090/api/v1/scientists/random -now access- http://localhost:16686/search to check the traces +now access- http://localhost:16686/search to see the jaeger traces diff --git a/addons/jaeger/Web-Service1/pom.xml b/addons/jaeger/web-service1/pom.xml similarity index 98% rename from addons/jaeger/Web-Service1/pom.xml rename to addons/jaeger/web-service1/pom.xml index ec66b7c..aa0aef9 100644 --- a/addons/jaeger/Web-Service1/pom.xml +++ b/addons/jaeger/web-service1/pom.xml @@ -10,7 +10,7 @@ ../../pom.xml - Jaeger-sample-1 + web-service1 6.1.6.Final diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java b/addons/jaeger/web-service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java similarity index 100% rename from addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java rename to addons/jaeger/web-service1/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java b/addons/jaeger/web-service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java similarity index 100% rename from addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java rename to addons/jaeger/web-service1/src/main/java/org/generated/project/domain/services/MyMetricFactory.java diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java b/addons/jaeger/web-service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java similarity index 100% rename from addons/jaeger/Web-Service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java rename to addons/jaeger/web-service1/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java diff --git a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java b/addons/jaeger/web-service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java similarity index 96% rename from addons/jaeger/Web-Service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java rename to addons/jaeger/web-service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java index 099601e..cceb751 100644 --- a/addons/jaeger/Web-Service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java +++ b/addons/jaeger/web-service1/src/main/java/org/generated/project/interfaces/rest/NameGeneratorService.java @@ -6,7 +6,7 @@ import javax.ws.rs.Path; import org.generated.project.domain.services.RequestBuilderCarrier; -import org.seedstack.jaeger.ServiceName; +import org.seedstack.jaeger.Tracing; import io.opentracing.Span; import io.opentracing.SpanContext; @@ -22,7 +22,7 @@ public class NameGeneratorService { OkHttpClient client = new OkHttpClient(); - @ServiceName("name-svc") + @Tracing("name-svc") private Tracer tracer; @GET diff --git a/addons/jaeger/Web-Service1/src/main/resources/application.yaml b/addons/jaeger/web-service1/src/main/resources/application.yaml similarity index 100% rename from addons/jaeger/Web-Service1/src/main/resources/application.yaml rename to addons/jaeger/web-service1/src/main/resources/application.yaml diff --git a/addons/jaeger/Web-Service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java b/addons/jaeger/web-service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java similarity index 100% rename from addons/jaeger/Web-Service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java rename to addons/jaeger/web-service1/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java diff --git a/addons/jaeger/Web-Service2/pom.xml b/addons/jaeger/web-service2/pom.xml similarity index 98% rename from addons/jaeger/Web-Service2/pom.xml rename to addons/jaeger/web-service2/pom.xml index 163b8b8..001d8bc 100644 --- a/addons/jaeger/Web-Service2/pom.xml +++ b/addons/jaeger/web-service2/pom.xml @@ -10,7 +10,7 @@ ../../pom.xml - Jaeger-sample-2 + web-service2 6.1.6.Final diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java b/addons/jaeger/web-service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java similarity index 100% rename from addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java rename to addons/jaeger/web-service2/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java b/addons/jaeger/web-service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java similarity index 100% rename from addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java rename to addons/jaeger/web-service2/src/main/java/org/generated/project/domain/services/MyMetricFactory.java diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java b/addons/jaeger/web-service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java similarity index 100% rename from addons/jaeger/Web-Service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java rename to addons/jaeger/web-service2/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java diff --git a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java b/addons/jaeger/web-service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java similarity index 96% rename from addons/jaeger/Web-Service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java rename to addons/jaeger/web-service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java index 6bd48eb..12fee5e 100644 --- a/addons/jaeger/Web-Service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java +++ b/addons/jaeger/web-service2/src/main/java/org/generated/project/interfaces/rest/AnimalNameService.java @@ -16,7 +16,7 @@ import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MultivaluedMap; -import org.seedstack.jaeger.ServiceName; +import org.seedstack.jaeger.Tracing; import io.opentracing.Span; import io.opentracing.SpanContext; @@ -30,7 +30,7 @@ public class AnimalNameService { private final List animalNames; private Random random; - @ServiceName("animal-svc") + @Tracing("animal-svc") private Tracer tracer; public AnimalNameService() throws IOException { diff --git a/addons/jaeger/Web-Service2/src/main/resources/animals.txt b/addons/jaeger/web-service2/src/main/resources/animals.txt similarity index 100% rename from addons/jaeger/Web-Service2/src/main/resources/animals.txt rename to addons/jaeger/web-service2/src/main/resources/animals.txt diff --git a/addons/jaeger/Web-Service2/src/main/resources/application.yaml b/addons/jaeger/web-service2/src/main/resources/application.yaml similarity index 100% rename from addons/jaeger/Web-Service2/src/main/resources/application.yaml rename to addons/jaeger/web-service2/src/main/resources/application.yaml diff --git a/addons/jaeger/Web-Service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java b/addons/jaeger/web-service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java similarity index 100% rename from addons/jaeger/Web-Service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java rename to addons/jaeger/web-service2/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java diff --git a/addons/jaeger/Web-Service3/pom.xml b/addons/jaeger/web-service3/pom.xml similarity index 98% rename from addons/jaeger/Web-Service3/pom.xml rename to addons/jaeger/web-service3/pom.xml index 54d3450..bcc61b3 100644 --- a/addons/jaeger/Web-Service3/pom.xml +++ b/addons/jaeger/web-service3/pom.xml @@ -10,7 +10,7 @@ ../../pom.xml - Jaeger-sample-3 + web-service3 6.1.6.Final diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java b/addons/jaeger/web-service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java similarity index 100% rename from addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java rename to addons/jaeger/web-service3/src/main/java/org/generated/project/domain/model/aggregate/Aggregate.java diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java b/addons/jaeger/web-service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java similarity index 100% rename from addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java rename to addons/jaeger/web-service3/src/main/java/org/generated/project/domain/services/MyMetricFactory.java diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java b/addons/jaeger/web-service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java similarity index 100% rename from addons/jaeger/Web-Service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java rename to addons/jaeger/web-service3/src/main/java/org/generated/project/domain/services/RequestBuilderCarrier.java diff --git a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java b/addons/jaeger/web-service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java similarity index 89% rename from addons/jaeger/Web-Service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java rename to addons/jaeger/web-service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java index d618316..5e12add 100644 --- a/addons/jaeger/Web-Service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java +++ b/addons/jaeger/web-service3/src/main/java/org/generated/project/interfaces/rest/ScientistNameService.java @@ -16,7 +16,7 @@ import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MultivaluedMap; -import org.seedstack.jaeger.ServiceName; +import org.seedstack.jaeger.Tracing; import io.opentracing.Span; import io.opentracing.SpanContext; @@ -30,13 +30,9 @@ public class ScientistNameService { private final List scientistsNames; private Random random; - @ServiceName("scientist-svc") + @Tracing("scientist-svc") private Tracer tracer; - // just for testing, its not used - @ServiceName("scientist-svc1") - private Tracer tracer1; - public ScientistNameService() throws IOException { InputStream inputStream = this.getClass().getResourceAsStream("/scientists.txt"); @@ -62,8 +58,6 @@ public String name(@Context HttpHeaders headers) { span.setTag("scientist", "HeyscientistTag"); String name = scientistsNames.get(random.nextInt(scientistsNames.size())); span.finish(); - - System.out.println("tracer1=" + tracer1); return name; } } \ No newline at end of file diff --git a/addons/jaeger/Web-Service3/src/main/resources/application.yaml b/addons/jaeger/web-service3/src/main/resources/application.yaml similarity index 100% rename from addons/jaeger/Web-Service3/src/main/resources/application.yaml rename to addons/jaeger/web-service3/src/main/resources/application.yaml diff --git a/addons/jaeger/Web-Service3/src/main/resources/scientists.txt b/addons/jaeger/web-service3/src/main/resources/scientists.txt similarity index 100% rename from addons/jaeger/Web-Service3/src/main/resources/scientists.txt rename to addons/jaeger/web-service3/src/main/resources/scientists.txt diff --git a/addons/jaeger/Web-Service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java b/addons/jaeger/web-service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java similarity index 100% rename from addons/jaeger/Web-Service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java rename to addons/jaeger/web-service3/src/test/java/org/generated/project/interfaces/rest/HelloResourceIT.java