diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a62ee45 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,43 @@ +name: CI + +on: + push: + branches: [ main, develop ] + + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 21 + cache: gradle + + - name: Build order-service + run: | + cd services/order-service + chmod +x gradlew + ./gradlew build + + - name: Build tracking-service + run: | + cd services/tracking-service + chmod +x gradlew + ./gradlew build + + - name: Build notification-service + run: | + cd services/notification-service + chmod +x gradlew + ./gradlew build diff --git a/docs/grafana/dashboard.png b/docs/grafana/dashboard.png new file mode 100644 index 0000000..d4fe661 Binary files /dev/null and b/docs/grafana/dashboard.png differ diff --git a/docs/observability.md b/docs/observability.md new file mode 100644 index 0000000..2e5b809 --- /dev/null +++ b/docs/observability.md @@ -0,0 +1,30 @@ +# Observability + +TrackFlow includes a full observability stack using the LGTM stack: + +- Prometheus (metrics) +- Loki (logs) +- Tempo (distributed tracing) +- Grafana (visualization) + +The services expose metrics through Spring Boot Actuator and Micrometer. + +## Dashboard + +Below is the main Grafana dashboard used to monitor the system. + +![TrackFlow Dashboard](grafana/dashboard.png) + +The dashboard includes: + +• Total Orders Created +• Failed Notifications +• HTTP Request Rate +• JVM Heap Memory +• Service Logs + +## Dashboard JSON + +The dashboard configuration is stored as code and can be imported directly into Grafana. + +Location: ![TrackFlow Dashboard](grafana/trackflow-dashboard.json)