mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-21 22:36:39 +00:00
show forward DNS name for internet addresses
...if available. Follow-up to #1863.
This commit is contained in:
@@ -5,7 +5,6 @@ import (
|
||||
"sort"
|
||||
"strconv"
|
||||
|
||||
"github.com/weaveworks/scope/probe/endpoint"
|
||||
"github.com/weaveworks/scope/render"
|
||||
"github.com/weaveworks/scope/report"
|
||||
)
|
||||
@@ -113,12 +112,10 @@ func internetAddr(node report.Node, ep report.Node) (string, bool) {
|
||||
if !ok {
|
||||
return "", false
|
||||
}
|
||||
if set, ok := ep.Sets.Lookup(endpoint.ReverseDNSNames); ok && len(set) > 0 {
|
||||
// TODO We show just one of the names, selected rather
|
||||
// abitrarily. We don't have space to show all (except in the
|
||||
// tooltip perhaps), but should think of better strategies for
|
||||
// choosing the name to display.
|
||||
addr = fmt.Sprintf("%s (%s)", set[0], addr)
|
||||
if names := render.DNSNames(ep); len(names) > 0 {
|
||||
// we show the "most important" name only, since we don't have
|
||||
// space for more
|
||||
addr = fmt.Sprintf("%s (%s)", names[0], addr)
|
||||
}
|
||||
return addr, true
|
||||
}
|
||||
|
||||
@@ -158,24 +158,31 @@ func MapProcess2Name(n report.Node, _ report.Networks) report.Nodes {
|
||||
return report.Nodes{name: node}
|
||||
}
|
||||
|
||||
func externalNode(m report.Node) report.Node {
|
||||
func externalNode(n report.Node) report.Node {
|
||||
// First, check if it's a known service and emit a
|
||||
// a specific node if it is
|
||||
snoopedHostnames, _ := m.Sets.Lookup(endpoint.SnoopedDNSNames)
|
||||
reverseHostnames, _ := m.Sets.Lookup(endpoint.ReverseDNSNames)
|
||||
// Sort the names to make the lookup more deterministic
|
||||
sort.StringSlice(snoopedHostnames).Sort()
|
||||
sort.StringSlice(reverseHostnames).Sort()
|
||||
// Intentionally prioritize snooped hostnames
|
||||
for _, hostname := range append(snoopedHostnames, reverseHostnames...) {
|
||||
for _, hostname := range DNSNames(n) {
|
||||
if isKnownService(hostname) {
|
||||
return NewDerivedPseudoNode(ServiceNodeIDPrefix+hostname, m)
|
||||
return NewDerivedPseudoNode(ServiceNodeIDPrefix+hostname, n)
|
||||
}
|
||||
}
|
||||
|
||||
// emit one internet node for incoming, one for outgoing
|
||||
if len(m.Adjacency) > 0 {
|
||||
return NewDerivedPseudoNode(IncomingInternetID, m)
|
||||
if len(n.Adjacency) > 0 {
|
||||
return NewDerivedPseudoNode(IncomingInternetID, n)
|
||||
}
|
||||
return NewDerivedPseudoNode(OutgoingInternetID, m)
|
||||
return NewDerivedPseudoNode(OutgoingInternetID, n)
|
||||
}
|
||||
|
||||
// DNSNames returns a prioritized list of snooped and reverse-resolved
|
||||
// DNS names associated with node n.
|
||||
func DNSNames(n report.Node) []string {
|
||||
snoopedNames, _ := n.Sets.Lookup(endpoint.SnoopedDNSNames)
|
||||
reverseNames, _ := n.Sets.Lookup(endpoint.ReverseDNSNames)
|
||||
// sort the names, to make selection for display more
|
||||
// deterministic
|
||||
sort.StringSlice(snoopedNames).Sort()
|
||||
sort.StringSlice(reverseNames).Sort()
|
||||
// prioritize snooped names
|
||||
return append(snoopedNames, reverseNames...)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user