remote

package
v0.0.0-...-35f0b6d Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2021 License: Apache-2.0 Imports: 22 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
ReadRequest
ReadResponse
Query
LabelMatcher
QueryResult

Index

Constants

This section is empty.

Variables

View Source
var MatchType_name = map[int32]string{
	0: "EQUAL",
	1: "NOT_EQUAL",
	2: "REGEX_MATCH",
	3: "REGEX_NO_MATCH",
}
View Source
var MatchType_value = map[string]int32{
	"EQUAL":          0,
	"NOT_EQUAL":      1,
	"REGEX_MATCH":    2,
	"REGEX_NO_MATCH": 3,
}

Functions

func MatrixToIterators

func MatrixToIterators(m model.Matrix, err error) ([]local.SeriesIterator, error)

MatrixToIterators returns series iterators for a given matrix.

Types

type Client

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

Client allows reading and writing from/to a remote HTTP endpoint.

func NewClient

func NewClient(index int, conf *clientConfig) (*Client, error)

NewClient creates a new Client.

func (Client) Name

func (c Client) Name() string

Name identifies the client.

func (*Client) Read

func (c *Client) Read(ctx context.Context, from, through model.Time, matchers metric.LabelMatchers) (model.Matrix, error)

Read reads from a remote endpoint.

func (*Client) Store

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

Store sends a batch of samples to the HTTP endpoint.

type LabelMatcher

type LabelMatcher struct {
	Type  MatchType `protobuf:"varint,1,opt,name=type,enum=remote.MatchType" json:"type,omitempty"`
	Name  string    `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	Value string    `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
}

func (*LabelMatcher) Descriptor

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

func (*LabelMatcher) GetName

func (m *LabelMatcher) GetName() string

func (*LabelMatcher) GetType

func (m *LabelMatcher) GetType() MatchType

func (*LabelMatcher) GetValue

func (m *LabelMatcher) GetValue() string

func (*LabelMatcher) ProtoMessage

func (*LabelMatcher) ProtoMessage()

func (*LabelMatcher) Reset

func (m *LabelMatcher) Reset()

func (*LabelMatcher) String

func (m *LabelMatcher) String() string

type LabelPair

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

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

func (*LabelPair) GetName

func (m *LabelPair) GetName() string

func (*LabelPair) GetValue

func (m *LabelPair) GetValue() string

func (*LabelPair) ProtoMessage

func (*LabelPair) ProtoMessage()

func (*LabelPair) Reset

func (m *LabelPair) Reset()

func (*LabelPair) String

func (m *LabelPair) String() string

type MatchType

type MatchType int32
const (
	MatchType_EQUAL          MatchType = 0
	MatchType_NOT_EQUAL      MatchType = 1
	MatchType_REGEX_MATCH    MatchType = 2
	MatchType_REGEX_NO_MATCH MatchType = 3
)

func (MatchType) EnumDescriptor

func (MatchType) EnumDescriptor() ([]byte, []int)

func (MatchType) String

func (x MatchType) String() string

type Query

type Query struct {
	StartTimestampMs int64           `protobuf:"varint,1,opt,name=start_timestamp_ms,json=startTimestampMs" json:"start_timestamp_ms,omitempty"`
	EndTimestampMs   int64           `protobuf:"varint,2,opt,name=end_timestamp_ms,json=endTimestampMs" json:"end_timestamp_ms,omitempty"`
	Matchers         []*LabelMatcher `protobuf:"bytes,3,rep,name=matchers" json:"matchers,omitempty"`
}

func (*Query) Descriptor

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

func (*Query) GetEndTimestampMs

func (m *Query) GetEndTimestampMs() int64

func (*Query) GetMatchers

func (m *Query) GetMatchers() []*LabelMatcher

func (*Query) GetStartTimestampMs

func (m *Query) GetStartTimestampMs() int64

func (*Query) ProtoMessage

func (*Query) ProtoMessage()

func (*Query) Reset

func (m *Query) Reset()

func (*Query) String

func (m *Query) String() string

type QueryResult

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

func (*QueryResult) Descriptor

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

func (*QueryResult) GetTimeseries

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

func (*QueryResult) ProtoMessage

func (*QueryResult) ProtoMessage()

func (*QueryResult) Reset

func (m *QueryResult) Reset()

func (*QueryResult) String

func (m *QueryResult) String() string

