A full flegde example for Distributed Tracing
This Repository contains two micro-services in which tracing agent is integrated.
I am using ZipKin, a Open Source tracer for demonstration.
Prerequisites
1. GO 1.13+
2. Docker
Services -
- Employee Service - This is a demo service performs CRUD operation for employee.
- Auth Service - This service creates and checks Auth for employee service APIs.
Employee flows
In both of the flows employee service interacts with auth service using REST APIs.
Demo
docker run -d -p 9411:9411 openzipkin/zipkin
cd auth
go run main.go
cd ..
cd employee
go run main.go
1. Employee Registration
Request -
curl --location --request POST 'localhost:8080/employee' \
--header 'Content-Type: application/json' \
--data-raw '{
"name":"<your name>"
}'
Response -
{
"id": "<Employee Id>"
}
2. Get Employee details
Request -
curl --location --request GET 'localhost:8080/employee?id=<Employee Id>' \
--header 'Authorization: <Employee Id>' \
--header 'Content-Type: application/json'
Response -
{
"employee": {
"id": "<Employee Id>",
"name": "your name"
}
}
3. Open ZipKin dashboard using below URL to see trace generated
http://localhost:9411/zipkin