Documentation ¶
Index ¶
- Variables
- type ConsulConfig
- type ConsulDiscoverer
- type GenericDiscoveryConfig
- func (conf GenericDiscoveryConfig) GetGenericTopologyBuilder(ClusterFn func(log.Logger, []ServiceEntry) (topology.ProbeableEndpoint, error), ...) func(log.Logger, []ServiceEntry) (topology.ClusterMap, error)
- func (conf GenericDiscoveryConfig) GroupNodesByCluster(logger log.Logger, entries []ServiceEntry) map[string][]ServiceEntry
- func (c *GenericDiscoveryConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
- type ServiceEntry
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultConsulConfig = ConsulConfig{ TagSeparator: ",", Scheme: "http", Server: "localhost:8500", AllowStale: true, PassingOnly: false, RefreshInterval: time.Duration(30 * time.Second), HTTPClientConfig: promconfig.DefaultHTTPClientConfig, } )
View Source
var DiscoveryFailureTotal = promauto.NewCounter(prometheus.CounterOpts{ Name: utils.MetricSuffix + "_discovery_failure", Help: "Total number of failures during discovery", })
Functions ¶
This section is empty.
Types ¶
type ConsulConfig ¶
type ConsulConfig struct { Server string `yaml:"server,omitempty"` Token promconfig.Secret `yaml:"token,omitempty"` Datacenter string `yaml:"datacenter,omitempty"` Namespace string `yaml:"namespace,omitempty"` TagSeparator string `yaml:"tag_separator,omitempty"` Scheme string `yaml:"scheme,omitempty"` Username string `yaml:"username,omitempty"` Password promconfig.Secret `yaml:"password,omitempty"` // See https://www.consul.io/docs/internals/consensus.html#consistency-modes, // stale reads are a lot cheaper and are a necessity if you have >5k targets. AllowStale bool `yaml:"allow_stale"` // By default use blocking queries (https://www.consul.io/api/index.html#blocking-queries) // but allow users to throttle updates if necessary. This can be useful because of "bugs" like // https://github.com/hashicorp/consul/issues/3712 which cause an un-necessary // amount of requests on consul. RefreshInterval time.Duration `yaml:"refresh_interval,omitempty"` // See https://www.consul.io/api/catalog.html#list-services // The list of services for which targets are discovered. // Defaults to all services if empty. Services []string `yaml:"services,omitempty"` // A list of tags used to filter instances inside a service. Services must contain all tags in the list. ServiceTags []string `yaml:"tags,omitempty"` // Desired node metadata. NodeMeta map[string]string `yaml:"node_meta,omitempty"` HTTPClientConfig promconfig.HTTPClientConfig `yaml:",inline"` // Prober specifics PassingOnly bool `yaml:"passing_only,omitempty"` }
ConsulConfig is the configuration for Consul service discovery.
func (*ConsulConfig) UnmarshalYAML ¶
func (c *ConsulConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type ConsulDiscoverer ¶
type ConsulDiscoverer struct {
// contains filtered or unexported fields
}
func NewConsulDiscoverer ¶
func NewConsulDiscoverer(logger log.Logger, config ConsulConfig, topologyChan chan topology.ClusterMap, topologyBuilderFn func(log.Logger, []ServiceEntry) (topology.ClusterMap, error)) (ConsulDiscoverer, error)
func (*ConsulDiscoverer) Start ¶
func (cd *ConsulDiscoverer) Start() error
func (*ConsulDiscoverer) UpdateTopology ¶
func (cd *ConsulDiscoverer) UpdateTopology() error
type GenericDiscoveryConfig ¶
type GenericDiscoveryConfig struct { // Key for the cluster name MetaClusterKey string `yaml:"meta_cluster_key,omitempty"` // Specific configuration consul ConsulConfig ConsulConfig `yaml:"consul_sd_config,omitempty"` }
Contains the keys/tags to use during the topology generation
func (GenericDiscoveryConfig) GetGenericTopologyBuilder ¶
func (conf GenericDiscoveryConfig) GetGenericTopologyBuilder( ClusterFn func(log.Logger, []ServiceEntry) (topology.ProbeableEndpoint, error), NodeFn func(log.Logger, ServiceEntry) (topology.ProbeableEndpoint, error)) func(log.Logger, []ServiceEntry) (topology.ClusterMap, error)
func (GenericDiscoveryConfig) GroupNodesByCluster ¶
func (conf GenericDiscoveryConfig) GroupNodesByCluster(logger log.Logger, entries []ServiceEntry) map[string][]ServiceEntry
func (*GenericDiscoveryConfig) UnmarshalYAML ¶
func (c *GenericDiscoveryConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
Click to show internal directories.
Click to hide internal directories.