mayanktiwari09 / bottleneck-localization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Performance Bottleneck-Localization for microservices

The below image presents deep-dependency (or overall microservice flow) between the microservices defined in this repository.

The repository consists of 18 microservices connected in star topology. The primary microservice is the ProxyService. All the microservices are instrumented to emit distributed traces to jaeger.

To install and setup jaeger (localhost), use the following command:

docker run -d --name jaeger \
  -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14268:14268 \
  -p 9411:9411 \
  jaegertracing/all-in-one:1.8

The primary microservice: ProxyService runs on port 8000 and exposes the following endpoints

/api/proxy/fib
/api/proxy/fib1
/api/proxy/fib2
/api/proxy/fib3
/api/proxy/fib4
/api/proxy/fib5
/api/proxy/fib6
/api/proxy/fib7
/api/proxy/fact
/api/proxy/fact1
/api/proxy/fact2
/api/proxy/fact3
/api/proxy/fact4
/api/proxy/fact5
/api/proxy/fact6
/api/proxy/fact7

The bottleneck localiser runs on port 3000 and is accessable by the following curl command:

curl --location --request GET 'localhost:3000/getbottleneck?service=ProxyService&startTime=1607222258233000&endTime=1607225858233000&host=localhost'

About


Languages

Language:Java 75.2%Language:Go 17.3%Language:Dockerfile 7.3%Language:Shell 0.2%