@cryptotaxi247 / netdata-1 / commits / 58e636b69

re-arrange the ICMP charts to avoid duplicate metrics

Costa Tsaousis (ktsaou) committed Sep 18, 2016 at 04:55 UTC 58e636b69e40a139eff2ef3b7699f0ae73f895b8
1 file changed +171 -126
src/proc_net_snmp.c
+171 -126
@@ -6,11 +6,11 @@
6 #define NETSTAT_PRESENT 0x00000001
7
8 struct netstat_columns {
9 - char name[20];
9 + char *name;
10 uint32_t hash;
11 unsigned long long value;
12 int multiplier; // not needed everywhere
13 - RRDDIM *dimension; // not currently used
13 + char *label; // not needed everywhere
14 };
15
16 static struct netstat_columns ip_data[] = {
@@ -33,7 +33,7 @@ static struct netstat_columns ip_data[] = {
33 { "FragOKs", 0, 0, 1, NULL },
34 { "FragFails", 0, 0, 1, NULL },
35 { "FragCreates", 0, 0, 1, NULL },
36 - { "", 0, 0, 0, NULL }
36 + { NULL, 0, 0, 0, NULL }
37 };
38
39 static struct netstat_columns icmp_data[] = {
@@ -41,58 +41,77 @@ static struct netstat_columns icmp_data[] = {
41 { "OutMsgs", 0, 0, -1, NULL },
42 { "InErrors", 0, 0, 1, NULL },
43 { "OutErrors", 0, 0, -1, NULL },
44 - { "InDestUnreachs", 0, 0, 1, NULL },
45 - { "OutDestUnreachs", 0, 0, -1, NULL },
46 - { "InTimeExcds", 0, 0, 1, NULL },
47 - { "OutTimeExcds", 0, 0, -1, NULL },
48 - { "InParmProbs", 0, 0, 1, NULL },
49 - { "OutParmProbs", 0, 0, -1, NULL },
50 - { "InSrcQuenchs", 0, 0, 1, NULL },
51 - { "OutSrcQuenchs", 0, 0, -1, NULL },
52 - { "InRedirects", 0, 0, 1, NULL },
53 - { "OutRedirects", 0, 0, -1, NULL },
54 - { "InEchos", 0, 0, 1, NULL },
55 - { "OutEchos", 0, 0, -1, NULL },
56 - { "InEchoReps", 0, 0, 1, NULL },
57 - { "OutEchoReps", 0, 0, -1, NULL },
58 - { "InTimestamps", 0, 0, 1, NULL },
59 - { "OutTimestamps", 0, 0, -1, NULL },
60 - { "InTimestampReps", 0, 0, 1, NULL },
61 - { "OutTimestampReps", 0, 0, -1, NULL },
62 - { "InAddrMasks", 0, 0, 1, NULL },
63 - { "OutAddrMasks", 0, 0, -1, NULL },
64 - { "InAddrMaskReps", 0, 0, 1, NULL },
65 - { "OutAddrMaskReps", 0, 0, -1, NULL },
44 { "InCsumErrors", 0, 0, 1, NULL },
67 - { "", 0, 0, 0, NULL }
45 +
46 + // all there are available in icmpmsg
47 +// { "InDestUnreachs", 0, 0, 1, NULL },
48 +// { "OutDestUnreachs", 0, 0, -1, NULL },
49 +// { "InTimeExcds", 0, 0, 1, NULL },
50 +// { "OutTimeExcds", 0, 0, -1, NULL },
51 +// { "InParmProbs", 0, 0, 1, NULL },
52 +// { "OutParmProbs", 0, 0, -1, NULL },
53 +// { "InSrcQuenchs", 0, 0, 1, NULL },
54 +// { "OutSrcQuenchs", 0, 0, -1, NULL },
55 +// { "InRedirects", 0, 0, 1, NULL },
56 +// { "OutRedirects", 0, 0, -1, NULL },
57 +// { "InEchos", 0, 0, 1, NULL },
58 +// { "OutEchos", 0, 0, -1, NULL },
59 +// { "InEchoReps", 0, 0, 1, NULL },
60 +// { "OutEchoReps", 0, 0, -1, NULL },
61 +// { "InTimestamps", 0, 0, 1, NULL },
62 +// { "OutTimestamps", 0, 0, -1, NULL },
63 +// { "InTimestampReps", 0, 0, 1, NULL },
64 +// { "OutTimestampReps", 0, 0, -1, NULL },
65 +// { "InAddrMasks", 0, 0, 1, NULL },
66 +// { "OutAddrMasks", 0, 0, -1, NULL },
67 +// { "InAddrMaskReps", 0, 0, 1, NULL },
68 +// { "OutAddrMaskReps", 0, 0, -1, NULL },
69 +
70 + { NULL, 0, 0, 0, NULL }
71 };
72
73 static struct netstat_columns icmpmsg_data[] = {
71 - { "InType0", 0, 0, 1, NULL },
72 - { "OutType0", 0, 0, -1, NULL },
73 - { "InType1", 0, 0, 1, NULL },
74 - { "OutType1", 0, 0, -1, NULL },
75 - { "InType2", 0, 0, 1, NULL },
76 - { "OutType2", 0, 0, -1, NULL },
77 - { "InType3", 0, 0, 1, NULL },
78 - { "OutType3", 0, 0, -1, NULL },
79 - { "InType4", 0, 0, 1, NULL },
80 - { "OutType4", 0, 0, -1, NULL },
81 - { "InType5", 0, 0, 1, NULL },
82 - { "OutType5", 0, 0, -1, NULL },
83 - { "InType6", 0, 0, 1, NULL },
84 - { "OutType6", 0, 0, -1, NULL },
85 - { "InType7", 0, 0, 1, NULL },
86 - { "OutType7", 0, 0, -1, NULL },
87 - { "InType8", 0, 0, 1, NULL },
88 - { "OutType8", 0, 0, -1, NULL },
89 - { "InType9", 0, 0, 1, NULL },
90 - { "OutType9", 0, 0, -1, NULL },
91 - { "InType10", 0, 0, 1, NULL },
92 - { "OutType10", 0, 0, -1, NULL },
93 - { "InType11", 0, 0, 1, NULL },
94 - { "OutType11", 0, 0, -1, NULL },
95 - { "", 0, 0, 0, NULL }
74 + { "InType0", 0, 0, 1, "InEchoReps" },
75 + { "OutType0", 0, 0, -1, "OutEchoReps" },
76 +// { "InType1", 0, 0, 1, NULL }, // unassigned
77 +// { "OutType1", 0, 0, -1, NULL }, // unassigned
78 +// { "InType2", 0, 0, 1, NULL }, // unassigned
79 +// { "OutType2", 0, 0, -1, NULL }, // unassigned
80 + { "InType3", 0, 0, 1, "InDestUnreachs" },
81 + { "OutType3", 0, 0, -1, "OutDestUnreachs" },
82 +// { "InType4", 0, 0, 1, "InSrcQuenchs" }, // deprecated
83 +// { "OutType4", 0, 0, -1, "OutSrcQuenchs" }, // deprecated
84 + { "InType5", 0, 0, 1, "InRedirects" },
85 + { "OutType5", 0, 0, -1, "OutRedirects" },
86 +// { "InType6", 0, 0, 1, "InAlterHostAddr" }, // deprecated
87 +// { "OutType6", 0, 0, -1, "OutAlterHostAddr" }, // deprecated
88 +// { "InType7", 0, 0, 1, NULL }, // unassigned
89 +// { "OutType7", 0, 0, -1, NULL }, // unassigned
90 + { "InType8", 0, 0, 1, "InEchos" },
91 + { "OutType8", 0, 0, -1, "OutEchos" },
92 + { "InType9", 0, 0, 1, "InRouterAdvert" },
93 + { "OutType9", 0, 0, -1, "OutRouterAdvert" },
94 + { "InType10", 0, 0, 1, "InRouterSelect" },
95 + { "OutType10", 0, 0, -1, "OutRouterSelect" },
96 + { "InType11", 0, 0, 1, "InTimeExcds" },
97 + { "OutType11", 0, 0, -1, "OutTimeExcds" },
98 + { "InType12", 0, 0, 1, "InParmProbs" },
99 + { "OutType12", 0, 0, -1, "OutParmProbs" },
100 + { "InType13", 0, 0, 1, "InTimestamps" },
101 + { "OutType13", 0, 0, -1, "OutTimestamps" },
102 + { "InType14", 0, 0, 1, "InTimestampReps" },
103 + { "OutType14", 0, 0, -1, "OutTimestampReps" },
104 +// { "InType15", 0, 0, 1, "InInfos" }, // deprecated
105 +// { "OutType15", 0, 0, -1, "OutInfos" }, // deprecated
106 +// { "InType16", 0, 0, 1, "InInfoReps" }, // deprecated
107 +// { "OutType16", 0, 0, -1, "OutInfoReps" }, // deprecated
108 +// { "InType17", 0, 0, 1, "InAddrMasks" }, // deprecated
109 +// { "OutType17", 0, 0, -1, "OutAddrMasks" }, // deprecated
110 +// { "InType18", 0, 0, 1, "InAddrMaskReps" }, // deprecated
111 +// { "OutType18", 0, 0, -1, "OutAddrMaskReps" }, // deprecated
112 +// { "InType30", 0, 0, 1, "InTraceroute" }, // deprecated
113 +// { "OutType30", 0, 0, -1, "OutTraceroute" }, // deprecated
114 + { NULL, 0, 0, 0, NULL }
115 };
116
117 static struct netstat_columns tcp_data[] = {
@@ -111,7 +130,7 @@ static struct netstat_columns tcp_data[] = {
130 { "InErrs", 0, 0, 1, NULL },
131 { "OutRsts", 0, 0, 1, NULL },
132 { "InCsumErrors", 0, 0, 1, NULL },
114 - { "", 0, 0, 0, NULL }
133 + { NULL, 0, 0, 0, NULL }
134 };
135
136 static struct netstat_columns udp_data[] = {
@@ -123,7 +142,7 @@ static struct netstat_columns udp_data[] = {
142 { "SndbufErrors", 0, 0, 1, NULL },
143 { "InCsumErrors", 0, 0, 1, NULL },
144 { "IgnoredMulti", 0, 0, 1, NULL },
126 - { "", 0, 0, 0, NULL }
145 + { NULL, 0, 0, 0, NULL }
146 };
147
148 static struct netstat_columns udplite_data[] = {
@@ -135,20 +154,20 @@ static struct netstat_columns udplite_data[] = {
154 { "SndbufErrors", 0, 0, 1, NULL },
155 { "InCsumErrors", 0, 0, 1, NULL },
156 { "IgnoredMulti", 0, 0, 1, NULL },
138 - { "", 0, 0, 0, NULL }
157 + { NULL, 0, 0, 0, NULL }
158 };
159
160 static void hash_array(struct netstat_columns *nc) {
161 int i;
162
144 - for(i = 0; nc[i].name[0] ;i++)
163 + for(i = 0; nc[i].name ;i++)
164 nc[i].hash = simple_hash(nc[i].name);
165 }
166
167 static unsigned long long *netstat_columns_find(struct netstat_columns *nc, const char *name) {
168 uint32_t i, hash = simple_hash(name);
169
151 - for(i = 0; nc[i].name[0] ;i++)
170 + for(i = 0; nc[i].name ;i++)
171 if(unlikely(nc[i].hash == hash && !strcmp(nc[i].name, name)))
172 return &nc[i].value;
173
@@ -169,7 +188,7 @@ static void parse_line_pair(procfile *ff, struct netstat_columns *nc, uint32_t h
188 char *key = procfile_lineword(ff, header_line, w);
189 uint32_t hash = simple_hash(key);
190
172 - for(i = 0 ; nc[i].name[0] ;i++) {
191 + for(i = 0 ; nc[i].name ;i++) {
192 if(unlikely(hash == nc[i].hash && !strcmp(key, nc[i].name))) {
193 nc[i].value = strtoull(procfile_lineword(ff, values_line, w), NULL, 10);
194 break;
@@ -207,6 +226,12 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
226 static unsigned long long *ip_FragFails = NULL;
227 static unsigned long long *ip_FragCreates = NULL;
228
229 + static unsigned long long *icmp_InMsgs = NULL;
230 + static unsigned long long *icmp_OutMsgs = NULL;
231 + static unsigned long long *icmp_InErrors = NULL;
232 + static unsigned long long *icmp_OutErrors = NULL;
233 + static unsigned long long *icmp_InCsumErrors = NULL;
234 +
235 //static unsigned long long *tcp_RtoAlgorithm = NULL;
236 //static unsigned long long *tcp_RtoMin = NULL;
237 //static unsigned long long *tcp_RtoMax = NULL;
@@ -290,6 +315,12 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
315 ip_FragFails = netstat_columns_find(ip_data, "FragFails");
316 ip_FragCreates = netstat_columns_find(ip_data, "FragCreates");
317
318 + icmp_InMsgs = netstat_columns_find(icmp_data, "InMsgs");
319 + icmp_OutMsgs = netstat_columns_find(icmp_data, "OutMsgs");
320 + icmp_InErrors = netstat_columns_find(icmp_data, "InErrors");
321 + icmp_OutErrors = netstat_columns_find(icmp_data, "OutErrors");
322 + icmp_InCsumErrors = netstat_columns_find(icmp_data, "InCsumErrors");
323 +
324 //tcp_RtoAlgorithm = netstat_columns_find(tcp_data, "RtoAlgorithm");
325 //tcp_RtoMin = netstat_columns_find(tcp_data, "RtoMin");
326 //tcp_RtoMax = netstat_columns_find(tcp_data, "RtoMax");
@@ -368,17 +399,17 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
399 if(!st) {
400 st = rrdset_create(RRD_TYPE_NET_SNMP, "packets", NULL, "packets", NULL, "IPv4 Packets", "packets/s", 3000, update_every, RRDSET_TYPE_LINE);
401
371 - rrddim_add(st, "received", NULL, 1, 1, RRDDIM_INCREMENTAL);
372 - rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_INCREMENTAL);
373 - rrddim_add(st, "forwarded", NULL, 1, 1, RRDDIM_INCREMENTAL);
374 - rrddim_add(st, "delivered", NULL, 1, 1, RRDDIM_INCREMENTAL);
402 + rrddim_add(st, "InReceives", "received", 1, 1, RRDDIM_INCREMENTAL);
403 + rrddim_add(st, "OutRequests", "sent", -1, 1, RRDDIM_INCREMENTAL);
404 + rrddim_add(st, "ForwDatagrams", "forwarded", 1, 1, RRDDIM_INCREMENTAL);
405 + rrddim_add(st, "InDelivers", "delivered", 1, 1, RRDDIM_INCREMENTAL);
406 }
407 else rrdset_next(st);
408
378 - rrddim_set(st, "sent", *ip_OutRequests);
379 - rrddim_set(st, "received", *ip_InReceives);
380 - rrddim_set(st, "forwarded", *ip_ForwDatagrams);
381 - rrddim_set(st, "delivered", *ip_InDelivers);
409 + rrddim_set(st, "OutRequests", *ip_OutRequests);
410 + rrddim_set(st, "InReceives", *ip_InReceives);
411 + rrddim_set(st, "ForwDatagrams", *ip_ForwDatagrams);
412 + rrddim_set(st, "InDelivers", *ip_InDelivers);
413 rrdset_done(st);
414 }
415
@@ -390,15 +421,15 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
421 st = rrdset_create(RRD_TYPE_NET_SNMP, "fragsout", NULL, "fragments", NULL, "IPv4 Fragments Sent", "packets/s", 3010, update_every, RRDSET_TYPE_LINE);
422 st->isdetail = 1;
423
393 - rrddim_add(st, "ok", NULL, 1, 1, RRDDIM_INCREMENTAL);
394 - rrddim_add(st, "failed", NULL, -1, 1, RRDDIM_INCREMENTAL);
395 - rrddim_add(st, "all", NULL, 1, 1, RRDDIM_INCREMENTAL);
424 + rrddim_add(st, "FragOKs", "ok", 1, 1, RRDDIM_INCREMENTAL);
425 + rrddim_add(st, "FragFails", "failed", -1, 1, RRDDIM_INCREMENTAL);
426 + rrddim_add(st, "FragCreates", "created", 1, 1, RRDDIM_INCREMENTAL);
427 }
428 else rrdset_next(st);
429
399 - rrddim_set(st, "ok", *ip_FragOKs);
400 - rrddim_set(st, "failed", *ip_FragFails);
401 - rrddim_set(st, "all", *ip_FragCreates);
430 + rrddim_set(st, "FragOKs", *ip_FragOKs);
431 + rrddim_set(st, "FragFails", *ip_FragFails);
432 + rrddim_set(st, "FragCreates", *ip_FragCreates);
433 rrdset_done(st);
434 }
435
@@ -410,15 +441,15 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
441 st = rrdset_create(RRD_TYPE_NET_SNMP, "fragsin", NULL, "fragments", NULL, "IPv4 Fragments Reassembly", "packets/s", 3011, update_every, RRDSET_TYPE_LINE);
442 st->isdetail = 1;
443
413 - rrddim_add(st, "ok", NULL, 1, 1, RRDDIM_INCREMENTAL);
414 - rrddim_add(st, "failed", NULL, -1, 1, RRDDIM_INCREMENTAL);
415 - rrddim_add(st, "all", NULL, 1, 1, RRDDIM_INCREMENTAL);
444 + rrddim_add(st, "ReasmOKs", "ok", 1, 1, RRDDIM_INCREMENTAL);
445 + rrddim_add(st, "ReasmFails", "failed", -1, 1, RRDDIM_INCREMENTAL);
446 + rrddim_add(st, "ReasmReqds", "all", 1, 1, RRDDIM_INCREMENTAL);
447 }
448 else rrdset_next(st);
449
419 - rrddim_set(st, "ok", *ip_ReasmOKs);
420 - rrddim_set(st, "failed", *ip_ReasmFails);
421 - rrddim_set(st, "all", *ip_ReasmReqds);
450 + rrddim_set(st, "ReasmOKs", *ip_ReasmOKs);
451 + rrddim_set(st, "ReasmFails", *ip_ReasmFails);
452 + rrddim_set(st, "ReasmReqds", *ip_ReasmReqds);
453 rrdset_done(st);
454 }
455
@@ -430,14 +461,14 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
461 st = rrdset_create(RRD_TYPE_NET_SNMP, "errors", NULL, "errors", NULL, "IPv4 Errors", "packets/s", 3002, update_every, RRDSET_TYPE_LINE);
462 st->isdetail = 1;
463
433 - rrddim_add(st, "InDiscards", NULL, 1, 1, RRDDIM_INCREMENTAL);
464 + rrddim_add(st, "InDiscards", NULL, 1, 1, RRDDIM_INCREMENTAL);
465 rrddim_add(st, "OutDiscards", NULL, -1, 1, RRDDIM_INCREMENTAL);
466
436 - rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
467 + rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
468 rrddim_add(st, "OutNoRoutes", NULL, -1, 1, RRDDIM_INCREMENTAL);
469
439 - rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
440 - rrddim_add(st, "InUnknownProtos", NULL, 1, 1, RRDDIM_INCREMENTAL);
470 + rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
471 + rrddim_add(st, "InUnknownProtos", NULL, 1, 1, RRDDIM_INCREMENTAL);
472 }
473 else rrdset_next(st);
474
@@ -469,19 +500,33 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
500 // --------------------------------------------------------------------
501
502 if(do_icmp_packets) {
472 - int i;
473 -
503 st = rrdset_find(RRD_TYPE_NET_SNMP ".icmp");
504 if(!st) {
505 st = rrdset_create(RRD_TYPE_NET_SNMP, "icmp", NULL, "icmp", NULL, "IPv4 ICMP Packets", "packets/s", 2602, update_every, RRDSET_TYPE_LINE);
506
478 - for(i = 0; icmp_data[i].name[0] ;i++)
479 - rrddim_add(st, icmp_data[i].name, NULL, icmp_data[i].multiplier, 1, RRDDIM_INCREMENTAL);
507 + rrddim_add(st, "InMsgs", "received", 1, 1, RRDDIM_INCREMENTAL);
508 + rrddim_add(st, "OutMsgs", "sent", -1, 1, RRDDIM_INCREMENTAL);
509 }
510 else rrdset_next(st);
511
483 - for(i = 0; icmp_data[i].name[0] ;i++)
484 - rrddim_set(st, icmp_data[i].name, icmp_data[i].value);
512 + rrddim_set(st, "InMsgs", *icmp_InMsgs);
513 + rrddim_set(st, "OutMsgs", *icmp_OutMsgs);
514 +
515 + rrdset_done(st);
516 +
517 + st = rrdset_find(RRD_TYPE_NET_SNMP ".icmp_errors");
518 + if(!st) {
519 + st = rrdset_create(RRD_TYPE_NET_SNMP, "icmp_errors", NULL, "icmp", NULL, "IPv4 ICMP Errors", "packets/s", 2603, update_every, RRDSET_TYPE_LINE);
520 +
521 + rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
522 + rrddim_add(st, "OutErrors", NULL, -1, 1, RRDDIM_INCREMENTAL);
523 + rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
524 + }
525 + else rrdset_next(st);
526 +
527 + rrddim_set(st, "InErrors", *icmp_InErrors);
528 + rrddim_set(st, "OutErrors", *icmp_OutErrors);
529 + rrddim_set(st, "InCsumErrors", *icmp_InCsumErrors);
530
531 rrdset_done(st);
532 }
@@ -503,14 +548,14 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
548
549 st = rrdset_find(RRD_TYPE_NET_SNMP ".icmpmsg");
550 if(!st) {
506 - st = rrdset_create(RRD_TYPE_NET_SNMP, "icmpmsg", NULL, "icmp", NULL, "IPv4 ICMP Messsages", "packets/s", 2603, update_every, RRDSET_TYPE_LINE);
551 + st = rrdset_create(RRD_TYPE_NET_SNMP, "icmpmsg", NULL, "icmp", NULL, "IPv4 ICMP Messsages", "packets/s", 2604, update_every, RRDSET_TYPE_LINE);
552
508 - for(i = 0; icmpmsg_data[i].name[0] ;i++)
509 - rrddim_add(st, icmpmsg_data[i].name, NULL, icmpmsg_data[i].multiplier, 1, RRDDIM_INCREMENTAL);
553 + for(i = 0; icmpmsg_data[i].name ;i++)
554 + rrddim_add(st, icmpmsg_data[i].name, icmpmsg_data[i].label, icmpmsg_data[i].multiplier, 1, RRDDIM_INCREMENTAL);
555 }
556 else rrdset_next(st);
557
513 - for(i = 0; icmpmsg_data[i].name[0] ;i++)
558 + for(i = 0; icmpmsg_data[i].name ;i++)
559 rrddim_set(st, icmpmsg_data[i].name, icmpmsg_data[i].value);
560
561 rrdset_done(st);
@@ -540,11 +585,11 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
585 if(!st) {
586 st = rrdset_create(RRD_TYPE_NET_SNMP, "tcpsock", NULL, "tcp", NULL, "IPv4 TCP Connections", "active connections", 2500, update_every, RRDSET_TYPE_LINE);
587
543 - rrddim_add(st, "connections", NULL, 1, 1, RRDDIM_ABSOLUTE);
588 + rrddim_add(st, "CurrEstab", "connections", 1, 1, RRDDIM_ABSOLUTE);
589 }
590 else rrdset_next(st);
591
547 - rrddim_set(st, "connections", *tcp_CurrEstab);
592 + rrddim_set(st, "CurrEstab", *tcp_CurrEstab);
593 rrdset_done(st);
594 }
595
@@ -555,13 +600,13 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
600 if(!st) {
601 st = rrdset_create(RRD_TYPE_NET_SNMP, "tcppackets", NULL, "tcp", NULL, "IPv4 TCP Packets", "packets/s", 2600, update_every, RRDSET_TYPE_LINE);
602
558 - rrddim_add(st, "received", NULL, 1, 1, RRDDIM_INCREMENTAL);
559 - rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_INCREMENTAL);
603 + rrddim_add(st, "InSegs", "received", 1, 1, RRDDIM_INCREMENTAL);
604 + rrddim_add(st, "OutSegs", "sent", -1, 1, RRDDIM_INCREMENTAL);
605 }
606 else rrdset_next(st);
607
563 - rrddim_set(st, "received", *tcp_InSegs);
564 - rrddim_set(st, "sent", *tcp_OutSegs);
608 + rrddim_set(st, "InSegs", *tcp_InSegs);
609 + rrddim_set(st, "OutSegs", *tcp_OutSegs);
610 rrdset_done(st);
611 }
612
@@ -573,15 +618,15 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
618 st = rrdset_create(RRD_TYPE_NET_SNMP, "tcperrors", NULL, "tcp", NULL, "IPv4 TCP Errors", "packets/s", 2700, update_every, RRDSET_TYPE_LINE);
619 st->isdetail = 1;
620
576 - rrddim_add(st, "InErrs", NULL, 1, 1, RRDDIM_INCREMENTAL);
577 - rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
578 - rrddim_add(st, "RetransSegs", NULL, -1, 1, RRDDIM_INCREMENTAL);
621 + rrddim_add(st, "InErrs", NULL, 1, 1, RRDDIM_INCREMENTAL);
622 + rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
623 + rrddim_add(st, "RetransSegs", NULL, -1, 1, RRDDIM_INCREMENTAL);
624 }
625 else rrdset_next(st);
626
582 - rrddim_set(st, "InErrs", *tcp_InErrs);
627 + rrddim_set(st, "InErrs", *tcp_InErrs);
628 rrddim_set(st, "InCsumErrors", *tcp_InCsumErrors);
584 - rrddim_set(st, "RetransSegs", *tcp_RetransSegs);
629 + rrddim_set(st, "RetransSegs", *tcp_RetransSegs);
630 rrdset_done(st);
631 }
632
@@ -593,17 +638,17 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
638 st = rrdset_create(RRD_TYPE_NET_SNMP, "tcphandshake", NULL, "tcp", NULL, "IPv4 TCP Handshake Issues", "events/s", 2900, update_every, RRDSET_TYPE_LINE);
639 st->isdetail = 1;
640
596 - rrddim_add(st, "EstabResets", NULL, 1, 1, RRDDIM_INCREMENTAL);
597 - rrddim_add(st, "OutRsts", NULL, -1, 1, RRDDIM_INCREMENTAL);
598 - rrddim_add(st, "ActiveOpens", NULL, 1, 1, RRDDIM_INCREMENTAL);
599 - rrddim_add(st, "PassiveOpens", NULL, 1, 1, RRDDIM_INCREMENTAL);
600 - rrddim_add(st, "AttemptFails", NULL, 1, 1, RRDDIM_INCREMENTAL);
641 + rrddim_add(st, "EstabResets", NULL, 1, 1, RRDDIM_INCREMENTAL);
642 + rrddim_add(st, "OutRsts", NULL, -1, 1, RRDDIM_INCREMENTAL);
643 + rrddim_add(st, "ActiveOpens", NULL, 1, 1, RRDDIM_INCREMENTAL);
644 + rrddim_add(st, "PassiveOpens", NULL, 1, 1, RRDDIM_INCREMENTAL);
645 + rrddim_add(st, "AttemptFails", NULL, 1, 1, RRDDIM_INCREMENTAL);
646 }
647 else rrdset_next(st);
648
604 - rrddim_set(st, "EstabResets", *tcp_EstabResets);
605 - rrddim_set(st, "OutRsts", *tcp_OutRsts);
606 - rrddim_set(st, "ActiveOpens", *tcp_ActiveOpens);
649 + rrddim_set(st, "EstabResets", *tcp_EstabResets);
650 + rrddim_set(st, "OutRsts", *tcp_OutRsts);
651 + rrddim_set(st, "ActiveOpens", *tcp_ActiveOpens);
652 rrddim_set(st, "PassiveOpens", *tcp_PassiveOpens);
653 rrddim_set(st, "AttemptFails", *tcp_AttemptFails);
654 rrdset_done(st);
@@ -633,13 +678,13 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
678 if(!st) {
679 st = rrdset_create(RRD_TYPE_NET_SNMP, "udppackets", NULL, "udp", NULL, "IPv4 UDP Packets", "packets/s", 2601, update_every, RRDSET_TYPE_LINE);
680
636 - rrddim_add(st, "received", NULL, 1, 1, RRDDIM_INCREMENTAL);
637 - rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_INCREMENTAL);
681 + rrddim_add(st, "InDatagrams", "received", 1, 1, RRDDIM_INCREMENTAL);
682 + rrddim_add(st, "OutDatagrams", "sent", -1, 1, RRDDIM_INCREMENTAL);
683 }
684 else rrdset_next(st);
685
641 - rrddim_set(st, "received", *udp_InDatagrams);
642 - rrddim_set(st, "sent", *udp_OutDatagrams);
686 + rrddim_set(st, "InDatagrams", *udp_InDatagrams);
687 + rrddim_set(st, "OutDatagrams", *udp_OutDatagrams);
688 rrdset_done(st);
689 }
690
@@ -651,17 +696,17 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
696 st = rrdset_create(RRD_TYPE_NET_SNMP, "udperrors", NULL, "udp", NULL, "IPv4 UDP Errors", "events/s", 2701, update_every, RRDSET_TYPE_LINE);
697 st->isdetail = 1;
698
654 - rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
699 + rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
700 rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRDDIM_INCREMENTAL);
656 - rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
657 - rrddim_add(st, "NoPorts", NULL, 1, 1, RRDDIM_INCREMENTAL);
658 - rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
659 - rrddim_add(st, "IgnoredMulti", NULL, 1, 1, RRDDIM_INCREMENTAL);
701 + rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
702 + rrddim_add(st, "NoPorts", NULL, 1, 1, RRDDIM_INCREMENTAL);
703 + rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_INCREMENTAL);
704 + rrddim_add(st, "IgnoredMulti", NULL, 1, 1, RRDDIM_INCREMENTAL);
705 }
706 else rrdset_next(st);
707
663 - rrddim_set(st, "InErrors", *udp_InErrors);
664 - rrddim_set(st, "NoPorts", *udp_NoPorts);
708 + rrddim_set(st, "InErrors", *udp_InErrors);
709 + rrddim_set(st, "NoPorts", *udp_NoPorts);
710 rrddim_set(st, "RcvbufErrors", *udp_RcvbufErrors);
711 rrddim_set(st, "SndbufErrors", *udp_SndbufErrors);
712 rrddim_set(st, "InCsumErrors", *udp_InCsumErrors);
@@ -692,12 +737,12 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
737 if(!st) {
738 st = rrdset_create(RRD_TYPE_NET_SNMP, "udplite", NULL, "udplite", NULL, "IPv4 UDPLite Packets", "packets/s", 2603, update_every, RRDSET_TYPE_LINE);
739
695 - rrddim_add(st, "InDatagrams", NULL, 1, 1, RRDDIM_INCREMENTAL);
696 - rrddim_add(st, "OutDatagrams", NULL, -1, 1, RRDDIM_INCREMENTAL);
740 + rrddim_add(st, "InDatagrams", "received", 1, 1, RRDDIM_INCREMENTAL);
741 + rrddim_add(st, "OutDatagrams", "sent", -1, 1, RRDDIM_INCREMENTAL);
742 }
743 else rrdset_next(st);
744
700 - rrddim_set(st, "InDatagrams", *udplite_InDatagrams);
745 + rrddim_set(st, "InDatagrams", *udplite_InDatagrams);
746 rrddim_set(st, "OutDatagrams", *udplite_OutDatagrams);
747 rrdset_done(st);
748
@@ -714,8 +759,8 @@ int do_proc_net_snmp(int update_every, unsigned long long dt) {
759 }
760 else rrdset_next(st);
761
717 - rrddim_set(st, "NoPorts", *udplite_NoPorts);
718 - rrddim_set(st, "InErrors", *udplite_InErrors);
762 + rrddim_set(st, "NoPorts", *udplite_NoPorts);
763 + rrddim_set(st, "InErrors", *udplite_InErrors);
764 rrddim_set(st, "InCsumErrors", *udplite_InCsumErrors);
765 rrddim_set(st, "RcvbufErrors", *udplite_RcvbufErrors);
766 rrddim_set(st, "SndbufErrors", *udplite_SndbufErrors);