Implementing logging and tracing
Logging and tracing go hand-in-hand. Logging in application code is already taken care of by default. You use Logback for logging. Logs are either configured to display on the console or pushed to the filesystem. However, you also need to push the logs to the ELK stack for indexing and analysis. For this purpose, you make certain changes to the Logback configuration file, logback-spring.xml
, to push the logs to Logstash. On top of that, these logs should also contain tracking information.
Correlation/trace identifiers should be populated and propagated in distributed transactions for tracing purposes. A distributed transaction refers to the main API call that internally calls other services to serve the request. Spring provides a Spring Cloud Sleuth library that takes care of distributing tracing. It generates the trace ID along with the span identifier. The trace ID gets propagated to all the participant services during the distributed transaction...