Araştırma Makalesi
BibTex RIS Kaynak Göster

Observability and Monitoring Design Pattern in Software Engineering

Yıl 2023, Cilt: 25 Sayı: 74, 395 - 404, 15.05.2023
https://doi.org/10.21205/deufmd.2023257411

Öz

The importance of observability and monitoring in software development is growing daily. Existing tools that provide observability and monitoring are in an external structure, which prevents them from reaching the required information in the system deeply. In addition, these tools are difficult to personalize, modify, and reconfigure due to their unidirectional (inside-out) data flow. When software crashes, many tools send the software owners the reasons for the crash, but there is no standardization in this regard. Consequently, the feedback performance of these systems is debatable. To address the issues above, we have developed a live observation and monitoring design pattern that is an integral part of the system, as opposed to an observation and monitoring approach that is separate from the software and not integrated into the system. In developing the design template, blockchain, the most modern and trustworthy technology for observability and monitoring, was utilized by using the hashing mechanism of the blockchain. In this direction, it has been ensured that the blockchain supports the graph structure in terms of its compatibility with software production tools and paradigms, and this structure serves as the foundation of the design pattern we propose. Our proposed design template and the algorithm provides the update of the data stored in the system. Furthermore, the proposed data structure, named Tag, supports the cycles in the graph data structure as well as the acyclic graphs. Finally, the structure we developed was compared to blockchain technology in observability and monitoring. It was determined that our model was superior to the data model in terms of time and space complexity.

Kaynakça

  • [1] Liu, Y. Y., Slotine, J. J., Barabási, A. L. 2013. Observability of Complex Systems. Proceedings of the National Academy of Sciences, 110(7), 2460-2465.
  • [2] Sridharan, C. 2018. Distributed Systems Observability: A Guide to Building Robust Systems. O’Reilly Media.
  • [3] Li, B., Peng, X., Xiang, Q., Wang, H., Xie, T., Sun, J., & Liu, X. 2022. Enjoy Your Observability: An Industrial Survey of Microservice Tracing and Analysis. Empirical Software Engineering, 27(1), 1-28.
  • [4] Indrasiri, K., Siriwardena, P. 2018. Microservices for the Enterprise. Apress, Berkeley.
  • [5] Gatev, R. 2021. Observability: Logs, Metrics, and Traces. In Introducing Distributed Application Runtime (Dapr): Simplifying Microservices Applications Development Through Proven and Reusable Patterns and Practices, pp. 233-252, Apress, Berkeley, CA.
  • [6] Goniwada, S. R. 2022. Observability. In Cloud Native Architecture and Design: A Handbook for Modern Day Architecture and Design with Enterprise-Grade Examples, 661-676, Apress, Berkeley, CA.
  • [7] Niedermaier, S., Koetter, F., Freymann, A., Wagner, S. 2019, October. On Observability and Monitoring of Distributed Systems–An Industry Interview Study. In International Conference on Service-Oriented Computing, 36-52, Springer, Cham.
  • [8] Robinson, W. N. 2006. A Requirements Monitoring Framework for Enterprise Systems. Requirements Engineering, 11(1), 17-41.
  • [9] Marie-Magdelaine, N. 2021. Observability and Resources Managements in Cloud-Native Environments (Doctoral dissertation, Université de Bordeaux).
  • [10] Tzanettis, I., Androna, C. M., Zafeiropoulos, A., Fotopoulou, E., & Papavassiliou, S. 2022. Data Fusion of Observability Signals for Assisting Orchestration of Distributed Applications. Sensors, 22(5), 2061.
  • [11] Robillard, S., & Coullon, H. 2022, March. SMT-Based Planning Synthesis for Distributed System Reconfigurations. In FASE, 268-287.
  • [12] Bharathi, R., Selvarani, R. 2022. A Machine Learning Approach for Quantifying the Design Error Propagation in Safety Critical Software System. IETE Journal of Research, 68(1), 467-481.
  • [13] Balke, D. 2022. Consistency and Robustness in an Event-Sourced System. https://es.cs.uni-kl.de/publications/datarsg/Balk22.pdf (accessed Sep. 9, 2022).
  • [14] Hindle, A. 2010, October. Software Process Recovery: Recovering Process from Artifacts. In 2010 17th Working Conference on Reverse Engineering, 305-308.
  • [15] Qayum, A., Khan, S. U. R., Akhunzada, A. 2022. FineCodeAnalyzer: Multi-Perspective Source Code Analysis Support for Software Developer Through Fine-Granular Level Interactive Code Visualization. IEEE Access, 10, 20496-20513.
  • [16] Yusop, N. S. M., Grundy, J., Vasa, R. 2016. Reporting Usability Defects: A Systematic Literature Review. IEEE Transactions on Software Engineering, 43(9), 848-867.
  • [17] Ladleif, J., Weske, M., & Weber, I. 2019. Modeling and Enforcing Blockchain-based Choreographies. In International Conference on Business Process Management, 69-85.
  • [18] Ciccio, C. D., Meroni, G., Plebani, P. 2020. Business Process Monitoring on Blockchains: Potentials and Challenges. Enterprise, Business-Process and Information Systems Modeling, 36-51.
  • [19] Karumuri, S., Solleza, F., Zdonik, S., Tatbul, N. 2021. Towards Observability Data Management at Scale. ACM SIGMOD Record, 49(4), 18-23.
  • [20] Alhamazani, K., Ranjan, R., Mitra, K., Rabhi, F., Jayaraman, P. P., Khan, S. U., ..., Bhatnagar, V. 2015. An Overview of the Commercial Cloud Monitoring Tools: Research Dimensions, Design Issues, and State-of-the-Art. Computing, 97(4), 357-377.
  • [21] Cândido, J., Aniche, M., van Deursen, A. 2021. Log-based Software Monitoring: A Systematic Mapping Study. PeerJ Computer Science, 7, e489.
  • [22] Gujral, H., Lal, S., Li, H. 2021. An Exploratory Semantic Analysis of Logging Questions. Journal of Software: Evolution and Process, 33(7), e2361.

