{"id":10523,"date":"2022-05-10T17:29:01","date_gmt":"2022-05-10T11:59:01","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=10523"},"modified":"2022-05-10T17:29:01","modified_gmt":"2022-05-10T11:59:01","slug":"alerting-through-azure-logic-apps","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2022\/05\/10\/alerting-through-azure-logic-apps\/","title":{"rendered":"Alerting Through Azure Logic Apps"},"content":{"rendered":"\n<p class=\"has-text-align-justify\">As we know alerting is the most crucial part of any infrastructure, and it becomes even more challenging when our infrastructure grows since we cannot monitor everything every time. Every client wants to get notified by their own alerting system before their customer reaches out to them and informs &#8220;<strong><em>Hey this service is not working or I am not able to access XYZ service<\/em><\/strong>&#8220;.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Alerting helps to ensure that the system remains healthy, responsive, and secure. It&#8217;s an important part of any system that makes performance, availability, and efficiency high. An operator might need to be notified of the event that triggers the alert.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">We can set up alerts in many ways, but in this blog, I will be focussing on setting up alerting through <strong>azure logic apps<\/strong>.<\/p>\n\n\n\n<p class=\"has-text-align-justify\"><strong>Azure<\/strong> provides multiple options to send an alert to the end user, maybe through email, Slack, Pagerduty, SMS, etc. In this blog, I will be explaining the way to send an alert through email, Slack, and Pagerduty.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"has-medium-font-size\"><strong>What are alerts in Microsoft Azure?<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">Alerts proactively notify you when issues are found with your infrastructure or application using your monitoring data in <strong><em>Azure Monitor<\/em><\/strong>. They allow you to identify and address issues before the users of your system notice them.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Azure provides the option to send alerts through <strong><em>Azure Monitor Service<\/em><\/strong>, You can easily find the <strong><em>Azure Alert<\/em><\/strong> option under Azure monitor. The below diagram represents the flow of alerts through Azure Monitor without using the Azure Logic Apps. You can use this service to send an alert through email or Pagerduty.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/05\/image-1.png?w=1024\" alt=\"\" class=\"wp-image-10689\" width=\"507\" height=\"430\" \/><figcaption>                 Alerting in Azure without using Azure Logic Apps<\/figcaption><\/figure>\n\n\n\n<h2 class=\"has-medium-font-size wp-block-heading\" id=\"overview\">Steps To Send Alert without using Azure Logic Apps<\/h2>\n\n\n\n<ol><li>First, choose a target resource that defines the scope and signals available for alerting. A target can be any Azure resource. Example targets:<\/li><\/ol>\n\n\n\n<ul><li>Virtual machines.<\/li><li>Storage accounts etc.<\/li><\/ul>\n\n\n\n<p>Let&#8217;s take an example of Azure Virtual Machine.<\/p>\n\n\n\n<p>a) Go to Alerts<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-1.png?w=1024\" alt=\"\" class=\"wp-image-10546\" width=\"628\" height=\"290\" \/><\/figure>\n\n\n\n<p> 2. Select Create Option where you will need to create the condition and action.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-2.png?w=1024\" alt=\"\" class=\"wp-image-10547\" width=\"631\" height=\"282\" \/><\/figure>\n\n\n\n<p>Condition is a combination of signal and logic applied to a target resource. Examples:<\/p>\n\n\n\n<ul><li>Percentage CPU &gt; 80%<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-8.png?w=1000\" alt=\"\" class=\"wp-image-10560\" width=\"628\" height=\"643\" \/><\/figure>\n\n\n\n<p>c) After creating the condition, you will need to create an <strong><em>action group<\/em><\/strong>.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">An <strong>action group<\/strong> is a combination of actions that will be taken, once the condition becomes true. Below is the snapshot of creating the action group.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-3.png?w=1024\" alt=\"\" class=\"wp-image-10550\" width=\"606\" height=\"322\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">Here if you want to send the alerts through email, SMS or voice then please go to the notification and select the option according to your choice of notification.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-6.png?w=1024\" alt=\"\" class=\"wp-image-10556\" width=\"618\" height=\"281\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\"><br>If you want to send the alert through the below options, you can choose any one from below. Suppose you want to send the alert through PagerDuty then just enter the webhook of the same in the webhook option.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-7.png?w=1024\" alt=\"\" class=\"wp-image-10557\" width=\"628\" height=\"375\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">Now come to alerting through the Azure Logic app. Please select the Azure Logic app and save it if you want to send the notification using the same.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>What is Azure Logic App<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">Azure Logic Apps are Microsoft Azure\u2019s Integration and Workflow offering in the Cloud.&nbsp;Azure Logic Apps makes use of connectors, Connectors are hosted services that allow accessing events, data, and actions across numerous services, APIs, and platforms. <\/p>\n\n\n\n<p class=\"has-text-align-justify\">An example would be a connector to the Slack service if you want to send the notifications through slack.<\/p>\n\n\n\n<p>You can see the typical architecture of alerting through azure logic apps below:<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/05\/image-2.png?w=1024\" alt=\"\" class=\"wp-image-10691\" width=\"455\" height=\"431\" \/><figcaption>                 Alerting in Azure using logic apps<\/figcaption><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Why send alerts using Azure Logic Apps<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">We can send alerts in many different ways but sometimes sending alert through Azure Logic apps becomes a compulsion when we want to send alerts of any Azure own Service which do not support any third-party agent integration.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Another scenario can be if you want to create a ticket of Azure service alerts through a ticket management system such as ServiceNow you will find the option of choosing the Azure Logic app more conveniently, we already have a blog for this scenario which you can follow for your implementation. Please click here to visit our blog on ServiceNow Integration through the Azure Logic app.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>How to Create Azure Logic App<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">Take a scenario of getting the alerts using the Azure Logic App for increased CPU utilization of more than 80%.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">1. Search Azure Logic App and click on add.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-10.png?w=1024\" alt=\"\" class=\"wp-image-10563\" width=\"704\" height=\"440\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">Select the desired options then click review &amp; Create.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">2. Logic apps are created using the Azure Portal Logic App designer. Once your  Logic app has been created click on the \u201cLogic App Designer\u201d item in the left-hand pane under the heading \u201cDeployment Tools\u201d. This will bring up the designer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-11.png?w=1024\" alt=\"\" class=\"wp-image-10565\" width=\"630\" height=\"293\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-justify\">As can be seen from the above screenshot, the designer comes with preconfigured template triggers to get you started. In this example, we want to build a workflow using two triggers, &#8220;When an HTTP Request is received&#8221; and \u201ccondition\u201d.<\/p>\n\n\n\n<p>3. Select &#8220;<strong>HTTP Request is received<\/strong>&#8221; and paste the below schema to declare the variables and their data type, this will help you to fetch the values of different azure metrics.<\/p>\n\n\n\n<pre class=\"wp-block-code has-dark-gray-color has-dark-gray-background-color has-text-color has-background has-small-font-size\"><code><code>{\n    \"properties\": {\n        \"data\": {\n            \"properties\": {\n                \"context\": {\n                    \"properties\": {\n                        \"condition\": {\n                            \"properties\": {\n                                \"allOf\": {\n                                    \"items\": {\n                                        \"properties\": {\n                                            \"dimensions\": {\n                                                \"items\": {\n                                                    \"properties\": {\n                                                        \"name\": {\n                                                          \"type\": \"string\"\n                                                        },\n                                                        \"value\": {\n                                                          \"type\": \"string\"\n                                                        }\n                                                    },\n                                                    \"required\": &#091;\n                                                        \"name\",\n                                                        \"value\"\n                                                    ],\n                                                    \"type\": \"object\"\n                                                },\n                                                \"type\": \"array\"\n                                            },\n                                            \"metricName\": {\n                                                \"type\": \"string\"\n                                            },\n                                            \"metricValue\": {\n                                                \"type\": \"integer\"\n                                            },\n                                            \"operator\": {\n                                                \"type\": \"string\"\n                                            },\n                                            \"threshold\": {\n                                                \"type\": \"string\"\n                                            },\n                                            \"timeAggregation\": {\n                                                \"type\": \"string\"\n                                            }\n                                        },\n                                        \"required\": &#091;\n                                            \"metricName\",\n                                            \"dimensions\",\n                                            \"operator\",\n                                            \"threshold\",\n                                            \"timeAggregation\",\n                                            \"metricValue\"\n                                        ],\n                                        \"type\": \"object\"\n                                    },\n                                    \"type\": \"array\"\n                                },\n                                \"windowSize\": {\n                                    \"type\": \"string\"\n                                }\n                            },\n                            \"type\": \"object\"\n                        },\n                        \"conditionType\": {\n                            \"type\": \"string\"\n                        },\n                        \"description\": {\n                            \"type\": \"string\"\n                        },\n                        \"id\": {\n                            \"type\": \"string\"\n                        },\n                        \"name\": {\n                            \"type\": \"string\"\n                        },\n                        \"portalLink\": {\n                            \"type\": \"string\"\n                        },\n                        \"resourceGroupName\": {\n                            \"type\": \"string\"\n                        },\n                        \"resourceId\": {\n                            \"type\": \"string\"\n                        },\n                        \"resourceName\": {\n                            \"type\": \"string\"\n                        },\n                        \"resourceType\": {\n                            \"type\": \"string\"\n                        },\n                        \"subscriptionId\": {\n                            \"type\": \"string\"\n                        },\n                        \"timestamp\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    \"type\": \"object\"\n                },\n                \"properties\": {\n                    \"properties\": {},\n                    \"type\": \"object\"\n                },\n                \"status\": {\n                    \"type\": \"string\"\n                },\n                \"version\": {\n                    \"type\": \"string\"\n                }\n            },\n            \"type\": \"object\"\n        },\n        \"schemaId\": {\n            \"type\": \"string\"\n        }\n    },\n    \"type\": \"object\"\n}<\/code><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-12.png?w=1024\" alt=\"\" class=\"wp-image-10570\" width=\"634\" height=\"341\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-justify\">Now Click on Next Step and select for each<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-13.png?w=1024\" alt=\"\" class=\"wp-image-10572\" width=\"630\" height=\"473\" \/><\/figure>\n\n\n\n<p>Select all to receive all the output from the previous step, then select HTTP to post a message to slack.<br><br> <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-15.png?w=1024\" alt=\"\" class=\"wp-image-10576\" width=\"630\" height=\"526\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/image-16.png?w=1024\" alt=\"\" class=\"wp-image-10581\" width=\"629\" height=\"355\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">Now Save and test the logic app, You should receive an alert on your slack channel.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Conclusion<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">In this blog we have learned about alerting and ways of sending the notification through Azure Alerts, We learned about sending alerts with or without using Azure Logic apps. I will be back with more use cases of the same till then please keep learning.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Happy Learning!!!!!!<\/p>\n\n\n\n<p class=\"has-text-align-justify has-small-font-size\">References:<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-monitor\/alerts\/alerts-overview\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.microsoft.com\/en-us\/azure\/azure-monitor\/alerts\/alerts-overview<\/a><\/p>\n\n\n\n<p><br><strong style=\"font-weight:bold;\">Blog Pundit:<\/strong> <a href=\"https:\/\/opstree.com\/blog\/\/author\/bhupendersinghb5dca0b393\/\">\u00a0<strong>Bhupender rawat<\/strong><\/a> <strong>and<\/strong> <a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\"><strong>Sandeep Rawat<\/strong><\/a><\/p>\n\n\n\n<p><strong><a href=\"https:\/\/www.opstree.com\/contact-us?utm_source=blog&amp;utm_medium=wordpress+&amp;utm_campaign=Alerting-Through-Azure-Logic-Apps\" target=\"_blank\" rel=\"noreferrer noopener\">Opstree<\/a><\/strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.opstree.com\/contact-us?utm_source=blog&amp;utm_medium=wordpress+&amp;utm_campaign=AWS-Elastic-Network-Interface\" target=\"_blank\"> <\/a>is an End to End DevOps solution provider<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.opstree.com\/contact-us\" target=\"_blank\" rel=\"noreferrer noopener\">CONTACT US<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Connect Us <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter is-content-justification-right is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>As we know alerting is the most crucial part of any infrastructure, and it becomes even more challenging when our infrastructure grows since we cannot monitor everything every time. Every client wants to get notified by their own alerting system before their customer reaches out to them and informs &#8220;Hey this service is not working &hellip; <a href=\"https:\/\/opstree.com\/blog\/2022\/05\/10\/alerting-through-azure-logic-apps\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Alerting Through Azure Logic Apps&#8221;<\/span><\/a><\/p>\n","protected":false},"author":215460209,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[26084,748757601,335778,541664677,342494647,604879251,768739293,251552,4996032],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-2JJ","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/10523"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/215460209"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=10523"}],"version-history":[{"count":24,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/10523\/revisions"}],"predecessor-version":[{"id":10783,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/10523\/revisions\/10783"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=10523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=10523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=10523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}