Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Accumulator ¶
type Accumulator interface { // AddFields adds a metric to the accumulator with the given measurement // name, fields, and tags (and timestamp). If a timestamp is not provided, // then the accumulator sets it to "now". AddFields(measurement string, fields map[string]interface{}, tags map[string]string, t ...time.Time) // AddGauge is the same as AddFields, but will add the metric as a "Gauge" type AddGauge(measurement string, fields map[string]interface{}, tags map[string]string, t ...time.Time) // AddCounter is the same as AddFields, but will add the metric as a "Counter" type AddCounter(measurement string, fields map[string]interface{}, tags map[string]string, t ...time.Time) // AddSummary is the same as AddFields, but will add the metric as a "Summary" type AddSummary(measurement string, fields map[string]interface{}, tags map[string]string, t ...time.Time) // AddHistogram is the same as AddFields, but will add the metric as a "Histogram" type AddHistogram(measurement string, fields map[string]interface{}, tags map[string]string, t ...time.Time) // AddMetric adds an metric to the accumulator. AddMetric(Metric) // SetPrecision takes two time.Duration objects. If the first is non-zero, // it sets that as the precision. Otherwise, it takes the second argument // as the order of time that the metrics should be rounded to, with the // maximum being 1s. SetPrecision(precision, interval time.Duration) // Report an error. AddError(err error) // Upgrade to a TrackingAccumulator with space for maxTracked // metrics/batches. WithTracking(maxTracked int) TrackingAccumulator }
Accumulator allows adding metrics to the processing flow.
type AggregatingOutput ¶
type AggregatingOutput interface { Output // Add the metric to the aggregator Add(in Metric) // Push returns the aggregated metrics and is called every flush interval. Push() []Metric // Reset signals the the aggregator period is completed. Reset() }
AggregatingOutput adds aggregating functionality to an Output. May be used if the Output only accepts a fixed set of aggregations over a time period. These functions may be called concurrently to the Write function.
type DeliveryInfo ¶
type DeliveryInfo interface { // ID is the TrackingID ID() TrackingID // Delivered returns true if the metric was processed successfully. Delivered() bool }
DeliveryInfo provides the results of a delivered metric group.
type Metric ¶
type Metric interface { // Getting data structure functions Name() string Tags() map[string]string TagList() []*Tag Fields() map[string]interface{} FieldList() []*Field Time() time.Time Type() ValueType // Name functions SetName(name string) AddPrefix(prefix string) AddSuffix(suffix string) // Tag functions GetTag(key string) (string, bool) HasTag(key string) bool AddTag(key, value string) RemoveTag(key string) // Field functions GetField(key string) (interface{}, bool) HasField(key string) bool AddField(key string, value interface{}) RemoveField(key string) SetTime(t time.Time) // HashID returns an unique identifier for the series. HashID() uint64 // Copy returns a deep copy of the Metric. Copy() Metric // Accept marks the metric as processed successfully and written to an // output. Accept() // Reject marks the metric as processed unsuccessfully. Reject() // Drop marks the metric as processed successfully without being written // to any output. Drop() // Mark Metric as an aggregate SetAggregate(bool) IsAggregate() bool }
type Output ¶
type Output interface { // Connect to the Output Connect() error // Close any connections to the Output Close() error // Description returns a one-sentence description on the Output Description() string // SampleConfig returns the default configuration of the Output SampleConfig() string // Write takes in group of points to be written to the Output Write(metrics []Metric) error }
type TrackingAccumulator ¶
type TrackingAccumulator interface { Accumulator // Add the Metric and arrange for tracking feedback after processing.. AddTrackingMetric(m Metric) TrackingID // Add a group of Metrics and arrange for a signal when the group has been // processed. AddTrackingMetricGroup(group []Metric) TrackingID // Delivered returns a channel that will contain the tracking results. Delivered() <-chan DeliveryInfo }
TrackingAccumulator is an Accumulator that provides a signal when the metric has been fully processed. Sending more metrics than the accumulator has been allocated for without reading status from the Accepted or Rejected channels is an error.
Click to show internal directories.
Click to hide internal directories.