Hey Chetan,
I'm currently the Metrics Server (MS) owner and author of this quote. I added it as I have seen more and more people trying MS this way, even though it was never designed for it.
As the goal of Metrics Server (MS) is to serve the autoscaling pipeline, some things like accuracy were sacrificed to make autoscaling more responsive. I listed two examples below
No matter what metric scraping period is configured (default 1 minute), MS will always return results from window of the same size (last ~15 seconds on docker). For autoscaling when making a decision to scale up, we only care about the most recent usage even if we make this decision once a minute. For monitoring system it means that we will report usage from only 15 seconds out of every minute. Making such metrics not very useful when calculating average.
Second example would be with the Memory usage metric, MS reports the so called Working Set Size (WSS). This type of memory was selected to best predict OOM events as this is used by Kubelet. Monitoring only WSS isn't very useful for most observability purposes.
Overall, could those and other problems be addressed to make MS a good source of metrics? Possibly, but I don't think it's worth it. Metrics that are exposed by MS can be as easily collected by Monitoring system like Prometheus and having clear purpose allows MS to provide a great scalable tool for autoscaling, and remain really simple.
Thanks for asking this question, I think we could do a better job in MS documentation to make it clear.
Marek