Share via


Service Bus Explorer 2.0 released

 

I just a major version of the Service Bus Explorer 2.0. This version introduces the following updates:

  • This version uses the Microsoft.ServiceBus.dll 2.0 Beta available on NuGet at https://nuget.org/packages/WindowsAzure.ServiceBus.
  • SAS and Authorization Rules: So far, the Windows Azure Service Bus had a strong dependency on ACS for authentication. As you know, Shared Secret is the most commonly used authentication mechanism, but SAML is a good alternative.This generated some problems, because when ACS is unavailable, applications cannot authenticate and acquire the token necessary to access the Service Bus namespace. That’s why the Service Bus team decided to implement Shared Access Signatures, like in storage services: you will be able to create authorization rules at the queue and topic level to access them directly with a Primary or Secondary key without the need to authenticate against ACS. This should also speed up the access to messaging entities because it cuts the hand shacking with ACS. In addition, the Windows Azure management portal will soon provide the ability to create multiple signatures with different rights. These signatures will be available to be used in a Service Bus connection string. The most restrictive scope always win when you have two SAS, one at the namespace level and one at the entity level, with the same key and different access rights. The Service Bus Explorer 2.0 introduces the possibility to define authorization rules at the queue/topic level as shown in the picture below:

  • Metrics: Windows Azure Service Bus 2.0 introduces the possibility to invoke metrics RESTful services to retrieve useful key performance indicators at the entity level.
  • Supported Metrics:   Telemetry and usage data include the following metrics:
    • Length
    • Size
    • Incoming Messages
    • Outgoing Messages
    • Successful operations
    • Failed operations
    • Internal Server Errors
    • Server Busy Errors
    • Other Errors
  • Metrics support the following granularities:
    • PT5M 5 Minutes rollup
    • PT1H 1 Hour rollup
    • P1D 1 Hour rollup
    • P7D 1 Hour rollup
  • The Service Bus Explorer 2.0 introduces the ability to query telemetry and metrics data. Right-click the namespace root node and choose Open Metrics in SDI or MDI mode as shown in the following picture:

  • The tool gives the user the ability to define one or more Metrics rules to retrieve metrics data by invokingthe RESTful services exposed by the Service Bus. Note: these are the same services invoked by the Windows Azure Management Portal to show Service Bus counter in the Dashboard tab. The user can define multiple rules to compare metrics from different entities (e.g. the incoming messages of request queue with the outgoing messages of a response queue in a given timeframe). Metrics from different entities can be visualized together in the Main Graph, while data and charts for individual metrics can be analyzed on separate tabs. See the following screenshots:


  • The rules can be exported/imported to/from an XML file.
  • Important Note: to access Metrics data is mandatory to indicate in the configuration file or in the Options form the following values:
    • Windows Azure Subscription Id
    • Thumbprint of a Windows Azure Management Certificate
  • Metrics can also be access at the entity level from the Metrics tab as shown in the following screenshots:

  • Monitor: the Service Bus Explorer 2.0 introduces the possibility to monitor in real time and define warning and critical thrshold values for the following properties of for queues, topics and subscriptions:
    • Active Message Count
    • Deadletter Message Count
    • Size
  • The current state of a performance counter can be visualized in the Monitor Rules datagrid or in the chart.
  • The state is represented by a different color:
    • Green: Normal
    • Yellow: Warning
    • Red: Critical
  • State transition events are logged in the Monitor Events listbox.
  • The rules can be exported/imported to/from an XML file.

 

  • Sessions: the Service Bus Explorer 2.0 introduces the possibility to retrieve the current sessions for a sessionful queue or subscriptions. You can access this functionality from the new Sessions button or from the Get Message Sessions context menu of a sessionful entity:

  • Peek and Receive Active Messages: the Service Bus Explorer 2.0 introduces the possibility to peek or receive a configurable amount of messages from a queue or subscription. You can access this functionality from the new Messagesbutton or from the following items in the context menu item of a queue or subscription:
    • Receive All Messages
    • Receive Top k Messages
    • Peek Top k Messages

  • When you click the Ok button in the Retrieve messages from queue (or subscription) dialog, messages are retrieved and showned in the following tab.

  • You can browse messages by selecting the corresponding row in the grid. The Messagestab shows the following information for the selected message:
    • Message Text
    • Message System Properties
    • Message Custom Properties
  • Peek and Receive Deadletter Messages: the Service Bus Explorer 2.0 introduces the possibility to peek or receive a configurable amount of messages from the deadletter queue of queues and subscriptions. You can access this functionality from the new Deadletter button or from the following items in the context menu item of a queue or subscription:
  •  
    • Receive All Deadletter Queue Messages
    • Receive Top k Deadletter Queue Messages
    • Peek Top k Deadletter Queue Messages

  • When you click the Ok button in the Retrieve messages from deadletter queue dialog, messages are retrieved and showned in the following tab.

 

  • You can browse messages by selecting the corresponding row in the grid. The Deadletter tab shows the following information for the selected message:
  •  
    • Message Text
    • Message System Properties
    • Message Custom Properties
  • Repair and Resubmit Message: the Service Bus Explorer 2.0 introduces the possibility to repair and resubmit a message read or peeked from a queue, subscription or deadletter queue. To perform this operation, just double click a message in the Messages or Deadletter tab. This action opens a modal dialog from which you can edit the text, system properties and custom properties of the current message and select a queue or topic in the current namespace to which send the modified message.

  • Sender Think Time: the test queue and test topic controls introduce the ability to define a think time in the Sender tab.

 

  • Receive Think Time: the test queue and test topic controls introduce the ability to define a think time in the Receiver tab.

  • Use multiple files as message template: the Service Bus Explorer 2.0 introduces the possibility to select multiple files from different directories to be used as message templates when testing queues, topics and subscriptions. As shown in the picture below, in the Message tab select the Files sub-tab and use the Select Files button to add files to the list of message templates. Select the files that you want to use as message templates during a test. Sender tasks will use the content of these files in a round-robin fashion when sending messages to queues and topics. All messages will share the custom and system properties defined on the Message and Sender tabs.

  • New configuration settings and Options form: the following settings have been introduced in the Options form and in the configuration file. In addition, the Options form now provides the ability to persist settings to the configuration file by clicking the Savebutton.
    • Monitor Refresh Interval
    • Subscription Id
    • Management Certificate Thumbprint
    • Message Path
    • Message Text
    • Sender Think Time
    • Receive Think Time

  • New About form: you can access my email address and twitter account in the new about form.

  • Auto Delete On Idle: the Service Bus 2.0 introduced for queues, topics and subscriptions the new TimeSpan property AutoDeleteOnIdle that defines the TimeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes. The Service Bus Explorer 2.0 has been extended to support this property.

  • Minor changes
    • Added check to make sure that non-numeric values can be entered in textboxes that expect a number
    • Added links to blog, email and twitter in the About form
    • Changed the CreateFileName method of the MainForm class that is invoked when exporting entities
    • Changed Session Timeout with Server Timeout in test queue/topic/subscription controls
    • Deleted Expand and Collapse node from queue node context menu.
    • Fixed a problem with in the ForwardTo form.
    • The message text in the test queue, topic and relay service controls is now indented when is Xml.
    • Added a border to flat comboboxes.
    • Changed look & feel of forms
    • Dispose dialogs and forms after use.
    • Changed Docking properties of chart Legends: moved from right to top.
    • Fixed problem with MaxSizeInMegabytes and ForwardTo properties when importing/exporting entities.
  •  Service Bus for Windows Server support: the Service Bus 2.0 temporarily interrupts the simmetry between the cloud and on-premises version of the Service Bus. In other words, the Microsoft.ServiceBus.dll 2.0 client is not compatible with the Service Bus for Windows Server 1.0. For this reason, I included the old version of the Service Bus Explorer in a zip file called 1.8 which in turn is contained in the zip file of the current version. The old version of the Service Bus Explorer uses the Microsoft.ServiceBus.dll 1.8 which is compatible with the Service Bus for Windows Server.

