Hippo Plugin 是一個結合 Hippo Manager ,讓 microservice 達到監控與自動重啟的機制
| 文件夾 | 說明 |
|---|---|
| build-tool | plugin 與 service 的自動化安裝/移除模組 |
| test | 示範程式碼,Demo 一個 microservice 與 hippo pluing 的使用方式 |
brew install gnu-getopt
echo 'export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"' >> ~/.bash_profile
e.g.
ssh-keygen -t rsa 或 ssh-keygen -d (dsa) => 產生出 id_rsa, id_rsa.pub
scp id_rsa.pub server_hostname:~/.ssh/
ssh server_hostname
cat .ssh/id_rsa.pub >> .ssh/authorized_keys 即可
於 HippoPlugin/build-tool 資料夾執行 build.sh
./build.sh --install $your-project-home
./build.sh -i $your-project-home
查看 project path 目錄下會多一個 hippo 的資料夾
於 Project/hippo/etc/env.conf
| name | description |
|---|---|
| KAFKA_PRODUCER | producer 路徑 |
| KAFKA_HOST | kafka 的 host |
| HEALTH_TOPIC | 傳送監控資訊的 topic |
SERVICE_LIST=""
KAFKA_PRODUCER=/Users/square_huang/Documents/Software/kafka_2.10-0.9.0.0/bin/kafka-console-producer.sh
KAFKA_HOST=localhost:9092
HEALTH_TOPIC=service-health於 Project 內的 hippo/build-tool
於 HippoPlugin/build-tool 資料夾執行 build.sh
./build.sh --create-service $SERVICE $your-project-home
./build-service.sh --create-service $SERVICE --cmd "sh {PROJECT_HOME}/sbin/mock_training.sh" $your-project-home
於 $PROJECT_HOME/hippo/etc/$SERVICE/$SERVICE-env.conf 編輯 EXECUTE_CMD
# You can use PROJECT_HOME variable to build command
EXECUTE_CMD="sh ${PROJECT_HOME}/sbin/mock_training.sh"安裝/移除專案的 hippo plugin
新增/刪除/查詢 Project 內的 Service
HippoPlugin/build-tool/build.sh [OPTIONS] PROJECT_PATH| short | command | description | Default | Required |
|---|---|---|---|---|
| -h | --help | Show help | ||
| -i | --install | 安裝 hippo plugin 到專案 | FALSE | |
| -u | --uninstall | 移除專案的 hippo plugin | FALSE | |
| --check-install | 確認 Project 內是否有安裝 hippo plugin | FALSE | ||
| -l | --list-services | 列出 Project 內的 Service | FALSE | |
| --check-service=SERVICE | 確認 Project 內是否有該 Service | FALSE | ||
| --cmd="CMD" | 啟動 Service 時帶入的指令(執行 py、jar、shell),可以使用 "{PROJECT_HOME}" 變數 | FALSE | ||
| --build-account | 遠端 server 的帳號 | HippoPlugin owner | FALSE | |
| --build-server | 遠端 server 的 host or ip | HippoPlugin server | FALSE |
--cmd需與--create-service一起使用
安裝 hippo plugin 到 recommender_system 專案
./HippoPlugin/build-tool/build.sh --install --build-server 88.8.146.34 ~/recommender_system
or
./HippoPlugin/build-tool/build.sh -i ~/recommender_system
移除 recommender_system 專案的 hippo plugin
./HippoPlugin/build-tool/build.sh --uninstall ~/recommender_system
or
./HippoPlugin/build-tool/build.sh -u ~/recommender_system
新增一個 SERVICE recommender-evaluation 的 Service
./build-tool/build.sh --build-server localhost --create-service recommender-evaluation ~/recommender_system
新增一個 SERVICE recommender-training 的 Service,並設定啟動時帶入的 command
./build-tool/build.sh --build-server localhost --create-service recommender-training --cmd "{PROJECT_HOME}/sbin/mock_training.sh" ~/recommender_system
查詢 Project 內的 Service
./build-tool/build.sh --list-services --build-server localhost ~/recommender_system
Output
PROJECT_NAME SERVICE_NAME
recommender_system recommender-evaluation
recommender_system recommender-training
刪除一個 SERVICE recommender-evaluation 的 Service
./build-tool/build.sh --build-server --delete-service recommender-evaluation ~/recommender_system
啟動 monitor 服務
${PROJECT_HOME}/hippo/bin/monitor-start [OPTIONS] SERVICE| short | command | description | Default | Required |
|---|---|---|---|---|
| -h | --help | Show help | ||
| -i | --interval | 監控的間隔(秒) | TRUE | |
| -r | --restart | 重啟服務模式 | FALSE | FALSE |
啟動監控間隔 60 秒的 service recommender-training
${PROJECT_HOME}/hippo/bin/monitor-start -i 60 recommender-training
重新啟動一個監控間隔 30 秒的 service recommender-training
${PROJECT_HOME}/hippo/bin/monitor-start -r -i 30 recommender-training停止 monitor 服務
${PROJECT_HOME}/hippo/bin/monitor-stop SERVICE暫停 service recommender-training
${PROJECT_HOME}/hippo/bin/monitor-stop recommender-training檢查 monitor 、hippo service 服務狀態
${PROJECT_HOME}/hippo/bin/monitor-status SERVICE檢查 service recommender-training 狀態
${PROJECT_HOME}/hippo/bin/monitor-status recommender-training