xfer

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2015 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const ScopeProbeIDHeader = "X-Scope-Probe-ID"

ScopeProbeIDHeader is the header we use to carry the probe's unique ID. The ID is currently set to the probe's hostname. It's designed to deduplicate reports from the same probe to the same receiver, in case the probe is configured to publish to multiple receivers that resolve to the same app.

Variables

View Source
var (
	// AppPort is the default port that the app will use for its HTTP server.
	// The app publishes the API and user interface, and receives reports from
	// probes, on this port.
	AppPort = 4040
)

Functions

func AuthorizationHeader added in v0.6.0

func AuthorizationHeader(token string) string

AuthorizationHeader returns a value suitable for an HTTP Authorization header, based on the passed token string.

Types

type Adder added in v0.6.0

type Adder interface {
	Add(report.Report)
}

Adder is something that can accept reports. It's a convenient interface for parts of the app, and several experimental components.

type Collector

type Collector struct {
	// contains filtered or unexported fields
}

Collector receives published reports from multiple producers. It yields a single merged report, representing all collected reports.

func NewCollector

func NewCollector(window time.Duration) *Collector

NewCollector returns a collector ready for use.

func (*Collector) Add added in v0.3.0

func (c *Collector) Add(rpt report.Report)

Add adds a report to the collector's internal state. It implements Adder.

func (*Collector) Report added in v0.6.0

func (c *Collector) Report() report.Report

Report returns a merged report over all added reports. It implements Reporter.

type HTTPPublisher added in v0.6.0

type HTTPPublisher struct {
	// contains filtered or unexported fields
}

HTTPPublisher publishes reports by POST to a fixed endpoint.

func NewHTTPPublisher added in v0.6.0

func NewHTTPPublisher(target, token, id string) (*HTTPPublisher, error)

NewHTTPPublisher returns an HTTPPublisher ready for use.

func (HTTPPublisher) Publish added in v0.6.0

func (p HTTPPublisher) Publish(rpt report.Report) error

Publish publishes the report to the URL.

type MultiPublisher added in v0.6.0

type MultiPublisher struct {
	// contains filtered or unexported fields
}

MultiPublisher implements Publisher over a set of publishers.

func NewMultiPublisher added in v0.6.0

func NewMultiPublisher(factory func(string) (Publisher, error)) *MultiPublisher

NewMultiPublisher returns a new MultiPublisher ready for use. The factory should be e.g. NewHTTPPublisher, except you need to curry it over the probe token.

func (*MultiPublisher) Add added in v0.6.0

func (p *MultiPublisher) Add(target string)

Add allows additional targets to be added dynamically. It will dedupe identical targets. TODO we have no good mechanism to remove.

func (*MultiPublisher) Publish added in v0.6.0

func (p *MultiPublisher) Publish(rpt report.Report) error

Publish implements Publisher by emitting the report to all publishers.

type Publisher

type Publisher interface {
	Publish(report.Report) error
}

Publisher is something which can send a report to a remote collector.

type Reporter added in v0.6.0

type Reporter interface {
	Report() report.Report
}

Reporter is something that can produce reports on demand. It's a convenient interface for parts of the app, and several experimental components.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL