Back to

Package monitor

Latest Go to latest

The latest major version is .

Published: 0 hours ago | License: Apache-2.0 | Module:


Package monitor contains the code for sending metric data to monitoring endpoints.

Package monitor contains the code for sending metric data to monitoring endpoints.



var (
	// ProdxmonScopes is the list of oauth2 scopes needed on the http client
	// given to NewHTTPMonitor.
	ProdxmonScopes = []string{""}

func SerializeCells

func SerializeCells(cells []types.Cell, now time.Time) []*pb.MetricsCollection

SerializeCells creates a MetricsCollection message from a slice of cells.

func SerializeDataSet

func SerializeDataSet(c types.Cell) *pb.MetricsDataSet

SerializeDataSet creates a new MetricsDataSet without any data, but just with the metric metadata fields populated.

func SerializeValue

func SerializeValue(c types.Cell, now time.Time) *pb.MetricsData

SerializeValue creates a new MetricsData representing this cell's value.

type Fake

type Fake struct {
	CS      int
	Cells   [][]types.Cell
	SendErr error

Fake is a fake Monitor.

func (*Fake) ChunkSize

func (m *Fake) ChunkSize() int

ChunkSize returns the fake value.

func (*Fake) Close

func (m *Fake) Close() error

Close always works.

func (*Fake) Send

func (m *Fake) Send(c context.Context, cells []types.Cell) error

Send appends the cells to Cells, unless SendErr is set.

type Monitor

type Monitor interface {
	// ChunkSize returns the maximum number of metrics this Monitor can Send in
	// one go.  If there are more metrics, they will be broken up into chunks and
	// Send will be called multiple times.  A ChunkSize of 0 disables chunking.
	ChunkSize() int

	Send(ctx context.Context, cells []types.Cell) error

	// Close closes any resources held by the monitor.
	// Close need not be called at program exit.
	Close() error

A Monitor can send a collection of metrics somewhere.

func NewDebugMonitor

func NewDebugMonitor(path string) Monitor

NewDebugMonitor returns a Monitor that outputs metrics to a log, and optionally a file on disk.

func NewHTTPMonitor

func NewHTTPMonitor(ctx context.Context, client *http.Client, endpoint *url.URL) (Monitor, error)

NewHTTPMonitor creates a new Monitor object that sends metric to an HTTP (or HTTPS) endpoint. The http client should be authenticated as required.

func NewNilMonitor

func NewNilMonitor() Monitor

NewNilMonitor returns a Monitor that does nothing.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier