Инкрементальный проекта курса «Go-разработчик» трека "Сервис сбора метрик"
Для включения шифрования необходимо сгенерировать файлы приватного(для сервера) и публичного(для агента) ключа. Это можно сделать командой:
make cryptokeys
Файлы будут сгенерированы в корневой директории проекта в каталоге keys
- Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
- Из каталога репозитория выполните команду
make build-agent
- Собраный файл
agent
будет находится в подкаталоге репозитория./cmd/agent/agent
- Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
- Из каталога репозитория выполните команду
make build-server
- Собраный файл
server
будет находится в подкаталоге репозитория./cmd/server/server
- Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
- Из каталога репозитория выполните команду
make build-staticlint
- Собраный файл
staticlint
будет находится в подкаталоге репозитория./cmd/staticlint/staticlint
- Чтобы запустить статический анализатор необходимо передать исполняемому файлу пути к анализируемым пакетам, например:
cmd/staticlint/staticlint ПутьКПроверяемомуПакету1 ПутьКПроверяемомуПакету2
cmd/staticlint/staticlint ./internal/storage ./internal/stats
Или, например, вот такой командой можно проверить все *.go файлы:
cmd/staticlint/staticlint ./...
go test ./... -v -race
Для профилирования должен быть развернут PostgreSQL с базой "praktikum" и установлена утилита graphviz
.
- Перейдите в корневую директорию проекта и соберите бинарные файлы сервера и агента, возспользовавшись командой:
make build-agent && make build-server
- Запустите сервер командой:
./cmd/server/server -d "postgres://postgres:postgres@localhost:5432/praktikum?sslmode=disable" -a localhost:32323 -k nope
- В отдельном окне терминала запустите агент командой:
./cmd/agent/agent -a localhost:32323 -l 5 -k nope -p 1 -r 2
Агент начнет собирать метрики и отправлять их на сервер, таким образом будет генерироваться нагрузка.
- Чтобы собрать профиль приложения по СPU выполните команду, не закрывая окон с сервером и агентом:
curl -s -v http://localhost:32323/debug/pprof/profile > profiles/cpu.pprof
- Посмотреть собраный профиль можно утилитой pprof:
go tool pprof -http=":9090" -seconds=60 profiles/cpu.pprof
- Чтобы собрать профиль приложения по выделяемой памяти выполните команду, не закрывая окон с сервером и агентом:
curl -s -v http://localhost:32323/debug/pprof/heap > profiles/heap.pprof
- Посмотреть собраный профиль можно утилитой pprof:
go tool pprof -http=":9090" -seconds=60 profiles/heap.pprof
- Установите пакет
godoc
go install -v golang.org/x/tools/cmd/godoc@latest
- Перейдите в корневую директорию проекта и выполнить команду
godoc -http=:8080 -play
- Для просмотра откройте в браузере
http://localhost:8080