From 4063cb20d9dc5b07d31b985abf801fad2c594bfa Mon Sep 17 00:00:00 2001 From: zhanghan2021 Date: Tue, 12 Mar 2024 16:21:55 +0800 Subject: [PATCH] update vendor and update tune template --- server/controller/tune.go | 5 +- server/go.mod | 2 +- server/go.sum | 2 + server/template/tune/ffmpeg.go | 8 +- server/template/tune/fio.go | 8 +- server/template/tune/gcc_compile.go | 8 +- server/template/tune/go_gc.go | 8 +- server/template/tune/graphicsmagick.go | 8 +- server/template/tune/iozone.go | 8 +- server/template/tune/kafka.go | 8 +- server/template/tune/key_parameters_select.go | 8 +- .../tune/key_parameters_select_variant.go | 8 +- server/template/tune/mariadb.go | 8 +- server/template/tune/memcached.go | 8 +- server/template/tune/memory.go | 8 +- server/template/tune/mysql_sysbench.go | 8 +- server/template/tune/nginx.go | 8 +- server/template/tune/openGauss.go | 8 +- server/template/tune/redis.go | 8 +- server/template/tune/spark.go | 4 +- server/template/tune/tensorflow_train.go | 8 +- server/template/tune/tidb.go | 8 +- server/template/tune/tomcat.go | 8 +- .../PilotGo/sdk/plugin/client/fileservice.go | 79 +++++++++++++++++++ server/vendor/modules.txt | 2 +- 25 files changed, 183 insertions(+), 63 deletions(-) create mode 100644 server/vendor/gitee.com/openeuler/PilotGo/sdk/plugin/client/fileservice.go diff --git a/server/controller/tune.go b/server/controller/tune.go index e690077..66db9cd 100644 --- a/server/controller/tune.go +++ b/server/controller/tune.go @@ -4,6 +4,7 @@ import ( "gitee.com/openeuler/PilotGo/sdk/response" "github.com/gin-gonic/gin" "openeuler.org/PilotGo/atune-plugin/model" + "openeuler.org/PilotGo/atune-plugin/plugin" "openeuler.org/PilotGo/atune-plugin/service" "openeuler.org/PilotGo/atune-plugin/template" ) @@ -75,9 +76,7 @@ func SaveTune(c *gin.Context) { response.Fail(c, nil, err.Error()) return } - - authToken := c.Request.Header.Get("Admin-Token") - if err := service.Upload(authToken, "./template/tar", t.TuneName+".tar.gz"); err != nil { + if err := plugin.GlobalClient.FileUpload("./template/tar", t.TuneName+".tar.gz"); err != nil { response.Fail(c, nil, err.Error()) return } diff --git a/server/go.mod b/server/go.mod index 75f65f6..df15a42 100644 --- a/server/go.mod +++ b/server/go.mod @@ -3,7 +3,7 @@ module openeuler.org/PilotGo/atune-plugin go 1.18 require ( - gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312015409-d8d39b77d9ca + gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312073829-d74f9cacfe19 github.com/gin-gonic/gin v1.9.1 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.1 diff --git a/server/go.sum b/server/go.sum index 7736895..169e94e 100644 --- a/server/go.sum +++ b/server/go.sum @@ -6,6 +6,8 @@ gitee.com/openeuler/PilotGo/sdk v0.0.0-20240308065731-d286881c19cc h1:MoX1+uSPJR gitee.com/openeuler/PilotGo/sdk v0.0.0-20240308065731-d286881c19cc/go.mod h1:zEVmY3l48/CvR2kIM3DJpD/jWTG1qkOxRoHJii/D0us= gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312015409-d8d39b77d9ca h1:7jD/c+W4Y/biAJgAEKfcsUk3vlTbzCPjcaFl7y3hms0= gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312015409-d8d39b77d9ca/go.mod h1:zEVmY3l48/CvR2kIM3DJpD/jWTG1qkOxRoHJii/D0us= +gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312073829-d74f9cacfe19 h1:Peu8dga7SkKW48FBxwfBxiqPRwxDiD5evIozMaHhJzM= +gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312073829-d74f9cacfe19/go.mod h1:zEVmY3l48/CvR2kIM3DJpD/jWTG1qkOxRoHJii/D0us= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= diff --git a/server/template/tune/ffmpeg.go b/server/template/tune/ffmpeg.go index e2d2f6e..37883df 100644 --- a/server/template/tune/ffmpeg.go +++ b/server/template/tune/ffmpeg.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type FfmpegApp struct{} type FfmpegImp struct { @@ -11,10 +13,10 @@ func (f *FfmpegApp) Info() *FfmpegImp { info := &FfmpegImp{ BaseTune: TuneInfo{ TuneName: "ffmpeg", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/ffmpeg.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf ffmpeg.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune && [ -e ffmpeg.tar.gz ] && tar -xzvf ffmpeg.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/ffmpeg.tar.gz && tar -xzvf ffmpeg.tar.gz)", Prepare: "cd /tmp/tune/ffmpeg && sh prepare.sh", - Tune: "atune-adm tuning --project ffmpeg --detail ffmpeg_client.yaml", - Restore: "atune-adm tuning --restore --project ffmpeg", + Tune: "cd /tmp/tune/ffmpeg && atune-adm tuning --project ffmpeg --detail ffmpeg_client.yaml", + Restore: "cd /tmp/tune/ffmpeg && atune-adm tuning --restore --project ffmpeg", }, Notes: "请先找一个测试视频将其命名为test.flv(基本参数,41m34s,640x352,flv,83.6MB,视频编码AVC1,音频编码AAC),并将其放在/tmp/tune/ffmpeg目录下", } diff --git a/server/template/tune/fio.go b/server/template/tune/fio.go index f8684b2..6319fba 100644 --- a/server/template/tune/fio.go +++ b/server/template/tune/fio.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type FioApp struct{} type FioImp struct { @@ -11,10 +13,10 @@ func (f *FioApp) Info() *FioImp { info := &FioImp{ BaseTune: TuneInfo{ TuneName: "fio", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/fio.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf fio.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e fio.tar.gz ] && tar -xzvf fio.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/fio.tar.gz && tar -xzvf fio.tar.gz)", Prepare: "cd /tmp/tune/fio && sh prepare.sh 参数一 参数二", - Tune: "atune-adm tuning --project fio --detail tuning_fio_client.yaml", - Restore: "atune-adm tuning --restore --project fio", + Tune: "cd /tmp/tune/fio && atune-adm tuning --project fio --detail tuning_fio_client.yaml", + Restore: "cd /tmp/tune/fio && atune-adm tuning --restore --project fio", }, Notes: "请注意prepare.sh的使用方法: sh prepare.sh [test_path] [test_disk]", } diff --git a/server/template/tune/gcc_compile.go b/server/template/tune/gcc_compile.go index 90f4349..6ca5d8f 100644 --- a/server/template/tune/gcc_compile.go +++ b/server/template/tune/gcc_compile.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type GccComplieApp struct{} func (gcc *GccComplieApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "gcc_compile", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/gcc_compile.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf gcc_compile.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e gcc_compile.tar.gz ] && tar -xzvf gcc_compile.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/gcc_compile.tar.gz && tar -xzvf gcc_compile.tar.gz)", Prepare: "cd /tmp/tune/gcc_compile && sh prepare.sh", - Tune: "atune-adm tuning --project gcc_compile --detail gcc_compile_client.yaml", - Restore: "atune-adm tuning --restore --project gcc_compile", + Tune: "cd /tmp/tune/gcc_compile && atune-adm tuning --project gcc_compile --detail gcc_compile_client.yaml", + Restore: "cd /tmp/tune/gcc_compile && atune-adm tuning --restore --project gcc_compile", } return info } diff --git a/server/template/tune/go_gc.go b/server/template/tune/go_gc.go index e0d33aa..2d88115 100644 --- a/server/template/tune/go_gc.go +++ b/server/template/tune/go_gc.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type GoGcApp struct{} func (g *GoGcApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "go_gc", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/go_gc.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf go_gc.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e go_gc.tar.gz ] && tar -xzvf go_gc.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/go_gc.tar.gz && tar -xzvf go_gc.tar.gz)", Prepare: "cd /tmp/tune/go_gc && sh prepare.sh", - Tune: "atune-adm tuning --project go_gc --detail go_gc_client.yaml", - Restore: "atune-adm tuning --restore --project go_gc", + Tune: "cd /tmp/tune/go_gc && atune-adm tuning --project go_gc --detail go_gc_client.yaml", + Restore: "cd /tmp/tune/go_gc && atune-adm tuning --restore --project go_gc", } return info } diff --git a/server/template/tune/graphicsmagick.go b/server/template/tune/graphicsmagick.go index 5185c86..e974918 100644 --- a/server/template/tune/graphicsmagick.go +++ b/server/template/tune/graphicsmagick.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type GraphicsmagickApp struct{} func (g *GraphicsmagickApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "graphicsmagick", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/graphicsmagick.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf graphicsmagick.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e graphicsmagick.tar.gz ] && tar -xzvf graphicsmagick.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/graphicsmagick.tar.gz && tar -xzvf graphicsmagick.tar.gz)", Prepare: "cd /tmp/tune/graphicsmagick && sh prepare.sh", - Tune: "atune-adm tuning --project graphicsmagick --detail gm_client.yaml", - Restore: "atune-adm tuning --restore --project graphicsmagick", + Tune: "cd /tmp/tune/graphicsmagick && atune-adm tuning --project graphicsmagick --detail gm_client.yaml", + Restore: "cd /tmp/tune/graphicsmagick && atune-adm tuning --restore --project graphicsmagick", } return info } diff --git a/server/template/tune/iozone.go b/server/template/tune/iozone.go index fb01fe0..d01cfdf 100644 --- a/server/template/tune/iozone.go +++ b/server/template/tune/iozone.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type IozoneApp struct{} type IozoneImp struct { @@ -11,10 +13,10 @@ func (io *IozoneApp) Info() *IozoneImp { info := &IozoneImp{ BaseTune: TuneInfo{ TuneName: "iozone", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/iozone.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf iozone.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e iozone.tar.gz ] && tar -xzvf iozone.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/iozone.tar.gz && tar -xzvf iozone.tar.gz)", Prepare: "cd /tmp/tune/fio && sh prepare.sh 参数一 参数二", - Tune: "atune-adm tuning --project iozone --detail tuning_iozone_client.yaml", - Restore: "atune-adm tuning --restore --project iozone", + Tune: "cd /tmp/tune/fio && atune-adm tuning --project iozone --detail tuning_iozone_client.yaml", + Restore: "cd /tmp/tune/fio && atune-adm tuning --restore --project iozone", }, Notes: "请注意prepare.sh的使用方法: sh prepare.sh [test_path] [diskname]", } diff --git a/server/template/tune/kafka.go b/server/template/tune/kafka.go index e5a9908..1bc40ea 100644 --- a/server/template/tune/kafka.go +++ b/server/template/tune/kafka.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type KafkaApp struct{} type KafkaImp struct { @@ -11,10 +13,10 @@ func (k *KafkaApp) Info() *KafkaImp { info := &KafkaImp{ BaseTune: TuneInfo{ TuneName: "kafka", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/kafka.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf kafka.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e kafka.tar.gz ] && tar -xzvf kafka.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/kafka.tar.gz && tar -xzvf kafka.tar.gz)", Prepare: "cd /tmp/tune/kafka && sh prepare.sh", - Tune: "atune-adm tuning --project kafka --detail ./kafka_client.yaml", - Restore: "atune-adm tuning --restore --project kafka", + Tune: "cd /tmp/tune/kafka && atune-adm tuning --project kafka --detail ./kafka_client.yaml", + Restore: "cd /tmp/tune/kafka && atune-adm tuning --restore --project kafka", }, Notes: "使用kafka atune之前, 请先配置好kafka环境", } diff --git a/server/template/tune/key_parameters_select.go b/server/template/tune/key_parameters_select.go index 5ecde8e..d113420 100644 --- a/server/template/tune/key_parameters_select.go +++ b/server/template/tune/key_parameters_select.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type KeyParametersSelectApp struct{} func (kps *KeyParametersSelectApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "key_parameters_select", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/key_parameters_select.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf key_parameters_select.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e key_parameters_select.tar.gz ] && tar -xzvf key_parameters_select.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/key_parameters_select.tar.gz && tar -xzvf key_parameters_select.tar.gz)", Prepare: "cd /tmp/tune/key_parameters_select && sh prepare.sh", - Tune: "atune-adm tuning --project key_parameters_select --detail key_parameters_select_client.yaml", - Restore: "atune-adm tuning --restore --project key_parameters_select", + Tune: "cd /tmp/tune/key_parameters_select && atune-adm tuning --project key_parameters_select --detail key_parameters_select_client.yaml", + Restore: "cd /tmp/tune/key_parameters_select && atune-adm tuning --restore --project key_parameters_select", } return info } diff --git a/server/template/tune/key_parameters_select_variant.go b/server/template/tune/key_parameters_select_variant.go index ed3f2a5..8550f23 100644 --- a/server/template/tune/key_parameters_select_variant.go +++ b/server/template/tune/key_parameters_select_variant.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type KeyParametersSelectVariantApp struct{} func (kpsv *KeyParametersSelectVariantApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "key_parameters_select_variant", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/key_parameters_select_variant.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf key_parameters_select_variant.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e key_parameters_select_variant.tar.gz ] && tar -xzvf key_parameters_select_variant.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/key_parameters_select_variant.tar.gz && tar -xzvf key_parameters_select_variant.tar.gz)", Prepare: "cd /tmp/tune/key_parameters_select_variant && sh prepare.sh", - Tune: "atune-adm tuning --project key_parameters_select_variant --detail key_parameters_select_variant_client.yaml", - Restore: "atune-adm tuning --restore --project key_parameters_select_variant", + Tune: "cd /tmp/tune/key_parameters_select_variant && atune-adm tuning --project key_parameters_select_variant --detail key_parameters_select_variant_client.yaml", + Restore: "cd /tmp/tune/key_parameters_select_variant && atune-adm tuning --restore --project key_parameters_select_variant", } return info } diff --git a/server/template/tune/mariadb.go b/server/template/tune/mariadb.go index 6f92128..656b092 100644 --- a/server/template/tune/mariadb.go +++ b/server/template/tune/mariadb.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type MariadbApp struct{} type MariadbImp struct { @@ -11,10 +13,10 @@ func (m *MariadbApp) Info() *MariadbImp { info := &MariadbImp{ BaseTune: TuneInfo{ TuneName: "mariadb", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/mariadb.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf mariadb.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e mariadb.tar.gz ] && tar -xzvf mariadb.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/mariadb.tar.gz && tar -xzvf mariadb.tar.gz)", Prepare: "cd /tmp/tune/mariadb && sh prepare.sh 25", - Tune: "atune-adm tuning --project mariadb --detail mariadb_client.yaml", - Restore: "atune-adm tuning --restore --project mariadb", + Tune: "cd /tmp/tune/mariadb && atune-adm tuning --project mariadb --detail mariadb_client.yaml", + Restore: "cd /tmp/tune/mariadb && atune-adm tuning --restore --project mariadb", }, Notes: "请注意prepare.sh的使用方法: sh prepare.sh [迭代次数, 默认25]", } diff --git a/server/template/tune/memcached.go b/server/template/tune/memcached.go index b7edf1c..1d2ab5f 100644 --- a/server/template/tune/memcached.go +++ b/server/template/tune/memcached.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type MemcachedApp struct{} func (m *MemcachedApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "memcached", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/memcached.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf memcached.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e memcached.tar.gz ] && tar -xzvf memcached.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/memcached.tar.gz && tar -xzvf memcached.tar.gz)", Prepare: "cd /tmp/tune/memcached && sh prepare.sh", - Tune: "atune-adm tuning --project memcached_memaslap --detail memcached_memaslap_client.yaml", - Restore: "atune-adm tuning --restore --project memcached_memaslap", + Tune: "cd /tmp/tune/memcached && atune-adm tuning --project memcached_memaslap --detail memcached_memaslap_client.yaml", + Restore: "cd /tmp/tune/memcached && atune-adm tuning --restore --project memcached_memaslap", } return info } diff --git a/server/template/tune/memory.go b/server/template/tune/memory.go index 90fb0c3..0ed1cf7 100644 --- a/server/template/tune/memory.go +++ b/server/template/tune/memory.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type MemoryApp struct{} func (m *MemoryApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "memory", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/memory.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf memory.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e memory.tar.gz ] && tar -xzvf memory.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/memory.tar.gz && tar -xzvf memory.tar.gz)", Prepare: "cd /tmp/tune/memory && sh prepare.sh", - Tune: "atune-adm tuning --project stream --detail tuning_stream_client.yaml", - Restore: "atune-adm tuning --restore --project stream", + Tune: "cd /tmp/tune/memory && atune-adm tuning --project stream --detail tuning_stream_client.yaml", + Restore: "cd /tmp/tune/memory && atune-adm tuning --restore --project stream", } return info } diff --git a/server/template/tune/mysql_sysbench.go b/server/template/tune/mysql_sysbench.go index 6dcc4a4..4101f5b 100644 --- a/server/template/tune/mysql_sysbench.go +++ b/server/template/tune/mysql_sysbench.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type MysqlSysbenchApp struct{} type MysqlSysbenchImp struct { @@ -11,10 +13,10 @@ func (m *MysqlSysbenchApp) Info() *MysqlSysbenchImp { info := &MysqlSysbenchImp{ BaseTune: TuneInfo{ TuneName: "mysql_sysbench", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/mysql_sysbench.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf mysql_sysbench.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e mysql_sysbench.tar.gz ] && tar -xzvf mysql_sysbench.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/mysql_sysbench.tar.gz && tar -xzvf mysql_sysbench.tar.gz)", Prepare: "cd /tmp/tune/mysql_sysbench && sh prepare.sh", - Tune: "atune-adm tuning --project mysql_sysbench --detail mysql_sysbench_client.yaml", - Restore: "atune-adm tuning --restore --project mysql_sysbench", + Tune: "cd /tmp/tune/mysql_sysbench && atune-adm tuning --project mysql_sysbench --detail mysql_sysbench_client.yaml", + Restore: "cd /tmp/tune/mysql_sysbench && atune-adm tuning --restore --project mysql_sysbench", }, Notes: "1,根据指南安装mysql: https://blog.csdn.net/weixin_43214408/article/details/116895091 \n 2,根据指南安装sysbench: https://blog.csdn.net/weixin_43214408/article/details/116898751", } diff --git a/server/template/tune/nginx.go b/server/template/tune/nginx.go index 64cab74..1de1639 100644 --- a/server/template/tune/nginx.go +++ b/server/template/tune/nginx.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type NginxApp struct{} type NginxImp struct { @@ -11,10 +13,10 @@ func (nginx *NginxApp) Info() *NginxImp { info := &NginxImp{ BaseTune: TuneInfo{ TuneName: "nginx", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/nginx.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf nginx.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e nginx.tar.gz ] && tar -xzvf nginx.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/nginx.tar.gz && tar -xzvf nginx.tar.gz)", Prepare: "cd /tmp/tune/nginx && sh prepare.sh", - Tune: "atune-adm tuning --project nginx --detail nginx_client.yaml", - Restore: "atune-adm tuning --restore --project nginx", + Tune: "cd /tmp/tune/nginx && atune-adm tuning --project nginx --detail nginx_client.yaml", + Restore: "cd /tmp/tune/nginx && atune-adm tuning --restore --project nginx", }, Notes: "nginx长连接:【调优指令】atune-adm tuning --project nginx_http_long --detail nginx_http_long_client.yaml【恢复环境】atune-adm tuning --restore --project nginx_http_long", } diff --git a/server/template/tune/openGauss.go b/server/template/tune/openGauss.go index 565d3ee..648ec5d 100644 --- a/server/template/tune/openGauss.go +++ b/server/template/tune/openGauss.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type OpenGaussApp struct{} type OpenGaussImp struct { @@ -11,10 +13,10 @@ func (gauss *OpenGaussApp) Info() *OpenGaussImp { info := &OpenGaussImp{ BaseTune: TuneInfo{ TuneName: "openGauss", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/openGauss.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf openGauss.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e openGauss.tar.gz ] && tar -xzvf openGauss.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/openGauss.tar.gz && tar -xzvf openGauss.tar.gz)", Prepare: "cd /tmp/tune/openGauss && sh prepare.sh", - Tune: "atune-adm tuning --project openGauss_tpcc --detail openGauss_client.yaml", - Restore: "atune-adm tuning --restore --project openGauss_tpcc", + Tune: "cd /tmp/tune/openGauss && atune-adm tuning --project openGauss_tpcc --detail openGauss_client.yaml", + Restore: "cd /tmp/tune/openGauss && atune-adm tuning --restore --project openGauss_tpcc", }, Notes: "请先安装openGauss和benchmarksql-5.0 \n openGauss安装指南: https://docs.opengauss.org/zh/docs/2.1.0/docs/installation/installation.html \n benchmarksql-5.0下载地址: https://udomain.dl.sourceforge.net/project/benchmarksql/benchmarksql-5.0.zip", } diff --git a/server/template/tune/redis.go b/server/template/tune/redis.go index 17f57a2..d5d07cd 100644 --- a/server/template/tune/redis.go +++ b/server/template/tune/redis.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type RedisApp struct{} type RedisImp struct { @@ -11,10 +13,10 @@ func (redis *RedisApp) Info() *RedisImp { info := &RedisImp{ BaseTune: TuneInfo{ TuneName: "redis", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/redis.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf redis.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e redis.tar.gz ] && tar -xzvf redis.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/redis.tar.gz && tar -xzvf redis.tar.gz)", Prepare: "cd /tmp/tune/redis && sh prepare.sh", - Tune: "atune-adm tuning --project redis --detail ./redis_client.yaml", - Restore: "atune-adm tuning --restore --project redis", + Tune: "cd /tmp/tune/redis && atune-adm tuning --project redis --detail ./redis_client.yaml", + Restore: "cd /tmp/tune/redis && atune-adm tuning --restore --project redis", }, Notes: "若要启动基准测试, 在调优前先进入调优工作目录/tmp/tune/redis执行“sh redis_benchmark.sh”,本地主机将访问基准测试主机并触发它。基准测试主机将在基准测试之后将日志文件传输到localhost。", } diff --git a/server/template/tune/spark.go b/server/template/tune/spark.go index d181f81..b4cf774 100644 --- a/server/template/tune/spark.go +++ b/server/template/tune/spark.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type SparkApp struct{} type SparkImp struct { @@ -11,7 +13,7 @@ func (spark *SparkApp) Info() *SparkImp { info := &SparkImp{ BaseTune: TuneInfo{ TuneName: "spark", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/spark.tar.gz /tmp/tune/ && cd /tmp/tune && tar -xzvf spark.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e spark.tar.gz ] && tar -xzvf spark.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/spark.tar.gz && tar -xzvf spark.tar.gz)", Prepare: "cd /tmp/tune/spark && sh run_env.sh", Tune: "", Restore: "", diff --git a/server/template/tune/tensorflow_train.go b/server/template/tune/tensorflow_train.go index 86ce105..0ba6a8b 100644 --- a/server/template/tune/tensorflow_train.go +++ b/server/template/tune/tensorflow_train.go @@ -1,14 +1,16 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type TensorflowTrainApp struct{} func (tensor *TensorflowTrainApp) Info() *TuneInfo { info := &TuneInfo{ TuneName: "tensorflow_train", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/tensorflow_train.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf tensorflow_train.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e tensorflow_train.tar.gz ] && tar -xzvf tensorflow_train.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/tensorflow_train.tar.gz && tar -xzvf tensorflow_train.tar.gz)", Prepare: "cd /tmp/tune/tensorflow_train && sh prepare.sh", - Tune: "atune-adm tuning --project tensorflow_train --detail tensorflow_train_client.yaml", - Restore: "atune-adm tuning --restore --project tensorflow_train", + Tune: "cd /tmp/tune/tensorflow_train && atune-adm tuning --project tensorflow_train --detail tensorflow_train_client.yaml", + Restore: "cd /tmp/tune/tensorflow_train && atune-adm tuning --restore --project tensorflow_train", } return info } diff --git a/server/template/tune/tidb.go b/server/template/tune/tidb.go index eb04a9a..d227469 100644 --- a/server/template/tune/tidb.go +++ b/server/template/tune/tidb.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type TidbApp struct{} type TidbImp struct { @@ -11,10 +13,10 @@ func (tidb *TidbApp) Info() *TidbImp { info := &TidbImp{ BaseTune: TuneInfo{ TuneName: "tidb", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/tidb.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf tidb.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e tidb.tar.gz ] && tar -xzvf tidb.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/tidb.tar.gz && tar -xzvf tidb.tar.gz)", Prepare: "cd /tmp/tune/tidb && sh prepare.sh", - Tune: "atune-adm tuning --project tidb --detail tidb_client.yaml", - Restore: "atune-adm tuning --restore --project tidb", + Tune: "cd /tmp/tune/tidb && atune-adm tuning --project tidb --detail tidb_client.yaml", + Restore: "cd /tmp/tune/tidb && atune-adm tuning --restore --project tidb", }, Notes: "如果目标机器是第一次使用tidb调优, 请为目标机器准备好测试环境, 详情请查看 https://gitee.com/openeuler/A-Tune/blob/master/examples/tuning/tidb/README", } diff --git a/server/template/tune/tomcat.go b/server/template/tune/tomcat.go index 587b7e6..3f96cb6 100644 --- a/server/template/tune/tomcat.go +++ b/server/template/tune/tomcat.go @@ -1,5 +1,7 @@ package tune +import "openeuler.org/PilotGo/atune-plugin/plugin" + type TomcatApp struct{} type TomcatImp struct { @@ -11,10 +13,10 @@ func (tomcat *TomcatApp) Info() *TomcatImp { info := &TomcatImp{ BaseTune: TuneInfo{ TuneName: "tomcat", - WorkDirectory: "mkdir -p /tmp/tune/ && cp -r ../../templete/tomcat.tar.gz /tmp/tune/ && cd /tmp/tune/ && tar -xzvf tomcat.tar.gz", + WorkDirectory: "mkdir -p /tmp/tune/ && cd /tmp/tune/ && [ -e tomcat.tar.gz ] && tar -xzvf tomcat.tar.gz || ( curl -OJ http://" + plugin.GlobalClient.Server() + "/api/v1/download/tomcat.tar.gz && tar -xzvf tomcat.tar.gz)", Prepare: "cd /tmp/tune/tomcat && sh prepare.sh tomcat_root", - Tune: "atune-adm tuning --project tomcat --detail tomcat.yaml", - Restore: "atune-adm tuning --restore --project tomcat", + Tune: "cd /tmp/tune/tomcat && atune-adm tuning --project tomcat --detail tomcat.yaml", + Restore: "cd /tmp/tune/tomcat && atune-adm tuning --restore --project tomcat", }, Notes: "注意prepare.sh的使用方法, sh prepare.sh [tomcat 目录名称], 默认是tomcat_root", } diff --git a/server/vendor/gitee.com/openeuler/PilotGo/sdk/plugin/client/fileservice.go b/server/vendor/gitee.com/openeuler/PilotGo/sdk/plugin/client/fileservice.go new file mode 100644 index 0000000..5c8c5d7 --- /dev/null +++ b/server/vendor/gitee.com/openeuler/PilotGo/sdk/plugin/client/fileservice.go @@ -0,0 +1,79 @@ +package client + +import ( + "bytes" + "crypto/tls" + "encoding/json" + "errors" + "io" + "net/http" + "os" + "path/filepath" + + "gitee.com/openeuler/PilotGo/sdk/logger" +) + +func (client *Client) FileUpload(filePath string, filename string) error { + // 以二进制方式上传文件 + file := filepath.Join(filePath, filename) + bodyBuf, contentType, err := getUploadBody(file) + if err != nil { + return err + } + + upload_addr := "http://" + client.Server() + "/api/v1/pluginapi/upload?filename=" + filename + req, err := http.NewRequest("POST", upload_addr, bodyBuf) + if err != nil { + return err + } + defer req.Body.Close() + + req.Header.Set("Content-Type", contentType) + req.AddCookie(&http.Cookie{ + Name: TokenCookie, + Value: client.token, + }) + + hc := &http.Client{Transport: &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: true, + }, + }} + defer hc.CloseIdleConnections() + + resp, err := hc.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + + // 读取返回结果 + bs, err := io.ReadAll(resp.Body) + if err != nil { + logger.Error("没获取到:%s", err.Error()) + return err + } + res := &struct { + StatusCode int `json:"code"` + Data interface{} `json:"data"` + Message string `json:"msg"` + }{} + err = json.Unmarshal(bs, &res) + if err != nil { + logger.Error("解析出错:%s", err.Error()) + return err + } + if resp.StatusCode == http.StatusOK && res.StatusCode == http.StatusOK { + return nil + } + return errors.New(res.Message) +} + +// 以二进制格式上传文件 +func getUploadBody(filename string) (*bytes.Reader, string, error) { + bodyBytes, err := os.ReadFile(filename) + if err != nil { + return bytes.NewReader(bodyBytes), "", err + } + return bytes.NewReader(bodyBytes), "multipart/form-data", nil +} diff --git a/server/vendor/modules.txt b/server/vendor/modules.txt index 4846c71..5a4fcf7 100644 --- a/server/vendor/modules.txt +++ b/server/vendor/modules.txt @@ -1,4 +1,4 @@ -# gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312015409-d8d39b77d9ca +# gitee.com/openeuler/PilotGo/sdk v0.0.0-20240312073829-d74f9cacfe19 ## explicit; go 1.17 gitee.com/openeuler/PilotGo/sdk/common gitee.com/openeuler/PilotGo/sdk/logger -- Gitee