  Cloud applications are increasingly shifting from large monolithic services
to complex graphs of loosely-coupled microservices. Despite the advantages of
modularity and elasticity microservices offer, they also complicate cluster
management and performance debugging, as dependencies between tiers introduce
backpressure and cascading QoS violations.
  We present Sage, a machine learning-driven root cause analysis system for
interactive cloud microservices. Sage leverages unsupervised ML models to
circumvent the overhead of trace labeling, captures the impact of dependencies
between microservices to determine the root cause of unpredictable performance
online, and applies corrective actions to recover a cloud service's QoS. In
experiments on both dedicated local clusters and large clusters on Google
Compute Engine we show that Sage consistently achieves over 93% accuracy in
correctly identifying the root cause of QoS violations, and improves
performance predictability.
