OpenLiberty / open-liberty

Open Liberty is a highly composable, fast to start, dynamic application server runtime environment
https://openliberty.io
Eclipse Public License 2.0
1.15k stars 592 forks source link

SVT: TER: LG-80: Jaeger support in MicroProfile Open Tracing #9566

Open tkulik opened 5 years ago

tkulik commented 5 years ago

Configure and deploy Acmeair application with Jaeger support instead of Zipkin

tkulik commented 4 years ago

Configured acmeair app using jaeger following these instructions:

https://github.com/OpenLiberty/docs/issues/310

Hit a problem that application doesnt work with jaeger because of the lib conflict.

In acmeair app for each project we have the following statement in the server.xml file:

<classloader apiTypeVisibility="api,ibm-api,spec,stable,third-party"/>

and for jaeger lib I have to add this:

<classloader commonLibraryRef="jaegerLib" apiTypeVisibility="+third-party" />

This created a conflict for sjf4j libraries. Jaeger uses slf4j 1.7.25 but acmeair uses 1.7.21

To get around this problem one solution was to include jaeger libs in the war file for all 5 projects for acmeair. Felix made the changes to pom.xml and some other files. It was implemented in jaeger-client-in-war branch off fmhwong branch. The following steps were performed:

git clone https://github.com/fmhwong/acmeair-flightservice-java.git git clone https://github.com/fmhwong/acmeair-customerservice-java.git git clone https://github.com/fmhwong/acmeair-bookingservice-java.git git clone https://github.com/fmhwong/acmeair-mainservice-java.git git clone https://github.com/fmhwong/acmeair-authservice-java.git

then for each project do the following: git checkout jaeger-client-in-war

got it working with jaeger-client-in-war branch. Can see all 4 services in jaeger page:

image

image

image

image

image

image

image

image

image

image

tkulik commented 4 years ago

image

tkulik commented 4 years ago

Tested the original solution using jaeger-share-lib branch in github. It also works.

For this one had to follow these steps:

The change was implemented only for acmeair-authservice-java, as an example.

Using the same projects directories as in the previous solution, then only for acmeair-authservice-java proj, do the following cmd:

git checkout jaeger-share-lib

image

image

tkulik commented 4 years ago

Now need to get this working with secure connection between the app and the jaeger-collector

following these instructions:
https://github.ibm.com/was-lumberjack/jaeger-https-collector