From 5b4b792700161891a76ef3f2c5cc652477995f72 Mon Sep 17 00:00:00 2001 From: Osama Ahmed Tahir Date: Mon, 8 Sep 2025 05:00:29 +0200 Subject: [PATCH 1/5] Added blog and profile photo --- ...Intelligent_Logging_Pipeline_OsamaTahir.md | 198 ++++++++++++++++++ images/blog_authors/OsamaTahir.jpeg | Bin 0 -> 79014 bytes 2 files changed, 198 insertions(+) create mode 100644 _gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md create mode 100644 images/blog_authors/OsamaTahir.jpeg diff --git a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md new file mode 100644 index 000000000..1892e6875 --- /dev/null +++ b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md @@ -0,0 +1,198 @@ +--- +tile: Intelligent Logging Pipeline +project: Intelligent Log Analysis for the HSF Conditions Database +author: Osama Ahmed Tahir +date: 06.09.2025\ +year: 2025 +layout: blog_post +intro: | +An intelligent logging pipeline for NopayloadDB that integrates log +aggregation, anomaly detection, and monitoring. It improves reliability +and maintainability in large-scale HEP experiments It is deployed on +Minikube cluster while using a deep learning model for real-time anomaly +detection. +--- + +##### Mentors: Ruslan Mashinistov, Michel Hernandez Villanueva, and John S. De Stefano Jr + +##### Proposal: [Google Summer of Code Proposal](https://drive.google.com/file/d/1Gg9qLOUrT1eHkReHZSS9fJUuP3-znHuW/view?usp=sharing) + +### Introduction +

+As experiments grow more complex, the demand for efficient access to +conditions data has increased. To address this, the HEP Software +Foundation (HSF) proposed a reference architecture, NopayloadDB. It +stores metadata and file URLs instead of payloads. However, NopayloadDB +lacks a centralized logging subsystem. To address these limitations, +this project proposes an intelligent logging pipeline integrated with +NopayloadDB. The pipeline combines advanced log aggregation, scalable +storage, and deep learning--based anomaly detection to reduce downtime +and improve operation. The result is enhanced reliability, +maintainability, and scalability of conditions database services in +modern HEP experiments. +

+ +### Objectives +

+The project extended NopayloadDB, the HSF-referenced conditions +database [1], by introducing a centralized and intelligent logging system. +The main goal was to provide centralized log aggregation, structured +parsing and storage for easier querying, and anomaly detection using +DeepLog to detect anomalies. The system also aimed to support real-time +monitoring and diagnostics for different stakeholders. It detected +issues before escalation and provided insights for tuning system +parameters. The design emphasized scalability, modularity, and +compatibility with OpenShift deployments. +

+ +### Motivation +

+I am passionate about contributing to systems that are accessible and +exist in both open-source and open-science settings. My background in +distributed systems, cloud computing, and data-intensive applications +aligns closely with this project. I am excited to contribute my skills +that help to build a scalable and intelligent system and share the +results with the broader community. This opportunity also allowed me to +deepen my expertise in log analysis and machine learning while advancing +my passion for technology and scientific knowledge to be openly +available and accessible. +

+ +### Technical Walkthrough +

+The logging pipeline is deployed on Minikube and is implemented around +three containerized modules: Process, Monitor, and Predict. Each +component as shown in Figure 1 has been described below. +

+ +
+intelligent_logging_pipeline
+

Figure 1: Intelligent Logging Pipeline

+ +#### Process +

+In the Process module, NopayloadDB generates log data, which includes +both the Django application and the PostgreSQL database. This data is +then collected, filtered, and parsed by Fluent Bit. The processed Fluent +Bit logs are consumed by Kafka on a topic. Alloy is used as a forwarding +agent that forwards a structured log from a Kafka topic to a Loki. +

+ +#### Monitor +

+The Monitor module focused on scalable storage and visualization. Loki +is a distributed, horizontally scalable log aggregation system composed +of several key components [2]. The Distributor receives logs from Alloy, +validates them, and routes them to Ingesters while balancing the load. +The Ingester temporarily stores logs in memory, compresses them, and +forwards them to long-term storage in MinIO. The Querier retrieves the +required logs from MinIO, forwarding them to Drain3 for prediction and +Grafana for visualization. Figure 2 shows the flow of data within the +customized Loki architecture. +

+ +
+custom_loki
+

Figure 2: Customized Loki

+ +#### Predict +

+The Predict module added intelligence to the pipeline. Drain3 parsed raw +logs into structured template IDs. These template IDs are consumed by +Redis in sequence from Drain3. The template ID sequences are then +processed by DeepLog for sequence-based anomaly detection. Any detected +anomalies are visualized by Grafana for debugging and monitoring. +

+ +### DeepLog +

