Skip to content

AET-DevOps26/team-setops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

177 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevPulse - Team SETOps

DevPulse is a DevOps logbook for collecting deployment logs, system alerts, and troubleshooting notes. The goal is to help a team quickly understand what happened during a failed deployment or incident by showing the raw information together with AI-generated summaries and suggested fixes.

Components

  • Client: client/

    • Dashboard UI for developers and operators.
    • Shows logs, alerts, notes, and AI-generated insights.
  • Server microservices: services/spring-*

    • Java 21 / Spring Boot 3 services.
    • The server side is split into at least three microservices with separate responsibilities.
    • Exposes REST APIs and coordinates persistent storage and GenAI analysis.
  • GenAI: services/py-intelligence/

    • Separate Python service.
    • Produces summaries, troubleshooting hints, and possible next steps from log content.
  • Infrastructure: infra/

    • Place for Docker Compose, Kubernetes or Helm files, database setup, Prometheus, and Grafana.

Repository Layout

repo/
├── api/                   # Single source of truth
│   ├── openapi.yaml       # Versioned spec (v1, v2...)
│   └── scripts/           # Helper scripts for code generation
├── services/
│   ├── spring-ingestion/  # Spring Boot service for receiving logs/events
│   ├── spring-logbook/    # Spring Boot service for stored logs and notes
│   ├── spring-alerts/     # Spring Boot service for alerts/incident state
│   └── py-intelligence/   # Python GenAI service
├── client/                # Client component
├── infra/                 # Docker Compose, Kubernetes, database, monitoring
└── .github/workflows/     # CI pipelines

Basic Flow

client sends requests to the Spring Boot backend services. The backend services manage logs, notes, alerts, and persistent storage. When AI analysis is needed, the backend calls py-intelligence through a defined JSON/HTTP interface. The OpenAPI file in api/ is the shared API contract.

Branch Naming

Use this format for feature and bugfix branches:

(feat|fix)/(issue_id)/(name_of_issue)

Examples:

feat/12/add-log-ingestion
fix/18/handle-empty-ai-response

Local Build and Test Commands

🛠 Prerequisites

To run this project locally, you must have the following installed:

(Note: You do not need Java, Python, or Node.js installed on your host machine to run the application, as everything runs inside the containers!)

Build

cd infra
docker-compose up --build

Local Build and Test Commands for individual components

Run all commands from the repository root unless noted otherwise.

Spring Alerts

cd services/spring-alerts
./gradlew :app:clean :app:test :app:build
./gradlew :app:bootRun

Spring Ingestion

cd services/spring-ingestion
./gradlew :app:clean :app:test :app:build
./gradlew :app:bootRun

Spring Logbook

cd services/spring-logbook
./gradlew :app:clean :app:test :app:build
./gradlew :app:bootRun

Client

cd client
npm ci
npm run lint
npm run test -- --run
npm run build
npm run dev

CI-Oriented One-Shot Test Commands

Use these for non-watch runs in CI:

# Spring services (run per service directory)
./gradlew :app:test

# Client
npm run test -- --run

About

Repository for team SETOps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors