Yes, sorry, I didn't really say what small was.
I would call that single Prometheus a "medium" size.
With 60s scrape interval 7 days with 5 metrics is only ~50k samples, that should return in maybe 100ms.
For example, I just ran this query:
* rate(http_response_size_bytes_count[1h])
* step 3600
* 7 days
* 27 instances
Response time: 403ms
Another example: Running a count(up) for 12 weeks takes 3.5 seconds for 900 metrics.
Our main Prometheus instance is similar in size, but we scrape every 15s, and ingest around 55k samples/sec. We currently keep 6 months in local TSDB.
We also use a number of recording rules to generate key metrics.
The main server uses about 10GB of memory, but we use a 30GB instance to allow for good caching of data for longer queries.
We are doing a couple things to improve performance for our setup.
* We are increasing the sharding by application. Several smaller Prometheus servers, dedicated to a specific set of jobs.
* We're are deploying Thanos, to provide a global query proxy layer as we scale, and eventually we'll be moving long term storage there.