A Quick Guide to Set up Azure Cost Notifications in Slack

Why Integrate Azure with Slack? Slack is a messaging tool that keeps your project workflows, team collaborations, and communications in one place. It integrates your project files, meeting schedules, and team conversations and is organized and easily accessible. It also integrates easily with many tools that you use on an everyday basis. Integrating Azure with […]

October 25, 2024

by Heera Ravindran

8 mins Read

A Quick Guide to Set up Azure Cost Notifications in Slack

Why Integrate Azure with Slack?

Slack is a messaging tool that keeps your project workflows, team collaborations, and communications in one place. It integrates your project files, meeting schedules, and team conversations and is organized and easily accessible. It also integrates easily with many tools that you use on an everyday basis.

Integrating Azure with Slack helps you bridge the gap between your cloud operations and team collaborations. By integrating Azure tools with Slack you can have a comprehensive view of your cloud usage, and manage cost alerts efficiently. In this article let’s explore two methods to integrate your Azure cost management alerts with Slack.

You can set up and customize your Azure cost alerts and notifications by:

  • Integrating Slack with Azure Logic Apps
  • Integrating slack with Azure Budgets

Configuring Azure Logic Apps to Send Notifications to Slack

The below steps show how to integrate Azure with Slack via Azure Logic Apps to receive alerts on resource usage, anomalies, or budget limits in Slack.

Step 1: Create a Logic App in Azure
In Azure Portal, search for Logic App, add a new app, and select the required subscription, resource group, and “Consumption” plan. Deploy the app, then open it in the Logic App Designer.

Integrate Azure with Slack for better cost management
Source: Microsoft Learn

Step 2: Configure HTTP Trigger
On the Logic Apps Designer page, choose “When an HTTP request is received” and add the Common Alert Schema to the Request Body JSON Schema to define incoming alert data.

Integrate Azure with Slack for better cost management
Source: Microsoft Learn

Use the common alert schema in the Request Body JSON Schema field:

{
    "type": "object",
    "properties": {
        "schemaId": {
            "type": "string"
        },
        "data": {
            "type": "object",
            "properties": {
                "essentials": {
                    "type": "object",
                    "properties": {
                        "alertId": {
                            "type": "string"
                        },
                        "alertRule": {
                            "type": "string"
                        },
                        "severity": {
                            "type": "string"
                        },
                        "signalType": {
                            "type": "string"
                        },
                        "monitorCondition": {
                            "type": "string"
                        },
                        "monitoringService": {
                            "type": "string"
                        },
                        "alertTargetIDs": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "originAlertId": {
                            "type": "string"
                        },
                        "firedDateTime": {
                            "type": "string"
                        },
                        "resolvedDateTime": {
                            "type": "string"
                        },
                        "description": {
                            "type": "string"
                        },
                        "essentialsVersion": {
                            "type": "string"
                        },
                        "alertContextVersion": {
                            "type": "string"
                        }
                    }
                },
                "alertContext": {
                    "type": "object",
                    "properties": {}
                }
            }
        }
    }
}

Step 3: Add Variables to Extract Metadata
Initialize a variable (e.g., AffectedResource) for resource metadata. Use expressions to extract metadata for targeted resources and initialize each variable for alert context.

Integrate Azure with Slack for better cost management
Source: Microsoft Learn

Step 4: Customize Alerts
Set up actions as “Slack Webhook.” Customize alert fields and include dynamic data such as alert severity or resources affected.

Step 5: Create an Action Group in Azure Monitor
In Azure Monitor, navigate to Alerts → Action Groups, select your Logic App, and select the Common Alert Schema to configure trigger points.

Microsoft Learn

Step 6: Test the Integration
Run a test in the Action Group to confirm Slack delivery.

This integration ensures real-time alerts in Slack, improving monitoring and budget control for your Azure resources.

How to Set up Azure Budgets with Slack?

Now, let’s see how to create Azure budgets and send notifications directly to Slack. This helps to track your Azure spending efficiently, making it easy to monitor and manage budgets in real-time with Slack notifications.

Step 1: Set Up Incoming Webhooks on Slack

  • In Slack, use the Incoming WebHooks app to generate a webhook URL for posting messages.
  • Choose a channel where budget notifications should appear. If you already have a webhook for cost alerts, you can reuse it to avoid app limits.

Step 2: Create a Budget in Azure

  • Go to Azure Cost Management and create a budget for your subscription.
  • Set a monthly limit to control spending.

Step 3: Configure Notifications and Alerts

  • In the budget settings, create alerts and notifications.
  • Under Notifications, set up an action group with an email alert. In Actions, add your Slack webhook URL to receive notifications directly in Slack.

Step 4: Add Alerts for Monitoring

  • Define cost thresholds such as 80%, or 100% to trigger alerts based on budget consumption.

Step 5: Test and Verify

  • Once the budget and alerts are in place, test the setup to ensure Slack receives notifications.

How Economize Makes Cost Management Easy?

Setting up alerts and notifications is a great way to monitor your cloud costs, but why not take it a step further?

Economize is a cloud cost optimization tool that offers real-time insights, alerts, and visualization make your cloud journey easier. Economize helps you establish efficient, centralized control over your cloud expenses. It scans your cloud account for cost-savings opportunities, reduces your spending with optimization recommendations, and provides interactive charts and graphs to track your spending pattern. The other features include:

  • Cost Insights: It provides real-time cost tracking with detailed breakdowns by services, resources, or labels.
  • Real-Time Monitoring: It constantly monitors cloud expenses, alerting you instantly about unexpected spikes. This helps prevent overspending by enabling timely action.
  • Anomaly Detection: The platform detects unusual cost patterns automatically. This feature highlights unexpected increases before they affect your budget.
  • Root-Cause Analysis: Economize helps identify the cause of cost spikes. This insight makes it easier to correct or prevent future issues.
  • Alerts and Notifications: Set custom thresholds to receive alerts on cost overages. Notifications allow you to address potential overspending quickly.
  • You can even integrate Economize with Slack to receive real-time updates within your workspace.

How to connect your Azure account with Economize

Step 1: Sign Up and Connect to Azure

  • After signing up with Economize, select Azure as your cloud provider.

Step 2: Register a New App

  • In the Azure portal, go to Microsoft Entra ID, then select App Registration under Manage.
  • Click + New registration, name the app “Economize,” and click Register.
  • Note the Application (client) ID and Directory (tenant) ID for later use.

Step 3: Create a Client Secret

  • On the app’s main page, select Add a certificate or secret beside Client credentials.
  • Click + New client secret and name it (e.g., “economize-secret”). Set the expiration and click Add.
  • Copy the secret’s Value immediately, as it will only display once. Save it for later.

Step 4: Grant Service Principal Permissions

  • In Management groups (search in the top navigation), select or create a management group for permissions.
  • Go to Access control (IAM), click Add role assignment, and choose Reader.
  • Select User, group, or service principal, then add the Economize app created earlier.
  • Click Next > Review + assign to complete.

Step 5: Create Billing Export

  • Ensure you’re on the Billing scope page. Go to Cost Management + Billing and select a billing scope.
  • Under Settings, click Export > + Create > Create your own export.
  • Enter the export details:
    • Type: Cost and usage details (actual)
    • Export name: e.g., economize_export
    • Dataset version: 2021-10-01
    • Frequency: Daily export of month-to-date costs
    • Storage type: Azure blob storage
  • Click Next and configure destination details (use Azure blob storage and select CSV).
  • Run the export from the export page and ensure it completes successfully.

Step 6: Assign Billing Account Reader Role

  • On the same Export page, go to Access control (IAM) and + Add the Billing account reader role to the Economize application.

Step 7: Grant Reader and Data Access for Storage Account

  • In the same page, go to Exports tab, open the export, then select Storage account.
  • Go to Access control (IAM) > + Add > Add role assignment.
  • Select Reader and Data Access and add the Economize service principal.

Step 8: Add Configurations in the Economize Console

  • Finally, return to Economize and enter the Application ID, Directory ID, and Client Secret. Click Connect to complete integration.

How to Integrate Economize with Slack:

  • In the Economize console, go to Settings and open the Integrations page.
  • Find Slack and click Configure.
  • Here, you’ll see any connected Slack channels or you can add new ones by selecting + Add workspace.
  • You’ll be directed to your Slack workspace and prompted to grant permission. A message will appear saying, “Economize requires a channel to post to as an app.” Select the channel where you’d like to receive notifications and click Allow.
  • After connecting the channel, you’ll be redirected back to the Economize dashboard.

Conclusion

Setting up Azure with Slack helps to keep a close watch on your cloud expenses. These integrations promote better visibility and improve response times for managing potential overspending.

Using tools like Economize for Azure cost optimization can further enhance your cost management strategy. With features like cost insights, real-time monitoring, anomaly detection, and customizable alerts, Economize provides a comprehensive solution for staying on top of your cloud expenses.


Feeling the Weight of High Cloud Bills?

Controlling your cloud budget doesn’t have to be complicated. With Economize, we make it easy to slash your costs by up to 30%. Schedule a free demo today and begin your journey towards more manageable cloud spending. Start seeing the benefits in your budget right away.

Content Marketer at Economize. An avid writer and a zealous reader who specializes in technical content and has a passion for all things Cloud and FinOps.

Ready to get started?

Try it free. No credit card required. Instant set-up.