skip to main content
10.1145/3474624.3474631acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
short-paper

Identifying Logging Practices in Open Source Python Containerized Application Projects

Published:05 October 2021Publication History

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.

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. Prabath Siriwardena Kasun Indrasiri. 2018. Observability. In: Microservices for the Enterprise: Designing, Developing, and Deploying. Apress, San Jose, CA, USA.Google ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarCross RefCross Ref
  8. Libhunt. 2021. Python Logging packages – Awesome Python: A curated list of awesome Python frameworks, packages, software and resources. https://python.libhunt.com/packages/loggingGoogle ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Vu Nguyen, Sophia Deeds-Rubin, Thomas Tan, and Barry Boehm. 2007. A SLOC counting standard. University of Southern California.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarCross RefCross Ref
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. M. Yousif. 2016. Microservices. IEEE Cloud Computing 3, 5 (2016), 4–5.Google ScholarGoogle ScholarCross RefCross Ref
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarCross RefCross Ref

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    SBES '21: Proceedings of the XXXV Brazilian Symposium on Software Engineering
    September 2021
    473 pages
    ISBN:9781450390613
    DOI:10.1145/3474624

    Copyright © 2021 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 5 October 2021

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • short-paper
    • Research
    • Refereed limited

    Acceptance Rates

    Overall Acceptance Rate147of427submissions,34%
  • Article Metrics

    • Downloads (Last 12 months)22
    • Downloads (Last 6 weeks)3

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format .

View HTML Format