<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Modhana</title>
    <description>The latest articles on DEV Community by Modhana (@modhanapriya).</description>
    <link>https://dev.to/modhanapriya</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F646309%2F3f744b14-32b5-4fd1-9672-cbccb09942aa.jpg</url>
      <title>DEV Community: Modhana</title>
      <link>https://dev.to/modhanapriya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/modhanapriya"/>
    <language>en</language>
    <item>
      <title>Explore Azure costs for multiple subscriptions with cost analysis</title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Sun, 18 Dec 2022 15:09:35 +0000</pubDate>
      <link>https://dev.to/modhanapriya/explore-azure-costs-for-multiple-subscriptions-with-cost-analysis-4jgf</link>
      <guid>https://dev.to/modhanapriya/explore-azure-costs-for-multiple-subscriptions-with-cost-analysis-4jgf</guid>
      <description>&lt;p&gt;In the fast-growing Azure space, it is essential to scale your business as Azure scales up. Azure is cost efficient by providing a pay-as-you-go model, but it is still necessary for enterprise users to undergo a Cost Analysis to keep their budget at stack. Let us consider a scenario, you’re a manager in your organization, and your team has been using Azure for the last several months. It has created multiple resources that cost money. The need for you is to understand Cost Management best practices and want to analyze which resources are the primary drivers of your monthly bill. Also, you would like to set thresholds on your team’s Azure expenses to stay within a budget.&lt;/p&gt;

&lt;p&gt;For such scenarios, Azure provides a native solution, Azure Cost Analysis. The Azure Cost Analysis is a free tool that lets you see your Azure cloud spending habits. This data is crucial for effectively controlling and optimizing Azure expenditures.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll be focusing on,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do you do cost analysis in Azure?&lt;/li&gt;
&lt;li&gt;Grouping and filtering options in Azure Cost Analysis&lt;/li&gt;
&lt;li&gt;Understand billing and resource management scopes&lt;/li&gt;
&lt;li&gt;Use cost alerts to monitor usage and spending&lt;/li&gt;
&lt;li&gt;Monitoring multiple Azure subscriptions with Serverless360&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How do you do cost analysis in Azure?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cost analysis in Azure can be performed by selecting a subscription from the Subscriptions section and navigating to cost analysis under Cost Management tools.&lt;/p&gt;

&lt;p&gt;After the analysis, you can view aggregated expenses, determine where expenditures are incurred, and spot trends in Azure spending. Additionally, you can track costs accumulated over time and use this knowledge to predict quarterly, monthly, or annual cost patterns compared to a specific budget.&lt;/p&gt;

&lt;p&gt;Microsoft Azure only supports cost monitoring and visualization for a single subscription.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z3suuJPl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z3suuJPl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture1.png" alt="" width="600" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we have multiple subscriptions in Azure?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Multiple subscriptions with different access management policies and billing procedures can be added to an Azure account. The following boundaries can be defined using an Azure subscription:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Billing boundary:&lt;/strong&gt; The billing requirements for utilizing resources are defined by this subscription type. You can create separate subscriptions for different billing needs, and Azure will send independent billing resources for each subscription.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access control boundary:&lt;/strong&gt; To represent different organizational structures, you can create an access control boundary at the subscription level by applying access management policies to additional subscriptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is it recommended to use multiple Azure subscriptions?&lt;/strong&gt;&lt;br&gt;
Some resource types are subject to subscription limits. When a subscription reaches these limits, you must create other subscriptions and allocate resources for further business orchestrations.&lt;/p&gt;

&lt;p&gt;Multiple Azure subscriptions are frequently used by organizations to avoid per-subscription resource limits and to manage better and govern their Azure resources. It is critical to developing a subscription scaling strategy.&lt;/p&gt;

&lt;p&gt;You can create a management group hierarchy to manage multiple Azure subscriptions using an Azure account to manage all your subscriptions and resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UO1TDw5Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UO1TDw5Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture2.png" alt="" width="600" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which resource groups cost the most so far this month?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Azure Cost Analysis view allows you to visualize cost usage by applying filters over a specified time. You can determine the maximum cost incurred by a resource group (or) resource for any customized date range.&lt;/p&gt;

&lt;p&gt;You can determine which resource groups are used most expensively for a particular month by choosing the resource group option from the list of preview views while defining a cost analysis view and specifying the time interval.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vwRT5tVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vwRT5tVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture3.png" alt="" width="511" height="974"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which resources cost the most so far this month? Are there any subscription cost anomalies?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can determine which resource is used most expensively for a particular month by selecting the resource option from the list of preview views while defining a cost analysis view and specifying the time interval.&lt;/p&gt;

&lt;p&gt;Anomaly detection in Cost Analysis helps you have prior knowledge of cost fluctuation over a period without any surprises. It allows you to understand if the cost usage pattern is unusual.&lt;/p&gt;

&lt;p&gt;Navigate to Cost Management from Azure Home in the Azure portal. Choose a subscription scope, then select Cost analysis from the left menu. Select any view from the Preview views section of the view list. If available, you’ll notice the anomalies as a part of insights if you have any cost anomalies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3dfRUgSb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3dfRUgSb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture4.png" alt="" width="880" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many reservations are being used? Which resources are utilizing reservations?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reservations offer a billing discount while not affecting your resources’ runtime state. When you make a reservation, the discount is applied automatically to matching resources.&lt;/p&gt;

&lt;p&gt;You can purchase Azure Reservations by committing to one-year or three-year plans for,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtual Machines&lt;/li&gt;
&lt;li&gt;Azure Blob storage or Azure Data Lake Storage Gen2&lt;/li&gt;
&lt;li&gt;SQL Database compute capacity&lt;/li&gt;
&lt;li&gt;Azure Cosmos DB throughput and other Azure resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only resources covered by an Enterprise Agreement, Microsoft Customer Agreement, Cloud Solution Provider (CSP), or subscriptions with pay-as-you-go rates qualify for a reservation discount.&lt;/p&gt;

&lt;p&gt;All the purchased reservation utilizations can be viewed by navigating to Reservations in the Azure portal. To view the utilization history and specifics, select the utilization percentage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kYRFyA1y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kYRFyA1y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture5.png" alt="" width="880" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grouping and filtering options in Azure Cost Analysis&lt;/strong&gt;&lt;br&gt;
Azure Cost Analysis Views can be visualized by filtering your cost data based on shared properties such as meter category, subscriptions, resource groups, resource types, tags, etc.&lt;/p&gt;

&lt;p&gt;You can organize your cost data by common properties such as meter category, resource group name, subscription, and tags.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand billing and resource management scopes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Billing is managing the business relationship and issuing customer invoices for goods or services. You can control all your payments, invoices, and cost tracking through your billing account.&lt;/p&gt;

