Amazon AWS and Google Cloud all base their pricing off of, among a few other things, the amount of compute and storage used. For compute, it's based on time, how much time the computer runs. This is very general and abstracts away the need to, for example, count how many times each Assembly instruction is invoked and with which operands. This would significantly interrupt performance if they did it that way, but it seems that the blockchain technologies all went the path of monitoring the individual actions/operations either through transactions directly or Smart Contracts in the case of Ethereum.
So basically I'm wondering why this is, why it wasn't decided to just base everything off compute time and storage (and bandwidth I guess, but mainly focusing on compute time here). This way a transaction would just have to have a start and end timestamp and wouldn't have to really serialize anything, which would mean you could monitor everything in detail pretty much. Wondering why it was done differently.