feat(monitor): Enable monitor dispatch node files itself

This commit is contained in:
SunnyQjm 2023-03-10 17:14:53 +08:00
parent 40efdcbba0
commit 7cd21a2815
11 changed files with 38 additions and 8 deletions

View File

@ -6,7 +6,7 @@ sysom_global:
# Unified configuration of Server
sysom_server:
path:
root_path: !concat [*global_root_path, "server/target/sysom_server"]
root_path: !concat [*global_root_path, "/server/target/sysom_server"]
db:
redis:
host: localhost
@ -34,7 +34,7 @@ sysom_server:
# Unified configuration of Web
sysom_web:
path:
root_path: !concat [*global_root_path, "server/target/sysom_web"]
root_path: !concat [*global_root_path, "/server/target/sysom_web"]
# Unified configuration of Node
sysom_node:

View File

@ -18,6 +18,7 @@ check_cmd tar
RELEASE=sysomRelease-$(date +"%Y%m%d%H%M%S")
SERVERDIR=sysom_server
WEBDIR=sysom_web
CONFDIR=conf
SCRIPTDIR=script
TOOLSDIR=tools
# build web
@ -27,7 +28,7 @@ yarn build
popd || exit
mkdir -p "${RELEASE}"
cp -r ${SERVERDIR}/ ${TOOLSDIR}/ "${RELEASE}"/
cp -r ${SERVERDIR}/ ${TOOLSDIR}/ ${CONFDIR}/ "${RELEASE}"/
cp -r ${WEBDIR}/dist/ "${RELEASE}"/${WEBDIR}/
mkdir -p "${RELEASE}"/${WEBDIR}/download/
cp ${TOOLSDIR}/deploy/deploy.sh "${RELEASE}"/

View File

@ -103,6 +103,7 @@ install_sdk() {
python setup_cec_base.py develop
python setup_cec_redis.py develop
python setup_channel_job.py develop
python setup_sysom_utils.py develop
sudo rm -r *.egg-info build dist
popd
}

View File

@ -194,13 +194,13 @@ main()
mkdir -p ${RESOURCE_DIR}
install_grafana
install_prometheus
download_node_exporter
# download_node_exporter
start_grafana_service
start_prometheus_service
set_node_init_cmd
prepare_node_init_tar
#prepare_node_init_tar
configure_grafana
configure_cron

View File

@ -245,7 +245,7 @@ class ChannelFileJob:
return self._get_file()
async def execute_async(self) -> JobResult:
return anyio.to_thread.run_sync(self.execute)
return await anyio.to_thread.run_sync(self.execute)
class ChannelJobExecutorConfig:

View File

@ -194,7 +194,7 @@ class NodeManager:
"instances": [target_instance]
}
).execute_async()
if result.code != 200:
if result.code != 0:
# Dispatch file failed
raise NodeManagerException(
f"Dispatch file to node failed: {result.err_msg}"

View File

@ -6,6 +6,8 @@ Email mfeng@linux.alibaba.com
File common.py
Description:
"""
from cec_base.log import LoggerHelper, LoggerLevel
import sys
from pathlib import Path
from sysom_utils import ConfigParser
@ -25,3 +27,14 @@ YAML_CONFIG = ConfigParser(YAML_GLOBAL_CONFIG_PATH, YAML_SERVICE_CONFIG_PATH)
##################################################################
# channl_job SDK 需要的url
CHANNEL_JOB_URL = YAML_CONFIG.get_local_channel_job_url()
##################################################################
# Logger settings
##################################################################
# Config log format
log_format = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level}</level> | <cyan>{file.path}</cyan>:<cyan>{line}</cyan> | {message}"
LoggerHelper.add(sys.stdout, level=LoggerLevel.LOGGER_LEVEL_INFO,
format=log_format, colorize=True)
LoggerHelper.add(sys.stderr, level=LoggerLevel.LOGGER_LEVEL_WARNING,
format=log_format, colorize=True)

View File

@ -1,13 +1,25 @@
from channel_job import default_channel_job_executor
from fastapi import FastAPI
from conf.settings import *
from app.routeres import home
from sysom_utils import PluginEventExecutor
app = FastAPI()
app.include_router(home.router, prefix="/api/v1/monitor/home")
def init_monitor():
# 从 Channel 为服务拉取配置初始化 channel_job
default_channel_job_executor.init_config(CHANNEL_JOB_URL)
default_channel_job_executor.start()
PluginEventExecutor(YAML_CONFIG, default_channel_job_executor).start()
@app.on_event("startup")
async def on_start():
init_monitor()
pass

View File

@ -9,6 +9,7 @@
APP_NAME="sysom"
SERVER_DIR="sysom_server"
WEB_DIR="sysom_web"
CONF_DIR="conf"
SCRIPT_DIR="script"
APP_HOME=/usr/local/sysom
SERVER_LOCAL_IP=""
@ -57,7 +58,7 @@ update_target() {
fi
mkdir -p ${TARGET_PATH}
echo "INFO: copy project file..."
cp -r ${SERVER_DIR} ${WEB_DIR} ${TARGET_PATH}
cp -r ${SERVER_DIR} ${WEB_DIR} ${CONF_DIR} ${TARGET_PATH}
cp -r ${SCRIPT_DIR} ${APP_HOME}/init_scripts
cp tools/deploy/sysom-server.service /usr/lib/systemd/system/
}

View File

@ -146,6 +146,7 @@ echo "build sysom end........"
mkdir -p %{buildroot}/usr/local/sysom/server/target
mkdir -p %{buildroot}/usr/local/sysom/server/redis
cp -a sysom_server %{buildroot}/usr/local/sysom/server/target
cp -a conf %{buildroot}/usr/local/sysom/server/target
cp -a sysom_web/dist %{buildroot}/usr/local/sysom/server/target/sysom_web
cp -a script %{buildroot}/usr/local/sysom/init_scripts
cp -a monitor %{buildroot}/usr/local/sysom/server/

View File

@ -146,6 +146,7 @@ echo "build sysom end........"
mkdir -p %{buildroot}/usr/local/sysom/server/target
#mkdir -p %{buildroot}/usr/local/sysom/server/redis
cp -a sysom_server %{buildroot}/usr/local/sysom/server/target
cp -a conf %{buildroot}/usr/local/sysom/server/target
cp -a sysom_web/dist %{buildroot}/usr/local/sysom/server/target/sysom_web
cp -a script %{buildroot}/usr/local/sysom/init_scripts
#cp -a monitor %{buildroot}/usr/local/sysom/server/