&lt;p&gt;Azure offers three resource management scopes. Each scope supports access and governance management, which may or may not include cost management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hZqaNdF5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture6-2048x1610.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hZqaNdF5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture6-2048x1610.png" alt="" width="880" height="692"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Management groups are hierarchical containers used to arrange Azure subscriptions. A management group tree can support up to six levels of depth. The Root level and the subscription level are not included in the limit.&lt;/li&gt;
&lt;li&gt;Subscriptions are the primary storage containers for Azure resources.&lt;/li&gt;
&lt;li&gt;Resource groups are logical collections of connected resources for an Azure solution with a standard lifecycle. An illustration would be resources that are deployed and removed simultaneously.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use cost alerts to monitor usage and spending&lt;/strong&gt;&lt;br&gt;
Azure Cost Analysis supports three alerts: budget, credit, and department spending quota.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The amount specified in the alert condition of the budget is what budget alerts let you know when your spending, based on usage or cost, reaches or exceeds.&lt;/li&gt;
&lt;li&gt;Credit alerts inform you when your Azure Prepayment (previously called a financial commitment) has run out. Credit warnings are automatically generated at 90% and 100% of your Azure Prepayment credit balance.&lt;/li&gt;
&lt;li&gt;When your department’s spending goes over a specific quota threshold, you’ll receive a notification from department spending quota alerts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iZR634_T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iZR634_T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture7.png" alt="" width="880" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Though Azure Cost Analysis has its pros, it also has its cons. The feature set provided by Azure is restricted to a single subscription level. This restriction does not favor enterprise organizations as they usually work in multiple environments. Visualizing multiple environments under one roof would be a beneficial option for such an enterprise user. Moving further in the blog, we will discuss how such visualizations can be achieved with Serverless360.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitoring multiple Azure subscriptions with Serverless360&lt;/strong&gt;&lt;br&gt;
Serverless360’s Cost Analyzer is an all-in-one integrated solution that offers a variety of features to meet the user’s needs and requirements.&lt;/p&gt;

&lt;p&gt;Analysis Views in Cost Analyzer can visualize multiple Azure subscription and resource costs simultaneously. Grouping and filtering options are provided to customize views according to the user’s preferences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3PdbwcX---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3PdbwcX---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture8.png" alt="" width="880" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Monitors in Cost Analyzer allow you to set a monthly or daily budget for their Azure costs and receive notifications if the actual cost exceeds the budget. You can also have a preview of Azure cost trends to have prior knowledge before creating a monitor. Monitor rules for a single monitor can be specified across multiple subscriptions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gctWetpl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gctWetpl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture9.png" alt="" width="880" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cost Optimization in Cost Analyzer enables you to create optimization schedules with resources associated by defining the tiers, throughput values, and the resource state concerning the Up and Down hours of a week.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H-vIBHtH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H-vIBHtH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2022/11/Picture10.png" alt="" width="880" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.serverless360.com/azure-cost-analysis"&gt;Serverless360’s Cost Analyzer&lt;/a&gt; is one of the best solutions that provide cost visualization and cost monitoring support for multiple Azure subscriptions.&lt;/p&gt;

&lt;p&gt;Check out Cost Analyzer features by trying out the preview version currently available in the Serverless360 application for all licensing types.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloudmanagement</category>
      <category>microsoftcloud</category>
    </item>
    <item>
      <title>Download Azure Service Bus messages using Serverless360</title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Sun, 18 Dec 2022 14:51:00 +0000</pubDate>
      <link>https://dev.to/modhanapriya/download-azure-service-bus-messages-using-serverless360-48c</link>
      <guid>https://dev.to/modhanapriya/download-azure-service-bus-messages-using-serverless360-48c</guid>
      <description>&lt;p&gt;From our experience handling Azure Service Bus messages, one frequent suggestion we get from the support person is to download messages from Azure Service Bus entities like Queues and Topic Subscriptions. By downloading the messages as a local copy, it becomes easy for them to debug the messages and use it at a later point in time. Basic knowledge of Azure Service Bus messaging entities is a pre-requisite for the better understanding of this feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Azure Service Bus Messages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.serverless360.com/azure-service-bus"&gt;Microsoft Azure Service Bus&lt;/a&gt; is used for delivering information in a reliable and a much easier way. The messaging service ensures that the information is delivered even if the two parties are never both online at the same time, or if they aren’t available at the exact same time.&lt;/p&gt;

&lt;p&gt;Messages are sent by the sender to the receiver through the Azure Service Bus. The message transferred through Azure Service Bus consists of the actual message body and the properties of that message. The message may be sent to or received from the Service Bus Queues or Topic Subscriptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Message Processing Challenges in Azure Portal solved in Serverless360&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Azure Portal does not facilitate viewing Azure Service Bus messages. But real-time business scenario would require processing these messages for various business scenarios. Serverless360 understands the requirement and comes up with the following message processing capabilities on &lt;a href="https://www.serverless360.com/blog/azure-service-bus-queues-vs-topics"&gt;Azure Service Bus Queues and Topics&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Send messages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.serverless360.com/blog/azure-service-bus-resubmit-delete-messages"&gt;Resubmit &amp;amp; Delete Messages&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.serverless360.com/blog/azure-service-bus-dead-letter-queue-messages-resubmit"&gt;Resubmit &amp;amp; Delete Dead-Letter messages&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Repair and Resubmit messages&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The latest addition to the above capabilities is the feature to download messages. This blog focuses on the message download capability.&lt;/p&gt;

&lt;p&gt;Business scenarios require Azure Service Bus messages to be downloaded for further processing. On demand from customers for saving messages for various purposes, Serverless360 has now got the capability to download messages as single or in bulk.&lt;/p&gt;

&lt;p&gt;The messages will be downloaded as a zip file with text files containing the JSON object of the message. Each message will be saved in a separate text file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--odOhIO8v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2018/05/dead-letter-message-blog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--odOhIO8v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2018/05/dead-letter-message-blog.png" alt="" width="880" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Downloaded Message Content&lt;/strong&gt;&lt;br&gt;
The downloaded Message file holds the JSON content, that includes the following properties of the message:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Message Body&lt;/li&gt;
&lt;li&gt;sequence number&lt;/li&gt;
&lt;li&gt;message Id&lt;/li&gt;
&lt;li&gt;size&lt;/li&gt;
&lt;li&gt;schedule enqueued time&lt;/li&gt;
&lt;li&gt;enqueued time&lt;/li&gt;
&lt;li&gt;time to live&lt;/li&gt;
&lt;li&gt;content type&lt;/li&gt;
&lt;li&gt;system properties&lt;/li&gt;
&lt;li&gt;the custom properties&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--08cRuNfW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2018/05/message-content.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--08cRuNfW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2018/05/message-content.png" alt="" width="469" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File Format&lt;/strong&gt;&lt;br&gt;
The name of the zip folder will be the name of the Queue or Topic Subscription to which the messages belong. The name of the text file will be the Message-Id of that message. The file will have all the required properties of the message along with its content, which can be utilized for further processing&lt;/p&gt;

</description>
      <category>azure</category>
      <category>microsoftcloud</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Azure Service Bus Dead-Letter Queue Monitoring</title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Mon, 21 Nov 2022 09:09:35 +0000</pubDate>
      <link>https://dev.to/modhanapriya/azure-service-bus-dead-letter-queue-monitoring-4bd1</link>
      <guid>https://dev.to/modhanapriya/azure-service-bus-dead-letter-queue-monitoring-4bd1</guid>
      <description>&lt;h2&gt;
  
  
  Azure Service Bus dead-letter Queue
&lt;/h2&gt;

&lt;p&gt;Azure Service Bus queues and topic subscriptions provide a secondary sub-queue, called a dead-letter queue. The purpose of the dead-letter queue is to hold messages that cannot be delivered to any receiver, or messages that could not be processed. So, any message that resides in the dead-letter queue is called a dead-lettered message.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dead-Letter Queue Reasons
&lt;/h2&gt;

&lt;p&gt;Before investigating the best way to monitor and reprocess Service Bus messages efficiently, let us quickly hop in and understand the reasons behind why an active message get dead-lettered.&lt;/p&gt;

&lt;p&gt;Most of the time we could notice that the message fails to reach the receivers due to the following reasons;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dependent service not available&lt;/li&gt;
&lt;li&gt;Faulty message&lt;/li&gt;
&lt;li&gt;Process code issue&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Dependent service not available
&lt;/h2&gt;

&lt;p&gt;This could be one of the foremost and time after time reasons where the services that reply on message delivery may go down for a short period. For instance, Redis or SQL connection issues may often happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Faulty Message
&lt;/h2&gt;

&lt;p&gt;If in case the message doesn’t have a mandatory parameter or some value is incorrect, then the message will end up in the dead-letter queue after the max delivery count is attained.&lt;/p&gt;

&lt;p&gt;The failed delivery can also be caused by a few other reasons such as network failures, a deleted queue, a full queue, authentication failure, or a failure to deliver on time.&lt;/p&gt;

&lt;p&gt;Here we can drill down the reasons into two ways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;System-level dead-lettering&lt;/li&gt;
&lt;li&gt;Application-level dead-lettering&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Reasons for System-level dead-lettering
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Header Size Exceeded – Maximum header size: 64 KB&lt;/li&gt;
&lt;li&gt;Error on processing subscription rule&lt;/li&gt;
&lt;li&gt;Exceeding time to live value&lt;/li&gt;
&lt;li&gt;Exceeding maxDeliveryCount –
When DeliveryCount exceeds MaxDeliveryCount, the message is moved to the DLQ, specifying the ‘MaxDeliveryCountExceeded’ reason code. This behaviour cannot be disabled, but you can set MaxDeliveryCount to a very large number. You could specify the Maximum Delivery Count between 1 and 2147483647.&lt;/li&gt;
&lt;li&gt;When Session id property is set to true (the default is false)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reasons for Application-level dead-lettering
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Messages that cannot be properly processed due to any sort of system issue&lt;/li&gt;
&lt;li&gt;Messages that hold malformed payloads&lt;/li&gt;
&lt;li&gt;Messages that fail authentication when some message-level security scheme is used&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Monitoring Service Bus dead-lettered messages made easy
&lt;/h2&gt;

&lt;p&gt;Be it Azure Service Bus Queue or Topic Subscriptions, Serverless360 makes it handy to monitor the dead-letter messages in your testing, pre-production and production environments.&lt;/p&gt;

&lt;p&gt;It completely eliminates the complexity or limitation of Azure Monitor which might not fulfill your production environments requirements. For instance,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Monitor multiple Queues and Topics Subscriptions dead-lettered count in a single report&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitor a Queue metrics against another metric, for instance, compare active messages vs dead-lettered messages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consolidated monitoring of both the property values and status of Service Bus&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aYJjYrAh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/Configure-rules.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aYJjYrAh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/Configure-rules.gif" alt="" width="880" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will take you through Serverless360 and showcase how quickly you can configure the alert rule to monitor the dead-lettered messages.&lt;/p&gt;

&lt;p&gt;Once you signed up for a free trial, associate the Azure Service Bus in Business Application (Serverless360 feature) – this module lets you access, monitor and manage various Azure resources.&lt;/p&gt;

&lt;p&gt;To configure rules, head to the desired resource type in the Manage resources section inside the Business Application. Select the respective queue or topic for which the rules should be configured, and choose the dead-letter count property with warning threshold and error threshold. That’s it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Azure Service Bus dead letter queue resubmit
&lt;/h2&gt;

&lt;p&gt;Serverless360 makes your life easier when it comes to repairing and resubmitting the dead-letter messages of queue or topic subscription providing out of the box features like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced search option to find the dead-lettered message&lt;/li&gt;
&lt;li&gt;Intelligent automation to bulk resubmit the dead-lettered messages&lt;/li&gt;
&lt;li&gt;Variety of message receval modes like Peek-lock and Deffered mode&lt;/li&gt;
&lt;li&gt;Back up and purge messages&lt;/li&gt;
&lt;li&gt;Download particular set of messages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, look at the step-by-step process to resubmit the dead-lettered messages in Serverless360&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click the queue whose dead letter messages must be processed, this will lead to a message retrieval dashboard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select dead letter tab and click to get a specified count of messages&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XW3aOErj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/1-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XW3aOErj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/1-1.png" alt="" width="880" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select those messages to be resubmitted and click resubmit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t9bVjliw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/2-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t9bVjliw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/2-2.png" alt="" width="880" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the destination Queue and proceed to resubmit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7fOqyVXB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/message-repair.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7fOqyVXB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/message-repair.png" alt="" width="555" height="760"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The messages can also be repaired and resubmitted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yWTGAfqv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/4-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yWTGAfqv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/4-2.png" alt="" width="524" height="723"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user can also view the properties, content and dead letter reason of a message&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--byhJZwPi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/5-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--byhJZwPi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2019/12/5-3.png" alt="" width="669" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I hope this blog gave a better understanding of Azure Service Bus Dead Letter Queue, the reason behind a message getting dead lettered. We also discussed on how &lt;a href="https://www.serverless360.com/request-demo"&gt;Serverless360&lt;/a&gt; can help to process Dead letter messages much smarter way.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>servicebus</category>
      <category>microsoftcloud</category>
      <category>azuremonitoring</category>
    </item>
    <item>
      <title>Distributed tracing and correlation through Service Bus messaging</title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Thu, 10 Nov 2022 01:39:07 +0000</pubDate>
      <link>https://dev.to/modhanapriya/distributed-tracing-and-correlation-through-service-bus-messaging-232b</link>
      <guid>https://dev.to/modhanapriya/distributed-tracing-and-correlation-through-service-bus-messaging-232b</guid>
      <description>&lt;p&gt;Over the last few years, Microsoft has built excellent tooling around different technologies. Today, everything is available and achievable through the Azure Portal, which helps manage complex solutions. However, this brings in challenges when it comes to managing the distributed resources. The struggle to keep track of messages or know the flow of messages through these distributed resources is growing day by day.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In most Integration services, Service Bus acts as a message broker to transfer data from a source to a destination.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Azure natively supports &lt;a href="https://www.serverless360.com/distributed-tracing"&gt;distributed tracing&lt;/a&gt; using Application Insights agents or SDKs for .NET, .NET Core, Java, Node.js, and JavaScript. When a Service Bus receives a message, it receives the data processed earlier by another system or scope. After receiving the messages from the Service Bus, the subscriber also performs a set of actions on the received data. To correlate these events of publisher and subscriber, there should be a unique property in the message which can be leveraged as a trace property for the End-to-End tracing.&lt;/p&gt;

