You are monitoring an e-commerce application with Application Insights. You need to analyze all exceptions that occurred in the last 24 hours, grouped by the exception type. You also need to include the URL where each exception was triggered and the number of times each type occurred. Which Log Analytics Kusto query should you use?
Answer choices
Why each option matters
Good practice is not just finding the correct option. The wrong answers often show the exact trap the exam wants you to fall into.
Best answer
exceptions | where timestamp > ago(24h) | join kind=inner requests on operation_Id | extend exceptionType = tostring(innermostType) | summarize Count=count() by exceptionType, url
This query joins the exceptions table with the requests table on operation_Id to get the URL (from requests table), then groups by exceptionType (innermostType) and url, counting occurrences.
Distractor review
exceptions | where timestamp > ago(24h) | extend exceptionType = tostring(customDimensions.['ExceptionType']) | summarize Count=count() by exceptionType, url = tostring(customDimensions.['Url'])
Exception data typically does not store URL in customDimensions by default. The URL is available in the requests table, not directly in exceptions. This approach is unreliable.
Distractor review
requests | where timestamp > ago(24h) and success == false | extend exceptionType = tostring(resultCode) | summarize Count=count() by exceptionType, url
This only covers failed requests (HTTP errors), not custom exceptions caught in code. It also uses resultCode as exceptionType, which is not accurate.
Distractor review
exceptions | where timestamp > ago(24h) | extend exceptionType = tostring(innermostType) | summarize Count=count() by exceptionType
This returns the count per exceptionType but does not include the URL, which the requirement specifies.
Common exam trap
Common exam trap: NAT rules depend on direction and matching traffic
NAT is not only about the public address. The inside/outside interface roles and the ACL or rule that matches traffic are just as important.
Technical deep dive
How to think about this question
NAT questions usually test address translation, overload/PAT behaviour, static mappings and whether the right traffic is being translated. Read the interface direction and address terms carefully.
KKey Concepts to Remember
- Static NAT maps one inside address to one outside address.
- PAT allows many inside hosts to share one public address using ports.
- Inside local and inside global describe the private and translated addresses.
- NAT ACLs identify traffic for translation, not always security filtering.
TExam Day Tips
- Identify inside and outside interfaces first.
- Check whether the scenario needs static NAT, dynamic NAT or PAT.
- Do not confuse NAT matching ACLs with normal packet-filtering intent.
Related practice questions
Related AZ-204 practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
More questions from this exam
Keep practising from the same exam bank, or move into a focused topic page if this question exposed a weak area.
Question 1
An application stores customer invoices in Azure Blob Storage. Deleted blobs must be recoverable for 14 days. What should be enabled?
Question 2
You are deploying a containerized application to Azure Container Instances. The application requires a custom domain name and SSL/TLS termination. You need to configure these features. Which resource should you create alongside the container group?
Question 3
A developer needs to run a Kusto query against application request data to identify 95th percentile latency by operation. Where should the query be run? The architecture review board prefers a managed AWS-native control.
Question 4
You are developing a web app that authenticates users via Microsoft Entra ID. The app needs to read the user's profile and send emails on their behalf. You want to minimize user consent prompts. Which OAuth 2.0 grant type should you use?
Question 5
You are developing an Azure Function that processes messages from an Azure Service Bus queue. The function uses a Service Bus queue trigger and runs on a Consumption Plan. The queue receives a high volume of messages in bursts. You need to ensure that the function scales out to handle the load but does not exceed 10 concurrent instances. Which configuration should you apply?
Question 6
You are monitoring an Azure App Service using Application Insights. You notice that the server response time is high for certain requests. You need to drill down to see which external dependencies (like databases or APIs) are causing the delay. Which Application Insights feature should you use?
FAQ
Questions learners often ask
What does this AZ-204 question test?
Static NAT maps one inside address to one outside address.
What is the correct answer to this question?
The correct answer is: exceptions | where timestamp > ago(24h) | join kind=inner requests on operation_Id | extend exceptionType = tostring(innermostType) | summarize Count=count() by exceptionType, url — To get exceptions grouped by type with the URL and count, you query the exceptions table. The correct query projects the innermost type and the operation_SyntheticSource or cloud_RoleName? the 'where' clause filters the last 24 hours, then extend to get the actual exception type from details, then summarize count by type and operation_SyntheticSource? Wait, the correct field for URL is 'operation_Name'? In Application Insights, 'operation_Name' is the operation name, not the URL. For exceptions, the 'details' column contains the stack trace but not URL directly. However, the 'request' table associated via operation_Id contains the url. So a join? But the question expects a simpler approach: exceptions have a 'problemId' or 'type'? the 'exceptions' table has a column 'outerType', 'innerType', etc. For a common exam pattern, the query uses 'exceptions' | where timestamp > ago(24h) | extend exceptionType = tostring(customDimensions.['some property'])... But the most straightforward is to use 'requests' table and exceptions together. However, given the options, the correct one uses 'exceptions' and 'requests' with a join on operation_Id to get the url. Let's see option A: exceptions | join requests on operation_Id | where timestamp > ago(24h) | summarize Count=count() by problemId, url. Option B: exceptions | where timestamp > ago(24h) | extend url = customDimensions.['Url']... Not standard. Option C: requests | where timestamp > ago(24h) | where success == false | ... that might miss exceptions not tied to requests. Option D: exceptions | where timestamp > ago(24h) | extend exceptionType = tostring(innermostType) | summarize Count=count() by exceptionType. This does not include URL. So the correct answer should be one that joins to requests to get the URL. Option A is the most accurate.
What should I do if I get this AZ-204 question wrong?
Then try more questions from the same exam bank and focus on understanding why the wrong options are tempting.
Discussion
Sign in to join the discussion.