Documentation ¶
Overview ¶
Package config providers configuration type and load configuration logic
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
package config providers configuration type and load configuration logic
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic ¶
Package config providers configuration type and load configuration logic
Index ¶
- Constants
- func CompressAlgorithm(ca string) compressAlgorithm
- func GetActualValue(val string) (res string)
- func GetActualValues(vals []string) []string
- func Read(path string, cfg interface{}) error
- func ToRawYaml(data interface{}) string
- type AgentSidecar
- type Backoff
- type BackupManager
- type Blob
- type BlobStorageType
- type CallOption
- type Cassandra
- type Client
- type Collector
- type CompressCore
- type Compressor
- type CompressorRegisterer
- type ConnectionPool
- type DNS
- type Debug
- type DialOption
- type Dialer
- type Discoverer
- type DiscovererClient
- type EgressFilter
- type GRPC
- type GRPCClient
- type GRPCClientKeepalive
- type GRPCKeepalive
- type Gateway
- type GlobalConfig
- type HTTP
- type HostFilter
- type Indexer
- type Jaeger
- type Logging
- type Meta
- type Metrics
- type MySQL
- type NGT
- type Observability
- type PoolConfig
- type Prometheus
- type ReconnectionPolicy
- type Redis
- type RetryPolicy
- type RoundTripper
- type S3Config
- type Server
- type Servers
- type Stackdriver
- type StackdriverClient
- type StackdriverExporter
- type StackdriverProfiler
- type TCP
- type TLS
- type Trace
- type Transport
Constants ¶
const ( GOB compressAlgorithm = 1 + iota GZIP LZ4 ZSTD )
Variables ¶
This section is empty.
Functions ¶
func CompressAlgorithm ¶
func CompressAlgorithm(ca string) compressAlgorithm
func GetActualValue ¶
GetActualValue returns the environment variable value if the val has prefix and suffix "_", if actual value start with file://{path} the return value will read from file otherwise the val will directly return.
func GetActualValues ¶
Types ¶
type AgentSidecar ¶ added in v0.0.38
type AgentSidecar struct { // Mode represents sidecar mode Mode string `yaml:"mode" json:"mode"` // WatchDir represents watch target directory for backup WatchDir string `yaml:"watch_dir" json:"watch_dir"` // AutoBackupDuration represent checking loop duration for auto backup execution AutoBackupDuration string `yaml:"auto_backup_duration" json:"auto_backup_duration"` // PostStopTimeout represent timeout duration for file changing during post stop PostStopTimeout string `yaml:"post_stop_timeout" json:"post_stop_timeout"` // Filename represent backup filename Filename string `yaml:"filename" json:"filename"` // FilenameSuffix represent suffix of backup filename FilenameSuffix string `yaml:"filename_suffix" json:"filename_suffix"` // BlobStorage represent blob storage configurations BlobStorage *Blob `yaml:"blob_storage" json:"blob_storage"` // Compress represent compression configurations Compress *CompressCore `yaml:"compress" json:"compress"` // RestoreBackoffEnabled represent backoff enabled or not RestoreBackoffEnabled bool `yaml:"restore_backoff_enabled" json:"restore_backoff_enabled"` // RestoreBackoff represent backoff configurations for restoring process RestoreBackoff *Backoff `yaml:"restore_backoff" json:"restore_backoff"` // Client represent HTTP client configurations Client *Client `yaml:"client" json:"client"` }
func (*AgentSidecar) Bind ¶ added in v0.0.38
func (s *AgentSidecar) Bind() *AgentSidecar
type Backoff ¶
type Backoff struct { InitialDuration string `json:"initial_duration" yaml:"initial_duration"` BackoffTimeLimit string `json:"backoff_time_limit" yaml:"backoff_time_limit"` MaximumDuration string `json:"maximum_duration" yaml:"maximum_duration"` JitterLimit string `json:"jitter_limit" yaml:"jitter_limit"` BackoffFactor float64 `json:"backoff_factor" yaml:"backoff_factor"` RetryCount int `json:"retry_count" yaml:"retry_count"` EnableErrorLog bool `json:"enable_error_log" yaml:"enable_error_log"` }
type BackupManager ¶
type BackupManager struct { Host string `json:"host" yaml:"host"` Port int `json:"port" yaml:"port"` Client *GRPCClient `json:"client" yaml:"client"` }
func (*BackupManager) Bind ¶
func (b *BackupManager) Bind() *BackupManager
type Blob ¶ added in v0.0.38
type BlobStorageType ¶ added in v0.0.38
type BlobStorageType uint8
const (
S3 BlobStorageType = 1 + iota
)
func AtoBST ¶ added in v0.0.38
func AtoBST(bst string) BlobStorageType
func (BlobStorageType) String ¶ added in v0.0.38
func (bst BlobStorageType) String() string
type CallOption ¶
type CallOption struct { WaitForReady bool `json:"wait_for_ready" yaml:"wait_for_ready"` MaxRetryRPCBufferSize int `json:"max_retry_rpc_buffer_size" yaml:"max_retry_rpc_buffer_size"` MaxRecvMsgSize int `json:"max_recv_msg_size" yaml:"max_recv_msg_size"` MaxSendMsgSize int `json:"max_send_msg_size" yaml:"max_send_msg_size"` }
func (*CallOption) Bind ¶
func (c *CallOption) Bind() *CallOption
type Cassandra ¶
type Cassandra struct { Hosts []string `json:"hosts" yaml:"hosts"` CQLVersion string `json:"cql_version" yaml:"cql_version"` ProtoVersion int `json:"proto_version" yaml:"proto_version"` Timeout string `json:"timeout" yaml:"timeout"` ConnectTimeout string `json:"connect_timeout" yaml:"connect_timeout"` Port int `json:"port" yaml:"port"` Keyspace string `json:"keyspace" yaml:"keyspace"` NumConns int `json:"num_conns" yaml:"num_conns"` Consistency string `json:"consistency" yaml:"consistency"` SerialConsistency string `json:"serial_consistency" yaml:"serial_consistency"` Username string `json:"username" yaml:"username"` Password string `json:"password" yaml:"password"` PoolConfig *PoolConfig `json:"pool_config" yaml:"pool_config"` RetryPolicy *RetryPolicy `json:"retry_policy" yaml:"retry_policy"` ReconnectionPolicy *ReconnectionPolicy `json:"reconnection_policy" yaml:"reconnection_policy"` HostFilter *HostFilter `json:"host_filter" yaml:"host_filter"` SocketKeepalive string `json:"socket_keepalive" yaml:"socket_keepalive"` MaxPreparedStmts int `json:"max_prepared_stmts" yaml:"max_prepared_stmts"` MaxRoutingKeyInfo int `json:"max_routing_key_info" yaml:"max_routing_key_info"` PageSize int `json:"page_size" yaml:"page_size"` TLS *TLS `json:"tls" yaml:"tls"` TCP *TCP `json:"tcp" yaml:"tcp"` EnableHostVerification bool `json:"enable_host_verification" yaml:"enable_host_verification"` DefaultTimestamp bool `json:"default_timestamp" yaml:"default_timestamp"` ReconnectInterval string `json:"reconnect_interval" yaml:"reconnect_interval"` MaxWaitSchemaAgreement string `json:"max_wait_schema_agreement" yaml:"max_wait_schema_agreement"` IgnorePeerAddr bool `json:"ignore_peer_addr" yaml:"ignore_peer_addr"` DisableInitialHostLookup bool `json:"disable_initial_host_lookup" yaml:"disable_initial_host_lookup"` DisableNodeStatusEvents bool `json:"disable_node_status_events" yaml:"disable_node_status_events"` DisableTopologyEvents bool `json:"disable_topology_events" yaml:"disable_topology_events"` DisableSchemaEvents bool `json:"disable_schema_events" yaml:"disable_schema_events"` DisableSkipMetadata bool `json:"disable_skip_metadata" yaml:"disable_skip_metadata"` DefaultIdempotence bool `json:"default_idempotence" yaml:"default_idempotence"` WriteCoalesceWaitTime string `json:"write_coalesce_wait_time" yaml:"write_coalesce_wait_time"` // meta KVTable string `json:"kv_table" yaml:"kv_table"` VKTable string `json:"vk_table" yaml:"vk_table"` // backup manager MetaTable string `json:"meta_table" yaml:"meta_table"` }
type Client ¶
type Collector ¶ added in v0.0.19
type CompressCore ¶ added in v0.0.38
type CompressCore struct { // CompressorAlgorithm represents compression algorithm type CompressAlgorithm string `json:"compress_algorithm" yaml:"compress_algorithm"` // CompressionLevel represents compression level CompressionLevel int `json:"compression_level" yaml:"compression_level"` }
func (*CompressCore) Bind ¶ added in v0.0.38
func (c *CompressCore) Bind() *CompressCore
type Compressor ¶
type Compressor struct { CompressCore `json:",inline" yaml:",inline"` // ConcurrentLimit represents limitation of compression worker concurrency ConcurrentLimit int `json:"concurrent_limit" yaml:"concurrent_limit"` // QueueCheckDuration represents duration of queue daemon block QueueCheckDuration string `json:"queue_check_duration" yaml:"queue_check_duration"` }
func (*Compressor) Bind ¶
func (c *Compressor) Bind() *Compressor
type CompressorRegisterer ¶ added in v0.0.28
type CompressorRegisterer struct { // ConcurrentLimit represents limitation of worker ConcurrentLimit int `json:"concurrent_limit" yaml:"concurrent_limit"` // QueueCheckDuration represents duration of queue daemon block QueueCheckDuration string `json:"queue_check_duration" yaml:"queue_check_duration"` // Compressor represents gRPC client config of compressor client (for forwarding use) Compressor *BackupManager `json:"compressor" yaml:"compressor"` }
func (*CompressorRegisterer) Bind ¶ added in v0.0.28
func (cr *CompressorRegisterer) Bind() *CompressorRegisterer
type ConnectionPool ¶ added in v0.0.27
type ConnectionPool struct { ResolveDNS bool `json:"enable_dns_resolver" yaml:"enable_dns_resolver"` EnableRebalance bool `json:"enable_rebalance" yaml:"enable_rebalance"` RebalanceDuration string `json:"rebalance_duration" yaml:"rebalance_duration"` Size int `json:"size" yaml:"size"` OldConnCloseDuration string `json:"old_conn_close_duration" yaml:"old_conn_close_duration"` }
type DNS ¶
type Debug ¶
type Debug struct { // Profile represent profiling the server Profile struct { Enable bool `yaml:"enable" json:"enable"` Server *Server `yaml:"server" json:"server"` } `yaml:"profile" json:"profile"` // Log represent the server enable debug log or not. Log struct { Level string `yaml:"level" json:"level"` Mode string `yaml:"mode" json:"mode"` } `yaml:"log" json:"log"` }
type DialOption ¶
type DialOption struct { WriteBufferSize int `json:"write_buffer_size" yaml:"write_buffer_size"` ReadBufferSize int `json:"read_buffer_size" yaml:"read_buffer_size"` InitialWindowSize int `json:"initial_window_size" yaml:"initial_window_size"` InitialConnectionWindowSize int `json:"initial_connection_window_size" yaml:"initial_connection_window_size"` MaxMsgSize int `json:"max_msg_size" yaml:"max_msg_size"` MaxBackoffDelay string `json:"max_backoff_delay" yaml:"max_backoff_delay"` EnableBackoff bool `json:"enable_backoff" yaml:"enable_backoff"` Insecure bool `json:"insecure" yaml:"insecure"` Timeout string `json:"timeout" yaml:"timeout"` TCP *TCP `json:"tcp" yaml:"tcp"` KeepAlive *GRPCClientKeepalive `json:"keep_alive" yaml:"keep_alive"` }
func (*DialOption) Bind ¶
func (d *DialOption) Bind() *DialOption
type Dialer ¶
type Discoverer ¶
type Discoverer struct { Name string `json:"name" yaml:"name"` Namespace string `json:"namespace" yaml:"namespace"` DiscoveryDuration string `json:"discovery_duration" yaml:"discovery_duration"` }
func (*Discoverer) Bind ¶
func (d *Discoverer) Bind() *Discoverer
type DiscovererClient ¶ added in v0.0.5
type DiscovererClient struct { Host string `json:"host" yaml:"host"` Port int `json:"port" yaml:"port"` Duration string `json:"duration" yaml:"duration"` Client *GRPCClient `json:"discover_client" yaml:"discover_client"` AgentClient *GRPCClient `json:"agent_client" yaml:"agent_client"` }
func (*DiscovererClient) Bind ¶ added in v0.0.5
func (d *DiscovererClient) Bind() *DiscovererClient
type EgressFilter ¶
type EgressFilter struct {
Client *GRPCClient `json:"client" yaml:"client"`
}
func (*EgressFilter) Bind ¶
func (e *EgressFilter) Bind() *EgressFilter
type GRPC ¶
type GRPC struct { BidirectionalStreamConcurrency int `json:"bidirectional_stream_concurrency" yaml:"bidirectional_stream_concurrency"` MaxReceiveMessageSize int `json:"max_receive_message_size" yaml:"max_receive_message_size"` MaxSendMessageSize int `json:"max_send_message_size" yaml:"max_send_message_size"` InitialWindowSize int `json:"initial_window_size" yaml:"initial_window_size"` InitialConnWindowSize int `json:"initial_conn_window_size" yaml:"initial_conn_window_size"` Keepalive *GRPCKeepalive `json:"keepalive" yaml:"keepalive"` WriteBufferSize int `json:"write_buffer_size" yaml:"write_buffer_size"` ReadBufferSize int `json:"read_buffer_size" yaml:"read_buffer_size"` ConnectionTimeout string `json:"connection_timeout" yaml:"connection_timeout"` MaxHeaderListSize int `json:"max_header_list_size" yaml:"max_header_list_size"` HeaderTableSize int `json:"header_table_size" yaml:"header_table_size"` Interceptors []string `json:"interceptors" yaml:"interceptors"` }
type GRPCClient ¶
type GRPCClient struct { Addrs []string `json:"addrs" yaml:"addrs"` HealthCheckDuration string `json:"health_check_duration" yaml:"health_check_duration"` ConnectionPool *ConnectionPool `json:"connection_pool" yaml:"connection_pool"` Backoff *Backoff `json:"backoff" yaml:"backoff"` CallOption *CallOption `json:"call_option" yaml:"call_option"` DialOption *DialOption `json:"dial_option" yaml:"dial_option"` TLS *TLS `json:"tls" yaml:"tls"` }
func (*GRPCClient) Bind ¶
func (g *GRPCClient) Bind() *GRPCClient
func (*GRPCClient) Opts ¶
func (g *GRPCClient) Opts() []grpc.Option
type GRPCClientKeepalive ¶
type GRPCClientKeepalive struct { Time string `json:"time" yaml:"time"` Timeout string `json:"timeout" yaml:"timeout"` PermitWithoutStream bool `json:"permit_without_stream" yaml:"permit_without_stream"` }
func (*GRPCClientKeepalive) Bind ¶
func (g *GRPCClientKeepalive) Bind() *GRPCClientKeepalive
type GRPCKeepalive ¶
type GRPCKeepalive struct { MaxConnIdle string `json:"max_conn_idle" yaml:"max_conn_idle"` MaxConnAge string `json:"max_conn_age" yaml:"max_conn_age"` MaxConnAgeGrace string `json:"max_conn_age_grace" yaml:"max_conn_age_grace"` Time string `json:"time" yaml:"time"` Timeout string `json:"timeout" yaml:"timeout"` }
func (*GRPCKeepalive) Bind ¶
func (k *GRPCKeepalive) Bind() *GRPCKeepalive
type Gateway ¶
type Gateway struct { // AgentPort represent agent port number AgentPort int `json:"agent_port" yaml:"agent_port"` // AgentName represent agents meta_name for service discovery AgentName string `json:"agent_name" yaml:"agent_name"` // AgentNamespace represent agent namespace location AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"` // AgentDNS represent agents dns A record for service discovery AgentDNS string `json:"agent_dns" yaml:"agent_dns"` // NodeName represents node name NodeName string `json:"node_name" yaml:"node_name"` // IndexReplica represents index replication count IndexReplica int `json:"index_replica" yaml:"index_replica"` // Discoverer represent agent discoverer service configuration Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"` // Meta represent meta data service configuration Meta *Meta `json:"meta" yaml:"meta"` // BackupManager represent backup manager configuration BackupManager *BackupManager `json:"backup" yaml:"backup"` // EgressFilter represents egress filter configuration EgressFilter *EgressFilter `json:"egress_filter" yaml:"egress_filter"` }
type GlobalConfig ¶ added in v0.0.2
type GlobalConfig struct { // Version represent configuration file version. Version string `json:"version" yaml:"version"` // TZ represent system time location . TZ string `json:"time_zone" yaml:"time_zone"` // Log represent log configuration. Logging *Logging `json:"logging,omitempty" yaml:"logging,omitempty"` }
GlobalConfig represent a application setting data content (config.yaml).
func (*GlobalConfig) Bind ¶ added in v0.0.2
func (c *GlobalConfig) Bind() *GlobalConfig
func (*GlobalConfig) UnmarshalJSON ¶ added in v0.0.2
func (c *GlobalConfig) UnmarshalJSON(data []byte) (err error)
type HTTP ¶
type HTTP struct { ShutdownDuration string `json:"shutdown_duration" yaml:"shutdown_duration"` HandlerTimeout string `json:"handler_timeout" yaml:"handler_timeout"` IdleTimeout string `json:"idle_timeout" yaml:"idle_timeout"` ReadHeaderTimeout string `json:"read_header_timeout" yaml:"read_header_timeout"` ReadTimeout string `json:"read_timeout" yaml:"read_timeout"` WriteTimeout string `json:"write_timeout" yaml:"write_timeout"` }
type HostFilter ¶ added in v0.0.34
type Indexer ¶ added in v0.0.5
type Indexer struct { // AgentPort represent agent port number AgentPort int `json:"agent_port" yaml:"agent_port"` // AgentName represent agents meta_name for service discovery AgentName string `json:"agent_name" yaml:"agent_name"` // AgentNamespace represent agent namespace location AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"` // AgentDNS represent agents dns A record for service discovery AgentDNS string `json:"agent_dns" yaml:"agent_dns"` // Concurrency represents indexing concurrency Concurrency int `json:"concurrency" yaml:"concurrency"` // AutoIndexDurationLimit represents auto indexing duration limit AutoIndexDurationLimit string `yaml:"auto_index_duration_limit" json:"auto_index_duration_limit"` // AutoIndexCheckDuration represent checking loop duration about auto indexing execution AutoIndexCheckDuration string `yaml:"auto_index_check_duration" json:"auto_index_check_duration"` // AutoIndexLength represent minimum auto index length AutoIndexLength uint32 `yaml:"auto_index_length" json:"auto_index_length"` // CreationPoolSize represent create index batch pool size CreationPoolSize uint32 `yaml:"creation_pool_size" json:"creation_pool_size"` // NodeName represents node name NodeName string `json:"node_name" yaml:"node_name"` // Discoverer represent agent discoverer service configuration Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"` }
type Jaeger ¶ added in v0.0.19
type Jaeger struct { Enabled bool `json:"enabled" yaml:"enabled"` CollectorEndpoint string `json:"collector_endpoint" yaml:"collector_endpoint"` AgentEndpoint string `json:"agent_endpoint" yaml:"agent_endpoint"` Username string `json:"username" yaml:"username"` Password string `json:"password" yaml:"password"` ServiceName string `json:"service_name" yaml:"service_name"` BufferMaxCount int `json:"buffer_max_count" yaml:"buffer_max_count"` }
type Logging ¶ added in v0.0.2
type Logging struct { Logger string `json:"logger" yaml:"logger"` Level string `json:"level" yaml:"level"` Format string `json:"format" yaml:"format"` }
Logging represents Logging configuration.
type Meta ¶
type Meta struct { Host string `json:"host" yaml:"host"` Port int `json:"port" yaml:"port"` Client *GRPCClient `json:"client" yaml:"client"` EnableCache bool `json:"enable_cache" yaml:"enable_cache"` CacheExpiration string `json:"cache_expiration" yaml:"cache_expiration"` ExpiredCacheCheckDuration string `json:"expired_cache_check_duration" yaml:"expired_cache_check_duration"` }
type Metrics ¶ added in v0.0.19
type Metrics struct { EnableVersionInfo bool `json:"enable_version_info" yaml:"enable_version_info"` VersionInfoLabels []string `json:"version_info_labels" yaml:"version_info_labels"` EnableMemory bool `json:"enable_memory" yaml:"enable_memory"` EnableGoroutine bool `json:"enable_goroutine" yaml:"enable_goroutine"` EnableCGO bool `json:"enable_cgo" yaml:"enable_cgo"` }
type MySQL ¶
type MySQL struct { DB string `json:"db" yaml:"db"` Host string `json:"host" yaml:"host"` Port int `json:"port" yaml:"port"` User string `json:"user" yaml:"user"` Pass string `json:"pass" yaml:"pass"` Name string `json:"name" yaml:"name"` Charset string `json:"charset" yaml:"charset"` Timezone string `json:"timezone" yaml:"timezone"` InitialPingTimeLimit string `json:"initial_ping_time_limit" yaml:"initial_ping_time_limit"` InitialPingDuration string `json:"initial_ping_duration" yaml:"initial_ping_duration"` ConnMaxLifeTime string `json:"conn_max_life_time" yaml:"conn_max_life_time"` MaxOpenConns int `json:"max_open_conns" yaml:"max_open_conns"` MaxIdleConns int `json:"max_idle_conns" yaml:"max_idle_conns"` TLS *TLS `json:"tls" yaml:"tls"` TCP *TCP `json:"tcp" yaml:"tcp"` }
MySQL represent the mysql configuration.
type NGT ¶
type NGT struct { // IndexPath represent the ngt index file path IndexPath string `yaml:"index_path" json:"index_path"` // Dimension represent the ngt index dimension Dimension int `yaml:"dimension" json:"dimension"` // BulkInsertChunkSize represent the bulk insert chunk size BulkInsertChunkSize int `yaml:"bulk_insert_chunk_size" json:"bulk_insert_chunk_size"` // DistanceType represent the ngt index distance type DistanceType string `yaml:"distance_type" json:"distance_type"` // ObjectType represent the ngt index object type float or int ObjectType string `yaml:"object_type" json:"object_type"` // CreationEdgeSize represent the index edge count CreationEdgeSize int `yaml:"creation_edge_size" json:"creation_edge_size"` // SearchEdgeSize represent the search edge size SearchEdgeSize int `yaml:"search_edge_size" json:"search_edge_size"` // AutoIndexDurationLimit represents auto indexing duration limit AutoIndexDurationLimit string `yaml:"auto_index_duration_limit" json:"auto_index_duration_limit"` // AutoIndexCheckDuration represent checking loop duration about auto indexing execution AutoIndexCheckDuration string `yaml:"auto_index_check_duration" json:"auto_index_check_duration"` // AutoSaveIndexDuration represent checking loop duration about auto save index execution AutoSaveIndexDuration string `yaml:"auto_save_index_duration" json:"auto_save_index_duration"` // AutoIndexLength represent auto index length limit AutoIndexLength int `yaml:"auto_index_length" json:"auto_index_length"` // InitialDelayMaxDuration represent maximum duration for initial delay InitialDelayMaxDuration string `yaml:"initial_delay_max_duration" json:"initial_delay_max_duration"` // EnableInMemoryMode enables on memory ngt indexing mode EnableInMemoryMode bool `yaml:"enable_in_memory_mode" json:"enable_in_memory_mode"` }
NGT represent the ngt core configuration for server.
type Observability ¶ added in v0.0.19
type Observability struct { Enabled bool `json:"enabled" yaml:"enabled"` Collector *Collector `json:"collector" yaml:"collector"` Trace *Trace `json:"trace" yaml:"trace"` Prometheus *Prometheus `json:"prometheus" yaml:"prometheus"` Jaeger *Jaeger `json:"jaeger" yaml:"jaeger"` Stackdriver *Stackdriver `json:"stackdriver" yaml:"stackdriver"` }
func (*Observability) Bind ¶ added in v0.0.19
func (o *Observability) Bind() *Observability
type PoolConfig ¶
type PoolConfig struct { DataCenter string `json:"data_center" yaml:"data_center"` DCAwareRouting bool `json:"dc_aware_routing" yaml:"dc_aware_routing"` NonLocalReplicasFallback bool `json:"non_local_replicas_fallback" yaml:"non_local_replicas_fallback"` ShuffleReplicas bool `json:"shuffle_replicas" yaml:"shuffle_replicas"` TokenAwareHostPolicy bool `json:"token_aware_host_policy" yaml:"token_aware_host_policy"` }
type Prometheus ¶ added in v0.0.19
type ReconnectionPolicy ¶
type Redis ¶
type Redis struct { Addrs []string `json:"addrs" yaml:"addrs"` DB int `json:"db" yaml:"db"` DialTimeout string `json:"dial_timeout" yaml:"dial_timeout"` IdleCheckFrequency string `json:"idle_check_frequency" yaml:"idle_check_frequency"` IdleTimeout string `json:"idle_timeout" yaml:"idle_timeout"` InitialPingTimeLimit string `json:"initial_ping_time_limit" yaml:"initial_ping_time_limit"` InitialPingDuration string `json:"initial_ping_duration" yaml:"initial_ping_duration"` KeyPref string `json:"key_pref" yaml:"key_pref"` MaxConnAge string `json:"max_conn_age" yaml:"max_conn_age"` MaxRedirects int `json:"max_redirects" yaml:"max_redirects"` MaxRetries int `json:"max_retries" yaml:"max_retries"` MaxRetryBackoff string `json:"max_retry_backoff" yaml:"max_retry_backoff"` MinIdleConns int `json:"min_idle_conns" yaml:"min_idle_conns"` MinRetryBackoff string `json:"min_retry_backoff" yaml:"min_retry_backoff"` Password string `json:"password" yaml:"password"` PoolSize int `json:"pool_size" yaml:"pool_size"` PoolTimeout string `json:"pool_timeout" yaml:"pool_timeout"` ReadOnly bool `json:"read_only" yaml:"read_only"` ReadTimeout string `json:"read_timeout" yaml:"read_timeout"` RouteByLatency bool `json:"route_by_latency" yaml:"route_by_latency"` RouteRandomly bool `json:"route_randomly" yaml:"route_randomly"` TLS *TLS `json:"tls" yaml:"tls"` TCP *TCP `json:"tcp" yaml:"tcp"` WriteTimeout string `json:"write_timeout" yaml:"write_timeout"` KVPrefix string `json:"kv_prefix" yaml:"kv_prefix"` VKPrefix string `json:"vk_prefix" yaml:"vk_prefix"` PrefixDelimiter string `json:"prefix_delimiter" yaml:"prefix_delimiter"` }
type RetryPolicy ¶
type RoundTripper ¶
type RoundTripper struct { TLSHandshakeTimeout string `yaml:"tls_handshake_timeout" json:"tls_handshake_timeout"` MaxIdleConns int `yaml:"max_idle_conns" json:"max_idle_conns"` MaxIdleConnsPerHost int `yaml:"max_idle_conns_per_host" json:"max_idle_conns_per_host"` MaxConnsPerHost int `yaml:"max_conns_per_host" json:"max_conns_per_host"` IdleConnTimeout string `yaml:"idle_conn_timeout" json:"idle_conn_timeout"` ResponseHeaderTimeout string `yaml:"response_header_timeout" json:"response_header_timeout"` ExpectContinueTimeout string `yaml:"expect_continue_timeout" json:"expect_continue_timeout"` MaxResponseHeaderSize int64 `yaml:"max_response_header_size" json:"max_response_header_size"` WriteBufferSize int64 `yaml:"write_buffer_size" json:"write_buffer_size"` ReadBufferSize int64 `yaml:"read_buffer_size" json:"read_buffer_size"` ForceAttemptHTTP2 bool `yaml:"force_attempt_http_2" json:"force_attempt_http_2"` }
func (*RoundTripper) Bind ¶
func (r *RoundTripper) Bind() *RoundTripper
type S3Config ¶ added in v0.0.38
type S3Config struct { Endpoint string `json:"endpoint" yaml:"endpoint"` Region string `json:"region" yaml:"region"` AccessKey string `json:"access_key" yaml:"access_key"` SecretAccessKey string `json:"secret_access_key" yaml:"secret_access_key"` Token string `json:"token" yaml:"token"` MaxRetries int `json:"max_retries" yaml:"max_retries"` ForcePathStyle bool `json:"force_path_style" yaml:"force_path_style"` UseAccelerate bool `json:"use_accelerate" yaml:"use_accelerate"` UseARNRegion bool `json:"use_arn_region" yaml:"use_arn_region"` UseDualStack bool `json:"use_dual_stack" yaml:"use_dual_stack"` EnableSSL bool `json:"enable_ssl" yaml:"enable_ssl"` EnableParamValidation bool `json:"enable_param_validation" yaml:"enable_param_validation"` Enable100Continue bool `json:"enable_100_continue" yaml:"enable_100_continue"` EnableContentMD5Validation bool `json:"enable_content_md5_validation" yaml:"enable_content_md5_validation"` EnableEndpointDiscovery bool `json:"enable_endpoint_discovery" yaml:"enable_endpoint_discovery"` EnableEndpointHostPrefix bool `json:"enable_endpoint_host_prefix" yaml:"enable_endpoint_host_prefix"` MaxPartSize string `json:"max_part_size" yaml:"max_part_size"` MaxChunkSize string `json:"max_chunk_size" yaml:"max_chunk_size"` }
type Server ¶
type Server struct { Name string `json:"name" yaml:"name"` Host string `json:"host" yaml:"host"` Port uint `json:"port" yaml:"port"` Mode string `json:"mode" yaml:"mode"` // gRPC, REST, GraphQL ProbeWaitTime string `json:"probe_wait_time" yaml:"probe_wait_time"` HTTP *HTTP `json:"http" yaml:"http"` GRPC *GRPC `json:"grpc" yaml:"grpc"` Restart bool `json:"restart" yaml:"restart"` }
type Servers ¶
type Servers struct { // Server represent server configuration. Servers []*Server `json:"servers" yaml:"servers"` // HealthCheckServers represent health check server configuration HealthCheckServers []*Server `json:"health_check_servers" yaml:"health_check_servers"` // MetricsServers represent metrics exporter server such as prometheus or opentelemetly or golang's pprof server MetricsServers []*Server `json:"metrics_servers" yaml:"metrics_servers"` // StartUpStrategy represent starting order of server name StartUpStrategy []string `json:"startup_strategy" yaml:"startup_strategy"` // ShutdownStrategy represent shutdonw order of server name ShutdownStrategy []string `json:"shutdown_strategy" yaml:"shutdown_strategy"` // FullShutdownDuration represent summary duration of shutdown time FullShutdownDuration string `json:"full_shutdown_duration" yaml:"full_shutdown_duration"` // TLS represent server tls configuration. TLS *TLS `json:"tls" yaml:"tls"` }
func (*Servers) GetGRPCStreamConcurrency ¶ added in v0.0.5
type Stackdriver ¶ added in v0.0.42
type Stackdriver struct { ProjectID string `json:"project_id" yaml:"project_id"` Client *StackdriverClient `json:"client" yaml:"client"` Exporter *StackdriverExporter `json:"exporter" yaml:"exporter"` Profiler *StackdriverProfiler `json:"profiler" yaml:"profiler"` }
func (*Stackdriver) Bind ¶ added in v0.0.42
func (sd *Stackdriver) Bind() *Stackdriver
type StackdriverClient ¶ added in v0.0.42
type StackdriverClient struct { APIKey string `json:"api_key" yaml:"api_key"` Audiences []string `json:"audiences" yaml:"audiences"` CredentialsFile string `json:"credentials_file" yaml:"credentials_file"` CredentialsJSON string `json:"credentials_json" yaml:"credentials_json"` Endpoint string `json:"endpoint" yaml:"endpoint"` QuotaProject string `json:"quota_project" yaml:"quota_project"` RequestReason string `json:"request_reason" yaml:"request_reason"` Scopes []string `json:"scopes" yaml:"scopes"` UserAgent string `json:"user_agent" yaml:"user_agent"` TelemetryEnabled bool `json:"telemetry_enabled" yaml:"telemetry_enabled"` AuthenticationEnabled bool `json:"authentication_enabled" yaml:"authentication_enabled"` }
type StackdriverExporter ¶ added in v0.0.42
type StackdriverExporter struct { MonitoringEnabled bool `json:"monitoring_enabled" yaml:"monitoring_enabled"` TracingEnabled bool `json:"tracing_enabled" yaml:"tracing_enabled"` Location string `json:"location" yaml:"location"` BundleDelayThreshold string `json:"bundle_delay_threshold" yaml:"bundle_delay_threshold"` BundleCountThreshold int `json:"bundle_count_threshold" yaml:"bundle_count_threshold"` TraceSpansBufferMaxBytes int `json:"trace_spans_buffer_max_bytes" yaml:"trace_spans_buffer_max_bytes"` MetricPrefix string `json:"metric_prefix" yaml:"metric_prefix"` SkipCMD bool `json:"skip_cmd" yaml:"skip_cmd"` Timeout string `json:"timeout" yaml:"timeout"` ReportingInterval string `json:"reporting_interval" yaml:"reporting_interval"` NumberOfWorkers int `json:"number_of_workers" yaml:"number_of_workers"` }
type StackdriverProfiler ¶ added in v0.0.42
type StackdriverProfiler struct { Enabled bool `json:"enabled" yaml:"enabled"` Service string `json:"service" yaml:"service"` ServiceVersion string `json:"service_version" yaml:"service_version"` DebugLogging bool `json:"debug_logging" yaml:"debug_logging"` MutexProfiling bool `json:"mutex_profiling" yaml:"mutex_profiling"` CPUProfiling bool `json:"cpu_profiling" yaml:"cpu_profiling"` AllocProfiling bool `json:"alloc_profiling" yaml:"alloc_profiling"` HeapProfiling bool `json:"heap_profiling" yaml:"heap_profiling"` GoroutineProfiling bool `json:"goroutine_profiling" yaml:"goroutine_profiling"` AllocForceGC bool `json:"alloc_force_gc" yaml:"alloc_force_gc"` APIAddr string `json:"api_addr" yaml:"api_addr"` Instance string `json:"instance" yaml:"instance"` Zone string `json:"zone" yaml:"zone"` }
type TCP ¶
type TCP struct { DNS *DNS `yaml:"dns" json:"dns"` Dialer *Dialer `yaml:"dialer" json:"dialer"` TLS *TLS `yaml:"tls" json:"tls"` }
TCP represent the TCP configuration for server.
func (*TCP) Opts ¶
func (t *TCP) Opts() []tcp.DialerOption
type TLS ¶
type TLS struct { // Enable represent the server enable TLS or not. Enabled bool `yaml:"enabled" json:"enabled"` // Cert represent the certificate environment variable key used to start server. Cert string `yaml:"cert" json:"cert"` // Key represent the private key environment variable key used to start server. Key string `yaml:"key" json:"key"` // CA represent the CA certificate environment variable key used to start server. CA string `yaml:"ca" json:"ca"` }
TLS represent the TLS configuration for server.