mirror of
https://github.com/weaveworks/scope.git
synced 2026-08-23 22:36:24 +00:00
Review feedback
This commit is contained in:
+1
-1
@@ -112,7 +112,7 @@ func ShortLivedConnectionJoin(r Renderer, toIPs func(report.Node) []string) Rend
|
||||
return report.Nodes{}
|
||||
}
|
||||
if ip := net.ParseIP(addr); ip != nil && !local.Contains(ip) {
|
||||
node := toInternetNode(m)
|
||||
node := externalNode(m)
|
||||
return report.Nodes{node.ID: node}
|
||||
}
|
||||
|
||||
|
||||
+10
-4
@@ -2,6 +2,7 @@ package render
|
||||
|
||||
import (
|
||||
"net"
|
||||
"sort"
|
||||
|
||||
"github.com/weaveworks/scope/probe/docker"
|
||||
"github.com/weaveworks/scope/probe/endpoint"
|
||||
@@ -97,7 +98,7 @@ func MapEndpoint2Pseudo(n report.Node, local report.Networks) report.Nodes {
|
||||
if ip := net.ParseIP(addr); ip != nil && !local.Contains(ip) {
|
||||
// If the dstNodeAddr is not in a network local to this report, we emit an
|
||||
// external pseudoNode
|
||||
node = toInternetNode(n)
|
||||
node = externalNode(n)
|
||||
} else {
|
||||
// due to https://github.com/weaveworks/scope/issues/1323 we are dropping
|
||||
// all non-internet pseudo nodes for now.
|
||||
@@ -157,11 +158,16 @@ func MapProcess2Name(n report.Node, _ report.Networks) report.Nodes {
|
||||
return report.Nodes{name: node}
|
||||
}
|
||||
|
||||
func toInternetNode(m report.Node) report.Node {
|
||||
func externalNode(m report.Node) report.Node {
|
||||
// First, check if it's a known service and emit a
|
||||
// a specific node if it is
|
||||
hostnames, _ := m.Sets.Lookup(endpoint.ReverseDNSNames)
|
||||
for _, hostname := range hostnames {
|
||||
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...) {
|
||||
if isKnownService(hostname) {
|
||||
return NewDerivedPseudoNode(ServiceNodeIDPrefix+hostname, m)
|
||||
}
|
||||
|
||||
@@ -9,26 +9,27 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
// ServiceNodeIDPrefix is how the ID all service pseudo nodes begin
|
||||
// ServiceNodeIDPrefix is how the ID of all service pseudo nodes begin
|
||||
ServiceNodeIDPrefix = "service-"
|
||||
|
||||
knownServicesMatchers = []*regexp.Regexp{
|
||||
knownServiceMatchers = []*regexp.Regexp{
|
||||
// See http://docs.aws.amazon.com/general/latest/gr/rande.html for fainer grained
|
||||
// details
|
||||
regexp.MustCompile(`^.+\.amazonaws\.com$`),
|
||||
regexp.MustCompile(`^.+\.googleapis\.com$`),
|
||||
}
|
||||
|
||||
knownServicesExcluder = []*regexp.Regexp{
|
||||
knownServiceExcluders = []*regexp.Regexp{
|
||||
// We exclude ec2 machines because they are too generic
|
||||
// and having separate nodes for them makes visualizations worse
|
||||
regexp.MustCompile(`^ec2.*\.amazonaws\.com$`),
|
||||
}
|
||||
)
|
||||
|
||||
// TODO: Make it user-customizable https://github.com/weaveworks/scope/issues/1876
|
||||
func isKnownService(hostname string) bool {
|
||||
foundMatch := false
|
||||
for _, matcher := range knownServicesMatchers {
|
||||
for _, matcher := range knownServiceMatchers {
|
||||
if matcher.MatchString(hostname) {
|
||||
foundMatch = true
|
||||
break
|
||||
@@ -38,7 +39,7 @@ func isKnownService(hostname string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, excluder := range knownServicesExcluder {
|
||||
for _, excluder := range knownServiceExcluders {
|
||||
if excluder.MatchString(hostname) {
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user