+DeepLog is an LSTM-based model that learns log patterns from normal +execution [3]. It detects anomalies when log patterns deviate from the model +trained from logs under normal execution. Over time, the DeepLog model +adapts to new log patterns over time and constructs workflows from the +underlying system log. This is because once an anomaly is detected, +users can diagnose the detected anomaly and perform root cause analysis +effectively. The deeplog configuration can be changed by the top K. The +top K is how many of the most likely predictions will be considered +"normal" by the model. If k is set to 2, you take the two events with +the highest probabilities, and these will be the top k most probable +next events. +

+ +

+Suppose a log system has several events, each represented by a unique +ID. The model takes a sequence of past events and predicts what the next +event is likely to be. For example, table 1 shows unique IDs for the set +of events of a user trying to upload a file. From the past event, the +DeepLog learns the upcoming event and gives a probability to each unique +event. It is to be noted that these sets of events are consumed by +DeepLog in a random sequence. +

+ +| Unique ID | Event | Probability | +|-----------|--------------|-------------| +| 0 | Login | 0.7 | +| 1 | Upload File | 0.4 | +| 2 | Select File | 0.6 | +| 3 | Logout | 0.25 | +| 4 | Submit File | 0.3 | +*Table 1: Set of Events* + +

+Here the model thinks "Login" is most likely next event, then "Select +File" and then "Upload File" etc. Hence, the sequence will be \[Login, +Select File, Upload File, Submit File, Logout\] and with their +respective unique IDs, it will be \[0, 2, 1, 4, 3\]. With k=2, the model +predicts the top 2 event IDs as \[Login, Select File\], while the true +event is Upload File. Since the true event does not appear in the top 2 +predictions, this case is flagged as an anomaly. When k=3, the top 3 +event IDs are \[Login, Select File, Upload File\], and the true event +Upload File is included, so it is considered normal. In practice, the +model checks whether the true event ID appears within the top-k +predicted IDs: if the true event is not present, the sequence is +labelled as an anomaly; otherwise, it is treated as normal. +

+ +### Results +

+The intelligent logging pipeline demonstrated log collection and +aggregation for Kubernetes-based clusters. The heterogeneous logs were +parsed and formatted into structured sequences. The DeepLog was +integrated into the pipeline, showing the feasibility of automated +real-time monitoring and anomaly detection. The Grafana dashboards +provided tailored access for different user roles. +

+ +### Future Work +

+This research will establish a baseline for how the observability and +diagnostics of a system can benefit the most from artificial +intelligence. In addition, it will also be beneficial for the open +source community, scientific research, and enterprise applications. From +the experiment\'s point of view, it will provide more reliable and +reproducible physics experiments. This will also enable HEP to +efficiently allocate resources from insights gained from the system. In +addition, it will also pave the way for how cutting-edge techniques can +be applied beyond HEP, such as large-scale cloud applications and +enterprise systems. +

+ +### Final remarks +

+I enjoyed my time working with my mentors Ruslan, Michel, and John. This +project was the first time that I contributed to CERN and BNL to such an +extent and provided me with a sense of accomplishment in my professional +career. The consistent feedback on both the project and the publication +helped me a lot in shaping the project. My mentors provided me with a +path to present the project on a greater scale, and it resulted in the +project reaching greater potential to be used for other experiments. I +am happy to be mentored by such experienced and knowledgeable +professionals. +

+ +### References +[1] Ruslan Mashinistov, L. Gerlach, P. Laycock, A. Formica, Giacomo Govi, and C. Pinkenburg, “The HSF Conditions Database Reference Implementation,” EPJ Web of Conferences, vol. 295, pp. 01051–01051, Jan. 2024, doi: https://doi.org/10.1051/epjconf/202429501051. + +[2] “Grafana Loki | Grafana Loki documentation,” Grafana Labs, 2025. https://grafana.com/docs/loki/latest (accessed Jul. 30, 2025). + +[3] M. Du, F. Li, G. Zheng, and V. Srikumar, “DeepLog, Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security”, Oct. 2017, doi: https://doi.org/10.1145/3133956.3134015. \ No newline at end of file diff --git a/images/blog_authors/OsamaTahir.jpeg b/images/blog_authors/OsamaTahir.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2e4b68b1041bb71511cacd0bfd15421d6f03ced1 GIT binary patch literal 79014 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 jU Date: Mon, 8 Sep 2025 05:05:21 +0200 Subject: [PATCH 2/5] Made text italic --- _gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md index 1892e6875..690b3ee67 100644 --- a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md +++ b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md @@ -136,7 +136,7 @@ DeepLog in a random sequence. | 2 | Select File | 0.6 | | 3 | Logout | 0.25 | | 4 | Submit File | 0.3 | -*Table 1: Set of Events* +Table 1: Set of Events*

