fix(inputs.dns_query): Fill out additional record fields (#14979)
This commit is contained in:
parent
7ce22b2490
commit
70e2ab6c5b
|
|
@ -155,6 +155,20 @@ func (d *DNSQuery) query(domain string, server string) (map[string]interface{},
|
|||
tags["result"] = "success"
|
||||
fields["result_code"] = uint64(Success)
|
||||
|
||||
// Fill out custom fields for specific record types
|
||||
for _, record := range r.Answer {
|
||||
switch x := record.(type) {
|
||||
case *dns.MX:
|
||||
fields["preference"] = x.Preference
|
||||
case *dns.SOA:
|
||||
fields["serial"] = x.Serial
|
||||
fields["refresh"] = x.Refresh
|
||||
fields["retry"] = x.Retry
|
||||
fields["expire"] = x.Expire
|
||||
fields["minttl"] = x.Minttl
|
||||
}
|
||||
}
|
||||
|
||||
if d.fieldEnabled["first_ip"] {
|
||||
for _, record := range r.Answer {
|
||||
if ip, found := extractIP(record); found {
|
||||
|
|
|
|||
|
|
@ -57,6 +57,9 @@ func TestGatheringMxRecord(t *testing.T) {
|
|||
queryTime, ok := m.Fields["query_time_ms"].(float64)
|
||||
require.True(t, ok)
|
||||
require.NotEqual(t, float64(0), queryTime)
|
||||
preference, ok := m.Fields["preference"].(uint16)
|
||||
require.True(t, ok)
|
||||
require.NotEqual(t, 0, preference)
|
||||
}
|
||||
|
||||
func TestGatheringRootDomain(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue