Azure Quickstart Guide
This quickstart guide will help you get Causely up and running on Azure. This setup deploys Causely in your Kubernetes cluster (including AKS) with eBPF instrumentation enabled, and connects it to your Azure subscription to monitor cloud resources.
Get Your Installation Command
- Log in to the Causely portal.
- Visit the mediators page.
- Click the "Add new" button (or "Add ➕" button) on the mediators page.
- In the instructions panel, you'll see the Helm installation command with your access token pre-filled.
- Copy the complete Helm command. It will look similar to the example below.
The command you copy will include your specific access token and cluster name. Here's what it typically looks like:
export CAUSELY_TOKEN=<your_token>
export CAUSELY_CLUSTER_NAME=<your_cluster_name>
export CAUSELY_VERSION=<version>
helm upgrade --install causely \\
--create-namespace oci://us-docker.pkg.dev/public-causely/public/causely \\
--version "${CAUSELY_VERSION}" \\
--namespace=causely \\
--set image.tag="${CAUSELY_VERSION}" \\
--set global.cluster_name="\${CAUSELY_CLUSTER_NAME}" \\
--set mediator.gateway.token="\${CAUSELY_TOKEN}"
Screenshots of the mediators page, "Add new" button, and instructions panel will be added here.
Run the Installation Command
- Open a terminal with
kubectlconfigured to access your Kubernetes cluster. - Paste and run the Helm command you copied from the portal.
- Wait for the installation to complete:
kubectl wait --for=condition=Ready pod -l app.kubernetes.io/part-of=causely -n causely --timeout=300s
By default, Causely will use eBPF-based instrumentation to automatically instrument your applications running in Kubernetes. This provides zero-effort observability without code changes.
Connect Your Azure Subscription
Now you need to configure Causely to monitor your Azure resources. You'll need a Service Principal (SPN) with Reader permissions on the subscriptions you want to monitor.
Step 5a: Create a Service Principal
Use the Azure CLI to create a Service Principal:
az ad sp create-for-rbac --name causely-spn --role reader --scopes /subscriptions/<your_subscription_id>
This will output credentials including tenantId, clientId, clientSecret, and subscriptionId.
Step 5b: Create a Kubernetes Secret
Save the Service Principal credentials in a Kubernetes Secret:
kubectl --namespace causely create secret generic spn-credentials \
--from-literal=tenantId="<your_tenant_id>" \
--from-literal=clientId="<your_client_id>" \
--from-literal=clientSecret="<your_client_secret>" \
--from-literal=subscriptionId="<your_subscription_id>"
Step 5c: Update Causely Configuration
Update your causely-values.yaml to enable Azure scraping. You can enable different Azure resource types:
global:
cluster_name: <your_cluster_name>
mediator:
gateway:
token: <your_token>
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
Then upgrade your installation:
helm upgrade --install causely \\
--namespace=causely \\
--values causely-values.yaml \\
oci://us-docker.pkg.dev/public-causely/public/causely \\
--version "${CAUSELY_VERSION}"
You can also use credentials autodiscovery by labeling the secret for each scraper:
# 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"
This allows you to add new accounts without editing the configuration. See the Azure integration documentation for more details.
What to Expect
Once configured, Causely will:
-
Monitor Kubernetes services: Using eBPF instrumentation, Causely automatically discovers and monitors services running in your Kubernetes cluster.
-
Monitor Azure resources: Causely will discover and monitor Azure resources including:
- Virtual Machines and Disks
- Azure PostgreSQL and MySQL databases
- Azure Redis
- Azure EventHub
- And more
-
Unified view: Causely creates a unified topology showing relationships between your Kubernetes services and Azure resources.
-
Show data in the UI: Within a few minutes, you should start seeing entities appearing in the Causely UI at https://portal.causely.app.
Add More Telemetry Sources
To help Causely identify root causes more effectively, connect additional telemetry sources. Visit the Telemetry Sources page to learn about the data sources that Causely supports, including:
- Prometheus
- OpenTelemetry
- Grafana
- Alertmanager
- And many more
Add Workflow Integrations
Push insights into your existing workflows and notification tools. Visit the Workflow Integrations page to set up integrations with:
What's Your Goal?
What's your goal?
Accelerate resolution
Get precise root cause insights during incidents to resolve issues faster.
Proactively prevent incidents
Identify emerging risks before they impact your services and SLOs.
Understand system behavior
Gain deep insights into why your systems behave the way they do.
Scale reliability
Maintain reliability across complex, fast-changing systems at scale.
Optimize performance
Continuously improve system performance with actionable insights.
While this quickstart guide focuses on Kubernetes, Causely also supports:
- Container Orchestration: Nomad, Docker, ECS
- GitOps: Argo CD, Flux
- Virtual Machines: Direct installation on VMs
For detailed installation instructions for these platforms, visit the Installation Overview page.