&lt;p&gt;Microsoft Azure Service Bus messaging has defined payload properties that producers and consumers should use to pass such trace context. The protocol is based on the HTTP Correlation protocol.  Azure Service Bus SDK has a property that we can leverage to trace the messages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diagnostic-Id&lt;/strong&gt; – Unique identifier of an external call from source to the queue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Application Insights
&lt;/h2&gt;

&lt;p&gt;Application Insights is a native offering from Azure, which helps to correlate events. These events can occur within the same application process or across several application processes&lt;br&gt;
How Application Insights works is you insert a small package to your application and set up the Application Insights resource within Azure, thus sending the data to Azure to collect information. The business process is monitored, and it sends telemetry data to the Insight portal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying the Distributed Traces
&lt;/h2&gt;

&lt;p&gt;After a comprehensive design of the tracing approach and its implementation, we can now query our distributed traces in a meaningful way.&lt;/p&gt;

&lt;p&gt;Once the Service Bus published the message and has logged tracing events, logs in Application Insights can be queried using the Kusto query language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Application Map from Application Insights
&lt;/h2&gt;

&lt;p&gt;Application Map helps you spot performance bottlenecks or failure hotspots across all components of your distributed application. Each node on the map represents an application component or its dependencies. If your app uses Azure services, you can click Azure diagnostics, such as SQL Database Advisor recommendations.&lt;/p&gt;

&lt;p&gt;If you have a service bus pushing messages to a Function App or Logic App, this dependency can be viewed with the help of an Application map. This Application Map helps us understand how a service bus is a connecter to another resource.&lt;/p&gt;

&lt;p&gt;Here is a sample of how the connectivity will be shown to a user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--twfnzoDU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--twfnzoDU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture1.png" alt="" width="880" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use all of this Azure service to trace messages in a service bus. But the problem here is you need to reply or maintain multiple places. We don’t have a single place where we can see the entire flow of messages. When we consider enterprise integrations, their footprint will not be in Azure alone. They will have their data coming from an On-prem system or end up in an on-prem system. How do we correlate these hybrid integrations and visualize them in a single place?&lt;/p&gt;

&lt;p&gt;Well, Serverless360 has a feature named &lt;a href="https://www.serverless360.com/business-activity-monitoring"&gt;Business Activity Monitoring (BAM)&lt;/a&gt; to track the flow of messages across your Business Process. You can create a flow to represent your business process and instrument it to trace the message. Once the instrumentation is done, all the data your business process tracks will be automatically displayed in Serverless360.&lt;/p&gt;

&lt;h2&gt;
  
  
  End to End tracking in BAM
&lt;/h2&gt;

&lt;p&gt;Bring maximum visibility of your integration solution to functional support teams by defining properties to track business values at run-time. Easily correlate the flow of data within your system. Moreover, it allows you to visualize your business transactions in a graphical representation and detailed information. Furthermore, it also enables the visualization of a specific and more complex business process on how all milestones/transactions are executed in a particular sequence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Associate Business Processes with Serverless360 to Track data
&lt;/h2&gt;

&lt;p&gt;To start tracking your messages, you need to create a business process in BAM and picturise the flow your business process possess. This business process helps Serverless360 to understand how your Business Process has been designed. You can also have multiple Business processes, and each business process can have various transactions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rYdL7K7v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rYdL7K7v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture2.png" alt="" width="880" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instrument your Business process for Tracking
&lt;/h2&gt;

&lt;p&gt;Once the flow has been created, the next step is to instrument your business process to make it suitable for Tracking. If you have completed your integration using Logic apps, we can leverage the custom connector facility from Azure to track the messages. If you have other components like Custom Apps, Function Apps, APIM, we can leverage the .Net library and SDKs from Serverless360.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visualize the flow
&lt;/h2&gt;

&lt;p&gt;When the instrumentation is done, Serverless360 tracks all the data your business process is processing. You can visualize the flow in which the message has travelled. Furthermore, it also provides the possibility to visualize a specific and more complex business process on how all milestones/transactions are executed in a particular sequence.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a7ouXg24--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a7ouXg24--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture3.png" alt="" width="880" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spot failures in your Business Process
&lt;/h2&gt;

&lt;p&gt;Spot the failures in your business process and know where the failure has occurred in your distributed components.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HRrHc1hs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HRrHc1hs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture4.png" alt="" width="880" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Search for Narrowed results
&lt;/h2&gt;

&lt;p&gt;Search your transactions with some unique property in your message to spotlight that specific transaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Investigate the Messages processed
&lt;/h2&gt;

&lt;p&gt;At any point in time, if you want to know the exact content that your business process has processed for a transaction, you can view it from the tracked window. Download any archived message directly from the Serverless360 portal at ease.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2JLrOaTG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2JLrOaTG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture5.png" alt="" width="880" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reprocess a transaction
&lt;/h2&gt;

&lt;p&gt;Have a failed transaction? You can retry single or multiple transactions right from Serverless360. Allow your support people to investigate the failure and reprocess it themselves without depending upon your skilled Azure resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8uspKTtJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8uspKTtJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.serverless360.com/wp-content/uploads/2021/11/Picture6.png" alt="" width="880" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Be it Native Azure Tracing features or out-of-box tracking capabilities by Serverless360, it is always to keep track of messages in our business. This Tracking helps us to understand the performance of a business and help to reduce the complexity.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
      <category>microservices</category>
      <category>microsoftcloud</category>
    </item>
    <item>
      <title>Azure Documentation tool – the right way to monitor Azure usage</title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Fri, 04 Nov 2022 04:52:38 +0000</pubDate>
      <link>https://dev.to/modhanapriya/azure-documentation-tool-the-right-way-to-monitor-azure-usage-flh</link>
      <guid>https://dev.to/modhanapriya/azure-documentation-tool-the-right-way-to-monitor-azure-usage-flh</guid>
      <description>&lt;p&gt;As the adoption to cloud expand, subscribing and provisioning resources increases day by day. Enterprises have multiple strategies to implement their cloud deployments: single cloud, private cloud, multi-cloud, or hybrid cloud. There is a need to analyse and assess on regular basis to keep a watch on the usage to ensure expenditure on the cloud resources are efficient and there is no wastage.&lt;/p&gt;

