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);