ABSTRACT
Despite the popularity of microservice architectures using container based virtualization, there are not many studies that describe how logging practices are being employed in this scenario. In this empirical study, we cloned 10,918 of the most stargazed GitHub Python repositories with a Docker/Kubernetes associated file. We were able to find 1,166 Python projects that used containers. A custom parser identified and saved log statements from Python source code. We discovered that certain licenses tend to have a higher log density; over 99% of projects use the built-in Python logging library; the repository age does not affect its log statements/LLOC ratio; logging verbosity levels debug and info are used almost twice as much as warning and error. We hope our study provides the community with useful data about this topic, possibly contributing to the improvement of techniques that stimulate its applications.
- O. Al-Debagy and P. Martinek. 2018. A Comparative Review of Microservices and Monolithic Architectures. In 2018 IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI). IEEE, Budapest, Hungary, 000149–000154. https://doi.org/10.1109/CINTI.2018.8928192Google Scholar
- Han Anu, Jie Chen, Wenchang Shi, Jianwei Hou, Bin Liang, and Bo Qin. 2019. An Approach to Recommendation of Verbosity Log Levels Based on Logging Intention. In 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, Cleveland, Ohio USA, 125–134. https://doi.org/10.1109/ICSME.2019.00022Google ScholarCross Ref
- C. Barna, H. Khazaei, M. Fokaefs, and M. Litoiu. 2017. Delivering Elastic Containerized Cloud Applications to Enable DevOps. In 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS). IEEE, Buenos Aires, Argentina, 65–75. https://doi.org/10.1109/SEAMS.2017.12Google Scholar
- Jürgen Cito, Gerald Schermann, John Erik Wittern, Philipp Leitner, Sali Zumberi, and Harald C. Gall. 2017. An Empirical Analysis of the Docker Container Ecosystem on GitHub. In Proceedings of the 14th International Conference on Mining Software Repositories(MSR ’17). IEEE Press, Buenos Aires, Argentina, 323–333. https://doi.org/10.1109/MSR.2017.67Google ScholarDigital Library
- Robert Heinrich, André van Hoorn, Holger Knoche, Fei Li, Lucy Ellen Lwakatare, Claus Pahl, Stefan Schulte, and Johannes Wettinger. 2017. Performance Engineering for Microservices: Research Challenges and Directions. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion (L’Aquila, Italy) (ICPE ’17 Companion). Association for Computing Machinery, New York, NY, USA, 223–226. https://doi.org/10.1145/3053600.3053653Google ScholarDigital Library
- Prabath Siriwardena Kasun Indrasiri. 2018. Observability. In: Microservices for the Enterprise: Designing, Developing, and Deploying. Apress, San Jose, CA, USA.Google Scholar
- Taeyoung Kim, Suntae Kim, Cheol-Jung Yoo, Soohwan Cho, and Sooyong Park. 2018. An Automatic Approach to Validating Log Levels in Java. In 2018 25th Asia-Pacific Software Engineering Conference (APSEC). IEEE Press, Nara, Japan, 623–627. https://doi.org/10.1109/APSEC.2018.00078Google ScholarCross Ref
- Libhunt. 2021. Python Logging packages – Awesome Python: A curated list of awesome Python frameworks, packages, software and resources. https://python.libhunt.com/packages/loggingGoogle Scholar
- Sumit Maheshwari, Saurabh Deochake, Ridip De, and Anish Grover. 2018. Comparative Study of Virtual Machines and Containers for DevOps Developers. CoRR abs/1808.08192(2018), on–line. arxiv:1808.08192http://arxiv.org/abs/1808.08192Google Scholar
- Marco Miglierina and Damian A. Tamburri. 2017. Towards Omnia: A Monitoring Factory for Quality-Aware DevOps. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion(L’Aquila, Italy) (ICPE ’17 Companion). Association for Computing Machinery, New York, NY, USA, 145–150. https://doi.org/10.1145/3053600.3053629Google ScholarDigital Library
- Vu Nguyen, Sophia Deeds-Rubin, Thomas Tan, and Barry Boehm. 2007. A SLOC counting standard. University of Southern California.Google Scholar
- F. Pina, J. Correia, R. Filipe, F. Araujo, and J. Cardroom. 2018. Nonintrusive Monitoring of Microservice-Based Systems. In 2018 IEEE 17th International Symposium on Network Computing and Applications (NCA). IEEE, Cambridge, MA, USA, 1–8. https://doi.org/10.1109/NCA.2018.8548311Google Scholar
- Guoping Rong, Shenghui Gu, He Zhang, Dong Shao, and Wanggen Liu. 2018. How Is Logging Practice Implemented in Open Source Software Projects? A Preliminary Exploration. In 2018 25th Australasian Software Engineering Conference (ASWEC). IEEE Press, Adelaide, SA, Australia, 171–180. https://doi.org/10.1109/ASWEC.2018.00031Google ScholarCross Ref
- Jacopo Soldani, Damian Andrew Tamburri, and Willem-Jan Van Den Heuvel. 2018. The pains and gains of microservices: A Systematic grey literature review. Journal of Systems and Software 146 (2018), 215–232. https://doi.org/10.1016/j.jss.2018.09.082Google Scholar
- Stephen Soltesz, Herbert Pötzl, Marc E. Fiuczynski, Andy Bavier, and Larry Peterson. 2007. Container-Based Operating System Virtualization: A Scalable, High-Performance Alternative to Hypervisors. SIGOPS Oper. Syst. Rev. 41, 3 (March 2007), 275–287. https://doi.org/10.1145/1272998.1273025Google ScholarDigital Library
- D. Trihinas, A. Tryfonos, M. D. Dikaiakos, and G. Pallis. 2018. DevOps as a Service: Pushing the Boundaries of Microservice Adoption. IEEE Internet Computing 22, 3 (2018), 65–71. https://doi.org/10.1109/MIC.2018.032501519Google ScholarDigital Library
- Jiawei Wang, Li Li, Kui Liu, and Haipeng Cai. 2020. Exploring How Deprecated Python Library APIs Are (Not) Handled. In ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Virtual Event, USA) (ESEC/FSE 2020). Association for Computing Machinery, New York, NY, USA, 233–244. https://doi.org/10.1145/3368089.3409735Google ScholarDigital Library
- Muhammad Waseem, Peng Liang, and Mojtaba Shahin. 2020. A Systematic Mapping Study on Microservices Architecture in DevOps. Journal of Systems and Software 170 (2020), 110798. https://doi.org/10.1016/j.jss.2020.110798Google ScholarCross Ref
- M. Yousif. 2016. Microservices. IEEE Cloud Computing 3, 5 (2016), 4–5.Google ScholarCross Ref
- Ding Yuan, Soyeon Park, and Yuanyuan Zhou. 2012. Characterizing Logging Practices in Open-Source Software. In Proceedings of the 34th International Conference on Software Engineering(ICSE ’12). IEEE Press, Zurich, Switzerland, 102–112. https://doi.org/10.5555/2337223.2337236Google ScholarDigital Library
- J. Zhu, P. He, Q. Fu, H. Zhang, M. R. Lyu, and D. Zhang. 2015. Learning to Log: Helping Developers Make Informed Logging Decisions. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 1. IEEE, Florence, Italy, 415–425. https://doi.org/10.1109/ICSE.2015.60Google ScholarCross Ref
Recommendations
Web development with python and django (abstract only)
SIGCSE '12: Proceedings of the 43rd ACM technical symposium on Computer Science EducationMany instructors have already discovered the joy of teaching programming using the Python programming language. Now it's time to take Python to the next level. This workshop will introduce Django, an open source Python web framework that saves you time ...
Comments