diff --git a/agent/pkg/controllers/service_map_controller_test.go b/agent/pkg/controllers/service_map_controller_test.go index 45b8f8a27..c6b372406 100644 --- a/agent/pkg/controllers/service_map_controller_test.go +++ b/agent/pkg/controllers/service_map_controller_test.go @@ -102,13 +102,13 @@ func (s *ServiceMapControllerSuite) TestGet() { // response nodes aNode := servicemap.ServiceMapNode{ Id: 1, - Name: TCPEntryA.IP, + Name: TCPEntryA.Name, Entry: TCPEntryA, Count: 1, } bNode := servicemap.ServiceMapNode{ Id: 2, - Name: TCPEntryB.IP, + Name: TCPEntryB.Name, Entry: TCPEntryB, Count: 1, } diff --git a/agent/pkg/servicemap/servicemap.go b/agent/pkg/servicemap/servicemap.go index 0738c0727..3537e9855 100644 --- a/agent/pkg/servicemap/servicemap.go +++ b/agent/pkg/servicemap/servicemap.go @@ -172,20 +172,33 @@ func (s *serviceMap) NewTCPEntry(src *tapApi.TCP, dst *tapApi.TCP, p *tapApi.Pro return } - srcEntry := &entryData{ - key: key(src.IP), - entry: src, - } - if len(srcEntry.entry.Name) == 0 { + var srcEntry *entryData + var dstEntry *entryData + + if len(src.Name) == 0 { + srcEntry = &entryData{ + key: key(src.IP), + entry: src, + } srcEntry.entry.Name = UnresolvedNodeName + } else { + srcEntry = &entryData{ + key: key(src.Name), + entry: src, + } } - dstEntry := &entryData{ - key: key(dst.IP), - entry: dst, - } - if len(dstEntry.entry.Name) == 0 { + if len(dst.Name) == 0 { + dstEntry = &entryData{ + key: key(dst.IP), + entry: dst, + } dstEntry.entry.Name = UnresolvedNodeName + } else { + dstEntry = &entryData{ + key: key(dst.Name), + entry: dst, + } } s.addEdge(srcEntry, dstEntry, p) diff --git a/agent/pkg/servicemap/servicemap_test.go b/agent/pkg/servicemap/servicemap_test.go index 0372fbde2..9a0de04b6 100644 --- a/agent/pkg/servicemap/servicemap_test.go +++ b/agent/pkg/servicemap/servicemap_test.go @@ -268,9 +268,14 @@ func (s *ServiceMapEnabledSuite) TestServiceMap() { assert.LessOrEqual(node.Id, expectedNodeCount) // entry - // node.Name is the key of the node, key = entry.IP + // node.Name is the key of the node, key = entry.Name by default // entry.Name is the name of the service and could be unresolved - assert.Equal(node.Name, node.Entry.IP) + // when entry.Name is unresolved, key = entry.IP + if node.Entry.Name == UnresolvedNodeName { + assert.Equal(node.Name, node.Entry.IP) + } else { + assert.Equal(node.Name, node.Entry.Name) + } assert.Equal(Port, node.Entry.Port) assert.Equal(entryName, node.Entry.Name) @@ -320,16 +325,24 @@ func (s *ServiceMapEnabledSuite) TestServiceMap() { cdEdge := -1 acEdge := -1 var validateEdge = func(edge ServiceMapEdge, sourceEntryName string, destEntryName string, protocolName string, protocolCount int) { - // source + // source node assert.Contains(nodeIds, edge.Source.Id) assert.LessOrEqual(edge.Source.Id, expectedNodeCount) - assert.Equal(edge.Source.Name, edge.Source.Entry.IP) + if edge.Source.Entry.Name == UnresolvedNodeName { + assert.Equal(edge.Source.Name, edge.Source.Entry.IP) + } else { + assert.Equal(edge.Source.Name, edge.Source.Entry.Name) + } assert.Equal(sourceEntryName, edge.Source.Entry.Name) - // destination + // destination node assert.Contains(nodeIds, edge.Destination.Id) assert.LessOrEqual(edge.Destination.Id, expectedNodeCount) - assert.Equal(edge.Destination.Name, edge.Destination.Entry.IP) + if edge.Destination.Entry.Name == UnresolvedNodeName { + assert.Equal(edge.Destination.Name, edge.Destination.Entry.IP) + } else { + assert.Equal(edge.Destination.Name, edge.Destination.Entry.Name) + } assert.Equal(destEntryName, edge.Destination.Entry.Name) // protocol diff --git a/cli/config/configStruct.go b/cli/config/configStruct.go index 0c82546d0..a993e1616 100644 --- a/cli/config/configStruct.go +++ b/cli/config/configStruct.go @@ -38,7 +38,7 @@ type ConfigStruct struct { ConfigFilePath string `yaml:"config-path,omitempty" readonly:""` HeadlessMode bool `yaml:"headless" default:"false"` LogLevelStr string `yaml:"log-level,omitempty" default:"INFO" readonly:""` - ServiceMap bool `yaml:"service-map" default:"false"` + ServiceMap bool `yaml:"service-map" default:"true"` OAS bool `yaml:"oas,omitempty" default:"false" readonly:""` Elastic shared.ElasticConfig `yaml:"elastic"` } diff --git a/ui/src/components/ServiceMapModal/ServiceMapModal.tsx b/ui/src/components/ServiceMapModal/ServiceMapModal.tsx index ef46d082c..8e70d3529 100644 --- a/ui/src/components/ServiceMapModal/ServiceMapModal.tsx +++ b/ui/src/components/ServiceMapModal/ServiceMapModal.tsx @@ -10,8 +10,7 @@ import debounce from 'lodash/debounce'; import ServiceMapOptions from './ServiceMapOptions' import { useCommonStyles } from "../../helpers/commonStyle"; import refresh from "../assets/refresh.svg"; -import reset from "../assets/reset.svg"; -import close from "../assets/close.svg" +import close from "../assets/close.svg"; interface GraphData { nodes: Node[]; @@ -154,19 +153,6 @@ export const ServiceMapModal: React.FC = ({ isOpen, onOpen return () => setGraphData({ nodes: [], edges: [] }) }, [getServiceMapData]) - const resetServiceMap = debounce(async () => { - try { - const serviceMapResetResponse = await api.serviceMapReset(); - if (serviceMapResetResponse["status"] === "enabled") { - refreshServiceMap() - } - - } catch (ex) { - toast.error("An error occurred while resetting Mizu Service Map, see console for mode details"); - console.error(ex); - } - }, 500); - const refreshServiceMap = debounce(() => { getServiceMapData(); }, 500); @@ -192,16 +178,6 @@ export const ServiceMapModal: React.FC = ({ isOpen, onOpen {!isLoading &&
-