Before we explore the tools we'll choose from, we should discuss different approaches to storing and collecting metrics.
We can divide the tools by dimensions. Some can store data with dimensions while others cannot. Representatives of those that are dimensionless would be Graphite and Nagios. Truth be told, there is a semblance of dimensions in Graphite, but they are so limited in their nature that we'll treat it as dimensionless. Some of the solutions that do support dimensions are, for example, InfluxDB and Prometheus. The former supports them in the form of key/value pairs while the latter uses labels.
Non-dimensional (or dimensionless) metric storage belongs to the old world when servers were relatively static, and the number of targets that were monitored was relatively small. That can be seen from the time those tools...