Skip to main content

Azure

Signals Provided
  • Infrastructure Entities - Complete infrastructure topology including compute, storage, and networking resources
  • Metrics - Performance metrics from applications and infrastructure
  • Service Discovery - Automatic discovery of services, workloads, and infrastructure components
  • Symptoms - Automatic symptom detection from metrics, traces, and external monitoring systems

Overview

Causely provides comprehensive native integration with Microsoft Azure to help you identify and resolve infrastructure and managed service reliability issues before they impact your users.

Rather than stopping at surface-level symptoms, Causely analyzes real-time signals from your Azure environment to infer the underlying causes of performance degradation and risk across your cloud services.

By setting up the Azure integration, you will be able to:

Identify causes for reliability issues originating from your Azure infrastructure and services, including:

Observe Azure resources as first-class entities in the Causely Topology Graph, including their relationships to Kubernetes workloads, cloud services, and downstream dependencies

Monitor performance and health metrics from Azure-native sources with automatic correlation to service impact and causal diagnoses

Supported Azure Services

Causely integrates with the following Azure services to provide comprehensive observability and causal inference:

  • Azure Cache for Redis
  • Azure Database for MySQL Flexible Server
  • Azure Database for PostgreSQL Flexible Server
  • Azure Managed Disks
  • Azure Key Vault
  • Azure Event Hubs
  • Azure Load Balancer
  • Azure Storage (Blob, Queue, File, Table)
  • Azure Virtual Machines (VMs)
  • Azure Virtual Machine Scale Sets (VMSS)

Step 1: Create a Service Principal (SPN)

Use the following azure-cli command to create an SPN:

az ad sp create-for-rbac --name causely-spn --role reader --scopes /subscriptions/00000000-0000-0000-0000-000000000000

Step 2: Create a Kubernetes Secret for the SPN Credentials

After creating the SPN, save its credentials in a Kubernetes Secret. Replace the placeholder values with the SPN's tenantId, clientId, clientSecret, and subscriptionId.

kubectl --namespace causely create secret generic spn-credentials \
--from-literal=tenantId="..." \
--from-literal=clientId="..." \
--from-literal=clientSecret="..." \
--from-literal=subscriptionId="..."

Step 3: Update Causely Configuration

Once the Secret is created, update the Causely configuration to enable scraping for the new subscription. Below is an example configuration:

scrapers:
azure: # Scrape VMs & Disks
enabled: true
subscriptions:
- secretName: spn-credentials
namespace: causely

azurePostgres: # Scrape Postgresql Databases
enabled: true
subscriptions:
- secretName: spn-credentials
namespace: causely

azureMysql: # Scrape Mysql Databases
enabled: true
subscriptions:
- secretName: spn-credentials
namespace: causely

azureRedis: # Scrape Redis
enabled: true
subscriptions:
- secretName: spn-credentials
namespace: causely

azureEventhub: # Scrape EventHub
enabled: true
subscriptions:
- secretName: spn-credentials
namespace: causely

Alternative: Enable Credentials Autodiscovery

Causely also supports credentials autodiscovery. This feature allows you to add new scraping targets without updating the Causely configuration. Simply label the Kubernetes Secret to enable autodiscovery for the corresponding scraper.

Example: Labeling Secrets for Autodiscovery

# Azure VMs & Disks
kubectl --namespace causely label secret spn-credentials "causely.ai/scraper=Azure"

# Azure Postgresql
kubectl --namespace causely label secret spn-credentials "causely.ai/scraper=AzurePostgres"

# Azure MySQL
kubectl --namespace causely label secret spn-credentials "causely.ai/scraper=AzureMysql"

# Azure Redis
kubectl --namespace causely label secret spn-credentials "causely.ai/scraper=AzureRedis"

# Azure EventHub
kubectl --namespace causely label secret spn-credentials "causely.ai/scraper=AzureEventHub"

With these steps, you can seamlessly integrate Causely with the Azure API and configure it to monitor your desired resources.