65 lines
1.7 KiB
Go
65 lines
1.7 KiB
Go
package config
|
|
|
|
import "runtime"
|
|
|
|
type Config struct {
|
|
App AppConfig
|
|
Rabbit RabbitMQConfig
|
|
Metrics MetricsConfig
|
|
}
|
|
|
|
type AppConfig struct {
|
|
Mode string
|
|
LogLvl string
|
|
ChanLen uint
|
|
ExternalBrowser string
|
|
NumCPUs int
|
|
TaskTimeoutSeconds int
|
|
}
|
|
|
|
type RabbitMQConfig struct {
|
|
Host string
|
|
Port uint16
|
|
User string
|
|
Pass string
|
|
Vhost string
|
|
LoggingEnabled bool
|
|
TaskSourceQueue string
|
|
TaskResultQueue string
|
|
}
|
|
|
|
type MetricsConfig struct {
|
|
Host string
|
|
Port string
|
|
GinMode string
|
|
}
|
|
|
|
func New() *Config {
|
|
return &Config{
|
|
App: AppConfig{
|
|
Mode: getEnv("APP_MODE", "dev"),
|
|
LogLvl: getEnv("APP_LOG_LVL", "debug"),
|
|
ChanLen: getEnvUint("APP_CHANNEL_LEN", 100),
|
|
ExternalBrowser: getEnv("APP_EXTERNAL_BROWSER", "http://10.0.0.4:13000"),
|
|
NumCPUs: getEnvInt("APP_NUMCPUS", runtime.NumCPU()),
|
|
TaskTimeoutSeconds: getEnvInt("APP_TASK_TIMEOUT_SECONDS", 60),
|
|
},
|
|
|
|
Rabbit: RabbitMQConfig{
|
|
Host: getEnv("RABBIT_HOST", "10.0.0.4"),
|
|
Port: getEnvPort("RABBIT_PORT", 5672),
|
|
User: getEnv("RABBIT_USER", "parser-mandarake-dev"),
|
|
Pass: getEnv("RABBIT_PASS", "dev-pass"),
|
|
Vhost: getEnv("RABBIT_VHOST", "taskProcessorDevHost"),
|
|
LoggingEnabled: getEnvBool("RABBIT_LOGGING_ENABLED", true),
|
|
TaskSourceQueue: getEnv("TASK_SOURCE_QUEUE", "task-publisher-mandarake"),
|
|
TaskResultQueue: getEnv("TASK_RESULT_QUEUE", "tasks-results"),
|
|
},
|
|
|
|
Metrics: MetricsConfig{
|
|
Host: getEnv("METRICS_HOST", "0.0.0.0"),
|
|
Port: getEnv("METRICS_PORT", "19080"),
|
|
GinMode: getEnv("METRICS_GIN_MODE", "dev"),
|
|
},
|
|
}
|
|
}
|