Diagnostics are a critical part of any system which provides insights about the state, health and transactions handled by the system. System logs and call-traces form the primary sources for diagnostics information. With every Microservice instance continuously generating logs and traces, maintaining, querying, and accessing these logs from different sources becomes an operational challenge. When logs are persisted in multiple stores, generating insights, and alerting also becomes complicated. Following is an illustration of an operations team receiving diagnostics information from distributed systems:
Centralized Diagnostics (Problem)
The solution to this problem is to delegate logging and tracing responsibilities to a separate service which can consolidate diagnostics information from multiple Microservices/Microservice-instances and persist it in a centralized store. This also helps in decoupling the diagnostics activities from business logic...