#!/bin/bash set -e SKILL_DIR="$(dirname "$(dirname "$0")")" LOKI_PORT="${LOKI_PORT:-3100}" # Start Loki in background start_loki() { echo "Starting Loki on port $LOKI_PORT..." loki -config.file="$SKILL_DIR/config/loki.yaml" & LOKI_PID=$! sleep 3 if ! kill -0 $LOKI_PID 2>/dev/null; then echo "Failed to start Loki" exit 1 fi echo "Loki running (PID $LOKI_PID)" } # Start Promtail in background start_promtail() { echo "Starting Promtail..." promtail -config.file="$SKILL_DIR/config/promtail.yaml" & PROMTAIL_PID=$! sleep 2 if ! kill -0 $PROMTAIL_PID 2>/dev/null; then echo "Failed to start Promtail" exit 1 fi echo "Promtail running (PID $PROMTAIL_PID)" } # Cleanup on exit cleanup() { echo "Shutting down..." [ -n "$PROMTAIL_PID" ] && kill $PROMTAIL_PID 2>/dev/null [ -n "$LOKI_PID" ] && kill $LOKI_PID 2>/dev/null exit 0 } trap cleanup SIGTERM SIGINT start_loki start_promtail echo "Loki stack running. Query at http://localhost:$LOKI_PORT/loki/api/v1/query" # Wait for either process to exit wait