config

package
v1.0.22 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Module = types.Module{
	{CreateFunc: NewConfig},
	{CreateFunc: ConfigAdapter},
}

Functions

This section is empty.

Types

type Config

type Config struct {
	HTTP          HTTPServerConfig `yaml:"http"`
	GRPC          GRPCServerConfig `yaml:"grpc"`
	APM           ElasticAPMConfig `yaml:"apm"`
	Kafka         KafkaConfig      `yaml:"kafka"`
	DB            []DB             `yaml:"db"`
	ElasticSearch ElasticSearch    `yaml:"elastic_search"`
	Sentry        Sentry           `yaml:"sentry"`

	ReleaseID string
	Env       string `envconfig:"ENV" default:"development" required:"true" yaml:"env"`
	LogLevel  string `envconfig:"LOG_LEVEL" default:"info" yaml:"log_level"`
	AppName   string `envconfig:"APP_NAME" yaml:"app_name"`

	// DebugLog включает/выключает полные логи ответов (response payload).
	DebugLog            bool `envconfig:"DEBUG_LOG" default:"false" yaml:"debug_log"`
	EnableServerMetrics bool `envconfig:"ENABLE_SERVER_METRICS" default:"true" yaml:"enable_server_metrics"`
}

func NewConfig

func NewConfig(configurators []Configure, releaseID ReleaseID) (*Config, error)

type ConfigAdapterIn

type ConfigAdapterIn struct {
	dig.In

	CustomConfigurators []Configure `group:"configurators"`
}

type Configure

type Configure func(cfg *Config) error

func ConfigAdapter

func ConfigAdapter(in ConfigAdapterIn) []Configure

type DB added in v1.0.1

type DB struct {
	DSN  string `yaml:"dsn"`
	Name string `yaml:"name"`
	// Type sqlx|pgx
	Type               string        `yaml:"type"`
	MaxOpenConnections int           `yaml:"max_open_connections"`
	MaxIdleConnections int           `yaml:"max_idle_connections"`
	ConnMaxLifetime    time.Duration `yaml:"conn_max_lifetime"`
}

type ElasticAPMConfig

type ElasticAPMConfig struct {
	ServiceName string `envconfig:"ELASTIC_APM_SERVICE_NAME" yaml:"service_name"`
	ServerURL   string `envconfig:"ELASTIC_APM_SERVER_URL" yaml:"server_url"`
	Environment string `envconfig:"ELASTIC_APM_ENVIRONMENT" yaml:"environment"`
}

type ElasticSearch

type ElasticSearch struct {
	// DSN представляет из себя строку, где URI:port нод кластера перечислены через запятую без пробелов
	// Например: 'http://es1.localhost.com:9200,http://es2.localhost.com:9200'
	DSN        string `envconfig:"ELASTIC_SEARCH_DSN" yaml:"dsn"`
	MaxRetries int    `envconfig:"ELASTIC_SEARCH_MAX_RETRIES" default:"5" required:"true" yaml:"max_retries"`
	WithLogger bool   `envconfig:"ELASTIC_WITH_LOGGER" default:"false" required:"true" yaml:"with_logger"`
}

type GRPCServerConfig

type GRPCServerConfig struct {
	ListenAddr               string        `envconfig:"GRPC_LISTEN_ADDR" required:"true" default:":9090" yaml:"listen_addr"`
	KeepaliveTime            time.Duration `envconfig:"GRPC_KEEPALIVE_TIME" default:"30s" yaml:"keepalive_time"`
	KeepaliveTimeout         time.Duration `envconfig:"GRPC_KEEPALIVE_TIMEOUT" default:"10s" yaml:"keepalive_timeout"`
	RegisterReflectionServer bool          `envconfig:"GRPC_REGISTER_REFLECTION_SERVER" default:"true" yaml:"register_reflection_server"`
}

type HTTPServerConfig

type HTTPServerConfig struct {
	ListenAddr       string        `envconfig:"HTTP_LISTEN_ADDR" required:"true" default:":8080" yaml:"listen_addr"`
	KeepaliveTime    time.Duration `envconfig:"HTTP_KEEPALIVE_TIME" default:"30s" yaml:"keepalive_time"`
	KeepaliveTimeout time.Duration `envconfig:"HTTP_KEEPALIVE_TIMEOUT" default:"10s" yaml:"keepalive_timeout"`
}

type KafkaConfig added in v1.0.9

type KafkaConfig struct {
	Addresses   string `envconfig:"KAFKA_ADDRESSES" yaml:"addresses"`
	SkipErrors  string `envconfig:"KAFKA_SKIP_ERRORS" yaml:"skip_errors"`
	EnableDebug bool   `envconfig:"KAFKA_ENABLE_DEBUG" default:"false" yaml:"enable_debug"`
}

type ReleaseID

type ReleaseID string

type Sentry

type Sentry struct {
	DSN string `envconfig:"SENTRY_DSN" yaml:"sentry_dsn"`
}

Jump to

Keyboard shortcuts

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