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 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 ¶
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 ¶
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.
type Target ¶
type Target struct {
// contains filtered or unexported fields
}
Target is a parsed representation of the app location.
func ParseTargets ¶
ParseTargets deals with missing information in the targets string, defaulting the scheme, port etc.