mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-15 16:30:55 +01:00
Datadog - Add device as a tag if it's present as a field in the series object (#3431)
* Datadog - Add device as a tag if it's present as a field in the series object * address PR comments
This commit is contained in:
parent
f98751bfc3
commit
84cfe4fcaf
@ -56,6 +56,12 @@ func insertRows(at *auth.Token, series []parser.Series, extraLabels []prompbmars
|
|||||||
Name: "host",
|
Name: "host",
|
||||||
Value: ss.Host,
|
Value: ss.Host,
|
||||||
})
|
})
|
||||||
|
if ss.Device != "" {
|
||||||
|
labels = append(labels, prompbmarshal.Label{
|
||||||
|
Name: "device",
|
||||||
|
Value: ss.Device,
|
||||||
|
})
|
||||||
|
}
|
||||||
for _, tag := range ss.Tags {
|
for _, tag := range ss.Tags {
|
||||||
name, value := parser.SplitTag(tag)
|
name, value := parser.SplitTag(tag)
|
||||||
if name == "host" {
|
if name == "host" {
|
||||||
|
@ -56,6 +56,9 @@ func insertRows(at *auth.Token, series []parser.Series, extraLabels []prompbmars
|
|||||||
ctx.Labels = ctx.Labels[:0]
|
ctx.Labels = ctx.Labels[:0]
|
||||||
ctx.AddLabel("", ss.Metric)
|
ctx.AddLabel("", ss.Metric)
|
||||||
ctx.AddLabel("host", ss.Host)
|
ctx.AddLabel("host", ss.Host)
|
||||||
|
if ss.Device != "" {
|
||||||
|
ctx.AddLabel("device", ss.Device)
|
||||||
|
}
|
||||||
for _, tag := range ss.Tags {
|
for _, tag := range ss.Tags {
|
||||||
name, value := parser.SplitTag(tag)
|
name, value := parser.SplitTag(tag)
|
||||||
if name == "host" {
|
if name == "host" {
|
||||||
|
@ -67,6 +67,10 @@ type Series struct {
|
|||||||
Metric string `json:"metric"`
|
Metric string `json:"metric"`
|
||||||
Points []Point `json:"points"`
|
Points []Point `json:"points"`
|
||||||
Tags []string `json:"tags"`
|
Tags []string `json:"tags"`
|
||||||
|
// The device field does not appear in the datadog docs, but datadog-agent does use it.
|
||||||
|
// Datadog agent (v7 at least), removes the tag "device" and adds it as its own field. Why? That I don't know!
|
||||||
|
// https://github.com/DataDog/datadog-agent/blob/0ada7a97fed6727838a6f4d9c87123d2aafde735/pkg/metrics/series.go#L84-L105
|
||||||
|
Device string `json:"device"`
|
||||||
|
|
||||||
// Do not decode Type, since it isn't used by VictoriaMetrics
|
// Do not decode Type, since it isn't used by VictoriaMetrics
|
||||||
// Type string `json:"type"`
|
// Type string `json:"type"`
|
||||||
|
@ -56,6 +56,7 @@ func TestRequestUnmarshalSuccess(t *testing.T) {
|
|||||||
"host": "test.example.com",
|
"host": "test.example.com",
|
||||||
"interval": 20,
|
"interval": 20,
|
||||||
"metric": "system.load.1",
|
"metric": "system.load.1",
|
||||||
|
"device": "/dev/sda",
|
||||||
"points": [[
|
"points": [[
|
||||||
1575317847,
|
1575317847,
|
||||||
0.5
|
0.5
|
||||||
@ -71,6 +72,7 @@ func TestRequestUnmarshalSuccess(t *testing.T) {
|
|||||||
Series: []Series{{
|
Series: []Series{{
|
||||||
Host: "test.example.com",
|
Host: "test.example.com",
|
||||||
Metric: "system.load.1",
|
Metric: "system.load.1",
|
||||||
|
Device: "/dev/sda",
|
||||||
Points: []Point{{
|
Points: []Point{{
|
||||||
1575317847,
|
1575317847,
|
||||||
0.5,
|
0.5,
|
||||||
|
Loading…
Reference in New Issue
Block a user