Skip to content
Snippets Groups Projects
Commit d449833d authored by Jan Willem Janssen's avatar Jan Willem Janssen Committed by Daniel Nelson
Browse files

Fix parsing of SHM remotes in ntpq input (#3163)

parent 58751fa4
No related branches found
No related tags found
No related merge requests found
...@@ -69,7 +69,7 @@ func (n *NTPQ) Gather(acc telegraf.Accumulator) error { ...@@ -69,7 +69,7 @@ func (n *NTPQ) Gather(acc telegraf.Accumulator) error {
// Due to problems with a parsing, we have to use regexp expression in order // Due to problems with a parsing, we have to use regexp expression in order
// to remove string that starts from '(' and ends with space // to remove string that starts from '(' and ends with space
// see: https://github.com/influxdata/telegraf/issues/2386 // see: https://github.com/influxdata/telegraf/issues/2386
reg, err := regexp.Compile("\\([\\S]*") reg, err := regexp.Compile("\\s+\\([\\S]*")
if err != nil { if err != nil {
return err return err
} }
......
...@@ -260,6 +260,57 @@ func TestParserNTPQ(t *testing.T) { ...@@ -260,6 +260,57 @@ func TestParserNTPQ(t *testing.T) {
} }
acc := testutil.Accumulator{} acc := testutil.Accumulator{}
assert.NoError(t, acc.GatherError(n.Gather)) assert.NoError(t, acc.GatherError(n.Gather))
fields := map[string]interface{}{
"poll": int64(64),
"when": int64(60),
"reach": int64(377),
"delay": float64(0.0),
"offset": float64(0.045),
"jitter": float64(1.012),
}
tags := map[string]string{
"remote": "SHM(0)",
"state_prefix": "*",
"refid": ".PPS.",
"stratum": "1",
"type": "u",
}
acc.AssertContainsTaggedFields(t, "ntpq", fields, tags)
fields = map[string]interface{}{
"poll": int64(128),
"when": int64(121),
"reach": int64(377),
"delay": float64(0.0),
"offset": float64(10.105),
"jitter": float64(2.012),
}
tags = map[string]string{
"remote": "SHM(1)",
"state_prefix": "-",
"refid": ".GPS.",
"stratum": "1",
"type": "u",
}
acc.AssertContainsTaggedFields(t, "ntpq", fields, tags)
fields = map[string]interface{}{
"poll": int64(1024),
"when": int64(10),
"reach": int64(377),
"delay": float64(1.748),
"offset": float64(0.373),
"jitter": float64(0.101),
}
tags = map[string]string{
"remote": "37.58.57.238",
"state_prefix": "+",
"refid": "192.53.103.103",
"stratum": "2",
"type": "u",
}
acc.AssertContainsTaggedFields(t, "ntpq", fields, tags)
} }
func TestMultiNTPQ(t *testing.T) { func TestMultiNTPQ(t *testing.T) {
...@@ -480,7 +531,9 @@ var multiNTPQ = ` remote refid st t when poll reach delay ...@@ -480,7 +531,9 @@ var multiNTPQ = ` remote refid st t when poll reach delay
` `
var multiParserNTPQ = ` remote refid st t when poll reach delay offset jitter var multiParserNTPQ = ` remote refid st t when poll reach delay offset jitter
============================================================================== ==============================================================================
*SHM(0) .PPS. 1 u 60 64 377 0.000 0.045 1.012
+37.58.57.238 (d 192.53.103.103 2 u 10 1024 377 1.748 0.373 0.101 +37.58.57.238 (d 192.53.103.103 2 u 10 1024 377 1.748 0.373 0.101
+37.58.57.238 (domain) 192.53.103.103 2 u 10 1024 377 1.748 0.373 0.101 +37.58.57.238 (domain) 192.53.103.103 2 u 10 1024 377 1.748 0.373 0.101
+37.58.57.238 ( 192.53.103.103 2 u 10 1024 377 1.748 0.373 0.101 +37.58.57.238 ( 192.53.103.103 2 u 10 1024 377 1.748 0.373 0.101
-SHM(1) .GPS. 1 u 121 128 377 0.000 10.105 2.012
` `
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment