With a general metric module, it is expected to be able to: 1. Submit metrics with different types. 2. Get metrics of each thread or globally. TODO: 1. What interface should we expose? With compile-time declared name or just string?