Skip to content

Commit 8f67f64

Browse files
dklyleobedmr
authored andcommitted
Support multiple network interfaces and more names
Adding support for more than one network interface in a given node. Also supporting more interface naming patterns. Signed-off-by: David Lyle <dklyle0@gmail.com>
1 parent 20cb90c commit 8f67f64

File tree

2 files changed

+79
-72
lines changed

2 files changed

+79
-72
lines changed

metrics/collectd/collectd.conf

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,19 @@ LoadPlugin cpufreq
1010
LoadPlugin df
1111

1212
<Plugin "cpu">
13-
ReportByCpu false
13+
ReportByCpu true
1414
ReportByState true
15-
ValuesPercentage "True"
15+
ValuesPercentage true
1616
</Plugin>
1717
<Plugin "csv">
1818
DataDir "/opt/collectd"
1919
StoreRates true
2020
</Plugin>
2121
<Plugin "interface">
2222
Interface "/^eno/"
23+
Interface "/^ens/"
24+
Interface "/^enp/"
25+
Interface "/^em/"
2326
IgnoreSelected false
2427
</Plugin>
2528
<Plugin "aggregation">

metrics/report/report_dockerfile/collectd_scaling.R

+74-70
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ for (currentdir in resultdirs) {
7373
local_bootdata$epoch = local_bootdata$ns/1000000000
7474
local_bootdata$s_offset = local_bootdata$epoch - local_bootdata[1,]$epoch
7575

76-
7776
########################################################
7877
#### Now extract all node performance information ######
7978
########################################################
@@ -140,7 +139,7 @@ for (currentdir in resultdirs) {
140139
localhost_dir=paste(node_dir, "localhost", sep="/")
141140

142141
# grab memory data
143-
memory_dir=paste(localhost_dir, "memory", sep="/")
142+
memory_dir=paste(localhost_dir, "memory", sep="/")
144143
# filename has date on the end, so look for the right file name
145144
freemem_pattern='^memory\\-free'
146145
files=list.files(memory_dir, pattern=freemem_pattern)
@@ -184,58 +183,64 @@ for (currentdir in resultdirs) {
184183
inode_free_data=rbind(inode_free_data, node_inode_free_data)
185184

186185
# grab interface data
187-
interface_dir_pattern='^interface\\-eno'
186+
interface_dir_pattern='^interface\\-'
188187
files=list.files(localhost_dir, pattern=interface_dir_pattern)
189-
# TODO: handle multiple interfaces, right now just grabbing first
190-
interface_dir=paste(localhost_dir, files[1], sep="/")
191-
192-
# filename has date on the end, so look for the right file name
193-
interface_packets_pattern='^if_packets'
194-
files=list.files(interface_dir, pattern=interface_packets_pattern)
195-
interface_packets_csv=paste(interface_dir, files[1], sep="/")
196-
node_interface_packets_data=read.csv(interface_packets_csv, header=TRUE, sep=",")
197-
node_interface_packets_data=cbind(node_interface_packets_data, node=rep(n, length(node_interface_packets_data$epoch)))
198-
node_interface_packets_data=cbind(node_interface_packets_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_packets_data$epoch)))
199-
node_interface_packets_data=cbind(node_interface_packets_data, testname=rep(testname, length(node_interface_packets_data$epoch)))
200-
node_interface_packets_data$s_offset = node_interface_packets_data$epoch - local_bootdata[1,]$epoch
201-
202-
interface_packets_data=rbind(interface_packets_data, node_interface_packets_data)
203-
204-
# filename has date on the end, so look for the right file name
205-
interface_octets_pattern='^if_octets'
206-
files=list.files(interface_dir, pattern=interface_octets_pattern)
207-
interface_octets_csv=paste(interface_dir, files[1], sep="/")
208-
node_interface_octets_data=read.csv(interface_octets_csv, header=TRUE, sep=",")
209-
node_interface_octets_data=cbind(node_interface_octets_data, node=rep(n, length(node_interface_octets_data$epoch)))
210-
node_interface_octets_data=cbind(node_interface_octets_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_octets_data$epoch)))
211-
node_interface_octets_data=cbind(node_interface_octets_data, testname=rep(testname, length(node_interface_octets_data$epoch)))
212-
node_interface_octets_data$s_offset = node_interface_octets_data$epoch - local_bootdata[1,]$epoch
213-
214-
interface_octets_data=rbind(interface_octets_data, node_interface_octets_data)
215-
216-
# filename has date on the end, so look for the right file name
217-
interface_dropped_pattern='^if_dropped'
218-
files=list.files(interface_dir, pattern=interface_dropped_pattern)
219-
interface_dropped_csv=paste(interface_dir, files[1], sep="/")
220-
node_interface_dropped_data=read.csv(interface_dropped_csv, header=TRUE, sep=",")
221-
node_interface_dropped_data=cbind(node_interface_dropped_data, node=rep(n, length(node_interface_dropped_data$epoch)))
222-
node_interface_dropped_data=cbind(node_interface_dropped_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_dropped_data$epoch)))
223-
node_interface_dropped_data=cbind(node_interface_dropped_data, testname=rep(testname, length(node_interface_dropped_data$epoch)))
224-
node_interface_dropped_data$s_offset = node_interface_dropped_data$epoch - local_bootdata[1,]$epoch
225-
226-
interface_dropped_data=rbind(interface_dropped_data, node_interface_dropped_data)
227-
228-
# filename has date on the end, so look for the right file name
229-
interface_errors_pattern='^if_errors'
230-
files=list.files(interface_dir, pattern=interface_errors_pattern)
231-
interface_errors_csv=paste(interface_dir, files[1], sep="/")
232-
node_interface_errors_data=read.csv(interface_errors_csv, header=TRUE, sep=",")
233-
node_interface_errors_data=cbind(node_interface_errors_data, node=rep(n, length(node_interface_errors_data$epoch)))
234-
node_interface_errors_data=cbind(node_interface_errors_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_errors_data$epoch)))
235-
node_interface_errors_data=cbind(node_interface_errors_data, testname=rep(testname, length(node_interface_errors_data$epoch)))
236-
node_interface_errors_data$s_offset = node_interface_errors_data$epoch - local_bootdata[1,]$epoch
237-
238-
interface_errors_data=rbind(interface_errors_data, node_interface_errors_data)
188+
for (file in files) {
189+
interface_dir=paste(localhost_dir, file, sep="/")
190+
interface_name=substr(file, nchar("interface-")+1, nchar(file))
191+
192+
# filename has date on the end, so look for the right file name
193+
interface_packets_pattern='^if_packets'
194+
files=list.files(interface_dir, pattern=interface_packets_pattern)
195+
interface_packets_csv=paste(interface_dir, files[1], sep="/")
196+
node_interface_packets_data=read.csv(interface_packets_csv, header=TRUE, sep=",")
197+
node_interface_packets_data=cbind(node_interface_packets_data, node=rep(n, length(node_interface_packets_data$epoch)))
198+
node_interface_packets_data=cbind(node_interface_packets_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_packets_data$epoch)))
199+
node_interface_packets_data=cbind(node_interface_packets_data, testname=rep(testname, length(node_interface_packets_data$epoch)))
200+
node_interface_packets_data=cbind(node_interface_packets_data, name=rep(interface_name, length(node_interface_packets_data$epoch)))
201+
node_interface_packets_data$s_offset = node_interface_packets_data$epoch - local_bootdata[1,]$epoch
202+
203+
interface_packets_data=rbind(interface_packets_data, node_interface_packets_data)
204+
205+
# filename has date on the end, so look for the right file name
206+
interface_octets_pattern='^if_octets'
207+
files=list.files(interface_dir, pattern=interface_octets_pattern)
208+
interface_octets_csv=paste(interface_dir, files[1], sep="/")
209+
node_interface_octets_data=read.csv(interface_octets_csv, header=TRUE, sep=",")
210+
node_interface_octets_data=cbind(node_interface_octets_data, node=rep(n, length(node_interface_octets_data$epoch)))
211+
node_interface_octets_data=cbind(node_interface_octets_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_octets_data$epoch)))
212+
node_interface_octets_data=cbind(node_interface_octets_data, testname=rep(testname, length(node_interface_octets_data$epoch)))
213+
node_interface_octets_data=cbind(node_interface_octets_data, name=rep(interface_name, length(node_interface_octets_data$epoch)))
214+
node_interface_octets_data$s_offset = node_interface_octets_data$epoch - local_bootdata[1,]$epoch
215+
216+
interface_octets_data=rbind(interface_octets_data, node_interface_octets_data)
217+
218+
# filename has date on the end, so look for the right file name
219+
interface_dropped_pattern='^if_dropped'
220+
files=list.files(interface_dir, pattern=interface_dropped_pattern)
221+
interface_dropped_csv=paste(interface_dir, files[1], sep="/")
222+
node_interface_dropped_data=read.csv(interface_dropped_csv, header=TRUE, sep=",")
223+
node_interface_dropped_data=cbind(node_interface_dropped_data, node=rep(n, length(node_interface_dropped_data$epoch)))
224+
node_interface_dropped_data=cbind(node_interface_dropped_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_dropped_data$epoch)))
225+
node_interface_dropped_data=cbind(node_interface_dropped_data, testname=rep(testname, length(node_interface_dropped_data$epoch)))
226+
node_interface_dropped_data=cbind(node_interface_dropped_data, name=rep(interface_name, length(node_interface_dropped_data$epoch)))
227+
node_interface_dropped_data$s_offset = node_interface_dropped_data$epoch - local_bootdata[1,]$epoch
228+
229+
interface_dropped_data=rbind(interface_dropped_data, node_interface_dropped_data)
230+
231+
# filename has date on the end, so look for the right file name
232+
interface_errors_pattern='^if_errors'
233+
files=list.files(interface_dir, pattern=interface_errors_pattern)
234+
interface_errors_csv=paste(interface_dir, files[1], sep="/")
235+
node_interface_errors_data=read.csv(interface_errors_csv, header=TRUE, sep=",")
236+
node_interface_errors_data=cbind(node_interface_errors_data, node=rep(n, length(node_interface_errors_data$epoch)))
237+
node_interface_errors_data=cbind(node_interface_errors_data, noschedule=rep(thisnode[1,]$noschedule, length(node_interface_errors_data$epoch)))
238+
node_interface_errors_data=cbind(node_interface_errors_data, testname=rep(testname, length(node_interface_errors_data$epoch)))
239+
node_interface_errors_data=cbind(node_interface_errors_data, name=rep(interface_name, length(node_interface_errors_data$epoch)))
240+
node_interface_errors_data$s_offset = node_interface_errors_data$epoch - local_bootdata[1,]$epoch
241+
242+
interface_errors_data=rbind(interface_errors_data, node_interface_errors_data)
243+
}
239244

