1. A method for monitoring a performance of a computer system, comprising: generating a plurality of events indicative of the performance of the computer system, each event capable of being counted by at least one of a plurality of counters, said plurality of counters including counters of different designs; requesting control of said plurality of counters; in response to control being granted, selecting a set of events from said plurality of events; determining if said set of events is valid to be counted by said plurality of counters; in response to said set of events being valid, coupling each event of said set of events to a corresponding counter of said plurality of counters; enabling said corresponding counters of said plurality of counters to count said set of events to monitor the performance of the computer system.