Skip to content

artemshalin/metcoll

Repository files navigation

Metcoll

  • Made
  • codecov
  • Go Report Card

Инкрементальный проекта курса «Go-разработчик» трека "Сервис сбора метрик"

Требования к окружению

Как собрать

Шифрование

Для включения шифрования необходимо сгенерировать файлы приватного(для сервера) и публичного(для агента) ключа. Это можно сделать командой:

make cryptokeys

Файлы будут сгенерированы в корневой директории проекта в каталоге keys

Сборка сервиса metcoll-agent

  1. Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
  2. Из каталога репозитория выполните команду
make build-agent
  1. Собраный файл agent будет находится в подкаталоге репозитория ./cmd/agent/agent

Сборка сервиса metcoll-server

  1. Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
  2. Из каталога репозитория выполните команду
make build-server
  1. Собраный файл server будет находится в подкаталоге репозитория ./cmd/server/server

Сборка статического анализатора

  1. Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
  2. Из каталога репозитория выполните команду
make build-staticlint
  1. Собраный файл staticlint будет находится в подкаталоге репозитория ./cmd/staticlint/staticlint
  2. Чтобы запустить статический анализатор необходимо передать исполняемому файлу пути к анализируемым пакетам, например:
cmd/staticlint/staticlint ПутьКПроверяемомуПакету1 ПутьКПроверяемомуПакету2
cmd/staticlint/staticlint ./internal/storage ./internal/stats

Или, например, вот такой командой можно проверить все *.go файлы:

cmd/staticlint/staticlint ./...

Запуск тестов

go test ./... -v -race

Профилирование

Для профилирования должен быть развернут PostgreSQL с базой "praktikum" и установлена утилита graphviz.

  1. Перейдите в корневую директорию проекта и соберите бинарные файлы сервера и агента, возспользовавшись командой:
make build-agent && make build-server
  1. Запустите сервер командой:
./cmd/server/server -d "postgres://postgres:postgres@localhost:5432/praktikum?sslmode=disable" -a localhost:32323 -k nope   
  1. В отдельном окне терминала запустите агент командой:
./cmd/agent/agent -a localhost:32323 -l 5 -k nope -p 1 -r 2

Агент начнет собирать метрики и отправлять их на сервер, таким образом будет генерироваться нагрузка.

  1. Чтобы собрать профиль приложения по СPU выполните команду, не закрывая окон с сервером и агентом:
curl -s -v http://localhost:32323/debug/pprof/profile > profiles/cpu.pprof
  1. Посмотреть собраный профиль можно утилитой pprof:
go tool pprof -http=":9090" -seconds=60 profiles/cpu.pprof
  1. Чтобы собрать профиль приложения по выделяемой памяти выполните команду, не закрывая окон с сервером и агентом:
curl -s -v http://localhost:32323/debug/pprof/heap > profiles/heap.pprof
  1. Посмотреть собраный профиль можно утилитой pprof:
go tool pprof -http=":9090" -seconds=60 profiles/heap.pprof

Локальное отображения godoc-документации

  1. Установите пакет godoc
go install -v golang.org/x/tools/cmd/godoc@latest
  1. Перейдите в корневую директорию проекта и выполнить команду
godoc -http=:8080 -play   
  1. Для просмотра откройте в браузере http://localhost:8080

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •