config

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Telegram Telegram  `yaml:"telegram"`
	Services []Service `yaml:"services"`
	Storage  Storage   `yaml:"storage"`
}

func GetConfig

func GetConfig() Config

type HTTPGet

type HTTPGet struct {
	TCPSocket   `yaml:",inline"`
	Scheme      string      `yaml:"scheme"`
	Path        string      `yaml:"path"`
	HTTPHeaders HTTPHeaders `yaml:"httpHeaders"`
}

func (HTTPGet) ApplyDefaultsAndValidate

func (h HTTPGet) ApplyDefaultsAndValidate() (HTTPGet, error)

func (HTTPGet) IsEmpty

func (s HTTPGet) IsEmpty() bool

type HTTPHeader

type HTTPHeader struct {
	Name  string `yaml:"name"`
	Value string `yaml:"value"`
}

type HTTPHeaders

type HTTPHeaders []HTTPHeader

func (HTTPHeaders) ToMap

func (h HTTPHeaders) ToMap() map[string][]string

type Redis

type Redis struct {
	Host     string `yaml:"host" envconfig:"REDIS__HOST"`
	Port     int    `yaml:"port" envconfig:"REDIS__PORT"`
	Password string `yaml:"password" envconfig:"REDIS__PASSWORD"`
	DB       int    `yaml:"db" envconfig:"REDIS__DB"`
}

type Service

type Service struct {
	Id                  string    `yaml:"id"`
	Name                string    `yaml:"name"`
	InitialDelaySeconds int       `yaml:"initialDelaySeconds"` // пауза перед первым опросом в секундах, по умолчанию: 0; если меньше 0, то используется случайное значение между 0 и `periodSeconds`
	PeriodSeconds       int       `yaml:"periodSeconds"`       // период опроса в секундах, по умолчанию: 10
	TimeoutSeconds      int       `yaml:"timeoutSeconds"`      // время ожидания ответа в секундах, по кмолчанию: 1
	SuccessThreshold    int       `yaml:"successThreshold"`    // количество последовательных успешных соединений для перехода в состояние "в сети", по умолчанию: 1
	FailureThreshold    int       `yaml:"failureThreshold"`    // количество последовательных ошибок соединения для перехода в состояние "не в сети", по умолчанию: 3
	HTTPGet             HTTPGet   `yaml:"httpGet,omitempty"`
	TCPSocket           TCPSocket `yaml:"tcpSocket,omitempty"`
}

func (Service) ApplyDefaultsAndValidate

func (s Service) ApplyDefaultsAndValidate() (svc Service, err error)

type Storage

type Storage struct {
	Redis Redis `yaml:"redis"`
}

type TCPSocket

type TCPSocket struct {
	Host string `yaml:"host" validate:"required,hostname"`
	Port uint16 `yaml:"port"`
}

func (TCPSocket) IsEmpty

func (s TCPSocket) IsEmpty() bool

type Telegram

type Telegram struct {
	Token      string `yaml:"token" envconfig:"TELEGRAM__TOKEN" validate:"required"`
	ChatID     int64  `yaml:"chatId" envconfig:"TELEGRAM__CHAT_ID"`
	WebhookURL string `yaml:"webhookUrl" envconfig:"TELEGRAM__WEBHOOK_URL" validate:"required"`
	Debug      bool   `yaml:"debug" envconfig:"TELEGRAM__DEBUG"`
}

Jump to

Keyboard shortcuts

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