@@ -462,6 +462,63 @@ monitor_checkpoint () {
462462 mv " $tmpfname " " $fname "
463463}
464464
465+ monitor_journals () {
466+ # Metrics for monitoring journals with `p4 journal`
467+
468+ fname=" $metrics_root /p4_journals${sdpinst_suffix} -${SERVER_ID} .prom"
469+ tmpfname=" $fname .$$ "
470+
471+ MAX_JOURNALS=20
472+ rm -f " $tmpfname "
473+ COUNT=0
474+ OLDEST_JOURNAL=
475+ LATEST_JOURNAL=
476+ p4journals=` mktemp`
477+ $p4 -F " %type% %start% %end% %jsize% %jnum% 0%failed%" journals -m $MAX_JOURNALS -F " type=journal|type=checkpoint" > $p4journals
478+
479+ echo " #HELP p4_journals_type Type of journal operation (1=journal, 2=checkpoint)" >> " $tmpfname "
480+ echo " #TYPE p4_journals_type gauge" >> " $tmpfname "
481+ echo " #HELP p4_journals_starttime Start Time of journal operation" >> " $tmpfname "
482+ echo " #TYPE p4_journals_starttime gauge" >> " $tmpfname "
483+ echo " #HELP p4_journals_finishtime Finish Time of journal operation" >> " $tmpfname "
484+ echo " #TYPE p4_journals_finishtime gauge" >> " $tmpfname "
485+ echo " #HELP p4_journals_size Size in bytes of journal operation output file" >> " $tmpfname "
486+ echo " #TYPE p4_journals_size gauge" >> " $tmpfname "
487+ echo " #HELP p4_journals_sequence Sequence number of journal operation output file" >> " $tmpfname "
488+ echo " #TYPE p4_journals_sequence gauge" >> " $tmpfname "
489+ echo " #HELP p4_journals_failed Failure status of journal operation" >> " $tmpfname "
490+ echo " #TYPE p4_journals_failed gauge" >> " $tmpfname "
491+
492+ while read JOURNAL
493+ do
494+ COUNT=$(( $COUNT + 1 ))
495+
496+ JTYPE=1
497+ if [ " ` echo $JOURNAL | cut -f1 -d' ' ` " == " checkpoint" ]; then JTYPE=2; fi
498+ echo " p4_journals_type{${serverid_label}${sdpinst_label} ,position=\" " ${COUNT} \" " } $JTYPE " >> " $tmpfname "
499+
500+ STARTTIME=` echo $JOURNAL | cut -f2 -d' ' `
501+ echo " p4_journals_starttime{${serverid_label}${sdpinst_label} ,position=\" " ${COUNT} \" " } $STARTTIME " >> " $tmpfname "
502+
503+ FINISHTIME=` echo $JOURNAL | cut -f3 -d' ' `
504+ echo " p4_journals_finishtime{${serverid_label}${sdpinst_label} ,position=\" " ${COUNT} \" " } $FINISHTIME " >> " $tmpfname "
505+
506+ SIZE=` echo $JOURNAL | cut -f4 -d' ' `
507+ echo " p4_journals_size{${serverid_label}${sdpinst_label} ,position=\" " ${COUNT} \" " } $SIZE " >> " $tmpfname "
508+
509+ SEQUENCE=` echo $JOURNAL | cut -f5 -d' ' `
510+ echo " p4_journals_sequence{${serverid_label}${sdpinst_label} ,position=\" " ${COUNT} \" " } $SEQUENCE " >> " $tmpfname "
511+
512+ FAILED=` echo $JOURNAL | cut -f6 -d' ' `
513+ echo " p4_journals_failed{${serverid_label}${sdpinst_label} ,position=\" " ${COUNT} \" " } $FAILED " >> " $tmpfname "
514+
515+ done < $p4journals
516+
517+ rm $p4journals
518+ chmod 644 " $tmpfname "
519+ mv " $tmpfname " " $fname "
520+ }
521+
465522monitor_replicas () {
466523 # Metric for server replicas
467524 fname=" $metrics_root /p4_replication${sdpinst_suffix} -${SERVER_ID} .prom"
@@ -789,4 +846,5 @@ monitor_filesys
789846monitor_versions
790847monitor_ssl
791848monitor_checkpoint
849+ monitor_journals
792850monitor_errors
0 commit comments