Skip to content

Commit

Permalink
Update documentation for Gauge & Counters
Browse files Browse the repository at this point in the history
  • Loading branch information
sparrc committed Sep 5, 2016
1 parent b18d375 commit 54c9ba7
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 7 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Features

- [#1694](https://github.com/influxdata/telegraf/pull/1694): Adding Gauge and Counter metric types.
- [#1606](https://github.com/influxdata/telegraf/pull/1606): Remove carraige returns from exec plugin output on Windows
- [#1674](https://github.com/influxdata/telegraf/issues/1674): elasticsearch input: configurable timeout.
- [#1607](https://github.com/influxdata/telegraf/pull/1607): Massage metric names in Instrumental output plugin
Expand Down
13 changes: 10 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Assuming you can already build the project, run these in the telegraf directory:

1. `go get github.com/sparrc/gdm`
1. `gdm restore`
1. `gdm save`
1. `GOOS=linux gdm save`

## Input Plugins

Expand Down Expand Up @@ -84,9 +84,9 @@ func (s *Simple) SampleConfig() string {

func (s *Simple) Gather(acc telegraf.Accumulator) error {
if s.Ok {
acc.Add("state", "pretty good", nil)
acc.AddFields("state", map[string]interface{}{"value": "pretty good"}, nil)
} else {
acc.Add("state", "not great", nil)
acc.AddFields("state", map[string]interface{}{"value": "not great"}, nil)
}

return nil
Expand All @@ -97,6 +97,13 @@ func init() {
}
```

## Adding Typed Metrics

In addition the the `AddFields` function, the accumulator also supports an
`AddGauge` and `AddCounter` function. These functions are for adding _typed_
metrics. Metric types are ignored for the InfluxDB output, but can be used
for other outputs, such as [prometheus](https://prometheus.io/docs/concepts/metric_types/).

## Input Plugins Accepting Arbitrary Data Formats

Some input plugins (such as
Expand Down
12 changes: 8 additions & 4 deletions accumulator.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@ package telegraf

import "time"

// Accumulator is an interface for "accumulating" metrics from input plugin(s).
// The metrics are sent down a channel shared between all input plugins and then
// flushed on the configured flush_interval.
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".
// Create a point with a value, decorating it with tags
// NOTE: tags is expected to be owned by the caller, don't mutate
// it after passing to Add.
Expand All @@ -11,15 +17,13 @@ type Accumulator interface {
tags map[string]string,
t ...time.Time)

// AddGauge is the same as AddFields, but will add the metric as a "Gauge"
// type
// 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 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,
Expand Down

0 comments on commit 54c9ba7

Please sign in to comment.