Yazılım Mühendisliğinde Gözlemlenebilirlik ve İzleme Üzerine Bir Tasarım Şablonu

Yıl 2023, Cilt: 25 Sayı: 74, 395 - 404, 15.05.2023
https://doi.org/10.21205/deufmd.2023257411

Öz

Yazılım geliştirmede gözlemlenebilirlik ve izlemenin rolü oldukça kritiktir ve her geçen gün artmaktadır. Gözlemlenebilirlik ve izlenebilirlik sağlayan mevcut araçlar, harici yapıda bulundukları için sistemin derinliklerine girebilen ve gerekli bilgiye bu yolla ulaşabilen bir yapıda değillerdir. Ayrıca bu araçların özelleştirilmesi ve tek yönlü (içeriden dışarı) bilgi sağladıkları için modifiye edilerek yeniden konfigüre edilmesi zordur. Pek çok araç, yazılım çöktüğünde yazılımın sahiplerine çökme nedenlerini gönderir ancak bu konuda bir standardizasyon bulunmamaktadır. Dolayısıyla bu sistemlerin geri bilgilendirme başarımı tartışma konusudur. Çalışmamızda, yukarıda sözü edilen problemlere çözüm sunmak amacıyla, yazılımdan ayrı tutulup, sisteme entegre edilmeyen bir gözlemleme ve izleme anlayışının yerine, sistemin bir parçası olan ve onunla birlikte yaşayan canlı bir gözlemleme ve izleme tasarım şablonu geliştirilmiştir. Tasarım şablonunun geliştirilmesinde, gözlemlenebilirlik ve izlenebilirlik açısından özetleme mekanizmasından yararlanılmıştır. Bu doğrultuda, yazılım üretim araçlarına ve paradigmalarına uyumu açısından çizge yapısından yararlanılmış ve bu yapı, önerdiğimiz tasarım şablonunun temelini oluşturmuştur. Geliştirdiğimiz tasarım şablonu ve algoritma ile lineer bir karmaşıklıkta sistemdeki verinin güncellenebilmesi sağlanmaktadır. Ayrıca döngüsüz çizge yapısının desteklenmesinin yanı sıra Etiket adı verdiğimiz yapı sayesinde, çizge yapısındaki döngüler desteklenir hale getirilmiştir. Son olarak geliştirdiğimiz yapı gözlemlenebilirlik ve izlenebilirlik açısından blokzinciri veri yapısı ile karşılaştırılmış ve sonuçta geliştirdiğimiz modelin zaman/alan karmaşıklığının daha başarılı olduğu tespit edilmiştir.

