# HiTrace - [Overview](#section11660541593) - [Architecture](#section16334748141112) - [Directory Structure](#section161941989596) - [Constraints](#section119744591305) - [Usage](#section1312121216216) - [Available APIs](#section1551164914237) - [Usage Guidelines](#section129654513264) - [Repositories Involved](#section1371113476317) ## Overview HiTrace provides APIs to implement call chain tracing throughout a service process. With HiTrace, you can quickly obtain the run log for the call chain of a specified service process and locate faults in cross-device, cross-process, or cross-thread communications. ## Architecture **Figure 1** Architecture of HiTrace ![](figures/en-us_image_0000001123644797.png) HiTrace is the lightweight implementation based on the distributed call chain of cloud computing. HiTrace implements call chain tracing as follows: - Transfers **traceid** in cross-device, cross-process, and cross-thread communications. - Stores **traceid** in the thread local storage \(TLS\) at the Native layer of the process. - Automatically adds **traceid** to existing events and run logs. ## Directory Structure ``` /base/hiviewdfx/hitrace ├── frameworks # Framework code │ └── native # HiTrace Native implementation code ├── interfaces # APIs │ └── js # JS APIs │ └── kits # JS inner implementation code │ └── native # C/C++ APIs │ └── innerkits # Header files opened to internal subsystems └── test # Test cases ``` ## Constraints HiTrace is already supported by the IPC and EventHandler communication mechanisms. If you are using a custom communication mechanism, adaptation is required to use HiTrace. ## Usage ### Available APIs Major APIs of HiTrace