To get the stats on how many records were ingested, how many moved to profile, how many ids were generated... all this can be derived from the Monitoring dashboard. You can filter by days, check with specific dataflow as well.
For records that failed to move to the profile, I am not sure which API can be utilized to fetch that. But there should be a way to find that.
As @Lokesh_Shivalingaiah suggested you can randomly perform sanity check as well by searching. However for large data to find the profiles that couldn't make it to UPS - I will check if I can find more details.
I did some test and I found that check Dataset> Activity and Identies > Browser are the two ways for my marketers. These two ways allow me to monitor from the ingestion part to the Profile side.Is it correct consider that Query Service and Monitoring Batch covers the same ingestion part of Dataset> Activity ?
If marketers are comfortable using the UI they should rely on the Dataset>Activity and Monitoring Tabs to get the metrics/ information from ingestion to profile. The identities tab will not give them this information.