metcoll

module
v0.0.0-...-803e70e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2024 License: MIT

README

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

Directories

Path Synopsis
cmd
agent
Package main is used to collect metrics and send them to the server.
Package main is used to collect metrics and send them to the server.
server
Package main is used to store indicators of their aggregation and return on request.
Package main is used to store indicators of their aggregation and return on request.
staticlint
The package is used to combine analyzers.
The package is used to combine analyzers.
internal
build
Package build is used for build versioning.
Package build is used for build versioning.
compress
Package compress is used to compress and decompress incoming and outgoing http requests.
Package compress is used to compress and decompress incoming and outgoing http requests.
configuration
Package configuration is used to store agent and server configuration.
Package configuration is used to store agent and server configuration.
exitchecker
Package exitchecker checks a direct call to `os.Exit` in the main function of the main package.
Package exitchecker checks a direct call to `os.Exit` in the main function of the main package.
logger
Package logger provides logging of the application, logging of incoming and outgoing requests.
Package logger provides logging of the application, logging of incoming and outgoing requests.
metcoll
Package metcoll for interacting with the metrics server.
Package metcoll for interacting with the metrics server.
metrics
Package metrics is a generated GoMock package.
Package metrics is a generated GoMock package.
stats
Package stats contains methods and functions for collecting metrics.
Package stats contains methods and functions for collecting metrics.
storage
Package storage describes the interaction of the server with various sources of metrics storage.
Package storage describes the interaction of the server with various sources of metrics storage.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL