whisper

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2017 License: MIT, BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Overview

Package whisper implements Graphite's Whisper database format

Index

Constants

View Source
const (
	IntSize         = 4
	FloatSize       = 4
	Float64Size     = 8
	PointSize       = 12
	MetadataSize    = 16
	ArchiveInfoSize = 12
)
View Source
const (
	Seconds = 1
	Minutes = 60
	Hours   = 3600
	Days    = 86400
	Weeks   = 86400 * 7
	Years   = 86400 * 365
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AggregationMethod

type AggregationMethod int
const (
	Average AggregationMethod = iota + 1
	Sum
	Last
	Max
	Min
)

type Retention

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

A retention level.

Retention levels describe a given archive in the database. How detailed it is and how far back it records.

func ParseRetentionDef

func ParseRetentionDef(retentionDef string) (*Retention, error)

Parse a retention definition as you would find in the storage-schemas.conf of a Carbon install. Note that this only parses a single retention definition, if you have multiple definitions (separated by a comma) you will have to split them yourself.

ParseRetentionDef("10s:14d") Retention{10, 120960}

See: http://graphite.readthedocs.org/en/1.0/config-carbon.html#storage-schemas-conf

func (*Retention) MaxRetention

func (retention *Retention) MaxRetention() int

func (*Retention) NumberOfPoints

func (retention *Retention) NumberOfPoints() int

func (*Retention) SecondsPerPoint

func (retention *Retention) SecondsPerPoint() int

func (*Retention) Size

func (retention *Retention) Size() int

type Retentions

type Retentions []*Retention

func ParseRetentionDefs

func ParseRetentionDefs(retentionDefs string) (Retentions, error)

func (Retentions) Len

func (r Retentions) Len() int

func (Retentions) Swap

func (r Retentions) Swap(i, j int)

type RetentionsByPrecision

type RetentionsByPrecision struct{ Retentions }

func (RetentionsByPrecision) Iterator

func (r RetentionsByPrecision) Iterator() Retentions

func (RetentionsByPrecision) Less

func (r RetentionsByPrecision) Less(i, j int) bool

type TimeSeries

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

func (*TimeSeries) FromTime

func (ts *TimeSeries) FromTime() int

func (*TimeSeries) Points

func (ts *TimeSeries) Points() []*TimeSeriesPoint

func (*TimeSeries) Step

func (ts *TimeSeries) Step() int

func (*TimeSeries) String

func (ts *TimeSeries) String() string

func (*TimeSeries) UntilTime

func (ts *TimeSeries) UntilTime() int

func (*TimeSeries) Values

func (ts *TimeSeries) Values() []float64

type TimeSeriesPoint

type TimeSeriesPoint struct {
	Time  int
	Value float64
}

type Whisper

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

Represents a Whisper database file.

func Create

func Create(path string, retentions Retentions, aggregationMethod AggregationMethod, xFilesFactor float32) (whisper *Whisper, err error)

Create a new Whisper database file and write it's header.

func Open

func Open(path string) (whisper *Whisper, err error)

Open an existing Whisper database and read it's header

func (*Whisper) Close

func (whisper *Whisper) Close()

Close the whisper file

func (*Whisper) Fetch

func (whisper *Whisper) Fetch(fromTime, untilTime int) (timeSeries *TimeSeries, err error)

Fetch a TimeSeries for a given time span from the file.

func (*Whisper) MetadataSize

func (whisper *Whisper) MetadataSize() int

Calculate the number of bytes the metadata section will be.

func (*Whisper) Retentions

func (whisper *Whisper) Retentions() (retentions Retentions)

Retentions returns a Retentions type which lists each archive's retention in this Whisper file. A deep copy so that the internal data structure remains safe.

func (*Whisper) Size

func (whisper *Whisper) Size() int

Calculate the total number of bytes the Whisper file should be according to the metadata.

func (*Whisper) StartTime

func (whisper *Whisper) StartTime() int

Calculate the starting time for a whisper db.

func (*Whisper) Update

func (whisper *Whisper) Update(value float64, timestamp int) (err error)

Update a value in the database.

If the timestamp is in the future or outside of the maximum retention it will fail immediately.

func (*Whisper) UpdateMany

func (whisper *Whisper) UpdateMany(points []*TimeSeriesPoint)

Jump to

Keyboard shortcuts

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