System health diagnosis serves as an underpinning enabler for enhanced safety and optimized maintenance tasks in complex assets. In the past four decades, a wide-range of diagnostic methods have been proposed, focusing either on system or component level. Currently, one of the most quickly emerging concepts within the diagnostic community is system level diagnostics. This approach targets in accurately detecting faults and suggesting to the maintainers a component to be replaced in order to restore the system to a healthy state. System level diagnostics is of great value to complex systems whose downtime due to faults is expensive. This paper aims to provide a comprehensive review of the most recent diagnostics approaches applied to hardware systems. The main objective of this paper is to introduce the concept of system level diagnostics and review and evaluate the collated approaches. In order to achieve this, a comprehensive review of the most recent diagnostic methods implemented for hardware systems or components is conducted, highlighting merits and shortfalls.