type QueueManager

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

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

func NewQueueManager

func NewQueueManager(cfg QueueManagerConfig, externalLabels model.LabelSet, relabelConfigs []*config.RelabelConfig, client StorageClient) *QueueManager

NewQueueManager builds a new QueueManager.

func (*QueueManager) Append

func (t *QueueManager) 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 (*QueueManager) NeedsThrottling

func (*QueueManager) 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 (*QueueManager) Start

func (t *QueueManager) Start()

Start the queue manager sending samples to the remote storage. Does not block.

func (*QueueManager) Stop

func (t *QueueManager) Stop()

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

type QueueManagerConfig

type QueueManagerConfig struct {
	// Number of samples to buffer per shard before we start dropping them.
	QueueCapacity int
	// Max number of shards, i.e. amount of concurrency.
	MaxShards int
	// Maximum number of samples per send.
	MaxSamplesPerSend int
	// Maximum time sample will wait in buffer.
	BatchSendDeadline time.Duration
	// Max number of times to retry a batch on recoverable errors.
	MaxRetries int
	// On recoverable errors, backoff exponentially.
	MinBackoff time.Duration
	MaxBackoff time.Duration
}

QueueManagerConfig is the configuration for the queue used to write to remote storage.

type ReadRequest

type ReadRequest struct {
	Queries []*Query `protobuf:"bytes,1,rep,name=queries" json:"queries,omitempty"`
}

func (*ReadRequest) Descriptor

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

func (*ReadRequest) GetQueries

func (m *ReadRequest) GetQueries() []*Query

func (*ReadRequest) ProtoMessage

func (*ReadRequest) ProtoMessage()

func (*ReadRequest) Reset

func (m *ReadRequest) Reset()

func (*ReadRequest) String

func (m *ReadRequest) String() string

type ReadResponse

type ReadResponse struct {
	// In same order as the request's queries.
	Results []*QueryResult `protobuf:"bytes,1,rep,name=results" json:"results,omitempty"`
}

func (*ReadResponse) Descriptor

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

func (*ReadResponse) GetResults

func (m *ReadResponse) GetResults() []*QueryResult

func (*ReadResponse) ProtoMessage

func (*ReadResponse) ProtoMessage()

func (*ReadResponse) Reset

func (m *ReadResponse) Reset()

func (*ReadResponse) String

func (m *ReadResponse) String() string

type Reader

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

Reader allows reading from multiple remote sources.

func (*Reader) ApplyConfig

func (r *Reader) ApplyConfig(conf *config.Config) error

ApplyConfig updates the state as the new config requires.

func (*Reader) Queriers

func (r *Reader) Queriers() []local.Querier

Queriers returns a list of Queriers for the currently configured remote read endpoints.

type Sample

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

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

func (*Sample) GetTimestampMs

func (m *Sample) GetTimestampMs() int64

func (*Sample) GetValue

func (m *Sample) GetValue() float64

func (*Sample) ProtoMessage

func (*Sample) ProtoMessage()

func (*Sample) Reset

func (m *Sample) Reset()

func (*Sample) String

func (m *Sample) String() string

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 TimeSeries

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

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

func (*TimeSeries) GetLabels

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

func (*TimeSeries) GetSamples

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

func (*TimeSeries) ProtoMessage

func (*TimeSeries) ProtoMessage()

func (*TimeSeries) Reset

func (m *TimeSeries) Reset()

func (*TimeSeries) String

func (m *TimeSeries) String() string

type WriteRequest

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

func (*WriteRequest) Descriptor

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

func (*WriteRequest) GetTimeseries

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

func (*WriteRequest) ProtoMessage

func (*WriteRequest) ProtoMessage()

func (*WriteRequest) Reset

func (m *WriteRequest) Reset()

func (*WriteRequest) String

func (m *WriteRequest) String() string

type Writer

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

Writer allows queueing samples for remote writes.

func (*Writer) Append

func (w *Writer) Append(smpl *model.Sample) error

Append implements storage.SampleAppender. Always returns nil.

func (*Writer) ApplyConfig

func (w *Writer) ApplyConfig(conf *config.Config) error

ApplyConfig updates the state as the new config requires.

func (*Writer) NeedsThrottling

func (w *Writer) 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 (*Writer) Stop

func (w *Writer) Stop()

Stop the background processing of the storage queues.

Jump to

Keyboard shortcuts

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