Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AppClient ¶
type AppClient interface { Details() (xfer.Details, error) ControlConnection() PipeConnection(string, xfer.Pipe) PipeClose(string) error Publish(io.Reader, bool) error Target() url.URL ReTarget(url.URL) Stop() }
AppClient is a client to an app, dealing with report publishing, controls and pipes.
func NewAppClient ¶
func NewAppClient(pc ProbeConfig, hostname string, target url.URL, control xfer.ControlHandler) (AppClient, error)
NewAppClient makes a new appClient.
type ClientFactory ¶
ClientFactory is a thing thats makes AppClients
type LookupIP ¶ added in v0.13.0
LookupIP type is used for looking up IPs.
type MultiAppClient ¶
type MultiAppClient interface { Set(hostname string, urls []url.URL) PipeConnection(appID, pipeID string, pipe xfer.Pipe) error PipeClose(appID, pipeID string) error Stop() Publish(r report.Report) error }
MultiAppClient maintains a set of upstream apps, and ensures we have an AppClient for each one.
func NewMultiAppClient ¶
func NewMultiAppClient(clientFactory ClientFactory, noControls bool) MultiAppClient
NewMultiAppClient creates a new MultiAppClient.
type ProbeConfig ¶
type ProbeConfig struct { BasicAuth bool Token string ProbeVersion string ProbeID string Insecure bool }
ProbeConfig contains all the info needed for a probe to do HTTP requests
type Resolver ¶
type Resolver interface {
Stop()
}
Resolver is a thing that can be stopped...
func NewResolver ¶ added in v0.13.0
func NewResolver(config ResolverConfig) (Resolver, error)
NewResolver periodically resolves the targets, and calls the set function with all the resolved IPs. It explictiy supports targets which resolve to multiple IPs. It uses the supplied DNS server name.
type ResolverConfig ¶ added in v1.4.0
type ResolverConfig struct { Targets []Target Set func(string, []url.URL) // Optional Lookup LookupIP Ticker func(time.Duration) <-chan time.Time }
ResolverConfig is the config for a resolver.
Source Files
¶
- app_client.go
- multi_client.go
- probe_config.go
- resolver.go