1. A system comprising: a processor; an inference graph having multiple nodes, each node being associated with two or more possible states, a current state of a node being a probability distribution over the two or more possible states, the inference graph reflecting cross-layer components of a network and including multiple root-cause nodes, each root-cause node corresponding to a hardware component or a service whose failure or degradation can cause user-perceptible network problems; and an inference engine executed on the processor to produce from the inference graph, a list of candidates that are potentially responsible for user-perceptible network problems.