diff options
Diffstat (limited to 'examples/redis-unstable/tests/unit/latency-monitor.tcl')
| -rw-r--r-- | examples/redis-unstable/tests/unit/latency-monitor.tcl | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/examples/redis-unstable/tests/unit/latency-monitor.tcl b/examples/redis-unstable/tests/unit/latency-monitor.tcl deleted file mode 100644 index 9e714c1..0000000 --- a/examples/redis-unstable/tests/unit/latency-monitor.tcl +++ /dev/null @@ -1,189 +0,0 @@ -start_server {tags {"latency-monitor needs:latency"}} { - # Set a threshold high enough to avoid spurious latency events. - r config set latency-monitor-threshold 200 - r latency reset - - test {LATENCY HISTOGRAM with empty histogram} { - r config resetstat - set histo [dict create {*}[r latency histogram]] - # Config resetstat is recorded - assert_equal [dict size $histo] 1 - assert_match {*config|resetstat*} $histo - } - - test {LATENCY HISTOGRAM all commands} { - r config resetstat - r set a b - r set c d - set histo [dict create {*}[r latency histogram]] - assert_match {calls 2 histogram_usec *} [dict get $histo set] - assert_match {calls 1 histogram_usec *} [dict get $histo "config|resetstat"] - } - - test {LATENCY HISTOGRAM sub commands} { - r config resetstat - r client id - r client list - # parent command reply with its sub commands - set histo [dict create {*}[r latency histogram client]] - assert {[dict size $histo] == 2} - assert_match {calls 1 histogram_usec *} [dict get $histo "client|id"] - assert_match {calls 1 histogram_usec *} [dict get $histo "client|list"] - - # explicitly ask for one sub-command - set histo [dict create {*}[r latency histogram "client|id"]] - assert {[dict size $histo] == 1} - assert_match {calls 1 histogram_usec *} [dict get $histo "client|id"] - } - - test {LATENCY HISTOGRAM with a subset of commands} { - r config resetstat - r set a b - r set c d - r get a - r hset f k v - r hgetall f - set histo [dict create {*}[r latency histogram set hset]] - assert_match {calls 2 histogram_usec *} [dict get $histo set] - assert_match {calls 1 histogram_usec *} [dict get $histo hset] - assert_equal [dict size $histo] 2 - set histo [dict create {*}[r latency histogram hgetall get zadd]] - assert_match {calls 1 histogram_usec *} [dict get $histo hgetall] - assert_match {calls 1 histogram_usec *} [dict get $histo get] - assert_equal [dict size $histo] 2 - } - - test {LATENCY HISTOGRAM command} { - r config resetstat - r set a b - r get a - assert {[llength [r latency histogram set get]] == 4} - } - - test {LATENCY HISTOGRAM with wrong command name skips the invalid one} { - r config resetstat - assert {[llength [r latency histogram blabla]] == 0} - assert {[llength [r latency histogram blabla blabla2 set get]] == 0} - r set a b - r get a - assert_match {calls 1 histogram_usec *} [lindex [r latency histogram blabla blabla2 set get] 1] - assert_match {calls 1 histogram_usec *} [lindex [r latency histogram blabla blabla2 set get] 3] - assert {[string length [r latency histogram blabla set get]] > 0} - } - -tags {"needs:debug"} { - set old_threshold_value [lindex [r config get latency-monitor-threshold] 1] - - test {Test latency events logging} { - r config set latency-monitor-threshold 200 - r latency reset - r debug sleep 0.3 - after 1100 - r debug sleep 0.4 - after 1100 - r debug sleep 0.5 - r config set latency-monitor-threshold 0 - assert {[r latency history command] >= 3} - } - - test {LATENCY HISTORY output is ok} { - set res [r latency history command] - if {$::verbose} { - puts "LATENCY HISTORY data:" - puts $res - } - - set min 250 - set max 450 - foreach event $res { - lassign $event time latency - if {!$::no_latency} { - assert {$latency >= $min && $latency <= $max} - } - incr min 100 - incr max 100 - set last_time $time ; # Used in the next test - } - } - - test {LATENCY LATEST output is ok} { - set res [r latency latest] - if {$::verbose} { - puts "LATENCY LATEST data:" - puts $res - } - - foreach event $res { - lassign $event eventname time latency max - assert {$eventname eq "command"} - if {!$::no_latency} { - assert {$max >= 450 & $max <= 650} - assert {$time == $last_time} - } - break - } - } - - test {LATENCY GRAPH can output the event graph} { - set res [r latency graph command] - if {$::verbose} { - puts "LATENCY GRAPH data:" - puts $res - } - assert_match {*command*high*low*} $res - - # These numbers are taken from the "Test latency events logging" test. - # (debug sleep 0.3) and (debug sleep 0.5), using range to prevent timing issue. - regexp "command - high (.*?) ms, low (.*?) ms" $res -> high low - assert_morethan_equal $high 500 - assert_morethan_equal $low 300 - } - - r config set latency-monitor-threshold $old_threshold_value -} ;# tag - - test {LATENCY of expire events are correctly collected} { - r config set latency-monitor-threshold 20 - r flushdb - if {$::valgrind} {set count 100000} else {set count 1000000} - r eval { - local i = 0 - while (i < tonumber(ARGV[1])) do - redis.call('sadd',KEYS[1],i) - i = i+1 - end - } 1 mybigkey $count - r pexpire mybigkey 50 - wait_for_condition 5 100 { - [r dbsize] == 0 - } else { - fail "key wasn't expired" - } - assert_match {*expire-cycle*} [r latency latest] - - test {LATENCY GRAPH can output the expire event graph} { - assert_match {*expire-cycle*high*low*} [r latency graph expire-cycle] - } - - r config set latency-monitor-threshold 200 - } - - test {LATENCY HISTORY / RESET with wrong event name is fine} { - assert {[llength [r latency history blabla]] == 0} - assert {[r latency reset blabla] == 0} - } - - test {LATENCY DOCTOR produces some output} { - assert {[string length [r latency doctor]] > 0} - } - - test {LATENCY RESET is able to reset events} { - assert {[r latency reset] > 0} - assert {[r latency latest] eq {}} - } - - test {LATENCY HELP should not have unexpected options} { - catch {r LATENCY help xxx} e - assert_match "*wrong number of arguments for 'latency|help' command" $e - } -} |
