Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // GET Redis failure logs (FOR LAST 30 days)
- let StartTimeStamp = ago(30d);
- let tableCnt = IfxRedisRequestEvent
- | WHERE env_time >= StartTimeStamp
- | summarize numRequests=COUNT() BY env_cloud_location
- | sort BY env_cloud_location ASC;
- let failedLogs = IfxRedisRequestEvent
- | WHERE env_time >= StartTimeStamp
- | WHERE resultType != 'Success'
- | project env_cloud_location,resultDescription;
- let failedTable = failedLogs
- | summarize failedCnt=COUNT() BY env_cloud_location
- | sort BY env_cloud_location ASC;
- let connectFailedTable = failedLogs
- | WHERE resultDescription contains "StackExchange.Redis.RedisConnectionException:"
- | summarize connectFailedCnt=COUNT() BY env_cloud_location
- | sort BY env_cloud_location ASC;
- let timeoutTable = failedLogs
- | WHERE resultDescription contains "StackExchange.Redis.RedisTimeoutException:"
- | summarize timeoutCnt=COUNT() BY env_cloud_location
- | sort BY env_cloud_location ASC;
- let cancelledTable = failedLogs
- | WHERE resultDescription contains "System.Threading.Tasks.TaskCanceledException:"
- | summarize cancelledCnt=COUNT() BY env_cloud_location
- | sort BY env_cloud_location ASC;
- // COUNT each failure cases
- let RESULT = tableCnt | JOIN kind=fullouter failedTable ON env_cloud_location
- | JOIN kind=fullouter connectFailedTable ON env_cloud_location
- | JOIN kind=fullouter timeoutTable ON env_cloud_location
- | JOIN kind=fullouter cancelledTable ON env_cloud_location
- | extend numFailed = iif(failedCnt > 0, failedCnt, 0)
- | extend numConnectFailed = iif(connectFailedCnt > 0, connectFailedCnt, 0)
- | extend numTimeout = iif(timeoutCnt > 0, timeoutCnt, 0)
- | extend numCancelled = iif(cancelledCnt > 0, cancelledCnt, 0)
- | extend failedRatio = round(((numFailed - numCancelled) * 100.0)/numRequests, 2)
- | extend connectFailedRatio = round((numConnectFailed * 100.0)/numRequests, 2)
- | extend timeoutRatio = round((numTimeout * 100.0)/numRequests, 2)
- | extend cancelledRatio = round((numCancelled * 100.0)/numRequests, 2);
- // SHOW the TABLE OF failure counts
- RESULT
- | project env_cloud_location, numRequests, numFailed, numConnectFailed, numTimeout, numCancelled, failedRatio
- | sort BY env_cloud_location ASC;
- // SHOW the failure rate AS chart
- RESULT
- | project env_cloud_location, failedRatio, connectFailedRatio, timeoutRatio, cancelledRatio
- | sort BY env_cloud_location ASC
- | render columnchart
RAW Paste Data
Copied