0
votes

I have been trying to set up alerts of a .NET Core App Service hosted in Azure to fire an event if X% of the requests are failing in the past 24 hours. I have also tried setting up an alert from the Service's AppInsights resource using the following metrics: Exception rate, Server exceptions, or Failed request.

However, none of these have the ability to capture a % (failure rate), all of them are using count as a metric.

Does anyone know a workaround for this?

2

2 Answers

1
votes

Please try the query-based alert:

1.Go to application insights analytics, in the query editor, input below scripts:

exceptions
| where timestamp >ago(24h)
| summarize exceptionsCount = sum(itemCount) | extend t = ""| join
(requests 
| where timestamp >ago(24h)
| summarize requestsCount = sum(itemCount) | extend t = "") on t
| project isFail = 1.0 * exceptionsCount / requestsCount > 0.5 // if fail rate is greater than 50%, fail
| project rr = iff(isFail, "Fail", "Pass")
| where rr == "Fail"

2.Then click the "New alert rule" on the upper right corner:

enter image description here

3.In the Create rule page, set as following:

enter image description here

0
votes

I was looking for a way to avoid writing queries using something that is already built-in in app insights but in the end i also came up with something like yours solution using the requests instead:

requests
| summarize count()
| extend a = "a"
| join
(
    requests
    | summarize count() by resultCode
    | extend a = "a"
)
on a
| extend percentage = (todouble(count_1)*100/todouble(count_))
| where resultCode == 200
| where percentage < 90 //percentage of success is less than 90% 
| project percentage_of_failures = round(100- percentage,2), total_successful_req = count_, total_failing_req = count_ - count_1 , total_req = count_1