&lt;p&gt;There are various possibilities but will need some level of technical competence and regular maintenance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use Azure portal capabilities to configure asset management and monitoring&lt;/li&gt;
&lt;li&gt;Build custom tools using APIs exposed by Microsoft Azure support&lt;/li&gt;
&lt;li&gt;Use 3rd party tools and services&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Not all stake holders will have access and the necessity to check through these tools, but it will be easy for the decision-makers to investigate the reports, summaries, comparison assessments, and useful charts or diagrammatic representations. This will help them to assess the usage briefly and take strategic decisions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A well designed and articulated documentation of your Microsoft Azure environment can help in comprehending the usage easily without accessing too many tools and configurations.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FDocumentationPages-1536x542.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FDocumentationPages-1536x542.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.serverless360.com/azure-documenter" rel="noopener noreferrer"&gt;Azure Documentation Generator&lt;/a&gt;&lt;br&gt;
in Serverless360 helps you to document your Microsoft Azure Subscription. It comes with the capability to aggregate data from disparate resource providers in Microsoft Azure in a single report.&lt;/p&gt;

&lt;p&gt;This allows for the creation of comprehensive technical documentation across resources enabling richer insights that would otherwise be impossible. Interpreting your cost and resource information on Microsoft Azure subscription into legible documentation is what Azure Documenter is for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Microsoft Azure usage is constantly evolving
&lt;/h2&gt;

&lt;p&gt;Microsoft Azure like any other cloud service provider makes it easy to instantiate and deploy resources at ease on a subscription basis. Though limits on usage and restricted user permissions could be set, the resource deployment and usage grow day by day due to the nature of the business demands for various purposes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Resources could be deployed manually or through automated processes&lt;/li&gt;
&lt;li&gt;Resources are deployed across geographical locations&lt;/li&gt;
&lt;li&gt;Resources and environments are managed by different teams
Configurations are set or automated to support different workloads/demands&lt;/li&gt;
&lt;li&gt;Resources are billed across subscriptions and business units
There is a need for different environments like Development, QA, Staging, Production, etc&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Isn’t it necessary to have utmost clarity on Resource usage and their deployments, type, Configuration, SKU of these resources?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Deployment of resources in Microsoft Azure is made so simple that, without proper auditing and governance, this may lead to situations where resource management becomes uncontrollable.&lt;/p&gt;

&lt;p&gt;There are certain aspects to the documentation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is to be documented?&lt;/li&gt;
&lt;li&gt;How do we document?&lt;/li&gt;
&lt;li&gt;Relating the documentation to the deployment and usage?&lt;/li&gt;
&lt;li&gt;Keeping the documentation up to date?&lt;/li&gt;
&lt;li&gt;Making it transparent and accessible to the relevant stakeholders?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Save time by using our Azure documentation tool
&lt;/h2&gt;

&lt;p&gt;The solution is to use a documentation generator tool like Serverless360 Azure Documenter that helps to document the Azure resources that are running, regardless of how/why they were provisioned, the Azure region and subscription in which they are located.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FAzureDocumenter_01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FAzureDocumenter_01.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have made the configuration simple to get started with generating the documentation with few steps.&lt;/p&gt;

&lt;p&gt;There is no separate installation or configuration change required in your Azure subscriptions. Serverless360 Azure Documenter requires Service Principal identity with ‘Reader’ permission to your Azure subscription. After you have configured your account, you can easily generate documentation of your cloud environment.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Our Azure documentation tool will automatically extract information about all the resources in your Microsoft Azure subscription through standard APIs and publish them.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Depending upon the size of your Azure deployment, the time taken for generating the document may differ.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the benefits of using Serverless360 Azure Documenter?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Azure Documenter saves a lot of time by automating up-to-date documentation of your Microsoft Azure environments. It generates a report on your assets and reduces manual effort.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Being able to easily document your Azure infrastructure will be most valuable to understand the usage.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It will provide stakeholders at all levels, confidence, and clarity of the adoption to Microsoft Azure cloud.*&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It aggregates inventory of all your Resource groups. It eliminates manual activity to search and collect data about different resources and deployments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It eliminates the need for a dedicated documentation team will save you a lot of time considering how little it costs.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Capabilities of Azure Documenter
&lt;/h2&gt;

&lt;p&gt;You would be spending days creating and updating documentation but now you can spend time doing other important activities. &lt;/p&gt;

&lt;p&gt;Serverless360 Azure Documenter provides capabilities to generate:&lt;/p&gt;

&lt;h3&gt;
  
  
  Executive Summary
&lt;/h3&gt;

&lt;p&gt;Key decision-makers may not need all the intricate details of the cloud implementation and technical aspects. All they need is a summary at a high level:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is the usage?&lt;/li&gt;
&lt;li&gt;Where are the wastages?&lt;/li&gt;
&lt;li&gt;Are the compliance and security guidelines met?&lt;/li&gt;
&lt;li&gt;What is the cost associated?&lt;/li&gt;
&lt;li&gt;Advisory and guidelines&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Billing &amp;amp; Metrics
&lt;/h3&gt;

&lt;p&gt;Generate documentation with vital information like billing and metrics for the overall/group-wise resources in the subscription. Provides a graphical representation of cost incurred resource wise, resource type-wise, location-wise and, resource group-wise. It also provides a split-up of cost consumed at the individual resource level.&lt;/p&gt;

&lt;h3&gt;
  
  
  Change tracking reports
&lt;/h3&gt;

&lt;p&gt;As the business grows, Azure cloud implementations could expand vastly with thousands of resources and groups cutting across multiple subscriptions and environments. Due to changes in architecture, infrastructure, business logic, upgrades, and migrations, there will be a lot of changes in the resource configuration, addition, and removal, etc on a day-to-day basis. Not all these are done manually, most of them are directed through DevOps and are automated. Also, there are number of teams and people involved.&lt;/p&gt;

&lt;p&gt;Keeping a track of all these changes, interpreting the need, etc becomes very important. This will help to understand and check if there were any potential modifications that will impact the application and eventually the business.&lt;/p&gt;

