Documentation ¶
Index ¶
- Constants
- Variables
- type APIMetaConfig
- type Adapter
- type Address
- type ApiConfigSource
- type Bootstrap
- type ClusterConfig
- type Config
- type ConfigCenter
- type ConfigSource
- type ConsistentHash
- type ConsistentHashInitFunc
- type CustomHealthCheck
- type DiscoveryType
- type DubboFilter
- type DubboProxyConnectionManagerConfig
- type DynamicResources
- type EdsClusterConfig
- type EncoderConfig
- type Endpoint
- type FilterChain
- type FilterChainMatch
- type GRPCConnectionManagerConfig
- type GrpcHealthCheck
- type GrpcService
- type HTTPFilter
- type HeaderMatcher
- type HeaderValue
- type HeaderValueOption
- type HealthCheckConfig
- type Http
- type HttpConfig
- type HttpConnectionManagerConfig
- type HttpHealthCheck
- type LbConsistentHash
- type LbPolicy
- type LbPolicyType
- type Listener
- type Log
- type MatcherType
- type Metadata
- type MetadataValue
- type Metric
- type Nacos
- type NacosClientConfig
- type NacosServerConfig
- type NetworkFilter
- type Node
- type PprofConf
- type ProtocolType
- type Registry
- type RemoteConfig
- type RequestMethod
- type RouteAction
- type RouteConfiguration
- type Router
- type RouterMatch
- type Sampler
- type SamplingConfig
- type ShutdownConfig
- type SocketAddress
- type StaticResources
- type StringMatcher
- type TimeoutConfig
- type TracerConfig
- type Tracing
- type WasmConfig
- type WasmService
Constants ¶
const ( ApiTypeREST api.ApiType = 0 + iota // support for 1.0 ApiTypeGRPC ApiTypeDUBBO ApiTypeIstioGRPC )
const ( METHOD_UNSPECIFIED = 0 + iota // (DEFAULT) GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE )
const ( REST_VALUE = "REST" GRPC_VALUE = "GRPC" DUBBO_VALUE = "DUBBO" ISTIOGRPC_VALUE = "ISTIO" )
Variables ¶
var ( StatusName = map[int32]string{ 0: "Down", 1: "Up", 2: "Unknown", } StatusValue = map[string]int32{ "Down": 0, "Up": 1, "Unknown": 2, } ApiTypeName = map[int32]string{ 0: REST_VALUE, 1: GRPC_VALUE, 2: DUBBO_VALUE, } ApiTypeValue = map[string]int32{ REST_VALUE: 0, GRPC_VALUE: 1, DUBBO_VALUE: 2, ISTIOGRPC_VALUE: 3, } )
var ( // DiscoveryTypeName DiscoveryTypeName = map[DiscoveryType]string{ Static: "Static", StrictDNS: "StrictDNS", LogicalDns: "LogicalDns", EDS: "EDS", OriginalDst: "OriginalDst", } // DiscoveryTypeValue DiscoveryTypeValue = map[string]DiscoveryType{ "Static": Static, "StrictDNS": StrictDNS, "LogicalDns": LogicalDns, "EDS": EDS, "OriginalDst": OriginalDst, } )
var ( // ProtocolTypeName enum seq to protocol type name ProtocolTypeName = map[int32]string{ 0: "HTTP", 1: "TCP", 2: "UDP", 3: "HTTPS", 4: "GRPC", 5: "HTTP2", 6: "TRIPLE", } // ProtocolTypeValue protocol type name to enum seq ProtocolTypeValue = map[string]int32{ "HTTP": 0, "TCP": 1, "UDP": 2, "HTTPS": 3, "GRPC": 4, "HTTP2": 5, "TRIPLE": 6, } )
var ( MatcherTypeName = map[int32]string{ 0: "Exact", 1: "Prefix", 2: "Suffix", 3: "Regex", } MatcherTypeValue = map[string]int32{ "Exact": 0, "Prefix": 1, "Suffix": 2, "Regex": 3, } )
var ConsistentHashInitMap = map[LbPolicyType]ConsistentHashInitFunc{}
ConsistentHashInitMap stores the Init functions for consistent hash load balancing
var LbPolicyTypeValue = map[string]LbPolicyType{ "Rand": LoadBalancerRand, "RoundRobin": LoadBalancerRoundRobin, "RingHashing": LoadBalancerRingHashing, "MaglevHashing": LoadBalancerMaglevHashing, }
var RequestMethodName = map[int32]string{
0: "METHOD_UNSPECIFIED",
1: "GET",
2: "HEAD",
3: "POST",
4: "PUT",
5: "DELETE",
6: "CONNECT",
7: "OPTIONS",
8: "TRACE",
}
var RequestMethodValue = map[string]int32{
"METHOD_UNSPECIFIED": 0,
"GET": 1,
"HEAD": 2,
"POST": 3,
"PUT": 4,
"DELETE": 5,
"CONNECT": 6,
"OPTIONS": 7,
"TRACE": 8,
}
Functions ¶
This section is empty.
Types ¶
type APIMetaConfig ¶
type APIMetaConfig struct { Address string `yaml:"address" json:"address,omitempty"` APIConfigPath string `default:"/pixiu/config/api" yaml:"api_config_path" json:"api_config_path,omitempty" mapstructure:"api_config_path"` }
APIMetaConfig how to find api config, file or etcd etc.
type Adapter ¶
type Adapter struct { ID string `yaml:"id" json:"id"` Name string `yaml:"name" json:"name"` // Name the adapter unique name Enabled string `yaml:"enabled" json:"enabled" default:"true"` Config map[string]interface{} `yaml:"config" json:"config" mapstructure:"config"` // Config adapter config }
Adapter the adapter plugin for manage cluster or router
type Address ¶
type Address struct { SocketAddress SocketAddress `yaml:"socket_address" json:"socket_address" mapstructure:"socket_address"` Name string `yaml:"name" json:"name" mapstructure:"name"` }
Address the address
type ApiConfigSource ¶
type ApiConfigSource struct { APIType api.ApiType `yaml:"omitempty" json:"omitempty"` APITypeStr string `yaml:"api_type" json:"api_type" mapstructure:"api_type"` ClusterName []string `yaml:"cluster_name" json:"cluster_name" mapstructure:"cluster_name"` RefreshDelay string `yaml:"refresh_delay" json:"refresh_delay" mapstructure:"refresh_delay"` RequestTimeout string `yaml:"request_timeout" json:"request_timeout" mapstructure:"request_timeout"` GrpcServices []GrpcService `yaml:"grpc_services" json:"grpc_services" mapstructure:"grpc_services"` }
ApiConfigSource config the api info. compatible with envoy xDS API
{ "api_type": "...", "transport_api_version": "...", "cluster_names": [], "grpc_services": [], "refresh_delay": "{...}", "request_timeout": "{...}", "rate_limit_settings": "{...}", "set_node_on_first_message_only": "..." }
type Bootstrap ¶
type Bootstrap struct { StaticResources StaticResources `yaml:"static_resources" json:"static_resources" mapstructure:"static_resources"` DynamicResources *DynamicResources `yaml:"dynamic_resources" json:"dynamic_resources" mapstructure:"dynamic_resources"` Metric Metric `yaml:"metric" json:"metric" mapstructure:"metric"` Node *Node `yaml:"node" json:"node" mapstructure:"node"` Trace *TracerConfig `yaml:"tracing" json:"tracing" mapstructure:"tracing"` Wasm *WasmConfig `yaml:"wasm" json:"wasm" mapstructure:"wasm"` Config *ConfigCenter `yaml:"config-center" json:"config-center" mapstructure:"config-center"` // Third party dependency Nacos *Nacos `yaml:"nacos" json:"nacos" mapstructure:"nacos"` Log *Log `yaml:"log" json:"log" mapstructure:"log"` }
Bootstrap the door
func (*Bootstrap) GetShutdownConfig ¶
func (bs *Bootstrap) GetShutdownConfig() *ShutdownConfig
GetShutdownConfig
func (*Bootstrap) GetStaticListeners ¶
type ClusterConfig ¶
type ClusterConfig struct { Name string `yaml:"name" json:"name"` // Name the cluster unique name TypeStr string `yaml:"type" json:"type"` // Type the cluster discovery type string value Type DiscoveryType `yaml:"-" json:"-"` // Type the cluster discovery type EdsClusterConfig EdsClusterConfig `yaml:"eds_cluster_config" json:"eds_cluster_config" mapstructure:"eds_cluster_config"` LbStr LbPolicyType `yaml:"lb_policy" json:"lb_policy"` // Lb the cluster select node used loadBalance policy ConsistentHash ConsistentHash `yaml:"consistent" json:"consistent"` // Consistent hash config info HealthChecks []HealthCheckConfig `yaml:"health_checks" json:"health_checks"` Endpoints []*Endpoint `yaml:"endpoints" json:"endpoints"` PrePickEndpointIndex int }
ClusterConfig a single upstream cluster
func (*ClusterConfig) CreateConsistentHash ¶
func (c *ClusterConfig) CreateConsistentHash()
CreateConsistentHash creates consistent hashing algorithms for Load Balance.
func (*ClusterConfig) GetEndpoint ¶
func (c *ClusterConfig) GetEndpoint(mustHealth bool) []*Endpoint
type Config ¶
type Config struct { Listeners []*Listener `yaml:"listeners" json:"listeners" mapstructure:"listeners"` Clusters []*ClusterConfig `yaml:"clusters" json:"clusters" mapstructure:"clusters"` Adapters []*Adapter `yaml:"adapters" json:"adapters" mapstructure:"adapters"` ShutdownConfig *ShutdownConfig `yaml:"shutdown_config" json:"shutdown_config" mapstructure:"shutdown_config"` PprofConf PprofConf `yaml:"pprofConf" json:"pprofConf" mapstructure:"pprofConf"` }
type ConfigCenter ¶
type ConfigSource ¶
type ConfigSource struct { Path string `yaml:"path" json:"path" mapstructure:"path"` ApiConfigSource ApiConfigSource `yaml:"api_config_source" json:"api_config_source" mapstructure:"api_config_source"` }
ConfigSource todo remove un-used
type ConsistentHash ¶
type ConsistentHash struct { ReplicaNum int `yaml:"replica_num" json:"replica_num"` MaxVnodeNum int32 `yaml:"max_vnode_num" json:"max_vnode_num"` MaglevTableSize int `yaml:"maglev_table_size" json:"maglev_table_size"` Hash LbConsistentHash }
ConsistentHash methods include: RingHash, MaglevHash
type ConsistentHashInitFunc ¶
type ConsistentHashInitFunc = func(ConsistentHash, []*Endpoint) LbConsistentHash
type CustomHealthCheck ¶
type CustomHealthCheck struct { HealthCheckConfig Name string Config interface{} }
CustomHealthCheck
type DiscoveryType ¶
type DiscoveryType int32
DiscoveryType
const ( Static DiscoveryType = iota StrictDNS LogicalDns EDS OriginalDst )
type DubboFilter ¶
type DubboFilter struct { Name string `yaml:"name" json:"name" mapstructure:"name"` Config map[string]interface{} `yaml:"config" json:"config" mapstructure:"config"` }
DubboFilter dubbo filter
type DubboProxyConnectionManagerConfig ¶
type DubboProxyConnectionManagerConfig struct { RouteConfig RouteConfiguration `yaml:"route_config" json:"route_config" mapstructure:"route_config"` DubboFilters []*DubboFilter `yaml:"dubbo_filters" json:"dubbo_filters" mapstructure:"dubbo_filters"` TimeoutStr string `yaml:"timeout" json:"timeout" mapstructure:"timeout"` Timeout time.Duration `yaml:"-" json:"-" mapstructure:"-"` }
DubboProxyConnectionManagerConfig
type DynamicResources ¶
type DynamicResources struct { LdsConfig *ApiConfigSource `yaml:"lds_config" json:"lds_config" mapstructure:"lds_config"` CdsConfig *ApiConfigSource `yaml:"cds_config" json:"cds_config" mapstructure:"cds_config"` AdsConfig *ApiConfigSource `yaml:"ads_config" json:"ads_config" mapstructure:"ads_config"` }
DynamicResources config the dynamic resource source
"lds_config": "{...}", # config lister load source "cds_config": "{...}", # config cluster load source "ads_config": "{...}" "ada_config": "{...}" # config adaptor load source
type EdsClusterConfig ¶
type EdsClusterConfig struct { EdsConfig ConfigSource `yaml:"eds_config" json:"eds_config" mapstructure:"eds_config"` ServiceName string `yaml:"service_name" json:"service_name" mapstructure:"service_name"` }
EdsClusterConfig todo remove un-used EdsClusterConfig
type EncoderConfig ¶
type EncoderConfig struct { MessageKey string `json:"messageKey" yaml:"messageKey"` LevelKey string `json:"levelKey" yaml:"levelKey"` TimeKey string `json:"timeKey" yaml:"timeKey"` NameKey string `json:"nameKey" yaml:"nameKey"` CallerKey string `json:"callerKey" yaml:"callerKey"` FunctionKey string `json:"functionKey" yaml:"functionKey"` StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"` SkipLineEnding bool `json:"skipLineEnding" yaml:"skipLineEnding"` LineEnding string `json:"lineEnding" yaml:"lineEnding"` EncodeLevel string `json:"levelEncoder" yaml:"levelEncoder"` EncodeTime string `json:"timeEncoder" yaml:"timeEncoder"` EncodeDuration string `json:"durationEncoder" yaml:"durationEncoder"` EncodeCaller string `json:"callerEncoder" yaml:"callerEncoder"` EncodeName string `json:"nameEncoder" yaml:"nameEncoder"` ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"` }
type Endpoint ¶
type Endpoint struct { ID string `yaml:"ID" json:"ID"` // ID indicate one endpoint Name string `yaml:"name" json:"name"` // Name the cluster unique name Address SocketAddress `yaml:"socket_address" json:"socket_address" mapstructure:"socket_address"` // Address socket address Metadata map[string]string `yaml:"meta" json:"meta"` // Metadata extra info such as label or other meta data UnHealthy bool }
Endpoint
type FilterChain ¶
type FilterChain struct {
Filters []NetworkFilter `yaml:"filters" json:"filters" mapstructure:"filters"`
}
FilterChain filter chain
type FilterChainMatch ¶
type FilterChainMatch struct {
Domains []string `yaml:"domains" json:"domains" mapstructure:"domains"`
}
FilterChainMatch
type GRPCConnectionManagerConfig ¶
type GRPCConnectionManagerConfig struct { RouteConfig RouteConfiguration `yaml:"route_config" json:"route_config" mapstructure:"route_config"` TimeoutStr string `yaml:"timeout" json:"timeout" mapstructure:"timeout"` Timeout time.Duration `yaml:"-" json:"-" mapstructure:"-"` }
GRPCConnectionManagerConfig
type GrpcHealthCheck ¶
type GrpcHealthCheck struct { HealthCheckConfig ServiceName string Authority string }
GrpcHealthCheck
type GrpcService ¶
type GrpcService struct { Timeout string `yaml:"timeout" json:"timeout" mapstructure:"timeout"` InitialMetadata []HeaderValue `yaml:"initial_metadata" json:"initial_metadata" mapstructure:"initial_metadata"` }
GrpcService define grpc service context
type HTTPFilter ¶
type HTTPFilter struct { Name string `yaml:"name" json:"name" mapstructure:"name"` Config map[string]interface{} `yaml:"config" json:"config" mapstructure:"config"` }
HTTPFilter http filter
type HeaderMatcher ¶
type HeaderMatcher struct { Name string `yaml:"name" json:"name" mapstructure:"name"` Values []string `yaml:"values" json:"values" mapstructure:"values"` Regex bool `yaml:"regex" json:"regex" mapstructure:"regex"` // contains filtered or unexported fields }
HeaderMatcher include Name header key, Values header value, Regex regex value
func (*HeaderMatcher) MatchValues ¶
func (hm *HeaderMatcher) MatchValues(dst string) bool
MatchValues match values in header, including regex type
func (*HeaderMatcher) SetValueRegex ¶
func (hm *HeaderMatcher) SetValueRegex(regex string) error
SetValueRegex compile the regex, disable regex if it failed
type HeaderValue ¶
type HeaderValue struct { Key string `yaml:"key" json:"key" mapstructure:"key"` Value string `yaml:"value" json:"value" mapstructure:"value"` }
HeaderValue
type HeaderValueOption ¶
type HeaderValueOption struct { Header []HeaderValue `yaml:"header" json:"header" mapstructure:"header"` Append []bool `yaml:"append" json:"append" mapstructure:"append"` }
HeaderValueOption
type HealthCheckConfig ¶
type HealthCheckConfig struct { Protocol string `json:"protocol,omitempty"` TimeoutConfig string `json:"timeout,omitempty"` IntervalConfig string `json:"interval,omitempty"` InitialDelaySeconds string `json:"initial_delay_seconds,omitempty"` HealthyThreshold uint32 `json:"healthy_threshold,omitempty"` UnhealthyThreshold uint32 `json:"unhealthy_threshold,omitempty"` ServiceName string `json:"service_name,omitempty"` SessionConfig map[string]interface{} `json:"check_config,omitempty"` CommonCallbacks []string `json:"common_callbacks,omitempty"` }
HealthCheck
type Http ¶
type Http struct { Name string `yaml:"name"` Config interface{} `yaml:"config"` }
Tracing
type HttpConfig ¶
type HttpConfig struct { IdleTimeoutStr string `yaml:"idle_timeout" json:"idle_timeout" mapstructure:"idle_timeout"` ReadTimeoutStr string `json:"read_timeout,omitempty" yaml:"read_timeout,omitempty" mapstructure:"read_timeout"` WriteTimeoutStr string `json:"write_timeout,omitempty" yaml:"write_timeout,omitempty" mapstructure:"write_timeout"` MaxHeaderBytes int `json:"max_header_bytes,omitempty" yaml:"max_header_bytes,omitempty" mapstructure:"max_header_bytes"` }
HttpConfig the http config
func MapInStruct ¶
func MapInStruct(cfg interface{}) *HttpConfig
type HttpConnectionManagerConfig ¶
type HttpConnectionManagerConfig struct { RouteConfig RouteConfiguration `yaml:"route_config" json:"route_config" mapstructure:"route_config"` HTTPFilters []*HTTPFilter `yaml:"http_filters" json:"http_filters" mapstructure:"http_filters"` ServerName string `yaml:"server_name" json:"server_name" mapstructure:"server_name"` IdleTimeoutStr string `yaml:"idle_timeout" json:"idle_timeout" mapstructure:"idle_timeout"` GenerateRequestID bool `yaml:"generate_request_id" json:"generate_request_id" mapstructure:"generate_request_id"` TimeoutStr string `yaml:"timeout" json:"timeout" mapstructure:"timeout"` Timeout time.Duration `yaml:"-" json:"-" mapstructure:"-"` }
HttpConnectionManagerConfig
type HttpHealthCheck ¶
type HttpHealthCheck struct { HealthCheckConfig Host string Path string UseHttp2 bool ExpectedStatuses int64 }
HttpHealthCheck
type LbConsistentHash ¶
type LbConsistentHash interface { Hash(key string) uint32 Add(host string) Get(key string) (string, error) GetHash(key uint32) (string, error) Remove(host string) bool }
LbConsistentHash supports consistent hash load balancing
type LbPolicyType ¶
type LbPolicyType string
LbPolicyType the load balance policy enum
const ( LoadBalancerRand LbPolicyType = "Rand" LoadBalancerRoundRobin LbPolicyType = "RoundRobin" LoadBalancerRingHashing LbPolicyType = "RingHashing" LoadBalancerMaglevHashing LbPolicyType = "MaglevHashing" )
type Listener ¶
type Listener struct { Name string `yaml:"name" json:"name" mapstructure:"name"` Address Address `yaml:"address" json:"address" mapstructure:"address"` ProtocolStr string `default:"http" yaml:"protocol_type" json:"protocol_type" mapstructure:"protocol_type"` Protocol ProtocolType `default:"http" yaml:"omitempty" json:"omitempty"` FilterChain FilterChain `yaml:"filter_chains" json:"filter_chains" mapstructure:"filter_chains"` Config interface{} `yaml:"config" json:"config" mapstructure:"config"` }
Listener is a server, listener a port
type Log ¶
type Log struct { Level string `json:"level" yaml:"level"` Development bool `json:"development" yaml:"development"` DisableCaller bool `json:"disableCaller" yaml:"disableCaller"` DisableStacktrace bool `json:"disableStacktrace" yaml:"disableStacktrace"` Sampling SamplingConfig `json:"sampling" yaml:"sampling"` Encoding string `json:"encoding" yaml:"encoding"` EncoderConfig EncoderConfig `json:"encoderConfig" yaml:"encoderConfig"` OutputPaths []string `json:"outputPaths" yaml:"outputPaths"` ErrorOutputPaths []string `json:"errorOutputPaths" yaml:"errorOutputPaths"` InitialFields map[string]interface{} `json:"initialFields" yaml:"initialFields"` }
type MatcherType ¶
type MatcherType int32
MatcherType matcher type
const ( Exact MatcherType = 0 + iota Prefix Suffix Regex )
type Metadata ¶
type Metadata struct {
Info map[string]MetadataValue
}
type MetadataValue ¶
type MetadataValue interface{}
type Metric ¶
type Metric struct { Enable bool `yaml:"enable" json:"enable"` PrometheusPort int `yaml:"prometheus_port" json:"prometheus_port"` }
Metirc config for otel metric.
type Nacos ¶
type Nacos struct { ServerConfigs []*NacosServerConfig `yaml:"server_configs" json:"server-configs" mapstructure:"server_configs"` ClientConfig *NacosClientConfig `yaml:"client-config" json:"client-config" mapstructure:"client_config"` DataId string `yaml:"data-id" json:"data-id" mapstructure:"data_id" default:"pixiu.yaml"` Group string `yaml:"group" json:"group" mapstructure:"group" default:"DEFAULT_GROUP"` }
type NacosClientConfig ¶
type NacosClientConfig struct { TimeoutMs uint64 `json:"timeout_ms,omitempty" yaml:"timeout_ms" mapstructure:"timeout_ms"` // timeout for requesting Nacos server, default value is 10000ms ListenInterval uint64 `json:"listen_interval,omitempty" yaml:"listen_interval" mapstructure:"listen_interval"` // Deprecated BeatInterval int64 `json:"beat_interval,omitempty" yaml:"beat_interval" mapstructure:"beat_interval"` // the time interval for sending beat to server,default value is 5000ms NamespaceId string `json:"namespace_id,omitempty" yaml:"namespace_id" mapstructure:"namespace_id"` // the namespaceId of Nacos.When namespace is public, fill in the blank string here. AppName string `json:"app_name,omitempty" yaml:"app_name" mapstructure:"app_name"` // the appName Endpoint string `json:"endpoint,omitempty" yaml:"endpoint" mapstructure:"endpoint"` // the endpoint for get Nacos server addresses RegionId string `json:"region_id,omitempty" yaml:"region_id" mapstructure:"region_id"` // the regionId for kms AccessKey string `json:"access_key,omitempty" yaml:"access_key" mapstructure:"access_key"` // the AccessKey for kms SecretKey string `json:"secret_key,omitempty" yaml:"secret_key" mapstructure:"secret_key"` // the SecretKey for kms OpenKMS bool `json:"open_kms,omitempty" yaml:"open_kms" mapstructure:"open_kms"` // it's to open kms,default is false. https://help.aliyun.com/product/28933.html CacheDir string `json:"cache_dir,omitempty" yaml:"cache_dir" mapstructure:"cache_dir" default:"/tmp/nacos/cache"` // the directory for persist nacos service info,default value is current path UpdateThreadNum int `json:"update_thread_num,omitempty" yaml:"update_thread_num" mapstructure:"update_thread_num"` // the number of gorutine for update nacos service info,default value is 20 NotLoadCacheAtStart bool `json:"not_load_cache_at_start,omitempty" yaml:"not_load_cache_at_start" mapstructure:"not_load_cache_at_start"` // not to load persistent nacos service info in CacheDir at start time UpdateCacheWhenEmpty bool `json:"update_cache_when_empty,omitempty" yaml:"update_cache_when_empty" mapstructure:"update_cache_when_empty"` // update cache when get empty service instance from server Username string `json:"username,omitempty" yaml:"username" mapstructure:"username"` // the username for nacos auth Password string `json:"password,omitempty" yaml:"password" mapstructure:"password"` // the password for nacos auth LogDir string `json:"log_dir,omitempty" yaml:"log_dir" mapstructure:"log_dir" default:"/tmp/nacos/log"` // the directory for log, default is current path LogLevel string `json:"log_level,omitempty" yaml:"log_level" mapstructure:"log_level"` // the level of log, it's must be debug,info,warn,error, default value is info //LogSampling *ClientLogSamplingConfig // the sampling config of log ContextPath string `json:"context_path,omitempty" yaml:"context_path" mapstructure:"context_path"` // the nacos server contextpath }
type NacosServerConfig ¶
type NacosServerConfig struct { IpAddr string `json:"ip_addr,omitempty" yaml:"ip_addr" mapstructure:"ip_addr"` Port uint64 `json:"port,omitempty" yaml:"port" mapstructure:"port"` Scheme string `json:"scheme" yaml:"scheme" mapstructure:"scheme"` ContextPath string `json:"contextPath" yaml:"contextPath" mapstructure:"contextPath"` }
type NetworkFilter ¶
type NetworkFilter struct { Name string `yaml:"name" json:"name" mapstructure:"name"` // Name filter name unique Config map[string]interface{} `yaml:"config" json:"config" mapstructure:"config"` // Config filter config }
NetworkFilter core struct, filter is extend by user
type Node ¶
type Node struct { Cluster string `yaml:"cluster" json:"cluster" mapstructure:"cluster"` Id string `yaml:"id" json:"id" mapstructure:"id"` }
Node node info for dynamic identifier
type ProtocolType ¶
type ProtocolType int32
ProtocolType protocol type enum
const ( ProtocolTypeHTTP ProtocolType = 0 + iota // support for 1.0 ProtocolTypeTCP ProtocolTypeUDP ProtocolTypeHTTPS ProtocolTypeGRPC ProtocolTypeHTTP2 ProtocolTypeTriple )
type Registry ¶
type Registry struct { Protocol string `default:"zookeeper" yaml:"protocol" json:"protocol"` Timeout string `yaml:"timeout" json:"timeout"` Address string `yaml:"address" json:"address"` Username string `yaml:"username" json:"username"` Password string `yaml:"password" json:"password"` Group string `default:"DEFAULT_GROUP" yaml:"group" json:"group"` Namespace string `yaml:"namespace" json:"namespace"` RegistryType string `default:"interface" yaml:"registry_type" json:"registry_type"` // "application", "interface" }
Registry remote registry where dubbo apis are registered. Here comes a problem, dubbo protocol proxy does not use the same registry as pixiu, so any modification to the config, should apply to both `pkg/client/dubbo/dubbo.go` and `pkg\adapter\dubboregistry\registry`
type RemoteConfig ¶
type RemoteConfig struct { Protocol string `yaml:"protocol" json:"protocol" default:"zookeeper"` Timeout string `yaml:"timeout" json:"timeout" default:"10s"` Address string `yaml:"address" json:"address"` Username string `yaml:"username" json:"username"` Password string `yaml:"password" json:"password"` Group string `yaml:"group" json:"group"` Root string `yaml:"root" json:"root" default:"/services"` }
RemoteConfig remote server info which offer server discovery or k/v or distribution function
type RequestMethod ¶
type RequestMethod int32
type RouteAction ¶
type RouteAction struct { Cluster string `yaml:"cluster" json:"cluster" mapstructure:"cluster"` ClusterNotFoundResponseCode int `yaml:"cluster_not_found_response_code" json:"cluster_not_found_response_code" mapstructure:"cluster_not_found_response_code"` }
RouteAction match route should do
type RouteConfiguration ¶
type RouteConfiguration struct { RouteTrie trie.Trie `yaml:"-" json:"-" mapstructure:"-"` Routes []*Router `yaml:"routes" json:"routes" mapstructure:"routes"` Dynamic bool `yaml:"dynamic" json:"dynamic" mapstructure:"dynamic"` }
RouteConfiguration
func (*RouteConfiguration) Route ¶
func (rc *RouteConfiguration) Route(req *stdHttp.Request) (*RouteAction, error)
func (*RouteConfiguration) RouteByPathAndMethod ¶
func (rc *RouteConfiguration) RouteByPathAndMethod(path, method string) (*RouteAction, error)
type Router ¶
type Router struct { ID string `yaml:"id" json:"id" mapstructure:"id"` Match RouterMatch `yaml:"match" json:"match" mapstructure:"match"` Route RouteAction `yaml:"route" json:"route" mapstructure:"route"` }
Router struct
type RouterMatch ¶
type RouterMatch struct { Prefix string `yaml:"prefix" json:"prefix" mapstructure:"prefix"` Path string `yaml:"path" json:"path" mapstructure:"path"` // Regex string `yaml:"regex" json:"regex" mapstructure:"regex"` TODO: next version Methods []string `yaml:"methods" json:"methods" mapstructure:"methods"` Headers []HeaderMatcher `yaml:"headers,omitempty" json:"headers,omitempty" mapstructure:"headers"` }
RouterMatch
func NewRouterMatchPrefix ¶
func NewRouterMatchPrefix(name string) RouterMatch
func (*RouterMatch) MatchHeader ¶
func (rm *RouterMatch) MatchHeader(req *stdHttp.Request) bool
MatchHeader used when there's only headers to match
type Sampler ¶
type Sampler struct { Type string `yaml:"type" json:"type" mapstructure:"type"` Param float64 `yaml:"param" json:"param" mapstructure:"param"` }
Sampler policy
type SamplingConfig ¶
type ShutdownConfig ¶
type ShutdownConfig struct { Timeout string `default:"0s" yaml:"timeout" json:"timeout,omitempty"` StepTimeout string `default:"0s" yaml:"step_timeout" json:"step_timeout,omitempty"` RejectPolicy string `default:"immediacy" yaml:"reject_policy" json:"reject_policy,omitempty"` }
ShutdownConfig how to shutdown server.
func (*ShutdownConfig) GetTimeout ¶
func (sdc *ShutdownConfig) GetTimeout() time.Duration
GetTimeoutOfShutdown
type SocketAddress ¶
type SocketAddress struct { Address string `default:"0.0.0.0" yaml:"address" json:"address" mapstructure:"address"` Port int `default:"8881" yaml:"port" json:"port" mapstructure:"port"` ResolverName string `yaml:"resolver_name" json:"resolver_name" mapstructure:"resolver_name"` Domains []string `yaml:"domains" json:"domains" mapstructure:"domains"` CertsDir string `yaml:"certs_dir" json:"certs_dir" mapstructure:"certs_dir"` }
SocketAddress specify either a logical or physical address and port, which are used to tell server where to bind/listen, connect to upstream and find management servers
func (SocketAddress) GetAddress ¶
func (a SocketAddress) GetAddress() string
type StaticResources ¶
type StaticResources struct { Listeners []*Listener `yaml:"listeners" json:"listeners" mapstructure:"listeners"` Clusters []*ClusterConfig `yaml:"clusters" json:"clusters" mapstructure:"clusters"` Adapters []*Adapter `yaml:"adapters" json:"adapters" mapstructure:"adapters"` ShutdownConfig *ShutdownConfig `yaml:"shutdown_config" json:"shutdown_config" mapstructure:"shutdown_config"` PprofConf PprofConf `yaml:"pprofConf" json:"pprofConf" mapstructure:"pprofConf"` }
StaticResources
type TimeoutConfig ¶
type TimeoutConfig struct { ConnectTimeoutStr string `default:"5s" yaml:"connect_timeout" json:"connect_timeout,omitempty"` // ConnectTimeout timeout for connect to cluster node RequestTimeoutStr string `default:"10s" yaml:"request_timeout" json:"request_timeout,omitempty"` }
TimeoutConfig the config of ConnectTimeout and RequestTimeout
type TracerConfig ¶
type TracerConfig struct { Name string `yaml:"name" json:"name" mapstructure:"name"` ServiceName string `yaml:"serviceName" json:"serviceName" mapstructure:"serviceName"` Sampler Sampler `yaml:"sampler" json:"sampler" mapstructure:"sampler"` Config map[string]interface{} `yaml:"config" json:"config" mapstructure:"config"` }
TracerConfig inclueds detail information about the exporter
type Tracing ¶
type Tracing struct { Http Http `yaml:"http" json:"http,omitempty"` URL string `yaml:"url" json:"url,omitempty"` Type string `yaml:"type" json:"type,omitempty"` }
Tracing
type WasmConfig ¶
type WasmConfig struct {
Services []WasmService `yaml:"services" json:"services" mapstructure:"services"`
}
WasmConfig contains all services' config.
type WasmService ¶
type WasmService struct { Name string `yaml:"name" json:"name" mapstructure:"name"` Config map[string]interface{} `yaml:"config" json:"config" mapstructure:"config"` }
WasmService includes all information about the specific application.