A method for validating installed services on a computing device including one or more processors and system memory, the method comprising: receiving a request for validation of an installed software application, wherein the installed software application requires multiple validators (302, 303, 304), wherein a role manifest is used to describe dependencies between the validators (302, 303, 304) defining an order for executing the validators (302, 303, 304), and describes which logs need to be aggregated via a log aggregator, the validators (302, 303, 304) causing logs to be written, including logs that are written by the validators (302, 303, 304) and logs from other sources being relevant to the validators (302, 303, 304); identifying the validators (302, 303, 304) for the installed software application, and retrieving the validators (302, 303, 304) from the role manifest; retrieving a diagnoser associated with the installed software application, the diagnoser being a first script, a first software application, or a first code that identifies first diagnostics, first operations, or tests to be used to identify a source of a problem when one of the multiple validators indicates a failure; querying the validators (302, 303, 304) and the diagnoser, and building a tree of dependencies among the validators (302, 303, 304) and the diagnoser, the tree of dependencies associating the diagnoser with a specific validator (302, 303, 304) of the validators (302, 303, 304); validating whether the installed software application is operating properly; identifying which hardware target is running the installed software application, and executing the validators (302, 303, 304) on the hardware target; and collecting, using the log aggregator, the logs identified by the validators (302, 303, 304), the diagnoser parsing the aggregated logs to identify a source of an installed software application failure. receiving a request for validation of an installed software application, wherein the installed software application requires multiple validators (302, 303, 304), wherein a role manifest is used to describe dependencies between the validators (302, 303, 304) defining an order for executing the validators (302, 303, 304), and describes which logs need to be aggregated via a log aggregator, the validators (302, 303, 304) causing logs to be written, including logs that are written by the validators (302, 303, 304) and logs from other sources being relevant to the validators (302, 303, 304); identifying the validators (302, 303, 304) for the installed software application, and retrieving the validators (302, 303, 304) from the role manifest; retrieving a diagnoser associated with the installed software application, the diagnoser being a first script, a first software application, or a first code that identifies first diagnostics, first operations, or tests to be used to identify a source of a problem when one of the multiple validators indicates a failure; querying the validators (302, 303, 304) and the diagnoser, and building a tree of dependencies among the validators (302, 303, 304) and the diagnoser, the tree of dependencies associating the diagnoser with a specific validator (302, 303, 304) of the validators (302, 303, 304); validating whether the installed software application is operating properly; identifying which hardware target is running the installed software application, and executing the validators (302, 303, 304) on the hardware target; and collecting, using the log aggregator, the logs identified by the validators (302, 303, 304), the diagnoser parsing the aggregated logs to identify a source of an installed software application failure.