Documentation ¶
Index ¶
- Variables
- func StartWatcher(ctx context.Context, l *util.Logger, cfg *PlanWatcherConfig) error
- type Machine
- func (m *Machine) Ping() ([]*message.RuntimeTelemetry, error)
- func (m *Machine) SendChangeOut(ctx context.Context, schemeName, actionName, oldOut, newOut string) error
- func (m *Machine) SendRunAction(ctx context.Context, schemeName string, node *planner.NodePlan) error
- func (m *Machine) SendStopAction(ctx context.Context, schemeName string, node *planner.NodePlan) error
- type MachineConfig
- type MachineWatcher
- type MachineWatcherConfig
- type NodeTelemetry
- type Plan
- type PlanConfig
- type PlanTelemetry
- type PlanWatcher
- type PlanWatcherConfig
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoAction = errors.New("no action") ErrMachineError = errors.New("machine internal error") )
Возможные ошибки
var ( ErrNoHost = errors.New("unknown machine host") ErrPlanAlreadyStarted = errors.New("plan already started") )
Возможные ошибки.
var (
ErrUnknownPlan = errors.New("unknown plan")
)
Возможные ошибки.
Functions ¶
func StartWatcher ¶
StartWatcher инициализирует синглтон RuntimeWatcher и запускает его.
Types ¶
type Machine ¶
type Machine struct {
// contains filtered or unexported fields
}
Machine абстракция машины
func NewMachine ¶
func NewMachine(l *util.Logger, cfg *MachineConfig) *Machine
NewMachine содает новый объект Machine.
func (*Machine) Ping ¶
func (m *Machine) Ping() ([]*message.RuntimeTelemetry, error)
Ping возвращает список работающих действий, запущенных на машине.
func (*Machine) SendChangeOut ¶
func (m *Machine) SendChangeOut(ctx context.Context, schemeName, actionName, oldOut, newOut string) error
SendChangeOut отправляет запрос на изменение Out у действия.
type MachineConfig ¶
type MachineConfig struct { // Host хост, на котором машина ожидает подключения. Host string `yaml:"host"` // Post сервисный порт машины, который используется // для передачи команд от meta_node и возврата статистики выше. Port int `yaml:"port"` // Timeout время, по истечению которого в случае отсутствия ответа // машина признается не работающей и начинается процесс восстановления. Timeout util.Duration `yaml:"timeout"` }
MachineConfig настройки машины, на котором запущен machine_node
type MachineWatcher ¶
type MachineWatcher struct {
// contains filtered or unexported fields
}
MachineWatcher структура для контроля запущенных действий.
type MachineWatcherConfig ¶
type MachineWatcherConfig struct { // Machines список доступных машин, которые будет опрашивать // machine_watcher и параметры подключения к ним. Machines []*MachineConfig `yaml:"machines"` }
MachineWatcherConfig набор настроек для Watcher
func NewMachineWatcherConfig ¶
func NewMachineWatcherConfig() *MachineWatcherConfig
NewMachineWatcherConfig возвращает MachineWatcherConfig с настройками по умолчанию.
type NodeTelemetry ¶
type NodeTelemetry struct { Name string Action string Address string IsRunning bool OldestOutput uint32 PrevName []string }
NodeTelemetry телеметрия узла, хранящая статистику по узлу.
type Plan ¶
type Plan struct {
// contains filtered or unexported fields
}
Plan отслеживает состояние машин в плане.
func NewPlan ¶
func NewPlan(plan *planner.Plan, w *MachineWatcher, l *util.Logger, cfg *PlanConfig) *Plan
NewPlan создает новый объект Plan
func (*Plan) GetTelemetry ¶
func (p *Plan) GetTelemetry() *PlanTelemetry
GetTelemetry возвращает снимок состояния плана в момент вызова
func (*Plan) RunProtection ¶
RunProtection запускает проверку работоспобности.
type PlanConfig ¶
type PlanConfig struct { PingFrequency util.Duration Retry *util.RetryConfig }
PlanConfig набор настроек плана
type PlanTelemetry ¶
type PlanTelemetry struct { Name string Nodes []*NodeTelemetry }
PlanTelemetry телеметрия плана, хранящая статистику по каждому узлу и связи узлов.
type PlanWatcher ¶
type PlanWatcher struct {
// contains filtered or unexported fields
}
PlanWatcher структура, наблюдающая за выполняющимися планами.
var Watcher *PlanWatcher
Watcher объект синглтон для слежения за работоспособностью планов.
func (*PlanWatcher) GetPlanTelemetry ¶
func (w *PlanWatcher) GetPlanTelemetry(planName string) (*PlanTelemetry, error)
GetPlanTelemetry возвращает телеметрию плана.
func (*PlanWatcher) RunPlan ¶
func (w *PlanWatcher) RunPlan(p *planner.Plan) error
RunPlan запускает план и сохраняет в watcher для отказоустойчивости.
func (*PlanWatcher) StopPlan ¶
func (w *PlanWatcher) StopPlan(planName string) error
StopPlan останавливает работу плана.
func (*PlanWatcher) WorkingPlans ¶
func (w *PlanWatcher) WorkingPlans() map[string]struct{}
WorkingPlans возвращает map работающих в данный момент планов.
type PlanWatcherConfig ¶
type PlanWatcherConfig struct { // PingFrequency время между запросами к машинам для получения // информации о состоянии машин и запущенных на них рантаймов. PingFrequency util.Duration `yaml:"ping-freq"` // Retry конфигурация попток взаимодействия с узлом. Retry *util.RetryConfig `yaml:"retry"` // MachineWatcher набор настроек для watcher, который // следит за состоянием машин. MachineWatcher *MachineWatcherConfig `yaml:"machine-watcher"` }
PlanWatcherConfig набор параметров для PlanWatcher.
func NewPlanWatcherConfig ¶
func NewPlanWatcherConfig() *PlanWatcherConfig
NewPlanWatcherConfig возвращает PlanWatcherConfig c настройками по умолчанию.