an apparatus and method is provided for efficiently determining the source of problems in a complex system based on observable events . the problem identification process is split into two separate activities of generating efficient codes for problem identification and decoding the problems at runtime . various embodiments of the invention contemplate creating a causality matrix which relates observable symptoms to likely problems in the system , reducing the causality matrix into a minimal codebook by eliminating redundant or unnecessary information , monitoring the observable symptoms , and decoding problems by comparing the observable symptoms against the minimal codebook using various best - fit approaches . the minimal codebook also identifies those observable symptoms for which the greatest benefit will be gained if they were monitored as compared to others . by defining a distance measure between symptoms and codes in the codebook , the invention can tolerate a loss of symptoms or spurious symptoms without failure . changing the radius of the codebook allows the ambiguity of problem identification to be adjusted easily . the invention also allows probabilistic and temporal correlations to be monitored .