- Develop
- Spring Boot (order service)
- NodeJS (inventory service)
- Working with Docker
- Observability
- Distributed tracing
- OpenTelemetry
- Zipkin
- Application metric
- Prometheus
- Grafana
- Distributed tracing
- Testing
- API testing with Postman
- Java 17
- Spring Boot 3
Step to build and run service
$cd order
$./mvnw clean package
$./mvnw spring-boot:run
$cd ..
With Docker
$docker compose build order
$docker compose up -d order
$docker compose ps
$docker compose logs --follow
Access to API specification with Swagger v2
Access to service
Create inventory service
$docker compose build inventory
$docker compose up -d inventory
$docker compose ps
$docker compose logs --follow
Access to service
$docker compose up -d zipkin
$docker compose ps
$docker compose logs --follow
Open Zipkin server in url=http://localhost:9411/
Application Metric with Actuator and Prometheus
- http://localhost:8080/actuator
- http://localhost:8080/actuator/health
- http://localhost:8080/actuator/prometheus
$docker compose up -d prometheus
$docker compose ps
$docker compose logs --follow
Open prometheus server
- http://localhost:9090
- Go to menu
Status => Targets
- Go to menu
Dashboard with Grafana
$docker compose up -d grafana
$docker compose ps
$docker compose logs --follow
Open Grafana server
- http://localhost:3000
- user=admin
- password=admin
Log aggregation with Loki
$docker compose up -d loki
$docker compose ps
$docker compose logs --follow
Dashboard with Grafana
$docker compose up -d grafana
$docker compose ps
$docker compose logs --follow
Open prometheus server
- http://localhost:3000
- user=admin
- password=admin
$npm install -g newman
$cd testing/api-postman
$newman run order-service.postman_collection.json