Add Promtail service to Docker Compose and update Loki configuration

- Introduced a new Promtail service in `docker-compose.observability.yml` for log collection.
- Configured Promtail with necessary volumes and command for log processing.
- Updated `loki-config.yml` to include `allow_structured_metadata` setting for enhanced metadata handling.
This commit is contained in:
Ho Ngoc Hai
2025-12-27 10:47:35 +07:00
parent 5ff8035013
commit d92cfb3bf3
8 changed files with 268 additions and 3 deletions

11
scripts/observability/logs.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
# EN: View observability stack logs
# VI: Xem log của observability stack
set -e
# Source OS helper
source "$(dirname "$0")/../utils/os-helper.sh"
cd infra/observability
run_compose logs -f

30
scripts/observability/start.sh Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
# EN: Start observability stack
# VI: Khởi động observability stack
set -e
# Source OS helper
source "$(dirname "$0")/../utils/os-helper.sh"
echo "🚀 Starting Observability Stack..."
# Check if network exists, create if not
if ! docker network ls | grep -q "microservices-network"; then
echo "Creating network 'microservices-network'..."
docker network create microservices-network
fi
# Resolve project root (assuming script is in scripts/observability)
PROJECT_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
cd "$PROJECT_ROOT/infra/observability"
run_compose up -d
echo ""
echo "✅ Observability stack started!"
echo "---------------------------------------------------"
echo "📊 Grafana: http://localhost:3001 (admin/admin)"
echo "📈 Prometheus: http://localhost:9090"
echo "🪵 Loki: http://localhost:3100"
echo "---------------------------------------------------"

15
scripts/observability/stop.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
# EN: Stop observability stack
# VI: Dừng observability stack
set -e
# Source OS helper
source "$(dirname "$0")/../utils/os-helper.sh"
echo "🛑 Stopping Observability Stack..."
cd infra/observability
run_compose down
echo "✅ Observability stack stopped."