symo

package
v0.0.0-...-66e1447 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const MaxSeconds = 600

MaxSeconds - дефолтное время хранения метрик.

Variables

View Source
var ErrStopped = errors.New("service is stopped")

ErrStopped ошибка, возвращаемая grpc запросу, если приложение останавливается.

Functions

This section is empty.

Types

type AppConf

type AppConf struct {
	MaxSeconds int
}

AppConf содержит общие настройки программы.

func (AppConf) Validate

func (c AppConf) Validate() error

type CPU

type CPU func(ctx context.Context, action MetricCommand) (*CPUData, error)

CPU - функция возвращающая среднюю загрузку cpu.

type CPUData

type CPUData struct {
	User   float64
	System float64
	Idle   float64
}

CPUData содержит метрики средней загрузки 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 содержит конфигурацию программы.

func NewConfig

func NewConfig(configFile string) (Config, error)

NewConfig возвращает текущую конфигурацию.

func (Config) Validate

func (c Config) Validate() error

type DiskData

type DiskData struct {
	Name    string
	Tps     float64
	KBRead  float64
	KBWrite float64
}

DiskData содержит метрики загрузки дисков.

type FSData

type FSData struct {
	Path      string
	UsedSpace float64
	UsedInode float64
}

FSData содержит информацию об использовании файловой системы.

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

type LoadAvgData struct {
	Load1  float64
	Load5  float64
	Load15 float64
}

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 LoggerConf

type LoggerConf struct {
	Level string
}

LoggerConf содержит настройки логгера.

type MetricCollectors

type MetricCollectors struct {
	LoadAvg   LoadAvg
	CPU       CPU
	LoadDisks LoadDisks
	UsedFS    UsedFS
}

MetricCollectors - набор функций, возвращающих свои метрики. Передается сервису Collector при его создании.

type MetricCommand

type MetricCommand int

MetricCommand - команды для взаимодействия сервиса метрик и коллекторами, собирающими метрики.

const (
	// StartMetric - начать собирать метрики.
	StartMetric MetricCommand = iota
	// StopMetric - остановить сбор метрик.
	StopMetric
	// GetMetric - получить метрики.
	GetMetric
)

type MetricConf

type MetricConf struct {
	Loadavg   bool
	CPU       bool
	Loaddisks bool
	UsedFS    bool
}

MetricConf позволяет отключить сбор каких-либо метрик.

type MetricsData

type MetricsData struct {
	Time   time.Time
	Points Points
}

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 Points

type Points map[time.Time]*Point

Points хранит собранные посекундные наборы метрик.

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 - слайс информации об использовании файловых систем.

Jump to

Keyboard shortcuts

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