Kaynakça

  • [1] Liu, Y. Y., Slotine, J. J., Barabási, A. L. 2013. Observability of Complex Systems. Proceedings of the National Academy of Sciences, 110(7), 2460-2465.
  • [2] Sridharan, C. 2018. Distributed Systems Observability: A Guide to Building Robust Systems. O’Reilly Media.
  • [3] Li, B., Peng, X., Xiang, Q., Wang, H., Xie, T., Sun, J., & Liu, X. 2022. Enjoy Your Observability: An Industrial Survey of Microservice Tracing and Analysis. Empirical Software Engineering, 27(1), 1-28.
  • [4] Indrasiri, K., Siriwardena, P. 2018. Microservices for the Enterprise. Apress, Berkeley.
  • [5] Gatev, R. 2021. Observability: Logs, Metrics, and Traces. In Introducing Distributed Application Runtime (Dapr): Simplifying Microservices Applications Development Through Proven and Reusable Patterns and Practices, pp. 233-252, Apress, Berkeley, CA.
  • [6] Goniwada, S. R. 2022. Observability. In Cloud Native Architecture and Design: A Handbook for Modern Day Architecture and Design with Enterprise-Grade Examples, 661-676, Apress, Berkeley, CA.
  • [7] Niedermaier, S., Koetter, F., Freymann, A., Wagner, S. 2019, October. On Observability and Monitoring of Distributed Systems–An Industry Interview Study. In International Conference on Service-Oriented Computing, 36-52, Springer, Cham.
  • [8] Robinson, W. N. 2006. A Requirements Monitoring Framework for Enterprise Systems. Requirements Engineering, 11(1), 17-41.
  • [9] Marie-Magdelaine, N. 2021. Observability and Resources Managements in Cloud-Native Environments (Doctoral dissertation, Université de Bordeaux).
  • [10] Tzanettis, I., Androna, C. M., Zafeiropoulos, A., Fotopoulou, E., & Papavassiliou, S. 2022. Data Fusion of Observability Signals for Assisting Orchestration of Distributed Applications. Sensors, 22(5), 2061.
  • [11] Robillard, S., & Coullon, H. 2022, March. SMT-Based Planning Synthesis for Distributed System Reconfigurations. In FASE, 268-287.
  • [12] Bharathi, R., Selvarani, R. 2022. A Machine Learning Approach for Quantifying the Design Error Propagation in Safety Critical Software System. IETE Journal of Research, 68(1), 467-481.
  • [13] Balke, D. 2022. Consistency and Robustness in an Event-Sourced System. https://es.cs.uni-kl.de/publications/datarsg/Balk22.pdf (accessed Sep. 9, 2022).
  • [14] Hindle, A. 2010, October. Software Process Recovery: Recovering Process from Artifacts. In 2010 17th Working Conference on Reverse Engineering, 305-308.
  • [15] Qayum, A., Khan, S. U. R., Akhunzada, A. 2022. FineCodeAnalyzer: Multi-Perspective Source Code Analysis Support for Software Developer Through Fine-Granular Level Interactive Code Visualization. IEEE Access, 10, 20496-20513.
  • [16] Yusop, N. S. M., Grundy, J., Vasa, R. 2016. Reporting Usability Defects: A Systematic Literature Review. IEEE Transactions on Software Engineering, 43(9), 848-867.
  • [17] Ladleif, J., Weske, M., & Weber, I. 2019. Modeling and Enforcing Blockchain-based Choreographies. In International Conference on Business Process Management, 69-85.
  • [18] Ciccio, C. D., Meroni, G., Plebani, P. 2020. Business Process Monitoring on Blockchains: Potentials and Challenges. Enterprise, Business-Process and Information Systems Modeling, 36-51.
  • [19] Karumuri, S., Solleza, F., Zdonik, S., Tatbul, N. 2021. Towards Observability Data Management at Scale. ACM SIGMOD Record, 49(4), 18-23.
  • [20] Alhamazani, K., Ranjan, R., Mitra, K., Rabhi, F., Jayaraman, P. P., Khan, S. U., ..., Bhatnagar, V. 2015. An Overview of the Commercial Cloud Monitoring Tools: Research Dimensions, Design Issues, and State-of-the-Art. Computing, 97(4), 357-377.
  • [21] Cândido, J., Aniche, M., van Deursen, A. 2021. Log-based Software Monitoring: A Systematic Mapping Study. PeerJ Computer Science, 7, e489.
  • [22] Gujral, H., Lal, S., Li, H. 2021. An Exploratory Semantic Analysis of Logging Questions. Journal of Software: Evolution and Process, 33(7), e2361.
