Where to store (tons of) your game's runtime info?

Let’s say you want to store and keep the most possible organized runtime info like:
The amount of references you have of some given classes
The amount of references you have implementing some given interfaces
The total amount of damage the player received while playing
The different items each player owns
The different enemies players have killed,
The amount of times player die and who killed him,
big etc…

All that kind of info (that can raise to hundreds or even over a thousand of different types of info) that you would need in runtime.

What would be a good way to store it all?
A singleton for each type is the first thing coming to my mind, but, is there a better way to do it for Unreal?

Thanks :wink: