55 lines
1.6 KiB
Bash
Executable File
55 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck disable=SC1091
|
|
source "${SCRIPT_DIR}/load-env.sh"
|
|
require_robot_command_center_root
|
|
blitz_dev_prepare_backend_logging_env
|
|
|
|
if [[ ! -d "${PYTHON_VENV_PATH}" ]]; then
|
|
"${PYTHON3_BIN}" -m venv "${PYTHON_VENV_PATH}"
|
|
fi
|
|
|
|
# shellcheck disable=SC1091
|
|
source "${PYTHON_VENV_PATH}/bin/activate"
|
|
|
|
cd "${BACKEND_DIR}"
|
|
export OMNISOCKET_SERVER_ADDR="${CONTROL_SIDE_OMNISOCKET_SERVER_ADDR}"
|
|
export OMNISOCKET_RELAY_VIA="${CONTROL_SIDE_OMNISOCKET_RELAY_VIA}"
|
|
|
|
logger_pid=""
|
|
|
|
cleanup() {
|
|
if [[ -n "${logger_pid}" ]]; then
|
|
kill "${logger_pid}" 2>/dev/null || true
|
|
wait "${logger_pid}" 2>/dev/null || true
|
|
fi
|
|
}
|
|
|
|
start_network_summary_logger() {
|
|
local logger_url
|
|
local logger_dir
|
|
|
|
if [[ "${OMNI_NETWORK_SUMMARY_LOG_ENABLED}" != "1" ]]; then
|
|
return
|
|
fi
|
|
|
|
logger_url="http://127.0.0.1:${BACKEND_PORT}/api/network/latest/"
|
|
logger_dir="$(dirname "${OMNI_NETWORK_SUMMARY_LOG_PATH}")"
|
|
mkdir -p "${logger_dir}"
|
|
|
|
python "${SCRIPT_DIR}/log-network-summary.py" \
|
|
--url "${logger_url}" \
|
|
--output "${OMNI_NETWORK_SUMMARY_LOG_PATH}" \
|
|
--interval-ms "${OMNI_NETWORK_SUMMARY_LOG_INTERVAL_MS}" \
|
|
--request-timeout-sec "${OMNI_NETWORK_SUMMARY_LOG_REQUEST_TIMEOUT_SEC}" &
|
|
logger_pid=$!
|
|
echo "[start-backend] network summary logger -> ${OMNI_NETWORK_SUMMARY_LOG_PATH} (${OMNI_NETWORK_SUMMARY_LOG_INTERVAL_MS} ms)" >&2
|
|
}
|
|
|
|
trap cleanup EXIT INT TERM
|
|
|
|
start_network_summary_logger
|
|
python -m uvicorn config.asgi:application --host "${BACKEND_HOST}" --port "${BACKEND_PORT}"
|