The Importance of Tracing in Software Engineering
Software engineering involves the specialized use of tracing, which is the recording of requests as they flow through an application. This information is used for troubleshooting and debugging, and may also be used by system administrators, technical-support personnel, or monitoring tools to diagnose common problems. This is a cross-cutting concern that is increasingly important for both traditional and distributed applications. To be effective, tracing must accurately capture all of the operations and activities within an application.
When applied to applications and services, tracing records the entire request activity across all services. This information includes name, start and end timestamps, and other metadata. In addition, tracing places spans in the proper order for a distributed application. It is often difficult to determine the root cause of a failure in distributed applications, as there are more points of failure. This results in slower diagnosis and lower SLAs.