At the load tests I need to analyse communication between web servers and Redis Cache. My target was to have a statistics with most accessed cache keys. To get required stasticts I run MONITOR command to collect data from Redis cache usage to file using redis-cli command:
1 | .\redis-cli.exe -h <redis_host> -a <redis_access_key> monitor > monitor.log |
Then I run load test to create traffic on web servers. After the load test I stop MONITOR command using CTRL+C. Statistics is created from usage of GET command. Raw monitor.log file is processed by following PowerShell command:
1 2 3 4 5 6 | Get-Content .\monitor.log ` | Select-String " ""GET"" " ` | ForEach-Object { $_ .ToString().Split(@( " ""GET"" " ), [System.StringSplitOptions] ::None)[1] } ` | Group-Object ` | Sort-Object -Property Count -Descending ` | Format-Table -Property Count,Name |
Result of PowerShell command is summary statistics with most accessed cache keys:
1 2 3 4 5 6 7 8 9 10 | Count Name ----- ---- 2570 "OrderService_OrderService_Orders_STATE" 2570 "OrderService_OrderService_Orders" 261 "Test_a2/product/detail/1" 225 "Test_a2/product/detail/1HQNnoneV+n+FCDE" 211 "Test_a2/product/category/1" 211 "ProductService_ProductService_Product_1_STATE" 202 "Test_a2/product/detail/1" 196 "ProductService_ProductService_Product_1" |
If you are interested in PowerShell automation, take my Udemy course Improve your productivity with PowerShell.