Comments

  • Anonymous
    April 22, 2013
    Impressive tool that gives a lot of options to manage our Azure Service Bus. www.frankysnotes.com/.../reading-notes-91.html

  • Anonymous
    September 13, 2013
    The comment has been removed

  • Anonymous
    September 15, 2013
    Thanks for the feedback Eric, feel free to contact me via email and send me comments/feedbacks. You find my email address in the about form. Ciao Paolo

  • Anonymous
    November 09, 2013
    I really appreciate the work you've put into this. It would be great to see some of this functionality in the portal.

  • Anonymous
    February 11, 2014
    Dear Paolo, I appreciate for everything associated with the tool. Am just wondering to find if this possible to delete a particular selected message from dead letter queue other than re-queuing for processing. Regards, Pavan N

  • Anonymous
    February 11, 2014
    Hi Pavan I often receive this request and my reply is always the same. ;) I'd love to implement this functionality, but at the moment none of the Service Bus APIs (REST, .NET API, WCF, AMQP) allow to selectively receive or delete a message from a queue, subscription or deadletter queue by sequence number or message id. I reiterated the need for this functionality to the product group. This is the maximum I can do at the moment, as soon as this functionality will (hopefully) be available, I'll surely integrate it in my tool. Hope this helps! Ciao Paolo

  • Anonymous
    October 09, 2014
    Thanks for the article Paolo, This helped me to get understand and implement the way to monitor ques and topics . Do you have any performance counters that needs to monitor ?

  • Anonymous
    October 09, 2014
    Hi mate When you talk of performance counters, do you mean counters exposed by the Service Bus for Windows Server? Ciao Paolo

  • Anonymous
    October 09, 2014
    HI Paolo,That's exactly right . I am trying to monitor the performance of our newly build windows  server service bus and below are the counters provided msdn.microsoft.com/.../jj192996.aspx But I am trying to figure out any top 10  counters that needs attention and can be monitored daily.

  • Anonymous
    October 09, 2014
    I can't say which of these counters are important to you. :) There are a lot of useful counters. I would surely included the following in my list: Incoming Messages/sec Outgoing Messages/sec Bytes Per Incoming Message Bytes Per Outgoing Message Send Message Latency Receive Message Latency Complete Message Latency Storage Throttle Level Storage Throttle Limit Ciao Paolo