&lt;h3&gt;
  
  
  Azure Security Compliance reports
&lt;/h3&gt;

&lt;p&gt;Primary need for any infrastructure deployment is to ensure security and compliance of data, practices, access, and use. Adopting to Microsoft Azure is no different. From time to time, it is important to have absolute knowledge and control of data security, data losses due to storage, migration and archives, any security breaches.&lt;/p&gt;

&lt;p&gt;These reports provide tracking of implementation of compliance rules, following organisation standards and practices, and for auditing purposes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Azure cost analysis
&lt;/h3&gt;

&lt;p&gt;Businesses across the world are embracing cloud computing than ever before. They look at migrations, new implementations, and hence the interest towards cloud implementations is only increasing day by day.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Our commercial cloud revenue grew 36% year over year to $19.5 billion.” said Microsoft Corp. announced the results for the quarter ended June 30, 2021.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This means a lot of enterprises are spending more on the cloud. There could be an overspend if there are no periodic assessments on the expenses. Though cloud vendors promote pay-as-you-go models and various other cost control practices, in reality, the expenditure pattern is different. There are platform costs, most of which are fixed based on the configuration, some cost spiral up exponentially based on usage unless controlled, there are hidden costs as well.&lt;/p&gt;

&lt;p&gt;You may also want to compare and analyse cost between two different months.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FCostComparison_02-1024x424.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FCostComparison_02-1024x424.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Schedule documentation and notify stake holders
&lt;/h2&gt;

&lt;p&gt;Generating documentation for an established and evolving Azure estate with thousands of resources may take so long due to data collection, computation, and analysis. It is not practical to manually initiate documentation at the intended time and for many subscriptions and configurations. Relevant stakeholders may have to be notified once the documentation is complete. Azure Documenter provides automation to address these requirements. Notifications are sent to widely used channels like emails, Microsoft Teams etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation templates
&lt;/h2&gt;

&lt;p&gt;Documentation needs range from quick summaries and reports that provide high-level overview to comprehensive documentation that covers in-depth details. Create documents that represent not only the Azure resources but its expenses, the exact location of resources, the resource groups, the resource types, and a lot more.&lt;/p&gt;

&lt;p&gt;For eg: Executive team may need an expenditure summary, auditing team may be interested in security reports, IT management team may need deeper insights.&lt;/p&gt;

&lt;p&gt;Azure Documenter provides default templates to start with easy and insightful documentation and to configure custom templates that will meet your needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the benefits of integrating Azure Documenter with Document360?
&lt;/h2&gt;

&lt;p&gt;You could of course read any data from your Azure environment and document it to Word or PDF. Once you create the documents you might want to share it with the wider community. You may want to review the document to keep track of the environments and send it to a colleague to review. Though you have SharePoint, office365, or other online platforms to share your files, they demand manual efforts and resources to store, maintain versions, distribute, and access control.&lt;/p&gt;

&lt;p&gt;Maintaining versions on word or PDF and sharing them with stakeholders through shared folder access becomes too difficult to manage. As teams grow, managing access control of documents to a wider audience is tedious.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FMicrosoftTeams-image-30.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.serverless360.com%2Fwp-content%2Fuploads%2F2021%2F08%2FMicrosoftTeams-image-30.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Document360, an online Knowledge Base authoring, and publishing platform is used to publish the documentation generated by Azure Documenter. It provides online publishing, restricted access to the documentation, and archiving capabilities.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>microsoftcloud</category>
      <category>costmangement</category>
      <category>azuredocumentation</category>
    </item>
    <item>
      <title>Managing Azure Event Grid Dead-Letter events using Cerebrata </title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Sun, 13 Feb 2022 15:56:22 +0000</pubDate>
      <link>https://dev.to/modhanapriya/managing-azure-event-grid-dead-letter-events-using-cerebrata-52o4</link>
      <guid>https://dev.to/modhanapriya/managing-azure-event-grid-dead-letter-events-using-cerebrata-52o4</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Azure Event Grid allows you to easily build applications with event-based architectures. In this blog, we will understand how Cerebrata Cerulean will help us in managing the dead-letter events of the Event Grid Subscriptions that are stored in the storage blobs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Event Grid Topics and Subscriptions
&lt;/h2&gt;

&lt;p&gt;Event Grid architecture is mainly composed of two components. They are Event Grid Topics and Event Grid Subscriptions. The event sources send the events to the Event Grid Topics. The Event Grid Topics then transmit the events to the Event Grid Subscriptions that are created within the Event Grid Topics based on the filtering configured in them. The Event Grid subscriptions then forward the events to the configured endpoints.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dead-Letter Events
&lt;/h2&gt;

&lt;p&gt;As we saw earlier, the events are sent to the configured endpoint or destination by the Event Grid Subscriptions. There are some cases in which the Event Grid Subscription cannot deliver those events to the configured endpoint. In such cases, the events will be dropped after the configured number of retries. In such cases, to prevent the loss of events, we can enable dead-lettering in the Event Grid Subscription.&lt;/p&gt;

&lt;p&gt;Let us consider a scenario, where a Service Bus Queue is configured as an endpoint to the Event Grid Subscription. When the configured Service Bus Queue gets disabled due to some reason, then the Event Grid Subscription cannot deliver the events received from the Event Grid Topic. In this case, the Event Grid subscription will retry to send these events based on the Retry Policy configured. Once the maximum number of retries is exhausted, the Event Grid Subscription will lose the events. To overcome this event loss, we can enable dead-lettering on the Event Grid Subscription. We can configure any of the storage containers in the Azure Storage account as the dead-letter destination. The events that cannot be delivered to the endpoint will be stored as storage blobs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Managing the Dead-Letter Events
&lt;/h2&gt;

&lt;p&gt;It is not possible to directly view the dead-letter events of an Event Grid Subscription in the Azure Portal. To access the dead-letter events, we will have to navigate into the configured Storage Account container and traverse through into the folder where the events are stored which is quite a long process. To resubmit these events back to the Event Grid Topic, we will have to use the .Net SDKs or REST APIs to read the events from the storage blobs and to resubmit them back to the Event Grid Topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Managing the Dead-Letter Events through Cerebrata
&lt;/h2&gt;

&lt;p&gt;Cerebrata overcomes the pain point of managing the Event Grid Subscription dead-letter events. It is possible to view and manage the dead-letter events by modifying and resubmitting them back to the respective Event Grid Topic and deleting the events based on the business requirements. We will see how Cerebrata simplifies the dead-letter event management here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps in Viewing the Dead-Letter events
&lt;/h2&gt;