Toplam 22 adet kaynakça vardır.

Ayrıntılar

Birincil Dil Türkçe
Konular Mühendislik
Bölüm Makaleler
Yazarlar

Savaş Takan 0000-0002-7718-9476

Fatih Soygazi 0000-0001-8426-2283

Erken Görünüm Tarihi 12 Mayıs 2023
Yayımlanma Tarihi 15 Mayıs 2023
Yayımlandığı Sayı Yıl 2023 Cilt: 25 Sayı: 74

Kaynak Göster

APA Takan, S., & Soygazi, F. (2023). Yazılım Mühendisliğinde Gözlemlenebilirlik ve İzleme Üzerine Bir Tasarım Şablonu. Dokuz Eylül Üniversitesi Mühendislik Fakültesi Fen Ve Mühendislik Dergisi, 25(74), 395-404. https://doi.org/10.21205/deufmd.2023257411
AMA Takan S, Soygazi F. Yazılım Mühendisliğinde Gözlemlenebilirlik ve İzleme Üzerine Bir Tasarım Şablonu. DEUFMD. Mayıs 2023;25(74):395-404. doi:10.21205/deufmd.2023257411
Chicago Takan, Savaş, ve Fatih Soygazi. “Yazılım Mühendisliğinde Gözlemlenebilirlik Ve İzleme Üzerine Bir Tasarım Şablonu”. Dokuz Eylül Üniversitesi Mühendislik Fakültesi Fen Ve Mühendislik Dergisi 25, sy. 74 (Mayıs 2023): 395-404. https://doi.org/10.21205/deufmd.2023257411.
EndNote Takan S, Soygazi F (01 Mayıs 2023) Yazılım Mühendisliğinde Gözlemlenebilirlik ve İzleme Üzerine Bir Tasarım Şablonu. Dokuz Eylül Üniversitesi Mühendislik Fakültesi Fen ve Mühendislik Dergisi 25 74 395–404.
IEEE S. Takan ve F. Soygazi, “Yazılım Mühendisliğinde Gözlemlenebilirlik ve İzleme Üzerine Bir Tasarım Şablonu”, DEUFMD, c. 25, sy. 74, ss. 395–404, 2023, doi: 10.21205/deufmd.2023257411.
ISNAD Takan, Savaş - Soygazi, Fatih. “Yazılım Mühendisliğinde Gözlemlenebilirlik Ve İzleme Üzerine Bir Tasarım Şablonu”. Dokuz Eylül Üniversitesi Mühendislik Fakültesi Fen ve Mühendislik Dergisi 25/74 (Mayıs 2023), 395-404. https://doi.org/10.21205/deufmd.2023257411.
JAMA Takan S, Soygazi F. Yazılım Mühendisliğinde Gözlemlenebilirlik ve İzleme Üzerine Bir Tasarım Şablonu. DEUFMD. 2023;25:395–404.
MLA Takan, Savaş ve Fatih Soygazi. “Yazılım Mühendisliğinde Gözlemlenebilirlik Ve İzleme Üzerine Bir Tasarım Şablonu”. Dokuz Eylül Üniversitesi Mühendislik Fakültesi Fen Ve Mühendislik Dergisi, c. 25, sy. 74, 2023, ss. 395-04, doi:10.21205/deufmd.2023257411.
Vancouver Takan S, Soygazi F. Yazılım Mühendisliğinde Gözlemlenebilirlik ve İzleme Üzerine Bir Tasarım Şablonu. DEUFMD. 2023;25(74):395-404.

Dokuz Eylül Üniversitesi, Mühendislik Fakültesi Dekanlığı Tınaztepe Yerleşkesi, Adatepe Mah. Doğuş Cad. No: 207-I / 35390 Buca-İZMİR.