Right now all of my metrics are sitting in a PVC with a 30d retention period, so we're probably fine but for longer term cold storage the options aren't great unless you want to run a custom Postgres instance with the Timescale plugin or something else more managed.
https://www.robustperception.io/scaling-and-federating-prome...
https://prometheus.io/docs/prometheus/latest/federation/
You can set up a new "cold storage" Prometheus with a longer retention that scrapes select metrics from your regular 30d Prometheus to store for longer periods of time.
It's as simple as another Prom instance pointing at the "live" Prom instance. You can filter only the metrics you want to keep for a long amount of time, and downsample if necessary (by just setting a higher scrape interval on the "long term" Prom).
Since this "long term" Prom isn't in the critical path you could skimp on processing resources and just give it a big disk as a cost optimization.
If you are on AWS (or equivalent) the storage there is pretty durable. On-prem you can run HA (two instances with identical config).
[0] https://prometheus.io/docs/prometheus/latest/federation/
VictoriaMetrics pretty much has everything you'd hope for as a Prometheus long term storage, like direct PromQL support, good performance and ease of installation.
[1] https://medium.com/@valyala/promql-tutorial-for-beginners-9a...