Moving to microservice architecture from a monolithic application gives a number of benefits to the company, such as a smaller code base, fast shipping, adding new features quickly, easy to develop, easy to scale certain parts of application, and so on. However, with the growing use of microservice architecture, their complexity also increases. It becomes very challenging to know what is happening inside the system. The flowing of so many messages inside the system makes it hard to know the exact state of the system. Also, dynamic architectures and the auto-scale world makes things more complex. In this chapter, we will take a look at some of the key points to keep in mind for monitoring and scaling microservices.