watcher

package
v0.0.0-...-2932577 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	// PingCommand команда для проверки состояния runtime.
	PingCommand uint8 = 0x1
	// ChangeOutCommand команда для изменения выходного потока.
	ChangeOutCommand uint8 = 0x2
)
View Source
const (
	// OKResponse ответ, предполагающий успешное выполнение действия.
	OKResponse uint8 = 0x0
	// FailResponse ответ, предполагающий ошибочное выполнение действия.
	FailResponse uint8 = 0x1
)

Variables

View Source
var (
	ErrCommandFailed = errors.New("command returned not OK response")
	ErrBadOut        = errors.New("address must be in format <host>:<port>")
)

Возможные ошибки

View Source
var (
	ErrRuntimeAlreadyRegistered = errors.New("action already registered")
	ErrUnknownRuntime           = errors.New("unknown action")
)

Возможные ошибки.

Functions

func StartWatcher

func StartWatcher(ctx context.Context, l *util.Logger, cfg *Config) error

StartWatcher инициализирует синглтон RuntimeWatcher и запускает его.

Types

type ActionOptions

type ActionOptions struct {
	Args []string          `json:"args"`
	Env  map[string]string `json:"env"`
}

ActionOptions опции для запуска действия

type Config

type Config struct {
	// PingsToStop количество неудачных ping запросов,
	// после которых рантайм признается отказавшим.
	PingsToStop int `yaml:"pings-to-stop"`
	// PingFrequency время между запросами к рантаймам для получения состояния.
	PingFrequency util.Duration `yaml:"ping-freq"`
}

Config набор настроек для Watcher

func NewConfig

func NewConfig() *Config

NewConfig создает новый Config с настройками по-умолчанию.

type Runtime

type Runtime struct {
	// contains filtered or unexported fields
}

Runtime структура, представляющая собой запущенное действие

func NewRuntime

func NewRuntime(schemeName, actionName string, bin []byte, l *util.Logger, opt *RuntimeOptions) *Runtime

NewRuntime создает новое действие.

func (*Runtime) ActionName

func (r *Runtime) ActionName() string

ActionName возвращает имя действия, частью которого является рантайм.

func (*Runtime) ChangeOut

func (r *Runtime) ChangeOut(oldOut, newOut string) error

ChangeOut заменяет oldOut на newOut.

func (*Runtime) Name

func (r *Runtime) Name() string

Name возвращает имя запущенного действия

func (*Runtime) Ping

func (r *Runtime) Ping() (*RuntimeTelemetry, error)

Ping проверяет работоспособность действия с помощью отправки ping.

func (*Runtime) SchemeName

func (r *Runtime) SchemeName() string

SchemeName возвращает имя схемы, частью которой является рантайм.

func (*Runtime) Start

func (r *Runtime) Start(ctx context.Context) error

Start запускает действие и выходит, в случае успешного запуска.

func (*Runtime) Stop

func (r *Runtime) Stop() error

Stop завершает работу действия, возвращает ошибку из stderr.

type RuntimeOptions

type RuntimeOptions struct {
	Port          int
	Replicas      int
	In            []string
	Out           []string
	ActionOptions *ActionOptions

	RuntimePath      string
	RuntimeLogsDir   string
	RuntimeLogsLevel string
	ActionStartRetry *util.RetryConfig

	Timeout       time.Duration
	AckPeriod     time.Duration
	ForwardLogDir string
}

RuntimeOptions набор параметров при запуске действия.

type RuntimeTelemetry

type RuntimeTelemetry struct {
	OldestOutput uint32
}

RuntimeTelemetry информация о состоянии runtime.

type Watcher

type Watcher struct {
	// contains filtered or unexported fields
}

Watcher структура для контроля запущенных действий.

var RuntimeWatcher *Watcher

RuntimeWatcher объект синглтон для слежения за работоспособностью действий.

func (*Watcher) ChangeOutRuntime

func (w *Watcher) ChangeOutRuntime(schemeName, actionName, oldOut, newOut string) error

ChangeOutRuntime изменяет один из выходных потоков рантайма.

func (*Watcher) GetRuntimesTelemetry

func (w *Watcher) GetRuntimesTelemetry() []*message.RuntimeTelemetry

GetRuntimesTelemetry возвращает информацию о состояниях действий.

func (*Watcher) StartRuntime

func (w *Watcher) StartRuntime(ctx context.Context, r *Runtime) error

StartRuntime запускает регистрирует действие для наблюдения

func (*Watcher) StopRuntime

func (w *Watcher) StopRuntime(schemeName, actionName string) error

StopRuntime остановка действия.

Jump to

Keyboard shortcuts

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