Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AggregatesLookup = map[string]Aggregate{ "min": AggregateMin, "max": AggregateMax, "median": AggregateMedian, "avg": AggregateAverage, "count": AggregateCount, "sum": AggregateSum, }
Functions ¶
This section is empty.
Types ¶
type Counter ¶
Counter is an accumulator
func NewCounter ¶
NewCounter generates and returns a new Counter.
func (*Counter) Combine ¶
Combine merges the values seen with another set (marshalled as a byte slice)
func (*Counter) Export ¶
func (c *Counter) Export() (JSONMetric, error)
Export converts a Counter into a JSONMetric which reports the rate.
type DDMetric ¶
type DDMetric struct {
Name string `json:"metric"`
Value [1][2]float64 `json:"points"`
Tags []string `json:"tags,omitempty"`
MetricType string `json:"type"`
Hostname string `json:"host,omitempty"`
DeviceName string `json:"device_name,omitempty"`
Interval int32 `json:"interval,omitempty"`
}
DDMetric is a data structure that represents the JSON that Datadog wants when posting to the API
type Gauge ¶
Gauge retains whatever the last value was.
type Histo ¶
type Histo struct {
Name string
Tags []string
Value *tdigest.MergingDigest
// these values are computed from only the samples that came through this
// veneur instance, ignoring any histograms merged from elsewhere
// we separate them because they're easy to aggregate on the backend without
// loss of granularity, and having host-local information on them might be
// useful
LocalWeight float64
LocalMin float64
LocalMax float64
LocalSum float64
}
Histo is a collection of values that generates max, min, count, and percentiles over time.
func (*Histo) Combine ¶
Combine merges the values of a histogram with another histogram (marshalled as a byte slice)
func (*Histo) Export ¶
func (h *Histo) Export() (JSONMetric, error)
Export converts a Histogram into a JSONMetric
type HistogramAggregates ¶
type JSONMetric ¶
type JSONMetric struct {
MetricKey
Tags []string `json:"tags"`
// the Value is an internal representation of the metric's contents, eg a
// gob-encoded histogram or hyperloglog.
Value []byte `json:"value"`
}
JSONMetric is used to represent a metric that can be remarshaled with its internal state intact. It is used to send metrics from one Veneur to another.
type MetricKey ¶
type MetricKey struct {
Name string `json:"name"`
Type string `json:"type"`
JoinedTags string `json:"tagstring"` // tags in deterministic order, joined with commas
}
MetricKey is a struct used to key the metrics into the worker's map. All fields must be comparable types.
type MetricScope ¶
type MetricScope int
const ( MixedScope MetricScope = iota LocalOnly GlobalOnly )
type Set ¶
type Set struct {
Name string
Tags []string
Hll *hyperloglog.HyperLogLogPlus
}
Set is a list of unique values seen.
func (*Set) Export ¶
func (s *Set) Export() (JSONMetric, error)
Export converts a Set into a JSONMetric which reports the Tags in the set.
type SplitBytes ¶
type SplitBytes struct {
// contains filtered or unexported fields
}
SplitBytes iterates over a byte buffer, returning chunks split by a given delimiter byte. It does not perform any allocations, and does not modify the buffer it is given. It is not safe for use by concurrent goroutines.
sb := NewSplitBytes(buf, '\n')
for sb.Next() {
fmt.Printf("%q\n", sb.Chunk())
}
The sequence of chunks returned by SplitBytes is equivalent to calling bytes.Split, except without allocating an intermediate slice.
func NewSplitBytes ¶
func NewSplitBytes(buf []byte, delim byte) *SplitBytes
NewSplitBytes initializes a SplitBytes struct with the provided buffer and delimiter.
func (*SplitBytes) Next ¶
func (sb *SplitBytes) Next() bool
Next advances SplitBytes to the next chunk, returning true if a new chunk actually exists and false otherwise.
type UDPEvent ¶
type UDPEvent struct {
Title string `json:"msg_title"`
Text string `json:"msg_text"`
Timestamp int64 `json:"timestamp,omitempty"` // represented as a unix epoch
Hostname string `json:"host,omitempty"`
Aggregation string `json:"aggregation_key,omitempty"`
Priority string `json:"priority,omitempty"`
Source string `json:"source_type_name,omitempty"`
AlertLevel string `json:"alert_type,omitempty"`
Tags []string `json:"tags,omitempty"`
}
UDPEvent represents the structure of datadog's undocumented /intake endpoint
func ParseEvent ¶
ParseEvent parses a packet that represents a UDPEvent.
type UDPMetric ¶
type UDPMetric struct {
MetricKey
Digest uint32
Value interface{}
SampleRate float32
Tags []string
Scope MetricScope
}
UDPMetric is a representation of the sample provided by a client. The tag list should be deterministically ordered.
func ParseMetric ¶
ParseMetric converts the incoming packet from Datadog DogStatsD Datagram format in to a Metric. http://docs.datadoghq.com/guides/dogstatsd/#datagram-format
type UDPServiceCheck ¶
type UDPServiceCheck struct {
Name string `json:"check"`
Status int `json:"status"`
Hostname string `json:"host_name"`
Timestamp int64 `json:"timestamp,omitempty"` // represented as a unix epoch
Tags []string `json:"tags,omitempty"`
Message string `json:"message,omitempty"`
}
UDPServiceCheck is a representation of the service check.
func ParseServiceCheck ¶
func ParseServiceCheck(packet []byte) (*UDPServiceCheck, error)
ParseServiceCheck parses a packet that represents a UDPServiceCheck.