persister

package
v0.14.1-0...-915d78e Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2020 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

this is a parser for graphite's storage-schemas.conf it supports old and new retention format see https://graphite.readthedocs.io/en/0.9.9/config-carbon.html#storage-schemas-conf based on https://github.com/grobian/carbonwriter but with some improvements

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseRetentionDefs

func ParseRetentionDefs(retentionDefs string) (whisper.Retentions, error)

ParseRetentionDefs parses retention definitions into a Retentions structure

Types

type Schema

type Schema struct {
	Name         string
	Pattern      *regexp.Regexp
	RetentionStr string
	Retentions   whisper.Retentions
	Priority     int64
	Compressed   *bool
}

Schema represents one schema setting

type StoreFunc

type StoreFunc func(metric string)

type ThrottleTicker

type ThrottleTicker struct {
	helper.Stoppable
	C chan bool
}

ThrottleTicker is a ticker that can be used for hard or soft rate-limiting.

  • A soft rate limiter will send a message on C at the actual rate that is specified.
  • A hard rate limiter may send arbitrarily many messages on C every second, but it will send the value 'true' with the first ratePerSec ones, and 'false' with all subsequent ones, until the next second. It is up to the user to decide what to do in each case.

func NewHardThrottleTicker

func NewHardThrottleTicker(ratePerSec int) *ThrottleTicker

NewHardThrottleTicker returns a new hard throttle ticker.

func NewSoftThrottleTicker

func NewSoftThrottleTicker(ratePerSec int) *ThrottleTicker

NewSoftThrottleTicker returns a new soft throttle ticker.

func NewThrottleTicker

func NewThrottleTicker(ratePerSec int) *ThrottleTicker

NewThrottleTicker returns a new soft throttle ticker.

type Whisper

type Whisper struct {
	helper.Stoppable
	// contains filtered or unexported fields
}

Whisper write data to *.wsp files

func NewWhisper

func NewWhisper(
	rootPath string,
	schemas WhisperSchemas,
	aggregation *WhisperAggregation,
	recv func(chan bool) string,
	pop func(string) (*points.Points, bool),
	confirm func(*points.Points),
	popConfirm func(string) (*points.Points, bool)) *Whisper

NewWhisper create instance of Whisper

func (*Whisper) GetMaxUpdatesPerSecond

func (p *Whisper) GetMaxUpdatesPerSecond() int

GetMaxUpdatesPerSecond returns current throttling speed

func (*Whisper) SetCompressed

func (p *Whisper) SetCompressed(compressed bool)

func (*Whisper) SetFLock

func (p *Whisper) SetFLock(flock bool)

SetFLock on create and open

func (*Whisper) SetHardMaxCreatesPerSecond

func (p *Whisper) SetHardMaxCreatesPerSecond(hardMaxCreatesPerSecond bool)

SetHardMaxCreatesPerSecond enable throttling

func (*Whisper) SetHashFilenames

func (p *Whisper) SetHashFilenames(v bool)

func (*Whisper) SetMaxCreatesPerSecond

func (p *Whisper) SetMaxCreatesPerSecond(maxCreatesPerSecond int)

SetMaxCreatesPerSecond enable throttling

func (*Whisper) SetMaxUpdatesPerSecond

func (p *Whisper) SetMaxUpdatesPerSecond(maxUpdatesPerSecond int)

SetMaxUpdatesPerSecond enable throttling

func (*Whisper) SetMockStore

func (p *Whisper) SetMockStore(fn func() (StoreFunc, func()))

func (*Whisper) SetRemoveEmptyFile

func (p *Whisper) SetRemoveEmptyFile(remove bool)

func (*Whisper) SetSparse

func (p *Whisper) SetSparse(sparse bool)

SetSparse creation

func (*Whisper) SetTaggedFn

func (p *Whisper) SetTaggedFn(fn func(string, bool))

func (*Whisper) SetTagsEnabled

func (p *Whisper) SetTagsEnabled(v bool)

func (*Whisper) SetWorkers

func (p *Whisper) SetWorkers(count int)

SetWorkers count

func (*Whisper) Start

func (p *Whisper) Start() error

Start worker

func (*Whisper) Stat

func (p *Whisper) Stat(send helper.StatCallback)

Stat callback

func (*Whisper) Stop

func (p *Whisper) Stop()

type WhisperAggregation

type WhisperAggregation struct {
	Data    []*WhisperAggregationItem
	Default *WhisperAggregationItem
}

WhisperAggregation ...

func NewWhisperAggregation

func NewWhisperAggregation() *WhisperAggregation

NewWhisperAggregation create instance of WhisperAggregation

func ReadWhisperAggregation

func ReadWhisperAggregation(filename string) (*WhisperAggregation, error)

ReadWhisperAggregation ...

func (*WhisperAggregation) Match

Match find schema for metric

type WhisperAggregationItem

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

WhisperAggregationItem ...

func (*WhisperAggregationItem) AggregationMethod

func (wai *WhisperAggregationItem) AggregationMethod() whisper.AggregationMethod

AggregationMethod get aggregation method

func (*WhisperAggregationItem) Name

func (wai *WhisperAggregationItem) Name() string

Name get name of aggregation method

func (*WhisperAggregationItem) Pattern

func (wai *WhisperAggregationItem) Pattern() *regexp.Regexp

Pattern get aggregation pattern

func (*WhisperAggregationItem) XFilesFactor

func (wai *WhisperAggregationItem) XFilesFactor() float64

XFilesFactor get aggregation xFilesFactor

type WhisperSchemas

type WhisperSchemas []Schema

WhisperSchemas contains schema settings

func ReadWhisperSchemas

func ReadWhisperSchemas(filename string) (WhisperSchemas, error)

ReadWhisperSchemas reads and parses a storage-schemas.conf file and returns a sorted schemas structure see https://graphite.readthedocs.io/en/0.9.9/config-carbon.html#storage-schemas-conf

func (WhisperSchemas) Len

func (s WhisperSchemas) Len() int

func (WhisperSchemas) Less

func (s WhisperSchemas) Less(i, j int) bool

func (WhisperSchemas) Match

func (s WhisperSchemas) Match(metric string) (Schema, bool)

Match finds the schema for metric or returns false if none found

func (WhisperSchemas) Swap

func (s WhisperSchemas) Swap(i, j int)

Jump to

Keyboard shortcuts

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