Documentation

Overview

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

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

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var (
    	// ProdxmonScopes is the list of oauth2 scopes needed on the http client
    	// given to NewHTTPMonitor.
    	ProdxmonScopes = []string{"https://www.googleapis.com/auth/prodxmon"}
    )

    Functions

    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.

          Types

          type Fake

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

            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

              func (*Fake) Send

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

                Send appends the cells to Cells.

                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.