Monitoring global predicates is a fundamental concern in distributed and concurrent systems for its importance during the design, testing and debugging phases of program development. In this paper, we present a generalization of local predicates called the chain predicates. In the context of multithreaded programs, these predicates can be thought of as predicates defined over shared variables instead of local variables as in the case of local predicates. We present a new vector clock algorithm, called the chain vector clock, which tracks only the variables relevant to the predicate. This results in a vector clock of size equal to the number of variables being tracked instead of the number of threads in the system. Based on the chain vector clocks, we modify the algorithm for detecting conjunctive predicates to detect conjunction of chain predicates under the possibly modality. The other algorithms for predicate detection which were based on the local predicates can also be generalized for chain predicates. We also present a lattice theoretic characterization of chain predicates which could be useful in further understanding of the properties of these predicates.