@@ -8312,6 +8312,86 @@ var _ = Describe("Commands", func() {
83128312 Expect (len (result )).NotTo (BeZero ())
83138313 })
83148314 })
8315+
8316+ Describe ("Latency" , Label ("NonRedisEnterprise" ), func () {
8317+ It ("returns latencies" , func () {
8318+ const key = "latency-monitor-threshold"
8319+
8320+ old := client .ConfigGet (ctx , key ).Val ()
8321+ client .ConfigSet (ctx , key , "1" )
8322+ defer client .ConfigSet (ctx , key , old [key ])
8323+
8324+ err := client .Do (ctx , "DEBUG" , "SLEEP" , 0.01 ).Err ()
8325+ Expect (err ).NotTo (HaveOccurred ())
8326+
8327+ result , err := client .Latency (ctx ).Result ()
8328+ Expect (err ).NotTo (HaveOccurred ())
8329+ Expect (len (result )).NotTo (BeZero ())
8330+ })
8331+
8332+ It ("reset all latencies" , func () {
8333+ const key = "latency-monitor-threshold"
8334+
8335+ result , err := client .Latency (ctx ).Result ()
8336+ // reset all latencies
8337+ err = client .LatencyReset (ctx ).Err ()
8338+ Expect (err ).NotTo (HaveOccurred ())
8339+
8340+ old := client .ConfigGet (ctx , key ).Val ()
8341+ client .ConfigSet (ctx , key , "1" )
8342+ defer client .ConfigSet (ctx , key , old [key ])
8343+
8344+ // get latency after reset
8345+ result , err = client .Latency (ctx ).Result ()
8346+ Expect (err ).NotTo (HaveOccurred ())
8347+ Expect (len (result )).Should (Equal (0 ))
8348+
8349+ // create a new latency
8350+ err = client .Do (ctx , "DEBUG" , "SLEEP" , 0.01 ).Err ()
8351+ Expect (err ).NotTo (HaveOccurred ())
8352+
8353+ // get latency after create a new latency
8354+ result , err = client .Latency (ctx ).Result ()
8355+ Expect (err ).NotTo (HaveOccurred ())
8356+ Expect (len (result )).Should (Equal (1 ))
8357+
8358+ // reset all latencies again
8359+ err = client .LatencyReset (ctx ).Err ()
8360+ Expect (err ).NotTo (HaveOccurred ())
8361+
8362+ // get latency after reset again
8363+ result , err = client .Latency (ctx ).Result ()
8364+ Expect (err ).NotTo (HaveOccurred ())
8365+ Expect (len (result )).Should (Equal (0 ))
8366+ })
8367+
8368+ It ("reset latencies by add event name args" , func () {
8369+ const key = "latency-monitor-threshold"
8370+
8371+ old := client .ConfigGet (ctx , key ).Val ()
8372+ client .ConfigSet (ctx , key , "1" )
8373+ defer client .ConfigSet (ctx , key , old [key ])
8374+
8375+ result , err := client .Latency (ctx ).Result ()
8376+ Expect (err ).NotTo (HaveOccurred ())
8377+ Expect (len (result )).Should (Equal (0 ))
8378+
8379+ err = client .Do (ctx , "DEBUG" , "SLEEP" , 0.01 ).Err ()
8380+ Expect (err ).NotTo (HaveOccurred ())
8381+
8382+ result , err = client .Latency (ctx ).Result ()
8383+ Expect (err ).NotTo (HaveOccurred ())
8384+ Expect (len (result )).Should (Equal (1 ))
8385+
8386+ // reset latency by event name
8387+ err = client .LatencyReset (ctx , result [0 ].Name ).Err ()
8388+ Expect (err ).NotTo (HaveOccurred ())
8389+
8390+ result , err = client .Latency (ctx ).Result ()
8391+ Expect (err ).NotTo (HaveOccurred ())
8392+ Expect (len (result )).Should (Equal (0 ))
8393+ })
8394+ })
83158395})
83168396
83178397type numberStruct struct {
0 commit comments