Split PacketCount to Egress and Ingress

Also, 1 packet may be counted in N topologies, so you can't rely on the
sum of all packet counts across topologies having any relation to the
sampling data.
This commit is contained in:
Peter Bourgon
2015-08-03 14:58:41 +02:00
parent 0361b11b87
commit e1f7752a34
13 changed files with 131 additions and 111 deletions

View File

@@ -64,8 +64,11 @@ func MakeDetailedNode(r report.Report, n RenderableNode) DetailedNode {
if n.EdgeMetadata.MaxConnCountTCP != nil {
rows = append(rows, Row{"TCP connections", strconv.FormatUint(*n.EdgeMetadata.MaxConnCountTCP, 10), ""})
}
if n.EdgeMetadata.PacketCount != nil {
rows = append(rows, Row{"Packets", strconv.FormatUint(*n.EdgeMetadata.PacketCount, 10), ""})
if n.EdgeMetadata.EgressPacketCount != nil {
rows = append(rows, Row{"Egress packets", strconv.FormatUint(*n.EdgeMetadata.EgressPacketCount, 10), ""})
}
if n.EdgeMetadata.IngressPacketCount != nil {
rows = append(rows, Row{"Ingress packets", strconv.FormatUint(*n.EdgeMetadata.IngressPacketCount, 10), ""})
}
if n.EdgeMetadata.EgressByteCount != nil {
rows = append(rows, Row{"Egress bytes", strconv.FormatUint(*n.EdgeMetadata.EgressByteCount, 10), ""}) // TODO rate

View File

@@ -66,7 +66,7 @@ func TestMakeDetailedNode(t *testing.T) {
Numeric: true,
Rank: 100,
Rows: []render.Row{
{"Packets", "150", ""},
{"Egress packets", "150", ""},
{"Egress bytes", "1500", ""},
},
},

View File

@@ -55,8 +55,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(10),
EgressByteCount: newu64(100),
EgressPacketCount: newu64(10),
EgressByteCount: newu64(100),
},
},
ClientProcess2ID: {
@@ -73,8 +73,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(20),
EgressByteCount: newu64(200),
EgressPacketCount: newu64(20),
EgressByteCount: newu64(200),
},
},
ServerProcessID: {
@@ -97,8 +97,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(150),
EgressByteCount: newu64(1500),
EgressPacketCount: newu64(150),
EgressByteCount: newu64(1500),
},
},
nonContainerProcessID: {
@@ -137,8 +137,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(30),
EgressByteCount: newu64(300),
EgressPacketCount: newu64(30),
EgressByteCount: newu64(300),
},
},
"apache": {
@@ -160,8 +160,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(150),
EgressByteCount: newu64(1500),
EgressPacketCount: newu64(150),
EgressByteCount: newu64(1500),
},
},
"bash": {
@@ -200,8 +200,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(30),
EgressByteCount: newu64(300),
EgressPacketCount: newu64(30),
EgressByteCount: newu64(300),
},
},
test.ServerContainerID: {
@@ -219,8 +219,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(150),
EgressByteCount: newu64(1500),
EgressPacketCount: newu64(150),
EgressByteCount: newu64(1500),
},
},
uncontainedServerID: {
@@ -258,8 +258,8 @@ var (
),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(30),
EgressByteCount: newu64(300),
EgressPacketCount: newu64(30),
EgressByteCount: newu64(300),
},
},
test.ServerContainerImageName: {
@@ -277,8 +277,8 @@ var (
test.ServerHostNodeID),
NodeMetadata: report.MakeNodeMetadata(),
EdgeMetadata: report.EdgeMetadata{
PacketCount: newu64(150),
EgressByteCount: newu64(1500),
EgressPacketCount: newu64(150),
EgressByteCount: newu64(1500),
},
},
uncontainedServerID: {

View File

@@ -36,11 +36,11 @@ func TestReduceRender(t *testing.T) {
func TestReduceEdge(t *testing.T) {
renderer := render.Reduce([]render.Renderer{
mockRenderer{edgeMetadata: report.EdgeMetadata{PacketCount: newu64(1)}},
mockRenderer{edgeMetadata: report.EdgeMetadata{PacketCount: newu64(2)}},
mockRenderer{edgeMetadata: report.EdgeMetadata{EgressPacketCount: newu64(1)}},
mockRenderer{edgeMetadata: report.EdgeMetadata{EgressPacketCount: newu64(2)}},
})
want := report.EdgeMetadata{PacketCount: newu64(3)}
want := report.EdgeMetadata{EgressPacketCount: newu64(3)}
have := renderer.EdgeMetadata(report.MakeReport(), "", "")
if !reflect.DeepEqual(want, have) {
@@ -118,8 +118,8 @@ func TestMapEdge(t *testing.T) {
">bar": report.MakeIDList("foo"),
},
EdgeMetadatas: report.EdgeMetadatas{
"foo|bar": report.EdgeMetadata{PacketCount: newu64(1), EgressByteCount: newu64(2)},
"bar|foo": report.EdgeMetadata{PacketCount: newu64(3), EgressByteCount: newu64(4)},
"foo|bar": report.EdgeMetadata{EgressPacketCount: newu64(1), EgressByteCount: newu64(2)},
"bar|foo": report.EdgeMetadata{EgressPacketCount: newu64(3), EgressByteCount: newu64(4)},
},
}
}
@@ -140,8 +140,8 @@ func TestMapEdge(t *testing.T) {
}
if want, have := (report.EdgeMetadata{
PacketCount: newu64(1),
EgressByteCount: newu64(2),
EgressPacketCount: newu64(1),
EgressByteCount: newu64(2),
}), mapper.EdgeMetadata(report.MakeReport(), "_foo", "_bar"); !reflect.DeepEqual(want, have) {
t.Errorf("want %+v, have %+v", want, have)
}