{"id":4078,"date":"2026-10-12T13:39:27","date_gmt":"2026-10-12T13:39:27","guid":{"rendered":"https:\/\/www.examtopics.biz\/blog\/az-104-azure-monitor-kql-alerts-action-groups\/"},"modified":"2026-10-16T20:40:28","modified_gmt":"2026-10-16T20:40:28","slug":"az-104-azure-monitor-kql-alerts-action-groups","status":"publish","type":"post","link":"https:\/\/www.examtopics.biz\/blog\/az-104-azure-monitor-kql-alerts-action-groups\/","title":{"rendered":"Microsoft AZ-104: Monitor Logs, KQL, Alerts and Action Groups"},"content":{"rendered":"<p>Azure Monitor data is valuable only when administrators can connect the right signal to an operational decision. This AZ-104 guide shows how Log Analytics, KQL queries, metric\/log alert rules and action groups fit into a failure-response workflow and why missing telemetry is not proof of health.<\/p>\n<h2>Collecting a log is not the same as detecting a failure<\/h2>\n<p>Azure operations generate multiple forms of telemetry, and the place where data is stored changes what administrators can investigate. A metric can help detect that a VM&#8217;s CPU is elevated; a log record can explain which change or operation occurred; an alert rule can evaluate a signal; and an action group can send an appropriate notification or invoke a supported automation. None of these, independently, proves that a user-facing operation failed or was repaired.<\/p>\n<p>A useful Azure Monitor alert begins with a claim the operations team can verify: for example, the production API&#8217;s 5xx error rate exceeded a specific threshold during the past ten minutes for a named workload. Choose a metric or KQL query that supports the claim, validate time-window behavior and data freshness, and record which action group receives a real alert and under what identity. A malformed filter may alert on test traffic or miss an outage completely. <a href=\"https:\/\/www.examtopics.biz\/az-104\">AZ-104 monitoring practice<\/a> scenarios become more informative when the correct answer distinguishes data collection, query results, rule evaluation and notification delivery rather than treating creation of a Log Analytics workspace as proof that an incident will be detected and acted on.<\/p>\n<h2>Choose a signal from a failure question<\/h2>\n<p>Start by asking what the operations team must learn. &quot;Something is wrong in production&quot; is not a measurable criterion. &quot;The web API has exceeded its agreed server-error budget during the previous ten minutes&quot; is closer to a testable objective. Identify which Azure metrics, logs or application telemetry support that claim, their retention and freshness, and the action the team should take if it becomes true.<\/p>\n<p>Consider a fictional web API running on Azure VMs. The team wants to identify unexpected resource restarts and correlate them with infrastructure changes. Activity Log data covers subscription-level management activity, while guest-operating-system logs may need a configured collection method. The administrator should not assume every Windows event or Linux syslog line is automatically present in a workspace just because the VM exists.<\/p>\n<p>Source selection affects visibility. Resource metrics may arrive through Azure Monitor without an extra diagnostic setting for every service, but many resource logs require explicit routing, supported categories and a destination. Some services offer data-collection rules and workload-specific integrations. Record which data actually reaches which table before building alert logic on it.<\/p>\n<h2>Log Analytics stores queryable records<\/h2>\n<p>A Log Analytics workspace supports KQL queries over collected tables. Diagnostic settings for eligible resources can send supported logs to workspaces, storage or event hubs, subject to category and plan behavior. A missing record can mean the event never happened, the collection agent or rule was wrong, permissions blocked it, latency delayed ingestion or the query selected an unsuitable table.<\/p>\n<p>Define table ownership and schema first. An AzureActivity query examines control-plane operations and will not automatically report application business errors. VM guest-performance and event tables depend on actual collection configuration. A query that returns zero rows from a workspace with no configured data collectors is not proof the environment had zero incidents.<\/p>\n<p>For each signal, document its originating resource, table, timestamp semantics, relevant resource identifier and expected ingestion latency. A query for the last minute can look artificially healthy if events routinely arrive later. Test the observation interval before assuming a quiet dashboard indicates a healthy service.<\/p>\n<h2>KQL helps narrow a large dataset<\/h2>\n<p>KQL operators such as where, project, summarize, extend and order by let administrators select relevant evidence. Consider this illustrative query against AzureActivity, assuming that the workspace collects that table:<\/p>\n<pre><code>AzureActivity\n| where TimeGenerated &gt; ago(30m)\n| summarize ChangeEvents = count() by OperationNameValue\n| order by ChangeEvents desc<\/code><\/pre>\n<p>This example counts management operations by operation-name field; it does not identify whether all changes were legitimate or whether a production outage occurred. Examine actual OperationNameValue and resource fields in your workspace before treating a grouping as an incident. Aggregating by friendly operation name alone can hide which subscription or resource was affected.<\/p>\n<p>To triage a real failed deployment, narrow the query by resource ID or operation, inspect status values and correlate the event time with application health. Use project to display only the fields a reviewer needs. Overly broad queries can consume compute and make important evidence difficult to find; overly narrow filters can conceal unexpected sources.<\/p>\n<p>Always qualify time zones and the difference between ingestion time and event time where tables support the relevant fields. An incident that happened just before a log-collection disruption might be visible later even when a short lookback query initially returned no results.<\/p>\n<h2>Alert rules evaluate signals under a schedule<\/h2>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-monitor\/alerts\/alerts-overview\" rel=\"nofollow\">Azure Monitor alert rules<\/a> can evaluate metrics, logs and other supported signals. The appropriate type depends on data frequency and what the rule is intended to detect. A metric alert may be appropriate for a sustained CPU threshold; a log-search alert can use KQL to detect a pattern across collected records. An alert rule must specify scope, evaluation conditions and supported timing settings, not just contain a query that once returned an interesting line.<\/p>\n<p>For a synthetic service with an error budget, choose a signal that reflects failures users experience. If a log query counts the same retry operation as three separate failed customer requests, its apparent failure rate may not match the business impact. If telemetry is delayed, a narrow evaluation window can miss data. Test the signal against representative incidents before setting a paging threshold.<\/p>\n<p>Azure offers dynamic threshold options for certain metric scenarios. Their behavior and prerequisites differ from fixed thresholds and log-based conditions. An administrator should not assume that every new service or dataset has enough historical data for a dynamic threshold to work well. Document why the threshold exists, who receives it and what constitutes recovery.<\/p>\n<h2>Action groups route notifications and operations<\/h2>\n<p>An action group contains supported actions for responding to alerts, such as email, SMS, push, webhooks or integrations depending on region and configuration. Reuse an action group when several alert rules intentionally share the same responders and escalation paths. Do not embed permanent personal contact details into every rule if organizational responders can be managed centrally.<\/p>\n<p>Sending a message is not repairing the incident. Define what the recipient must examine, which runbook is appropriate and when the incident should be escalated. If a webhook triggers automation, the receiving service must still enforce authentication and authorization; an alert is not itself permission to restart all machines or delete resources.<\/p>\n<p>An <a href=\"https:\/\/learn.microsoft.com\/azure\/azure-monitor\/alerts\/alerts-processing-rules\" rel=\"nofollow\">alert processing rule<\/a> acts on an alert that has already fired; it is different from the alert rule that evaluates metrics or logs and creates the alert. A processing rule can add an action group or suppress notifications for specified resource scopes, filters and schedules. For planned maintenance on one VM in a larger monitored resource group, suppress notifications only for the intended target and window, leaving the alert rule enabled so other VM incidents still fire and the maintenance VM&#8217;s alert remains inspectable. Do not mistake suppression for disabling alert evaluation, and do not assume suppressed notifications will be replayed automatically when the window ends. In a synthetic exercise, trigger the same error-budget breach for a maintained resource and an unaffected resource; confirm the first alert exists without paging the on-call group while the second still invokes its normal action group. Record rule scope, time zone, filter, schedule and responder ownership to avoid silently hiding a real outage.<\/p>\n<h2>Monitor the alerting system itself<\/h2>\n<p>A monitoring solution can fail because its collection agent stopped, diagnostic categories changed, a workspace lost permission or an action group contact is stale. A clean dashboard is not reassuring when the data pipeline is broken. Establish a small set of heartbeat or ingestion checks appropriate to the platform and workload. Also test that the notification channel can actually reach its intended responder.<\/p>\n<p>Azure Monitor Insights provides prebuilt experiences for VM, storage and networking workloads. These can speed an investigation, but a workload may still need custom questions or data collection to explain a failure. Combine useful default dashboards with service-specific queries rather than duplicating every built-in chart.<\/p>\n<p>Logging has privacy, access-control and storage costs alongside its diagnostic value. A workspace receiving broad resource diagnostics may retain sensitive payloads longer than necessary, while a query identity with expansive permissions can expose incidents outside its operational scope. Define the specific events needed to investigate the service failure, document <a href=\"https:\/\/www.examtopics.biz\/blog\/microsoft-az-305-azure-logging-architecture\/\">diagnostic routing and retention<\/a> choices, identify the access roles, and establish the escalation path before enabling verbose collection. A useful alert is not made safer by retaining every trace indefinitely; an audit needs enough trustworthy source and time identifiers to explain an incident without publishing customer records to unrelated analysts.<\/p>\n<h2>A synthetic alert exercise<\/h2>\n<p>Imagine a VM-based order service that becomes unavailable after a change to its network security group. The administration event should appear in relevant control-plane telemetry if collected, while user-facing errors might show in separate application telemetry. Design a query that filters the correct management operation and correlates its timestamp with a service-failure signal; do not assume one table contains both facts.<\/p>\n<p>Create three expected scenarios in a test plan. In case one, a configuration change occurs while the app remains healthy; an informational event may be recorded but it should not necessarily page the on-call person. In case two, error rates exceed the defined threshold and the alert should trigger the approved action group. In case three, telemetry stops arriving because collection is broken; an ingestion-health signal should indicate missing evidence rather than reporting complete health.<\/p>\n<p>Then simulate a planned maintenance interval, a repeated alert and a recovered service. Check whether the alert processing rule and action group behave as intended. Record the actual incident state, signal time and notification path. These are exercises until configured and tested against an authorized workspace.<\/p>\n<h2>How an AZ-104 administrator should reason<\/h2>\n<p>Administrators must identify which data collection path produces the evidence, select appropriate queries, configure relevant alert rules and action groups, interpret the results and keep access to telemetry appropriately scoped. A correct KQL result is only useful if its source data and timing reflect the question being asked.<\/p>\n<p>Validate a KQL-driven alert with two controlled data windows: one where the production service breaches its agreed error budget, and one where benign test traffic has similar error text but should not page operations. Compare query scope, time-window alignment, rule evaluation, action-group delivery and the human response. If no alert fires, identify whether the missing evidence is a data-ingestion delay, an incorrect filter or a notification failure. If the wrong person is paged, the action group and routing policy\u2014not the application log line\u2014may require correction.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Use Azure Monitor logs, KQL, alert rules and action groups to connect cloud telemetry to incidents.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[124,29,30,47],"tags":[],"class_list":["post-4078","post","type-post","status-publish","format-standard","hentry","category-exam-az-104","category-certifications","category-cloud-computing","category-microsoft-certifications"],"_links":{"self":[{"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/posts\/4078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/comments?post=4078"}],"version-history":[{"count":7,"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/posts\/4078\/revisions"}],"predecessor-version":[{"id":4632,"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/posts\/4078\/revisions\/4632"}],"wp:attachment":[{"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/media?parent=4078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/categories?post=4078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.examtopics.biz\/blog\/wp-json\/wp\/v2\/tags?post=4078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}