240245
# Do not use the master (non-schedulable) nodes to calculate
241246
# launched pod metrics
@@ -426,10 +431,10 @@ cat("\n\n\\pagebreak\n")
426431

427432
########## Output interface page packets and octets ##############
428433
interface_packet_line_plot <- ggplot() +
429-
geom_line(data=ifpacketdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.2, na.rm=TRUE) +
430-
geom_point(data=ifpacketdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
431-
geom_line(data=ifpacketdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.2, na.rm=TRUE) +
432-
geom_point(data=ifpacketdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
434+
geom_line(data=ifpacketdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, "tx")), alpha=0.2, na.rm=TRUE) +
435+
geom_point(data=ifpacketdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
436+
geom_line(data=ifpacketdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.2, na.rm=TRUE) +
437+
geom_point(data=ifpacketdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
433438
geom_line(data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.2) +
434439
geom_point( data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.3, size=0.5) +
435440
labs(colour="") +
@@ -440,10 +445,10 @@ interface_packet_line_plot <- ggplot() +
440445
theme(axis.text.x=element_text(angle=90))
441446

442447
interface_octet_line_plot <- ggplot() +
443-
geom_line(data=ifoctetdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.2, na.rm=TRUE) +
444-
geom_point(data=ifoctetdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
445-
geom_line(data=ifoctetdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.2, na.rm=TRUE) +
446-
geom_point(data=ifoctetdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
448+
geom_line(data=ifoctetdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, "tx")), alpha=0.2, na.rm=TRUE) +
449+
geom_point(data=ifoctetdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
450+
geom_line(data=ifoctetdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.2, na.rm=TRUE) +
451+
geom_point(data=ifoctetdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
447452
geom_line(data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.2) +
448453
geom_point( data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.3, size=0.5) +
449454
labs(colour="") +
@@ -453,7 +458,6 @@ interface_octet_line_plot <- ggplot() +
453458
ggtitle("interface octets") +
454459
theme(axis.text.x=element_text(angle=90))
455460

456-
457461
page5 = grid.arrange(
458462
interface_packet_line_plot,
459463
interface_octet_line_plot,
@@ -465,10 +469,10 @@ cat("\n\n\\pagebreak\n")
465469

466470
########## Output interface page drops and errors ##############
467471
interface_drop_line_plot <- ggplot() +
468-
geom_line(data=ifdropdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.2, na.rm=TRUE) +
469-
geom_point(data=ifdropdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
470-
geom_line(data=ifdropdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.2, na.rm=TRUE) +
471-
geom_point(data=ifdropdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
472+
geom_line(data=ifdropdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, "tx")), alpha=0.2, na.rm=TRUE) +
473+
geom_point(data=ifdropdata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
474+
geom_line(data=ifdropdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.2, na.rm=TRUE) +
475+
geom_point(data=ifdropdata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
472476
geom_line(data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.2) +
473477
geom_point( data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.3, size=0.5) +
474478
labs(colour="") +
@@ -479,10 +483,10 @@ interface_drop_line_plot <- ggplot() +
479483
theme(axis.text.x=element_text(angle=90))
480484

481485
interface_error_line_plot <- ggplot() +
482-
geom_line(data=iferrordata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.2, na.rm=TRUE) +
483-
geom_point(data=iferrordata, aes(x=s_offset, y=tx, colour=interaction(testname, node, "tx"), group=interaction(testname, node, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
484-
geom_line(data=iferrordata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.2, na.rm=TRUE) +
485-
geom_point(data=iferrordata, aes(x=s_offset, y=rx, colour=interaction(testname, node, "rx"), group=interaction(testname, node, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
486+
geom_line(data=iferrordata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, name, "tx")), alpha=0.2, na.rm=TRUE) +
487+
geom_point(data=iferrordata, aes(x=s_offset, y=tx, colour=interaction(testname, node, name, "tx"), group=interaction(testname, node, name, "tx")), alpha=0.5, size=0.5, na.rm=TRUE) +
488+
geom_line(data=iferrordata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.2, na.rm=TRUE) +
489+
geom_point(data=iferrordata, aes(x=s_offset, y=rx, colour=interaction(testname, node, name, "rx"), group=interaction(testname, node, name, "rx")), alpha=0.5, size=0.5, na.rm=TRUE) +
486490
geom_line(data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.2) +
487491
geom_point( data=podbootdata, aes(x=s_offset, y=n_pods, colour=interaction(testname,"pod count"), group=testname), alpha=0.3, size=0.5) +
488492
labs(colour="") +

0 commit comments

Comments
 (0)