&lt;p&gt;• Navigate into the required Event Grid Topic in the corresponding Subscription. The topic can be either a System or a Custom topic.&lt;br&gt;
• Select the required Event Grid Topic to view the subscriptions created within the Event Grid Topic.&lt;br&gt;
• Double click on the required Event Grid Subscription to view the dead-letter events in that Event Grid Subscription.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YHhMUY_C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YHhMUY_C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-17.png" alt="" width="602" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• All the dead-letter events stored as storage blobs will be listed in the opened tab.&lt;br&gt;
• Select the required event to view the Event details.&lt;br&gt;
• The Event details will be displayed as shown below. The Event details include Event Id, Subject, Event Type, Event Time, Data Version and Event Content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XRkwipa3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XRkwipa3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-18.png" alt="" width="602" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• We can also find the dead-letter reason and the last delivery outcome of the event.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nKxsY_fq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nKxsY_fq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-19.png" alt="" width="535" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps in modifying and resubmitting the dead-letter events
&lt;/h2&gt;

&lt;p&gt;The dead-letter events of the Event Grid Subscriptions belonging to the Event Grid Custom Topic can be resubmitted once the endpoint configured is ready to receive the events. This can be done at ease using Cerebrata. Follow the below steps to Modify and Resubmit the required events&lt;/p&gt;

&lt;p&gt;• Select the required dead-lettered event.&lt;br&gt;
• Select the Modify and Resubmit button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W4zr-YNl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W4zr-YNl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-20.png" alt="" width="602" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• The Event details will be displayed in a pop up as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Co2PSONE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Co2PSONE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-21.png" alt="" width="602" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• The event content can be modified based on the requirements.&lt;br&gt;
• We can also modify the advanced properties like Subject, Type and Data version of the event.&lt;br&gt;
• Select the Save button to complete the resubmission process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s_QdgTdK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s_QdgTdK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-23.png" alt="" width="602" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps to be followed to delete the Dead-Letter events
&lt;/h2&gt;

&lt;p&gt;• Navigate into the required Event Grid Subscription where the dead-letter events will be displayed.&lt;br&gt;
• Select the required dead-letter events to be deleted.&lt;br&gt;
• Select the Delete button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--21-RQAap--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--21-RQAap--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-24.png" alt="" width="602" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• Select the Delete button in the confirmation popup to complete the deletion process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LkG__5EQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LkG__5EQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/07/image-25.png" alt="" width="602" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Event Grid Features
&lt;/h2&gt;

&lt;p&gt;In addition to the dead-letter event management of the Event Grid Subscriptions, Cerebrata Cerulean also supports the following features.&lt;/p&gt;

&lt;p&gt;• Managing the Tags of Event Grid Custom Topics and Event Grid System Topics&lt;br&gt;
• Managing the Keys of Event Grid Custom Topics&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this blog, we learned about how Cerebrata Cerulean simplifies the process of dead-letter management of Event Grid Subscriptions. Apart from Azure Event Grids, Cerebrata Cerulean enables you to manage your Azure Cosmos DB accounts (SQL API, Gremlin API, and Table API), Storage Accounts, Service Bus Namespaces, Cognitive Search Service accounts, Redis Cache accounts, and much more. It is also cross-platform so that you can manage your Azure resources from a platform of your choice – Windows, Mac, or Linux. Please visit &lt;a href="https://www.cerebrata.com"&gt;https://www.cerebrata.com&lt;/a&gt; to learn more.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Modify and Resubmit Messages in Azure Service Bus Queues and Topics/Subscriptions</title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Sun, 06 Feb 2022 05:49:59 +0000</pubDate>
      <link>https://dev.to/modhanapriya/modify-and-resubmit-messages-in-azure-service-bus-queues-and-topicssubscriptions-beg</link>
      <guid>https://dev.to/modhanapriya/modify-and-resubmit-messages-in-azure-service-bus-queues-and-topicssubscriptions-beg</guid>
      <description>&lt;p&gt;In this post we will see how Cerebrata can be used efficiently to manage the modification and resubmission of messages in the Azure Service Bus Queues and Topics/Subscriptions. &lt;/p&gt;

&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;There may be a scenario where the messages that sent to Azure Service Bus Queue or Topic/Subscription may not delivered to the destination due to some technical issues or the messages was not processed successfully. What you would want to do is to resend the same message again with or without modifications. To send the message again you must create a new message from the beginning even if the message has some minor changes. It would consume more time and effort to recreate the same message. &lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;Cerebrata offers the modify and resubmit functionality to overcome the above issues. Using this functionality, you can modify the contents and/or properties of the same message and the modified message can be resubmitted to the respective Queue or Topics with a single click.  &lt;/p&gt;

&lt;p&gt;Note that the messages which are in the dead lettered Queue or Subscriptions can also be resubmitted to the active Queue or Topic respectively. To modify the message in a Service Bus Queues or Subscriptions you must open a message from the active or dead lettered Queue or Subscription &amp;gt; open the message which is to be modified &amp;gt; select the Modify &amp;amp; Resubmit button in the bottom panel. &lt;/p&gt;

&lt;p&gt;Using Cerebrata, you can modify both message contents and its properties before resubmitting. Cerebrata also provides an option to add or delete new custom properties to the message. Cerebrata provides an additional option for scheduling the enqueue time for the message that is to be resubmitted, where you can schedule the time so that the message will be enqueued into the Queue or Topic only at the scheduled time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z9RZS571--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit1-e1633951001258.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z9RZS571--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit1-e1633951001258.png" alt="" width="602" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EWC5P1nU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EWC5P1nU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit2.png" alt="" width="602" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--weu15Jmk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--weu15Jmk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit3.png" alt="" width="600" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x74KpJvx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x74KpJvx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit4.png" alt="" width="600" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZYSHqwRu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit5-e1633951056492.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZYSHqwRu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit5-e1633951056492.png" alt="" width="602" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1LI-1ze4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit6-e1633951085719.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1LI-1ze4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmit6-e1633951085719.png" alt="" width="602" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To schedule the enqueue time and to add or delete the custom properties you must open a message from the active or dead lettered Queue or Topic &amp;gt; open the message which needs to be modified &amp;gt; select the Modify &amp;amp; Resubmit button in the bottom panel &amp;gt; click enqueue time button to schedule the time and click custom properties button to add or delete the custom properties. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--69Ff6Owr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmitcustom.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--69Ff6Owr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmitcustom.png" alt="" width="502" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uLBj3qsB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmitenqueue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uLBj3qsB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/10/resubmitenqueue.png" alt="" width="501" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;In this post we saw how you can modify and resubmit messages to an Azure Service Bus Queue/Topic using Cerebrata. Cerebrata provides most comprehensive set of features for managing Service Bus Namespaces, Queues, Topis, Subscriptions and messages. You can learn more about it on our website at &lt;a href="https://cerebrata.com/features/azure-service-bus"&gt;https://cerebrata.com/features/azure-service-bus&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Other than that, Cerebrata has best-of-the-breed management features for Azure Storage, Cosmos DB, Cognitive Search, Redis Cache and more. You can learn more about the available features on our website at &lt;a href="https://www.cerebrata.com/"&gt;https://www.cerebrata.com/&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>azure</category>
      <category>servicebus</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Azure Cosmos DB SQL API – Document Analytics</title>
      <dc:creator>Modhana</dc:creator>
      <pubDate>Wed, 19 Jan 2022 03:27:16 +0000</pubDate>
      <link>https://dev.to/modhanapriya/azure-cosmos-db-sql-api-document-analytics-46o2</link>
      <guid>https://dev.to/modhanapriya/azure-cosmos-db-sql-api-document-analytics-46o2</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this blog, we will understand the basics of Cosmos DB partitions and the use of Cerebrata in visualizing the data stored in Cosmos DB SQL API containers based on the partition keys.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logical Partitions
