openzipkin / zipkin-php-example

See how much time php services spend on an http request

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Zipkin PHP example

CircleCI

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.

zipkin screen shot

Requirements

  • Composer
  • Docker (optional, if you have a zipkin endpoint this is not needed)

Running the example

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
  1. This starts a trace in the frontend (http://localhost:8081/)
  2. Continues the trace and calls the backend (http://localhost:9000)
  3. Next, you can view traces that went through the backend via http://localhost:9411/?serviceName=frontend.

Running example with a custom zipkin location:

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

About

See how much time php services spend on an http request

License:Apache License 2.0


Languages

Language:PHP 100.0%