Micro service architectures are rapidly establishing themselves in the software industry as a more efficient and effective substitute for monolithic applications. In a micro service architecture, the application is broken down into many small elements called micro services. These are managed in a distributed way and typically involve several development teams. In such an environment, an architectural model can get lost along the way, making it difficult to perform many downstream software engineering tasks, such as migration, audit, integration or impact analysis. To address this problem, we are developing support for Micro Service Architecture Recovery (MiSAR) using a Model Driven Engineering approach. In this paper, we describe an empirical study which aims to identify the core elements of our approach, by undertaking manual analysis on 8 micro service-based open source projects. From this analysis, we define a metamodel for micro service-based architectures and a set of mapping rules which map between the software and the metamodel. The resulting metamodel and mapping rules provide a solid foundation for any micro service architecture recovery approach and hence are a key first step towards managing the architectural integrity of micro servicebased applications.