Documentation ¶
Index ¶
- type Options
- type Storage
- func (s *Storage) Append(smpl *model.Sample) error
- func (s *Storage) ApplyConfig(conf *config.Config) bool
- func (s *Storage) Collect(ch chan<- prometheus.Metric)
- func (s *Storage) Describe(ch chan<- *prometheus.Desc)
- func (s *Storage) NeedsThrottling() bool
- func (s *Storage) Run()
- func (s *Storage) Stop()
- type StorageClient
- type StorageQueueManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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 }
Options contains configuration parameters for a remote storage.
type Storage ¶
type Storage struct {
// contains filtered or unexported fields
}
Storage collects multiple remote storage queues.
func (*Storage) ApplyConfig ¶
ApplyConfig updates the status state as the new config requires. Returns true on success.
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 ¶
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.
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, queueCapacity int) *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) 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.