Here the model thinks "Login" is most likely next event, then "Select From 1d370bc73c2775e46260621d6d12436cd7e2e9ca Mon Sep 17 00:00:00 2001 From: Osama Ahmed Tahir Date: Mon, 8 Sep 2025 05:09:36 +0200 Subject: [PATCH 3/5] Updated wordings --- .../2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md index 690b3ee67..325e23cfb 100644 --- a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md +++ b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md @@ -35,10 +35,10 @@ modern HEP experiments. ### Objectives

The project extended NopayloadDB, the HSF-referenced conditions -database [1], by introducing a centralized and intelligent logging system. +database [1], by introducing a centralized and intelligent logging pipeline. The main goal was to provide centralized log aggregation, structured parsing and storage for easier querying, and anomaly detection using -DeepLog to detect anomalies. The system also aimed to support real-time +DeepLog to detect anomalies. The pipeline also aimed to support real-time monitoring and diagnostics for different stakeholders. It detected issues before escalation and provided insights for tuning system parameters. The design emphasized scalability, modularity, and From 0d319f4fba254b55bf4098d928a7b5cbf21831db Mon Sep 17 00:00:00 2001 From: Osama Ahmed Tahir Date: Mon, 8 Sep 2025 05:16:01 +0200 Subject: [PATCH 4/5] Removed links --- _gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md index 325e23cfb..e47e13836 100644 --- a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md +++ b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md @@ -15,8 +15,6 @@ detection. ##### Mentors: Ruslan Mashinistov, Michel Hernandez Villanueva, and John S. De Stefano Jr -##### Proposal: [Google Summer of Code Proposal](https://drive.google.com/file/d/1Gg9qLOUrT1eHkReHZSS9fJUuP3-znHuW/view?usp=sharing) - ### Introduction

As experiments grow more complex, the demand for efficient access to From 56dd8d5d0c88798a49178a7807144d7a18e521f1 Mon Sep 17 00:00:00 2001 From: Osama Ahmed Tahir Date: Thu, 11 Sep 2025 00:21:46 +0200 Subject: [PATCH 5/5] Removed additional text --- ...og_Intelligent_Logging_Pipeline_OsamaTahir.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md index e47e13836..ee8064412 100644 --- a/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md +++ b/_gsocblogs/2025/blog_Intelligent_Logging_Pipeline_OsamaTahir.md @@ -2,7 +2,7 @@ tile: Intelligent Logging Pipeline project: Intelligent Log Analysis for the HSF Conditions Database author: Osama Ahmed Tahir -date: 06.09.2025\ +date: 06.09.2025 year: 2025 layout: blog_post intro: | @@ -24,7 +24,7 @@ stores metadata and file URLs instead of payloads. However, NopayloadDB lacks a centralized logging subsystem. To address these limitations, this project proposes an intelligent logging pipeline integrated with NopayloadDB. The pipeline combines advanced log aggregation, scalable -storage, and deep learning--based anomaly detection to reduce downtime +storage, and deep learning-based anomaly detection to reduce downtime and improve operation. The result is enhanced reliability, maintainability, and scalability of conditions database services in modern HEP experiments. @@ -138,13 +138,13 @@ DeepLog in a random sequence.

Here the model thinks "Login" is most likely next event, then "Select -File" and then "Upload File" etc. Hence, the sequence will be \[Login, -Select File, Upload File, Submit File, Logout\] and with their -respective unique IDs, it will be \[0, 2, 1, 4, 3\]. With k=2, the model -predicts the top 2 event IDs as \[Login, Select File\], while the true +File" and then "Upload File" etc. Hence, the sequence will be [Login, +Select File, Upload File, Submit File, Logout] and with their +respective unique IDs, it will be [0, 2, 1, 4, 3]. With k=2, the model +predicts the top 2 event IDs as [Login, Select File], while the true event is Upload File. Since the true event does not appear in the top 2 predictions, this case is flagged as an anomaly. When k=3, the top 3 -event IDs are \[Login, Select File, Upload File\], and the true event +event IDs are [Login, Select File, Upload File], and the true event Upload File is included, so it is considered normal. In practice, the model checks whether the true event ID appears within the top-k predicted IDs: if the true event is not present, the sequence is @@ -167,7 +167,7 @@ This research will establish a baseline for how the observability and diagnostics of a system can benefit the most from artificial intelligence. In addition, it will also be beneficial for the open source community, scientific research, and enterprise applications. From -the experiment\'s point of view, it will provide more reliable and +the experiment's point of view, it will provide more reliable and reproducible physics experiments. This will also enable HEP to efficiently allocate resources from insights gained from the system. In addition, it will also pave the way for how cutting-edge techniques can