This prototype demonstrates an AI-enhanced Root Cause Analysis (RCA) system for Managed Service Providers (MSPs), integrating coroot with Keep alerts, AWS Bedrock AgentCore, and Strands Agents.
- Keep Integration: Alerts are sent to Keep for centralized alert management.
- AWS Bedrock AgentCore: Orchestrates alert processing with AI agents.
- Strands Agents: Provides autonomous workflows for drift detection and summarization.
- AI-Enhanced RCA: RCA views include agent-driven insights.
- MSP Frontend: Custom UI for client management and multi-tenant support.
- Multi-Tenant Support: Projects are isolated by client_id.
- Go 1.23+
- Node.js for frontend
- Docker for deployment (optional)
- AWS credentials for Bedrock (optional, mocked if not configured)
- Keep server running (optional, mocked if not configured)
- Clone the repository:
git clone https://github.com/coroot/coroot.git - Navigate to coroot:
cd coroot - Install dependencies:
go mod tidy - Build:
go build - (Optional) Configure config.yaml with Keep URL, AWS settings; if not configured, mocking is used.
- Navigate to front:
cd front - Install dependencies:
npm install - Build:
npm run build
- Build Docker image:
docker build -t rca-prototype . - Run:
docker run -p 8080:8080 rca-prototype
- Frontend (Netlify): Deploy
coroot/front/distdirectory to Netlify. Set environment variableVUE_APP_API_BASE_URLto Render backend URL. - Backend (Render): Deploy Go app from
coroot/directory to Render. Use build commandgo build -o rca-backend. Set start command./rca-backend. Configure environment variables likeKEEP_URL,BEDROCK_AGENT_ID, etc. (leave empty for mock).
- Start the Application: Run the backend server.
- Access Frontend: Open http://localhost:8080
- Create Project: Add a project with client_id for multi-tenancy.
- Configure Integrations: Set up Prometheus, Keep, AWS Bedrock.
- Simulate Incident: Trigger an alert in the system.
- View RCA: Navigate to RCA view for an application.
- See AI Agent Insights section with Strands summarization.
- Check Logs: Verify mock alerts logged (if Keep not configured).
- Client Management: Access Client Management view for MSP features.
keep/keep.go: Keep client for alerts.bedrock/bedrock.go: AWS Bedrock integration.strands/strands.go: Strands agents for workflows.api/rca.go: Extended with agent insights.views/RCA.vue: Added AI insights display.views/ClientManagement.vue: MSP client management.db/project.go: Added client_id for multi-tenancy.
- Backend compiles without errors.
- Frontend builds successfully.
- Docker image builds.
- Application starts and serves UI.
- RCA shows agent insights.
- Mock alerts logged (if Keep not configured).
- Multi-tenant isolation works.