A monitoring system within a System on a Chip, SoC, for monitoring a plurality of hardware observation points within the SoC, comprising: ∘ a plurality of observers electrically coupled to the plurality of hardware observation points in the SoC, each observer among the plurality of observers adapted to, for each observation time period of one or more observation time periods for the observer: ▪ receive a number of events from a corresponding hardware observation point among the plurality of hardware observation points during the observation time period, wherein the observer and the corresponding hardware observation point operate in the same clock and power domain of the SoC; and ▪ output observation data indicative of the number of events received from the corresponding hardware observation point during the observation time period; and ∘ a plurality of collectors, each collector among the plurality of collectors adapted to: ▪ receive the observation data from a corresponding observer among the plurality of observers for the one or more observation time periods for the corresponding observer; ▪ update a value of a live-counter based on the observation data from the corresponding observer for each of the one or more observation time periods for the corresponding observer; and ▪ output the value of the live-counter. ∘ a plurality of observers electrically coupled to the plurality of hardware observation points in the SoC, each observer among the plurality of observers adapted to, for each observation time period of one or more observation time periods for the observer: ▪ receive a number of events from a corresponding hardware observation point among the plurality of hardware observation points during the observation time period, wherein the observer and the corresponding hardware observation point operate in the same clock and power domain of the SoC; and ▪ output observation data indicative of the number of events received from the corresponding hardware observation point during the observation time period; and ▪ receive a number of events from a corresponding hardware observation point among the plurality of hardware observation points during the observation time period, wherein the observer and the corresponding hardware observation point operate in the same clock and power domain of the SoC; and ▪ output observation data indicative of the number of events received from the corresponding hardware observation point during the observation time period; and ∘ a plurality of collectors, each collector among the plurality of collectors adapted to: ▪ receive the observation data from a corresponding observer among the plurality of observers for the one or more observation time periods for the corresponding observer; ▪ update a value of a live-counter based on the observation data from the corresponding observer for each of the one or more observation time periods for the corresponding observer; and ▪ output the value of the live-counter. ▪ receive the observation data from a corresponding observer among the plurality of observers for the one or more observation time periods for the corresponding observer; ▪ update a value of a live-counter based on the observation data from the corresponding observer for each of the one or more observation time periods for the corresponding observer; and ▪ output the value of the live-counter.