Сборка
Модуль greenplum.metric.agent написан на языке Go и требует предварительной сборки перед установкой.
Установка Protoc
mkdir -p $HOME/.localmkdir
mkdir -p $HOME/.local
apt update
apt install -y unzip
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.0/protoc-21.0-linux-x86_64.zip
unzip protoc-21.0-linux-x86_64.zip -d $HOME/.local/protoc
export PATH=$PATH:$HOME/.local/protoc/bin
Установка gRPC
apt install go
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
export PATH=$PATH:$HOME/go/bin
Установка утилиты sql-migrate
Скопировать пример конфигурацииdbconfig.yml.example в dbconfig.yml и заполнить параметры подключения.
Клонирование репозитория
Клонировать репозиторий проекта одним из способов:
Клонирование через SSH
Клонирование через http(s)
Обновление подмодулей
Генерация proto-файлов
mkdir -p ./gen/go
protoc --go_out=gen/go --go-grpc_out=gen/go -I greenplum.metric.hook/protos greenplum.proto
protoc --go_out=gen/go --go-grpc_out=gen/go -I greenplum.metric.hook/protos GpdbNodeType.proto
Сборка агента
mkdir -p build
go build -o build -ldflags="-X \"main.bflagVersion=1.2.3\" -X \"main.bflagBuild=dev\"" greenplum.metric.agent/src/cmd/greenplum.metric.agent
Сборка API
mkdir -p build
go build -o build -ldflags="-X \"main.bflagVersion=1.2.3\" -X \"main.bflagBuild=dev\"" greenplum.metric.agent/src/cmd/greenplum.metric.api
Тестирование
Перед запуском тестов необходимо установить утилиту mockery и сгенерировать моки для модульного тестирования.
Установка Mockery
Для генерации моков выполнить команду mockery из корневой директории проекта: