config

package
v0.0.0-...-ea8e01d Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2020 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const Default = `` /* 896-byte string literal not displayed */
View Source
const Namespace = "golang_code_template"

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Server     Server     `mapstructure:"server" validate:"required"`
	Logger     Logger     `mapstructure:"logger" validate:"required"`
	Redis      Redis      `mapstructure:"redis" validate:"required"`
	Postgres   Postgres   `mapstructure:"postgres" validate:"required"`
	Monitoring Monitoring `mapstructure:"monitoring" validate:"required"`
}

func Init

func Init(path string) Config

func (Config) Validate

func (c Config) Validate() error

type Logger

type Logger struct {
	Level string `mapstructure:"level" validate:"required"`
}

type Monitoring

type Monitoring struct {
	Prometheus Prometheus `mapstructure:"prometheus" validate:"required"`
}

type Postgres

type Postgres struct {
	Host               string        `mapstructure:"host" validate:"required"`
	Port               int           `mapstructure:"port" validate:"required"`
	Username           string        `mapstructure:"user" validate:"required"`
	Password           string        `mapstructure:"pass" validate:"required"`
	DBName             string        `mapstructure:"dbname" validate:"required"`
	ConnectTimeout     time.Duration `mapstructure:"connect-timeout" validate:"required"`
	ConnectionLifetime time.Duration `mapstructure:"connection-lifetime" validate:"required"`
	MaxOpenConnections int           `mapstructure:"max-open-connections" validate:"required"`
	MaxIdleConnections int           `mapstructure:"max-idle-connections" validate:"required"`
}

type Prometheus

type Prometheus struct {
	Enabled bool   `mapstructure:"enabled"`
	Address string `mapstructure:"address" validate:"required"`
}

type Redis

type Redis struct {
	Master RedisConfig `mapstructure:"master" validate:"required"`
	Slave  RedisConfig `mapstructure:"slave" validate:"required"`
}

type RedisConfig

type RedisConfig struct {
	Address         string        `mapstructure:"address" validate:"required"`
	PoolSize        int           `mapstructure:"pool-size"`
	MinIdleConns    int           `mapstructure:"min-idle-conns"`
	DialTimeout     time.Duration `mapstructure:"dial-timeout"`
	ReadTimeout     time.Duration `mapstructure:"read-timeout"`
	WriteTimeout    time.Duration `mapstructure:"write-timeout"`
	PoolTimeout     time.Duration `mapstructure:"pool-timeout"`
	IdleTimeout     time.Duration `mapstructure:"idle-timeout"`
	MaxRetries      int           `mapstructure:"max-retries"`
	MinRetryBackoff time.Duration `mapstructure:"min-retry-backoff"`
	MaxRetryBackoff time.Duration `mapstructure:"max-retry-backoff"`
}

type Server

type Server struct {
	ReadTimeout     time.Duration `mapstructure:"read-timeout" validate:"required"`
	WriteTimeout    time.Duration `mapstructure:"write-timeout" validate:"required"`
	GracefulTimeout time.Duration `mapstructure:"graceful-timeout" validate:"required"`
	Address         string        `mapstructure:"address" validate:"required"`
}

Jump to

Keyboard shortcuts

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