remote

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2016 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package remote is a generated protocol buffer package.

It is generated from these files:

remote.proto

It has these top-level messages:

Sample
LabelPair
TimeSeries
WriteRequest
WriteResponse

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterWriteServer added in v1.1.0

func RegisterWriteServer(s *grpc.Server, srv WriteServer)

Types

type Client added in v1.1.0

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

Client allows sending batches of Prometheus samples to an HTTP endpoint.

func NewClient added in v1.1.0

func NewClient(address string, timeout time.Duration) (*Client, error)

NewClient creates a new Client.

func (Client) Name added in v1.1.0

func (c Client) Name() string

Name identifies the client as a generic client.

TODO: This client is going to be the only one soon - then this method will simply be removed in the restructuring and the whole "generic" naming will be gone for good.

func (*Client) Store added in v1.1.0

func (c *Client) Store(samples model.Samples) error

Store sends a batch of samples to the HTTP endpoint.

type LabelPair added in v1.1.0

type LabelPair struct {
	Name  string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (*LabelPair) Descriptor added in v1.1.0

func (*LabelPair) Descriptor() ([]byte, []int)

func (*LabelPair) ProtoMessage added in v1.1.0

func (*LabelPair) ProtoMessage()

func (*LabelPair) Reset added in v1.1.0

func (m *LabelPair) Reset()

func (*LabelPair) String added in v1.1.0

func (m *LabelPair) String() string

type Options

type Options struct {
	StorageTimeout          time.Duration
	InfluxdbURL             *url.URL
	InfluxdbRetentionPolicy string
	InfluxdbUsername        string
	InfluxdbPassword        string
	InfluxdbDatabase        string
	OpentsdbURL             string
	GraphiteAddress         string
	GraphiteTransport       string
	GraphitePrefix          string
	// TODO: This just being called "Address" will make more sense once the
	// other remote storage mechanisms are removed.
	Address string
}

Options contains configuration parameters for a remote storage.

type Sample added in v1.1.0

type Sample struct {
	Value       float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"`
	TimestampMs int64   `protobuf:"varint,2,opt,name=timestamp_ms,json=timestampMs" json:"timestamp_ms,omitempty"`
}

func (*Sample) Descriptor added in v1.1.0

func (*Sample) Descriptor() ([]byte, []int)

func (*Sample) ProtoMessage added in v1.1.0

func (*Sample) ProtoMessage()

func (*Sample) Reset added in v1.1.0

func (m *Sample) Reset()

func (*Sample) String added in v1.1.0

func (m *Sample) String() string

type Storage

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

Storage collects multiple remote storage queues.

func New

func New(o *Options) (*Storage, error)

New returns a new remote Storage.

func (*Storage) Append

func (s *Storage) Append(smpl *model.Sample) error

Append implements storage.SampleAppender. Always returns nil.

func (*Storage) ApplyConfig

func (s *Storage) ApplyConfig(conf *config.Config) error

ApplyConfig updates the status state as the new config requires.

func (*Storage) Collect

func (s *Storage) Collect(ch chan<- prometheus.Metric)

Collect implements prometheus.Collector.

func (*Storage) Describe

func (s *Storage) Describe(ch chan<- *prometheus.Desc)

Describe implements prometheus.Collector.

func (*Storage) NeedsThrottling

func (s *Storage) NeedsThrottling() bool

NeedsThrottling implements storage.SampleAppender. It will always return false as a remote storage drops samples on the floor if backlogging instead of asking for throttling.

func (*Storage) Run

func (s *Storage) Run()

Run starts the background processing of the storage queues.

func (*Storage) Stop

func (s *Storage) Stop()

Stop the background processing of the storage queues.

type StorageClient

type StorageClient interface {
	// Store stores the given samples in the remote storage.
	Store(model.Samples) error
	// Name identifies the remote storage implementation.
	Name() string
}

StorageClient defines an interface for sending a batch of samples to an external timeseries database.

type StorageQueueManager

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

StorageQueueManager manages a queue of samples to be sent to the Storage indicated by the provided StorageClient.

func NewStorageQueueManager

func NewStorageQueueManager(tsdb StorageClient, cfg *StorageQueueManagerConfig) *StorageQueueManager

NewStorageQueueManager builds a new StorageQueueManager.

func (*StorageQueueManager) Append

func (t *StorageQueueManager) Append(s *model.Sample) error

Append queues a sample to be sent to the remote storage. It drops the sample on the floor if the queue is full. Always returns nil.

func (*StorageQueueManager) Collect

func (t *StorageQueueManager) Collect(ch chan<- prometheus.Metric)

Collect implements prometheus.Collector.

func (*StorageQueueManager) Describe

func (t *StorageQueueManager) Describe(ch chan<- *prometheus.Desc)

Describe implements prometheus.Collector.

func (*StorageQueueManager) NeedsThrottling added in v1.1.0

func (*StorageQueueManager) NeedsThrottling() bool

NeedsThrottling implements storage.SampleAppender. It will always return false as a remote storage drops samples on the floor if backlogging instead of asking for throttling.

func (*StorageQueueManager) Run

func (t *StorageQueueManager) Run()

Run continuously sends samples to the remote storage.

func (*StorageQueueManager) Stop

func (t *StorageQueueManager) Stop()

Stop stops sending samples to the remote storage and waits for pending sends to complete.

type StorageQueueManagerConfig added in v1.1.0

type StorageQueueManagerConfig struct {
	QueueCapacity     int           // Number of samples to buffer per shard before we start dropping them.
	Shards            int           // Number of shards, i.e. amount of concurrency.
	MaxSamplesPerSend int           // Maximum number of samples per send.
	BatchSendDeadline time.Duration // Maximum time sample will wait in buffer.
}

type TimeSeries added in v1.1.0

type TimeSeries struct {
	Labels []*LabelPair `protobuf:"bytes,1,rep,name=labels" json:"labels,omitempty"`
	// Sorted by time, oldest sample first.
	Samples []*Sample `protobuf:"bytes,2,rep,name=samples" json:"samples,omitempty"`
}

func (*TimeSeries) Descriptor added in v1.1.0

func (*TimeSeries) Descriptor() ([]byte, []int)

func (*TimeSeries) GetLabels added in v1.1.0

func (m *TimeSeries) GetLabels() []*LabelPair

func (*TimeSeries) GetSamples added in v1.1.0

func (m *TimeSeries) GetSamples() []*Sample

func (*TimeSeries) ProtoMessage added in v1.1.0

func (*TimeSeries) ProtoMessage()

func (*TimeSeries) Reset added in v1.1.0

func (m *TimeSeries) Reset()

func (*TimeSeries) String added in v1.1.0

func (m *TimeSeries) String() string

type WriteClient added in v1.1.0

type WriteClient interface {
	Write(ctx context.Context, in *WriteRequest, opts ...grpc.CallOption) (*WriteResponse, error)
}

func NewWriteClient added in v1.1.0

func NewWriteClient(cc *grpc.ClientConn) WriteClient

type WriteRequest added in v1.1.0

type WriteRequest struct {
	Timeseries []*TimeSeries `protobuf:"bytes,1,rep,name=timeseries" json:"timeseries,omitempty"`
}

func (*WriteRequest) Descriptor added in v1.1.0

func (*WriteRequest) Descriptor() ([]byte, []int)

func (*WriteRequest) GetTimeseries added in v1.1.0

func (m *WriteRequest) GetTimeseries() []*TimeSeries

func (*WriteRequest) ProtoMessage added in v1.1.0

func (*WriteRequest) ProtoMessage()

func (*WriteRequest) Reset added in v1.1.0

func (m *WriteRequest) Reset()

func (*WriteRequest) String added in v1.1.0

func (m *WriteRequest) String() string

type WriteResponse added in v1.1.0

type WriteResponse struct {
}

func (*WriteResponse) Descriptor added in v1.1.0

func (*WriteResponse) Descriptor() ([]byte, []int)

func (*WriteResponse) ProtoMessage added in v1.1.0

func (*WriteResponse) ProtoMessage()

func (*WriteResponse) Reset added in v1.1.0

func (m *WriteResponse) Reset()

func (*WriteResponse) String added in v1.1.0

func (m *WriteResponse) String() string

type WriteServer added in v1.1.0

type WriteServer interface {
	Write(context.Context, *WriteRequest) (*WriteResponse, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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