# Monitor Setup for Azure Service Bus Alerts and Dead Letter Queue Simulation ## Objective Set up Azure Monitor alerts to track queue length and dead-lettered messages for an Azure Service Bus queue. Simulate and trigger alerts to understand monitoring capabilities. --- ## Prerequisites 1. Azure Subscription with access to Service Bus and Azure Monitor. 2. Service Bus namespace and queue details: - Namespace: **ordernamespace** - Queue: **orderqueue** 3. Tools: - Azure Portal - Service Bus Explorer - Code samples from: - [ASBDLQDemo](https://github.com/CodeCraftersGPT/ASBDLQDemo) - [ASBQSender](https://github.com/CodeCraftersGPT/ASBQSender) --- ## Steps ### 1. Create Service Bus Namespace and Queue 1. Log in to the [Azure Portal](https://portal.azure.com). 2. Navigate to **Service Bus** and create a new namespace: - **Name**: ordernamespace - **Pricing Tier**: Standard - **Region**: East US/Select closest to you. 3. Inside the namespace, create a new queue: - **Name**: orderqueue - **Max Delivery Count**: 3 - **Enable Dead Letter Queue (DLQ)**: Enabled. 4. Save the queue settings. --- ### 2. Configure Azure Monitor Alerts 1. Navigate to **Azure Monitor** in the Azure Portal. 2. Select **Alerts** and click **+ New Alert Rule**. 3. Define the scope: - Select the Service Bus **ordernamespace** or the specific **orderqueue**. 4. Add conditions: - **Queue Length Alert**: - **Metric**: Queue Length - **Condition**: Greater than 10 - **Action**: Send email to `kumar@jatanix.com` / your email. - **Dead Letter Queue Alert**: - **Metric**: Dead Letter Messages - **Condition**: Greater than 2 - **Action**: Send email to `kumar@jatanix.com` / your email. 5. Save and activate the alerts. --- ### 3. Send Messages to the Queue 1. Clone the [ASBQSender repository](https://github.com/CodeCraftersGPT/ASBQSender) locally. 2. Replace the connection string and queue name in the configuration file. 3. Run the sender application to send **15 messages** to the queue: - Commands: ```bash dotnet run ``` 4. Verify the messages in the queue using **Service Bus Explorer**. --- ### 4. Simulate Dead Letter Queue 1. Clone the [ASBDLQDemo repository](https://github.com/CodeCraftersGPT/ASBDLQDemo) locally. 2. Replace the connection string and queue name in the source code with the details of **ordernamespace** and **orderqueue**. 3. Run the simulation to send and fail two messages, causing them to be moved to the DLQ. --- ### 5. Observe Alerts 1. Monitor the Azure Portal for alerts triggered by: - Queue length exceeding 10. - Dead-lettered messages exceeding 2. 2. Verify email notifications sent to `kumar@jatanix.com`. --- ## Expected Outcome 1. Alerts are triggered when thresholds are breached. 2. Email notifications are sent to the specified email address. 3. Messages can be observed in **Service Bus Explorer**, including the DLQ. --- ## Notes - Ensure proper permissions for Azure Monitor and Service Bus. - Delete or disable alerts post-demo to avoid unintended notifications. - Ensure Azure CLI or Portal is used correctly for setting up the environment. --- ## References 1. [Azure Service Bus Documentation](https://learn.microsoft.com/en-us/azure/service-bus-messaging/) 2. [Azure Monitor Documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/) 3. [ASBDLQDemo Repository](https://github.com/CodeCraftersGPT/ASBDLQDemo) 4. [ASBQSender Repository](https://github.com/CodeCraftersGPT/ASBQSender)