This demo can be deployed in Google Cloud. The scripts can be run in a sequence starting from 1-start.sh
1-start.sh
- Sets up the envirobment with Google Cloud login. Change the project id and cluster name to your project and your Kubernetes cluster.2-apply-config.sh
- Deploys thedistributed-trace.yml
in the cluster3-linkerd-setup.sh
- Sets up Linkerd in the cluster4-linkerd-inject.sh
- Inject linkerd sidecars in the deployment.curl.sh
- Does a recursive call to the application to create artificial traffic to the application.distributed-trace.yml
- Deployment config in Kubernetes for havingspring-cloud-sleuth-server
andspring-cloud-sleuth-client
deployed as 2 containers in a single pod. They have distributed tracing enabled using Spring Cloud Sleuth which helps in Distributed tracing.spring-cloud-sleuth-example
- code based for the client and server microservice which has already been dockerized and uploaded to Google Container Registry(gcr.io). It's public, so you can use it as well.
This demo covers the 3 pillars of observability - Metrics, Logging and Tracing.
client
- Exposed from external serviceserver
- Accessible from theclient
linkerd
service mesh collects metrics about the pods and containers.- Spring Cloud Sleuth is used for Distributed tracing across microservices.
- Google Stack Driver also collects the logs, metrics in the Google Cloud platform from the Google Kubernetes Engine.