Skip to content

wissemmtiri/observability-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Distributed System with Observability

This repository contains a minimal distributed system simulation and an accompanying observability stack to monitor its behavior under different load conditions.

The goal is to demonstrate how observability tools can be integrated into a distributed architecture to collect metrics, visualize performance, and detect bottlenecks.


🧩 Project Structure

This repository is organized into the following main directories and files:

.
├── baseline/           # 📦 Source code for the simulated system
├── observability/      # 📊 Configuration for the monitoring stack 
├── Makefile            # 🤖 Automation for setup, load testing, and scaling
└── README.md           # 📜 This global overview file

🏗️ Architecture Overview

Baseline System:

  • API Service — receives requests and pushes jobs to a message queue (RabbitMQ)
  • Worker Service — consumes messages from the queue and processes tasks
  • RabbitMQ — message broker connecting API and workers

Observability Stack:

  • Prometheus — collects metrics from all components
  • Grafana — visualizes system metrics and queue status
  • Loki — collect and store logs
  • Jaeger — provides distributed tracing for request flows

⚙️ Getting Started

1. Prerequisites

Ensure you have the following installed:

  • Docker & Docker Compose
  • make

2. Setup and Run

# Build and start all components
make obs-up && make app-up

3. Access Points

4. Make Automation

You can view all available Make commands at any time by running:

make
# or
make help

About

End-to-end observability setup for a simulated distributed system using Prometheus, Grafana, Jaeger, and RabbitMQ, automated with Make.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors