It's hard to tell exactly how this works but judging from the tutorial's docker-compose.yml [0] it looks like this runs as a separate API next to Prometheus and you tell Prometheus to write [1] to Mimir. I'm unclear how reads work from it or maybe there is no read?
Mimir exposes both remote write API and Prometheus compatible API. The typical setup is that you configure Prometheus (or Grafana Agent) to remote write to Mimir and then you configure Grafana (or your preferred query tool) to query metrics from Mimir.
It’s a centralised multi-tenant store, supporting the Prometheus query API. So you can point clients directly at Mimir, they send in PromQL and they get data back in Json.
Last year I wrote a blog post about this exact question: Who watches the watchers?
The general takeaway is that you run a minimal prometheus/alertmanager setup that only scrapes the agents, then use a dead man switch-like system to ensure this pipeline keeps working.
If you have systems exporting metrics in Prometheus style, then you can use Prometheus to scrape them and remote-write to Mimir.
You can alternately use Prometheus Agent, to save storing the data and running a query engine at the leaf.
You can also use the OpenTelemetry suite to perform the same operation, though this is more appealing if you want some other OpenTelemetry features at the same time. Eg if you prefer the ‘pipeline’ style.
You may also be interested into looking at a 5 minutes introduction video, where I cover the overall architecture too: https://www.youtube.com/watch?v=ej9y3KILV8g