add host to metric, replace '_' with '.'

closes #312
This commit is contained in:
JP 2015-10-23 08:07:48 -05:00 committed by Cameron Sparr
parent df96958fb8
commit 869483617b
1 changed files with 5 additions and 2 deletions

View File

@ -7,6 +7,7 @@ import (
"net/http" "net/http"
"net/url" "net/url"
"sort" "sort"
"strings"
"github.com/influxdb/influxdb/client/v2" "github.com/influxdb/influxdb/client/v2"
"github.com/influxdb/telegraf/duration" "github.com/influxdb/telegraf/duration"
@ -36,6 +37,7 @@ type TimeSeries struct {
type Metric struct { type Metric struct {
Metric string `json:"metric"` Metric string `json:"metric"`
Points [1]Point `json:"points"` Points [1]Point `json:"points"`
Host string `json:"host"`
Tags []string `json:"tags,omitempty"` Tags []string `json:"tags,omitempty"`
} }
@ -68,8 +70,9 @@ func (d *Datadog) Write(points []*client.Point) error {
} }
for index, pt := range points { for index, pt := range points {
metric := &Metric{ metric := &Metric{
Metric: pt.Name(), Metric: strings.Replace(pt.Name(), "_", ".", -1),
Tags: buildTags(pt.Tags()), Tags: buildTags(pt.Tags()),
Host: pt.Tags()["host"],
} }
if p, err := buildPoint(pt); err == nil { if p, err := buildPoint(pt); err == nil {
metric.Points[0] = p metric.Points[0] = p
@ -87,10 +90,10 @@ func (d *Datadog) Write(points []*client.Point) error {
req.Header.Add("Content-Type", "application/json") req.Header.Add("Content-Type", "application/json")
resp, err := d.client.Do(req) resp, err := d.client.Do(req)
defer resp.Body.Close()
if err != nil { if err != nil {
return fmt.Errorf("error POSTing metrics, %s\n", err.Error()) return fmt.Errorf("error POSTing metrics, %s\n", err.Error())
} }
defer resp.Body.Close()
if resp.StatusCode < 200 || resp.StatusCode > 209 { if resp.StatusCode < 200 || resp.StatusCode > 209 {
return fmt.Errorf("received bad status code, %d\n", resp.StatusCode) return fmt.Errorf("received bad status code, %d\n", resp.StatusCode)