Documentation
¶
Index ¶
- Constants
- Variables
- type AppConf
- type CPU
- type CPUData
- type ClientData
- type Clients
- type Collector
- type CollectorToClientsCh
- type Config
- type DiskData
- type FSData
- type GRPCServer
- type LoadAvg
- type LoadAvgData
- type LoadDisks
- type LoadDisksData
- type Logger
- type LoggerConf
- type MetricCollectors
- type MetricCommand
- type MetricConf
- type MetricsData
- type NewClienter
- type Point
- type Points
- type ServerConf
- type Stats
- type UsedFS
- type UsedFSData
Constants ¶
const MaxSeconds = 600
MaxSeconds - дефолтное время хранения метрик.
Variables ¶
var ErrStopped = errors.New("service is stopped")
ErrStopped ошибка, возвращаемая grpc запросу, если приложение останавливается.
Functions ¶
This section is empty.
Types ¶
type CPU ¶
type CPU func(ctx context.Context, action MetricCommand) (*CPUData, error)
CPU - функция возвращающая среднюю загрузку cpu.
type ClientData ¶
type ClientData struct { N int // информация отправляется каждые N секунд M int // информация усредняется за M секунд }
ClientData - информация, передаваемая из grpc запроса сервису клиентов.
type Clients ¶
type Clients interface { Start(context.Context, <-chan MetricsData) Stop(context.Context) NewClienter }
Clients представляет сервис, хранящий всех подключенных клиентов и отсылающий им статистику.
type Collector ¶
type Collector interface { Start(context.Context, MetricCollectors, chan<- MetricsData) Stop(context.Context) }
Collector представляет сервис, запускающий каждую секунду сбор статистики и ее отправку клиентам.
type CollectorToClientsCh ¶
type CollectorToClientsCh chan MetricsData
CollectorToClientsCh - канал для посекундной передачи накопленных данных сервису клиентов.
type Config ¶
type Config struct { App AppConf Log LoggerConf Server ServerConf Metric MetricConf }
Config содержит конфигурацию программы.
type GRPCServer ¶
type GRPCServer interface { Start(addr string, clients NewClienter) error Stop(ctx context.Context) }
GRPCServer представляет gRPC сервер.
type LoadAvg ¶
type LoadAvg func(ctx context.Context) (*LoadAvgData, error)
LoadAvg - функция возвращающая среднюю загрузку системы.
type LoadAvgData ¶
LoadAvgData содержит метрики средней загрузки системы.
type LoadDisks ¶
type LoadDisks func(ctx context.Context, action MetricCommand) (LoadDisksData, error)
LoadDisks - функция возвращающая загрузку дисков.
type LoadDisksData ¶
type LoadDisksData []DiskData
LoadDisksData - слайс информации о загрузке дисков.
type Logger ¶
type Logger interface { Debug(args ...interface{}) Info(args ...interface{}) Error(args ...interface{}) Fatal(args ...interface{}) }
Logger представляет логгер.
type MetricCollectors ¶
MetricCollectors - набор функций, возвращающих свои метрики. Передается сервису Collector при его создании.
type MetricCommand ¶
type MetricCommand int
MetricCommand - команды для взаимодействия сервиса метрик и коллекторами, собирающими метрики.
const ( // StartMetric - начать собирать метрики. StartMetric MetricCommand = iota // StopMetric - остановить сбор метрик. StopMetric // GetMetric - получить метрики. GetMetric )
type MetricConf ¶
MetricConf позволяет отключить сбор каких-либо метрик.
type MetricsData ¶
MetricsData содержит данные, отсылаемые сервису клиентов. Отсылается текущая секунда и копия всех собранных данных. Отсылается копия, чтобы сервис мог ее обрабатывать, не блокируя мьютекс с собираемыми данными.
type NewClienter ¶
type NewClienter interface { // возвращает канал для получения отсылаемых данных и ф-ия отключения клиента NewClient(ClientData) (<-chan *Stats, func(), error) }
NewClienter представляет интерфейс для подключения новых клиентов.
type Point ¶
type Point struct { LoadAvg *LoadAvgData CPU *CPUData LoadDisks LoadDisksData UsedFS UsedFSData }
Point содержит набор метрик (снапшот). За секунду или усредненный.
type ServerConf ¶
type ServerConf struct {
Port string
}
ServerConf содержит настройки gRPC сервера.
func (ServerConf) Validate ¶
func (c ServerConf) Validate() error
type Stats ¶
type Stats struct { Time time.Time LoadAvg *LoadAvgData CPU *CPUData LoadDisks LoadDisksData UsedFS UsedFSData }
Stats содержит данные, отсылаемые каждому клиенту.
type UsedFS ¶
type UsedFS func(ctx context.Context, action MetricCommand) (UsedFSData, error)
UsedFS - функция возвращающая использование файловых систем.
type UsedFSData ¶
type UsedFSData []FSData
UsedFSData - слайс информации об использовании файловых систем.