Documentation
¶
Overview ¶
Package env contains functions for working with environment configuration (capidaemon.json, capitoolbelt.json, capiwebapi.json)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AmqpConfig ¶
type AmqpConfig struct {
URL string `json:"url" env:"CAPI_AMQP_URL, overwrite"`
Exchange string `json:"exchange" env:"CAPI_AMQP_EXCHANGE, overwrite"`
PrefetchCount int `json:"prefetch_count" env:"CAPI_AMQP_PREFETCH_COUNT, overwrite"`
PrefetchSize int `json:"prefetch_size" env:"CAPI_AMQP_PREFETCH_SIZE, overwrite"`
}
type CassandraConfig ¶
type CassandraConfig struct {
Hosts []string `json:"hosts" env:"CAPI_CASSANDRA_HOSTS, overwrite"`
Port int `json:"port" env:"CAPI_CASSANDRA_PORT, overwrite"`
Username string `json:"username" env:"CAPI_CASSANDRA_USERNAME, overwrite"`
Password string `json:"password" env:"CAPI_CASSANDRA_PASSWORD, overwrite"`
WriterWorkers int `json:"writer_workers" env:"CAPI_CASSANDRA_WRITER_WORKERS, overwrite"` // 20 is conservative, 80 is very aggressive
MinInserterRate int `json:"min_inserter_rate" env:"CAPI_CASSANDRA_MIN_INSERTER_RATE, overwrite"` // writes/sec; if the rate falls below this, we consider the db too slow and throw an error
NumConns int `json:"num_conns" env:"CAPI_CASSANDRA_NUM_CONNS, overwrite"` // gocql default is 2, don't make it too high
Timeout int `json:"timeout" env:"CAPI_CASSANDRA_TIMEOUT, overwrite"` // in ms, set it to 5s, gocql default 600ms is way too aggressive for heavy writes by multiple workers
ConnectTimeout int `json:"connect_timeout" env:"CAPI_CASSANDRA_CONNECT_TIMEOUT, overwrite"` // in ms, set it to 1s, gocql default 600ms may be ok, but let's stay on the safe side
KeyspaceReplicationConfig string `json:"keyspace_replication_config" env:"CAPI_CASSANDRA_KEYSPACE_REPLICATION_CONFIG, overwrite"` // { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }
SslOpts *SslOptions `json:"ssl_opts"`
}
func (*CassandraConfig) MarshalJSON ¶ added in v1.1.20
func (c *CassandraConfig) MarshalJSON() ([]byte, error)
func (*CassandraConfig) ShallowCopy ¶ added in v1.1.20
func (c *CassandraConfig) ShallowCopy() CassandraConfig
type EnvConfig ¶
type EnvConfig struct {
HandlerExecutableType string `json:"handler_executable_type"`
Cassandra CassandraConfig `json:"cassandra"`
Amqp AmqpConfig `json:"amqp"`
// ZapConfig zap.Config `json:"zap_config"`
Log LogConfig `json:"log"`
ThreadPoolSize int `json:"thread_pool_size" env:"CAPI_THREAD_POOL_SIZE, overwrite"`
DeadLetterTtl int `json:"dead_letter_ttl" env:"CAPI_DEAD_LETTER_TTL, overwrite"`
CaPath string `json:"ca_path" env:"CAPI_CA_PATH, overwrite"`
PrivateKeys map[string]string `json:"private_keys" env:"CAPI_PRIVATE_KEYS, overwrite"`
Webapi WebapiConfig `json:"webapi,omitempty"`
CustomProcessorsSettings map[string]json.RawMessage `json:"custom_processors"`
CustomProcessorDefFactoryInstance sc.CustomProcessorDefFactory `json:"-"`
}
func ReadEnvConfigFile ¶
func (*EnvConfig) Deserialize ¶
type LogConfig ¶ added in v1.1.20
type LogConfig struct {
Level string `json:"level" env:"CAPI_LOG_LEVEL, overwrite"`
}
type SslOptions ¶
type SslOptions struct {
CertPath string `json:"cert_path" env:"CAPI_CASSANDRA_CERT_PATH, overwrite"`
KeyPath string `json:"key_path" env:"CAPI_CASSANDRA_KEY_PATH, overwrite"`
CaPath string `json:"ca_path" env:"CAPI_CASSANDRA_CA_PATH, overwrite"`
EnableHostVerification bool `json:"enable_host_verification" env:"CAPI_CASSANDRA_ENABLE_HOST_VERIFICATION, overwrite"`
}
This was not tested outside of the EnableHostVerification=false scenario
type WebapiConfig ¶ added in v1.1.0
Click to show internal directories.
Click to hide internal directories.