Middleware Friday is an initiative proposed by Kent Weare and brought to you by BizTalk360. The idea behind Middleware Friday is to have a short 15-20 minute Video Blog (vLog) that will be released every Friday on integration technologies.
In this blog, I will give you a recap of Episode 8 of Middleware Friday on the topic “Monitoring Azure Service Bus Queues and Topics using Serverless360”. Serverless360 is a One Platform Operations, Monitoring, and Alerting software for Azure Service Bus. We’ll take a look on how you can monitor Azure Service Bus Messaging (Queues and Topics) using Serverless360.
Getting Started with Serverless360
You can get started with Serverless360 from this URL. By signing up, you will get access to Serverless360 free forever. Alternatively, you can log in to the Serverless360 website and click Sign Up at the top menu bar. If you already have an account with Serverless360, you can get started by clicking the Sign In button at the top menu bar. In order to sign up with Serverless360 for a new account, you need to provide basic information like your name, email, and if you have any special coupon that you received as part of any event (Techorama, Global Azure Bootcamp, INTEGRATE 2017, Microsoft Inspire and so on).
You need to verify your email id. Post activation, you will be prompted with the screen to enter your password, company name, and international phone number.
Click Go to Serverless360 to log in to the Serverless360 portal. Once in the portal, you will see a welcome message from Saravana Kumar, founder of BizTalk360. Click Get Started.
The first step after you log in to your Serverless360 portal is to associate your Service Bus namespaces with Serverless360. You have two options –
- Import your namespaces directly from Service Bus Explorer by uploading the configuration file which can be found at the application execution directory (usually ServiceBusExplorer.exe.config in bin/Debug or bin/Release folder where you have the Service Bus Explorer application package)
- Associate namespaces manually by providing the connection string and a friendly name for your namespace.
For the purpose of this demo, we will choose the second option – to associate namespaces with Serverless360. Click Associate Namespace and enter the following details –
- Friendly name
- Connection String
- Azure Namespace
- Choose the namespace type (between messaging, relay, event hub)
Copy the Primary Key from the Azure Portal under Policy: RootManageSharedAccessKey section as shown below.
Click Save to save the newly associated namespace.
Now that we have associated a namespace with Serverless360, you can manage the namespace in order to set up monitoring or perform basic operations on the entities of the namespace. To perform these operations, click Manage Namespace from the namespace dashboard.
Click the ellipsis button (…) to perform basic operations on the Queue such as Disable the queue, copy the queue URL, copy Dead Letter queue URL, view the queue properties, view shared access policy and delete the queue.
From the above image, we see that there are two queues and one topic available under the namespace. Let’s perform some basic Operations on the queue.
Perform Operations on the Queue
Choose the queue by selecting the checkbox and click the Operations icon (gear). You will be able to retrieve messages from the queue.
Please note that messages are retrieved in the peek lock mode.
Select the number of messages you want to retrieve and click GET.
In our case, the first queue azurepass-queue1 does not have any messages within. Therefore, we can simulate pumping of messages either with the help of Logic Apps or with the Service Bus Explorer.
Send Messages into the Queue with Logic Apps
In this example, Kent shows a very simple Logic App that will trigger messages into the Service Bus with a unique GUID and a message text. The Logic App will look as follows –
When we execute the Logic App, each trigger will send a message into the Service Bus Queue azurepass-queue1. Now, repeat the earlier steps to view the messages in the queue. Click GET and you will see the list of messages that were triggered from the Logic App.
You can view the properties and details of each message by clicking …
Set up Monitoring on the Queue
The monitoring logic of Serverless360 works on the exact same principle as of BizTalk360. The first step will be to create an alarm, and then map the resources to the alarm. Let’s get started by creating our first alarm in Serverless360. Click the Monitoring icon represented by the laptop icon.
Since there are no alarms preconfigured, you will see a warning message asking you to create an alarm. Click Create a New Alarm.
The detailed steps to create an alarm and configure monitoring for the artifacts are documented in detail in the Serverless360 Support Portal. Click the link to view the detailed documentation. For the purpose of this demo, I will set up a Threshold alarm that will trigger a violation if a problem persists for 3 minutes.
Now, let’s configure the queue entities for monitoring. Choose the alarm from the drop down. This has to be the first step to set up monitoring. Then click Edit and set the warning/error threshold values for the different parameters that you want to evaluate. Once you are done with the configuration, click Save to save the monitoring configuration.
For this demo, we will set the warning threshold for active messages at 10 and error threshold at 20. Similarly, we will set the warning threshold for dead letter message at 1 and error threshold at 10.
Navigate back to Home and you will notice the namespace dashboard showing the monitoring status. The monitoring service will check the status every 60 seconds and update the dashboard with the status.
You will also receive an email to your registered email address with the monitoring status (if you have opted for email notifications while creating the alarm). Similarly, you can receive notifications from Slack, Pager Duty).
Let’s try to get the monitoring to a Healthy status
Let’s write another Logic App that will receive a message in the queue and delete it immediately without having to peek lock the message. The Logic App will look as follows –
Once we execute this Logic App, all the messages in the Queue will be received and the alarm status will revert to Healthy status.
Once the health of the alarm gets back to normal, if you have enabled the “Notify when things become normal after violation” when creating the alarm, you will receive the threshold compliance report with the health of the alarm as Healthy.
You can perform the same steps to monitor your Service Bus Topics.
Kent highlighted the community content on the Team and LUIS support for Microsoft Flows written by Kent himself on InfoQ blog and the blog post from Toon Vanhoutte on “Exception handling for Logic Apps web services”.
You can watch the video of this session on Monitoring Service Bus Queues and Topics with Serverless360 here
You can give your feedback about Middleware Friday episodes, any special topic of interest, or any guest speaker whom you would like to see at Middleware Friday. Simply tweet at @MiddlewareFri or drop an email to firstname.lastname@example.org.
You can watch the Middleware Friday sessions here.
Watch our video on Getting Started with Serverless360.