This is an example app where two php services collaborate on an http request. Notably, timing of these requests are recorded into Zipkin, a distributed tracing system.
This allows you to see the how long the whole operation took, as well how much time was spent in each service.
This example has two services: frontend and backend. They both report trace data to zipkin.
To setup the demo, do
composer install
Once the dependencies are installed, run the services:
# Run zipkin (optional):
composer run-zipkin
# In terminal 1:
composer run-frontend
# In terminal 2
composer run-backend
And then, request the frontend:
curl http://localhost:8081
- This starts a trace in the frontend (http://localhost:8081/)
- Continues the trace and calls the backend (http://localhost:9000)
- Next, you can view traces that went through the backend via http://localhost:9411/?serviceName=frontend.
If you need to pass the zipkin endpoint, just pass the reporter
url as HTTP_REPORTER_URL
env variable.
# In terminal 1:
HTTP_REPORTER_URL=http://myzipkin:9411/api/v2/span composer run-frontend
# In terminal 2
HTTP_REPORTER_URL=http://myzipkin:9411/api/v2/span composer run-backend