DiagnoSys Bot is an AI-powered diagnostic assistant that helps users identify, analyze, and troubleshoot latency issues in storage systems by intelligently inspecting metrics, logs, and configurations. Designed for modern, complex storage infrastructures, this agent integrates large language models (LLMs), retrieval-augmented generation (RAG), and interactive visualizations to accelerate issue resolution.
- LLM-Powered Diagnosis: Uses the Groq LLM API to intelligently process user queries and orchestrate tool invocations for gathering relevant diagnostic data.
- Tool-Based Analysis: Leverages specialized tool wrappers to fetch and process system metrics, logs, and configuration details relevant to the suspected issue.
- RAG Integration: Integrates support documentation (PDF/text) to supplement AI-generated recommendations with reference content from manuals, KB articles, and internal documentation.
- Interactive Visualizations: Displays key diagnostic metrics via interactive charts and dashboards for clear, real-time insights.
DiagnoSys Bot agent currently supports diagnosis of three primary latency fault categories in storage systems:
-
High Capacity Usage Issues
- Detects when elevated storage capacity consumption leads to degraded I/O latency.
- Monitors capacity thresholds, volume sizes, and historical usage patterns.
-
High Throughput Saturation Issues
- Identifies scenarios where storage arrays or servers become saturated with I/O requests, causing queueing delays.
- Analyzes IOPS, bandwidth utilization, queue depths, and average response times.
-
Replication Link Issues
- Diagnoses problems in replication networks that might cause delayed writes, asynchronous lag, or inconsistent states.
- Tracks replication link health, transfer rates, and lag metrics.
- Latency thresholds
- Default: 1ms (≤70% usage)
- 2ms (70-80% usage)
- 3ms (80-90% usage) #This is the fault threshold
- 4ms (90-100% usage)
- 5ms (>100% usage)
- Fixed IOPS at 2000 for all volumes
- Python and Flask(Backend)
- HTML,CSS,JavaScript(Frontend)
- LLM(LLaMA-3.3-70B-Versatile)- using Groq’s LLM API
- RAG and FAISS Vector Store-for retrieving and storing rca chunks from the rca document(rag.txt)
- Langchain for agentic workflow
- Streamlit for RCA chatbot for the storage system
- Python 3.8+
- Groq API Key
- Streamlit (for interactive web UI)
-
Clone this repository:
git clone https://github.com/Dhanush-M555/DiagnoSys cd DiagnoSys -
Install Python dependencies:
pip install -r requirements.txt
To start the Streamlit web application, run:
streamlit run agent.pyOnce the app launches, open your browser and navigate to:
-
Select a Storage System
Use the storage subsystem UI to create systems and export/unexport volumes. -
Enter a Query
In the text input area, type a natural language query about system performance or a specific latency event.
Example:
"Why is volume1 in system 5003 experiencing high latency? -
Review the AI's Analysis
The agent will:- Fetch relevant metrics and logs.
- Perform AI-based analysis.
- Summarize possible causes, issue classifications, and offer documentation snippets for reference.
-
Ask Follow-up Questions
Continue the session by typing new, related queries to dive deeper into metrics or request targeted suggestions.
Example:
"Is system 5003 experiencing any replication issues currently?"
To extend diagnostic capabilities:
-
Add New Tool Functions
Create additional data retrieval and analysis functions. -
Update Documentation Corpus
Add new text files containing operational manuals, KB articles, or troubleshooting guides into the project root. -
Enhance Visualizations
Update the Streamlit app (agent.py) to visualize new metrics or analysis results.
For detailed instructions, examples, and component overviews, refer to:
For step-by-step fault reproduction, UI screenshots, and simulated environment setup, consult the relevant guides above.
This project is licensed under the MIT License. See the LICENSE file for details.
