From 0a51064713638caefca5ae09f2abb7c4698a10a7 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Wed, 20 Apr 2016 17:11:22 +0100 Subject: [PATCH] Use reverse-resolved DNS info in the connections table. --- .../components/node-details/node-details-table.js | 3 ++- probe/endpoint/reporter.go | 11 ++++++----- render/detailed/connections.go | 12 +++++++++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/client/app/scripts/components/node-details/node-details-table.js b/client/app/scripts/components/node-details/node-details-table.js index 88dab6a95..7553def3a 100644 --- a/client/app/scripts/components/node-details/node-details-table.js +++ b/client/app/scripts/components/node-details/node-details-table.js @@ -153,7 +153,8 @@ export default class NodeDetailsTable extends React.Component { if (field) { if (field.valueType === 'metadata') { return ( - + {field.value} ); diff --git a/probe/endpoint/reporter.go b/probe/endpoint/reporter.go index c34ec1c21..d16e72a33 100644 --- a/probe/endpoint/reporter.go +++ b/probe/endpoint/reporter.go @@ -16,10 +16,11 @@ import ( // Node metadata keys. const ( - Addr = "addr" // typically IPv4 - Port = "port" - Conntracked = "conntracked" - Procspied = "procspied" + Addr = "addr" // typically IPv4 + Port = "port" + Conntracked = "conntracked" + Procspied = "procspied" + ReverseDNSNames = "reverse_dns_names" ) // Reporter generates Reports containing the Endpoint topology. @@ -182,7 +183,7 @@ func (r *Reporter) addConnection(rpt *report.Report, t fourTuple, extraFromNode, // In case we have a reverse resolution for the IP, we can use it for // the name... if toNames, err := r.reverseResolver.get(t.toAddr); err == nil { - toNode = toNode.WithSet("name", report.MakeStringSet(toNames...)) + toNode = toNode.WithSet(ReverseDNSNames, report.MakeStringSet(toNames...)) } if extraFromNode != nil { diff --git a/render/detailed/connections.go b/render/detailed/connections.go index 09203d83a..61e62fa89 100644 --- a/render/detailed/connections.go +++ b/render/detailed/connections.go @@ -5,6 +5,7 @@ import ( "sort" "strconv" + "github.com/weaveworks/scope/probe/endpoint" "github.com/weaveworks/scope/render" "github.com/weaveworks/scope/report" ) @@ -94,6 +95,8 @@ func incomingConnectionsSummary(topologyID string, r report.Report, n report.Nod port: port, } if isInternetNode(n) { + endpointNode := r.Endpoint.Nodes[localEndpointID] + key.localNode = &endpointNode key.localAddr = localAddr } counts[key] = counts[key] + 1 @@ -144,6 +147,8 @@ func outgoingConnectionsSummary(topologyID string, r report.Report, n report.Nod port: port, } if isInternetNode(n) { + endpointNode := r.Endpoint.Nodes[remoteEndpointID] + key.localNode = &endpointNode key.localAddr = localAddr } counts[key] = counts[key] + 1 @@ -206,10 +211,15 @@ func connectionRows(r report.Report, in map[connection]int, includeLocal bool) [ connection.Linkable = false } if includeLocal { + // Does localNode have a DNS record in it? + label := row.localAddr + if set, ok := row.localNode.Sets.Lookup(endpoint.ReverseDNSNames); ok && len(set) > 0 { + label = set[0] + } connection.Metadata = append(connection.Metadata, report.MetadataRow{ ID: "foo", - Value: row.localAddr, + Value: label, Datatype: number, }) }