- Why: - intensive development needs quick cluster stop/cleanup commands - current Makefile had only up and pipeline/monitoring targets - What: - add make target down for standard docker compose shutdown - add make target clean for full cleanup with volumes and orphans - update OPERATIONS runbook with new make commands - Check: - make -n down clean
52 lines
2.4 KiB
Makefile
52 lines
2.4 KiB
Makefile
.PHONY: up down clean ddl data transform reload-monitoring recover-monitoring
|
|
|
|
COMPOSE ?= docker compose
|
|
|
|
up:
|
|
$(COMPOSE) up -d
|
|
|
|
# Остановить и удалить контейнеры/сети текущего проекта
|
|
down:
|
|
$(COMPOSE) down
|
|
|
|
# Полная очистка окружения проекта (включая volumes)
|
|
clean:
|
|
$(COMPOSE) down -v --remove-orphans
|
|
|
|
ddl:
|
|
bash ./scripts/apply_clickhouse_ddl.sh
|
|
|
|
data:
|
|
bash ./scripts/load_kafka_data.sh
|
|
|
|
transform:
|
|
bash ./scripts/run_batch.sh
|
|
|
|
# Перезагрузка конфигурации мониторинга (после изменений в provisioning)
|
|
reload-monitoring:
|
|
@echo "=== Перезагрузка сервисов мониторинга ==="
|
|
$(COMPOSE) up -d prometheus grafana kafka-exporter statsd-exporter
|
|
$(COMPOSE) restart prometheus statsd-exporter
|
|
@echo "=== Перезагрузка provisioning Grafana ==="
|
|
@sleep 2
|
|
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/datasources/reload && echo " [datasources]"
|
|
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/dashboards/reload && echo " [dashboards]"
|
|
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/alerting/reload && echo " [alerting]"
|
|
@echo "=== Проверка ==="
|
|
@curl -s http://localhost:9090/api/v1/targets | grep -o '"job":"[^"]*"' | sort | uniq
|
|
|
|
# Восстановление мониторинга после сбоев (например, out of bounds / пустые дашборды)
|
|
recover-monitoring:
|
|
@echo "=== Восстановление мониторинга (жесткий режим) ==="
|
|
$(COMPOSE) rm -sf prometheus statsd-exporter
|
|
$(COMPOSE) up -d prometheus grafana kafka-exporter statsd-exporter
|
|
$(COMPOSE) restart airflow-scheduler airflow-webserver
|
|
@echo "=== Перезагрузка provisioning Grafana ==="
|
|
@sleep 2
|
|
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/datasources/reload && echo " [datasources]"
|
|
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/dashboards/reload && echo " [dashboards]"
|
|
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/alerting/reload && echo " [alerting]"
|
|
@echo "=== Проверка targets ==="
|
|
@curl -s http://localhost:9090/api/v1/targets | grep -o '"job":"[^"]*"' | sort | uniq
|
|
@curl -s http://localhost:9090/api/v1/targets | grep -o '"health":"[^"]*"' | sort | uniq -c
|