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.