diff options
Diffstat (limited to '')
-rwxr-xr-x | tests/perctile-simple.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/perctile-simple.sh b/tests/perctile-simple.sh new file mode 100755 index 0000000..b3bca04 --- /dev/null +++ b/tests/perctile-simple.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +. ${srcdir:=.}/diag.sh init +DELIMITER='|' +BUCKETNAME='test_bucket' +STATNAME='test_stat_name' +# uncomment to test really long statname +#STATNAME='123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' +generate_conf +add_conf ' +ruleset(name="stats") { + action(type="omfile" file="'${RSYSLOG_DYNNAME}'.out.stats.log") +} + +module(load="../plugins/impstats/.libs/impstats" interval="1" severity="7" Ruleset="stats" bracketing="on") +#module(load="../plugins/impstats/.libs/impstats" format="json" interval="1" severity="7" Ruleset="stats" bracketing="on") +template(name="outfmt" type="string" string="%$.timestamp% %msg% val=%$.val%\n") + +percentile_stats(name="'$BUCKETNAME'" + percentiles=["95", "50", "99"] + windowsize="1000" + delimiter="'${DELIMITER}'" + ) + +if $msg startswith " msgnum:" then { + # test with a small window + set $.val = field($msg, 58, 2); + set $.status = percentile_observe("'$BUCKETNAME'", "'$STATNAME'", $.val); + action(type="omfile" file=`echo $RSYSLOG_OUT_LOG` template="outfmt") +} +' +startup +wait_for_stats_flush ${RSYSLOG_DYNNAME}.out.stats.log +. $srcdir/diag.sh block-stats-flush +shuf -i 1-1000 | sed -e 's/^/injectmsg literal <167>Mar 1 01:00:00 172.20.245.8 tag msgnum:/g' | $TESTTOOL_DIR/diagtalker -p$IMDIAG_PORT || error_exit $? +wait_queueempty +. $srcdir/diag.sh allow-single-stats-flush-after-block-and-wait-for-it + +shuf -i 1001-2000 | sed -e 's/^/injectmsg literal <167>Mar 1 01:00:00 172.20.245.8 tag msgnum:/g' | $TESTTOOL_DIR/diagtalker -p$IMDIAG_PORT || error_exit $? +. $srcdir/diag.sh await-stats-flush-after-block +wait_queueempty +wait_for_stats_flush ${RSYSLOG_DYNNAME}.out.stats.log + +echo doing shutdown +shutdown_when_empty +custom_content_check "${STATNAME}${DELIMITER}p95=950" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}p50=500" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}p99=990" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_min=1" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_max=1000" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_sum=500500" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_count=1000" "${RSYSLOG_DYNNAME}.out.stats.log" + +custom_content_check "${STATNAME}${DELIMITER}p95=1950" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}p50=1500" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}p99=1990" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_min=1001" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_max=2000" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_sum=1500500" "${RSYSLOG_DYNNAME}.out.stats.log" +custom_content_check "${STATNAME}${DELIMITER}window_count=1000" "${RSYSLOG_DYNNAME}.out.stats.log" + +exit_test |