&lt;/h2&gt;

&lt;p&gt;A logical partition consists of a set of items that have the same partition key. For example, in a container that contains data about customer addresses, all items contain a state property. You can use state as the partition key for the container. Groups of items that have specific values for state form distinct logical partitions. When new items are added to a container, new logical partitions are automatically created by the system.&lt;/p&gt;

&lt;p&gt;There is no limit to the number of logical partitions in your container. Each logical partition can store up to 20 GB of data. Good partition key choices have a wide range of possible values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Physical Partitions
&lt;/h2&gt;

&lt;p&gt;A container is scaled by distributing data and throughput across physical partitions. One or more logical partitions are mapped to a single physical partition internally. Typically, smaller containers have many logical partitions, but they only require a single physical partition. Unlike logical partitions, physical partitions are an internal implementation of the system, and they are entirely managed by Azure Cosmos DB.&lt;/p&gt;

&lt;p&gt;The number of physical partitions in container depends on the following:&lt;/p&gt;

&lt;p&gt;The number of throughput provisioned (each individual physical partition can provide a throughput of up to 10,000 request units per second). The 10,000 RU/s limit for physical partitions implies that logical partitions also have a 10,000 RU/s limit, as each logical partition is only mapped to one physical partition.&lt;br&gt;
The total data storage (each individual physical partition can store up to 50GB of data).&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing a Partition key
&lt;/h2&gt;

&lt;p&gt;There is no limit for the number of logical partitions in a container. Each logical partition can store up to 20GB of data. It is not possible to insert more data into the same logical partition once the 20 GB limit is reached. Let us consider a scenario, where we need to store the address of all the customers in a Cosmos DB SQL API container. The sample document to be stored will be of the following format.&lt;/p&gt;

&lt;p&gt;{&lt;/p&gt;

&lt;p&gt;“id”:”CS001”,&lt;/p&gt;

&lt;p&gt;“firstName”:  “John”,&lt;/p&gt;

&lt;p&gt;“lastName: ”Smith”,&lt;/p&gt;

&lt;p&gt;“addressLine1”: ”132, My Street”,&lt;/p&gt;

&lt;p&gt;“addressLine2”: ” Kingston”,&lt;/p&gt;

&lt;p&gt;“state”:  ”New York”,&lt;/p&gt;

&lt;p&gt;“zipCode”: “12401”,&lt;/p&gt;

&lt;p&gt;“country”:”United States”&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;The partition Key path chosen for this container is “/state”. This will hold good when the population of the state is small or normal. But when the population of the state is large, then we will have a greater number of records with the same partition key and the size of the logical partition will grow enormously and may reach the 20 GB limit.&lt;/p&gt;

&lt;p&gt;So, it is very important to note that the partition key must be chosen in such a way that it holds a wide range of values. So, in the above case, it will be good if the partition Key chosen is zipcode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Document analytics in Cerebrata
&lt;/h2&gt;

&lt;p&gt;In Cerebrata, it is possible to visualize the data stored in each logical partition within a container. This is available through the document analytics feature. Through this feature, we will be able to view the total size of the documents in each logical partition. This will help us in understanding the trend of the records that are stored in each logical partition.&lt;/p&gt;

&lt;p&gt;Steps in viewing the Cosmos DB SQL API document analytics&lt;br&gt;
Navigate into the required Cosmos DB SQL API container within the desired database&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t1CWudh6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t1CWudh6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-2.png" alt="" width="530" height="698"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select Document analytics from the context menu of the container.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0lDs0c1c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0lDs0c1c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-3.png" alt="" width="352" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The document analytics will be displayed in both graphical format and tabular format.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NZzm0dz0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NZzm0dz0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-4.png" alt="" width="602" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Capabilities in Document analytics
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Search Criteria:&lt;/strong&gt; It is possible to retrieve the documents that are modified within the provided data time interval. This can be done be selecting the Search Criteria option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HBL9G0C2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HBL9G0C2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-5.png" alt="" width="602" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document count:&lt;/strong&gt; It is possible to visualize the total number of documents in a logical partition by grouping the records by document count.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9VfoDO35--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9VfoDO35--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-6.png" alt="" width="602" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document size:&lt;/strong&gt; It is possible to visualize the total size of documents in a logical partition by grouping the records by document size.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TLXvY6gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TLXvY6gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-9.png" alt="" width="602" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features in Document Analytics
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Export Chart:&lt;/strong&gt; It is also possible to export the document analytics as an image file. This can be done through the Export chart option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aDk1y018--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aDk1y018--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-10.png" alt="" width="601" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Export data:&lt;/strong&gt; It is also possible to export the document analytics as CSV or Excel file. This can be done by using the Export data option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---TaE-CE2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---TaE-CE2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cerebrata.com/wp-content/uploads/2021/06/image-8.png" alt="" width="602" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Other features for Cosmos DB SQL API
&lt;/h2&gt;

&lt;p&gt;Cerebrata also provides some other interesting features for Cosmos DB like management of databases, containers, stored procedures, functions, and triggers of containers in a Cosmos DB account. It is also possible to query the documents in a container, insert a new document, update, and delete the existing documents. It is also possible to copy the documents from one container to another container.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this blog, we understood how Cerebrata can be used to visualize the logical partitions in a Cosmos DB SQL API container and the basics of logical and physical partitions. &lt;/p&gt;

&lt;p&gt;Apart from Azure Cosmos DB SQL API, Cerebrata enables you to manage your Azure Cosmos DB accounts (Gremlin API and Table API), Service Bus Namespaces, Cognitive Search Service accounts, Redis Cache accounts, and much more. It is also cross-platform so that you can manage your Azure resources from a platform of your choice – Windows, Mac, or Linux. Please visit &lt;a href="https://cerebrata.com/"&gt;https://www.cerebrata.com&lt;/a&gt;to learn more.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>serverless</category>
      <category>cosmosdb</category>
    </item>
  </channel>
</rss>
