summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/check_ntp.c48
1 files changed, 36 insertions, 12 deletions
diff --git a/plugins/check_ntp.c b/plugins/check_ntp.c
index 18571184..a884c15e 100644
--- a/plugins/check_ntp.c
+++ b/plugins/check_ntp.c
@@ -731,9 +731,26 @@ int process_arguments(int argc, char **argv){
731 return 0; 731 return 0;
732} 732}
733 733
734char *perfd_offset (double offset)
735{
736 return fperfdata ("offset", offset, "s",
737 TRUE, owarn,
738 TRUE, ocrit,
739 FALSE, 0, FALSE, 0);
740}
741
742char *perfd_jitter (double jitter)
743{
744 return fperfdata ("jitter", jitter, "s",
745 do_jitter, jwarn,
746 do_jitter, jcrit,
747 TRUE, 0, FALSE, 0);
748}
749
734int main(int argc, char *argv[]){ 750int main(int argc, char *argv[]){
735 int result, offset_result, jitter_result; 751 int result, offset_result, jitter_result;
736 double offset=0, jitter=0; 752 double offset=0, jitter=0;
753 char *result_line, *perfdata_line;
737 754
738 result=offset_result=jitter_result=STATE_UNKNOWN; 755 result=offset_result=jitter_result=STATE_UNKNOWN;
739 756
@@ -777,28 +794,32 @@ int main(int argc, char *argv[]){
777 794
778 switch (result) { 795 switch (result) {
779 case STATE_CRITICAL : 796 case STATE_CRITICAL :
780 printf("NTP CRITICAL: "); 797 asprintf(&result_line, "NTP CRITICAL:");
781 break; 798 break;
782 case STATE_WARNING : 799 case STATE_WARNING :
783 printf("NTP WARNING: "); 800 asprintf(&result_line, "NTP WARNING:");
784 break; 801 break;
785 case STATE_OK : 802 case STATE_OK :
786 printf("NTP OK: "); 803 asprintf(&result_line, "NTP OK:");
787 break; 804 break;
788 default : 805 default :
789 printf("NTP UNKNOWN: "); 806 asprintf(&result_line, "NTP UNKNOWN:");
790 break; 807 break;
791 } 808 }
792 if(offset_result==STATE_CRITICAL){ 809 if(offset_result==STATE_CRITICAL){
793 printf("Offset unknown|offset=unknown"); 810 asprintf(&result_line, "%s %s", result_line, _("Offset unknown"));
794 } else { 811 } else {
795 if(offset_result==STATE_WARNING){ 812 if(offset_result==STATE_WARNING){
796 printf("Unable to fully sample sync server. "); 813 asprintf(&result_line, "%s %s", result_line, _("Unable to fully sample sync server"));
797 } 814 }
798 printf("Offset %.10g secs|offset=%.10g", offset, offset); 815 asprintf(&result_line, "%s Offset %.10g secs", result_line, offset);
816 asprintf(&perfdata_line, "%s", perfd_offset(offset));
817 }
818 if (do_jitter) {
819 asprintf(&result_line, "%s, jitter=%f", result_line, jitter);
820 asprintf(&perfdata_line, "%s %s", perfdata_line, perfd_jitter(jitter));
799 } 821 }
800 if (do_jitter) printf(" jitter=%f", jitter); 822 printf("%s|%s\n", result_line, perfdata_line);
801 printf("\n");
802 823
803 if(server_address!=NULL) free(server_address); 824 if(server_address!=NULL) free(server_address);
804 return result; 825 return result;
@@ -819,11 +840,14 @@ void print_help(void){
819 print_usage(); 840 print_usage();
820 printf (_(UT_HELP_VRSN)); 841 printf (_(UT_HELP_VRSN));
821 printf (_(UT_HOST_PORT), 'p', "123"); 842 printf (_(UT_HOST_PORT), 'p', "123");
822 printf (_(UT_WARN_CRIT)); 843 printf (" %s\n", "-w, --warning=DOUBLE");
844 printf (" %s\n", _("Offset to result in warning status (seconds)"));
845 printf (" %s\n", "-c, --critical=DOUBLE");
846 printf (" %s\n", _("Offset to result in critical status (seconds)"));
823 printf (" %s\n", "-j, --warning=DOUBLE"); 847 printf (" %s\n", "-j, --warning=DOUBLE");
824 printf (" %s\n", _("warning value for jitter")); 848 printf (" %s\n", _("Warning value for jitter"));
825 printf (" %s\n", "-k, --critical=DOUBLE"); 849 printf (" %s\n", "-k, --critical=DOUBLE");
826 printf (" %s\n", _("critical value for jitter")); 850 printf (" %s\n", _("Critical value for jitter"));
827 printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); 851 printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
828 printf (_(UT_VERBOSE)); 852 printf (_(UT_VERBOSE));
829 printf (_(UT_SUPPORT)); 853 printf (_(UT_SUPPORT));