Skip to content

Сборка

Модуль 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

go install github.com/rubenv/sql-migrate/...@latest
Скопировать пример конфигурации dbconfig.yml.example в dbconfig.yml и заполнить параметры подключения.

Клонирование репозитория

Клонировать репозиторий проекта одним из способов:

Клонирование через SSH
git clone git@git.angara.cloud:gbgp/greenplum.metric/greenplum.metric.agent.git
Клонирование через http(s)
git clone https://git.angara.cloud/gbgp/greenplum.metric/greenplum.metric.agent.git
Обновление подмодулей
cd greenplum.metric.agent
git submodule update --init --recursive

Генерация 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

go install github.com/vektra/mockery/v2@v2.43.2

Для генерации моков выполнить команду mockery из корневой директории проекта:

mockery