Bläddra i källkod

Added performance data to the --metric options.

azthec 6 år sedan
förälder
incheckning
130ed4ca4f
1 ändrade filer med 24 tillägg och 6 borttagningar
  1. 24 6
      plugins/check_procs.c

+ 24 - 6
plugins/check_procs.c

@@ -135,9 +135,13 @@ main (int argc, char **argv)
 	pid_t procppid = 0;
 	pid_t kthread_ppid = 0;
 	int procvsz = 0;
+	int total_procvsz = 0;
 	int procrss = 0;
+	int total_procrss = 0;
 	int procseconds = 0;
+	int total_procseconds = 0;
 	float procpcpu = 0;
+	float total_procpcpu = 0;
 	char procstat[8];
 	char procetime[MAX_INPUT_BUFFER] = { '\0' };
 	char *procargs;
@@ -326,16 +330,22 @@ main (int argc, char **argv)
 				}
 			}
 
-			if (metric == METRIC_VSZ)
+			if (metric == METRIC_VSZ) {
 				i = get_status ((double)procvsz, procs_thresholds);
-			else if (metric == METRIC_RSS)
+				total_procvsz += procvsz;
+			} else if (metric == METRIC_RSS) {
 				i = get_status ((double)procrss, procs_thresholds);
+				total_procrss += procrss;
+			}
 			/* TODO? float thresholds for --metric=CPU */
-			else if (metric == METRIC_CPU)
+			else if (metric == METRIC_CPU) {
 				i = get_status (procpcpu, procs_thresholds);
-			else if (metric == METRIC_ELAPSED)
+				total_procpcpu += procpcpu;
+			}
+			else if (metric == METRIC_ELAPSED) {
 				i = get_status ((double)procseconds, procs_thresholds);
-
+				total_procseconds += procseconds;
+			}
 			if (metric != METRIC_PROCS) {
 				if (i == STATE_WARNING) {
 					warn++;
@@ -394,6 +404,14 @@ main (int argc, char **argv)
 		printf (" | procs=%d;%s;%s;0;", procs,
 				warning_range ? warning_range : "",
 				critical_range ? critical_range : "");
+	else if (metric == METRIC_VSZ)
+		printf (" | procs=%d;;;0; procs_warn=%d;;;0; procs_crit=%d;;;0; procvsz=%d;", procs, warn, crit, total_procvsz);
+	else if (metric == METRIC_RSS)
+		printf (" | procs=%d;;;0; procs_warn=%d;;;0; procs_crit=%d;;;0; procrss=%d;", procs, warn, crit, total_procrss);
+	else if (metric == METRIC_CPU)
+		printf (" | procs=%d;;;0; procs_warn=%d;;;0; procs_crit=%d;;;0; procpcpu=%f;", procs, warn, crit, total_procpcpu);
+	else if (metric == METRIC_ELAPSED)
+		printf (" | procs=%d;;;0; procs_warn=%d;;;0; procs_crit=%d;;;0; procseconds=%d;", procs, warn, crit, total_procseconds);
 	else
 		printf (" | procs=%d;;;0; procs_warn=%d;;;0; procs_crit=%d;;;0;", procs, warn, crit);
 
@@ -821,4 +839,4 @@ print_usage (void)
 	printf ("%s -w <range> -c <range> [-m metric] [-s state] [-p ppid]\n", progname);
   printf (" [-u user] [-r rss] [-z vsz] [-P %%cpu] [-a argument-array]\n");
   printf (" [-C command] [-k] [-t timeout] [-v]\n");
-}
+}