IntegrationsData WarehousesAzure Data Explorer

Azure Data Explorer

Datafly Signal delivers events to Azure Data Explorer (ADX) for fast, highly scalable log and telemetry analytics with real-time querying via KQL.

Prerequisites

Before configuring Azure Data Explorer in Signal, you need an Azure account with an ADX cluster, a database and table, and an Azure AD app registration for authentication.

Create an Azure Account

If you don’t already have one, sign up at azure.microsoft.com.

Create an Azure Data Explorer Cluster

  1. In the Azure portal, search for Azure Data Explorer Clusters and click Create.
  2. Enter a Cluster name (e.g. datafly-adx).
  3. Select a Region close to your Signal deployment.
  4. Choose a Compute specification based on your expected data volume.
  5. Click Review + Create > Create.
  6. Once deployed, note the URI (e.g. https://datafly-adx.westeurope.kusto.windows.net).

Create a Database

  1. Open your ADX cluster in the Azure portal.
  2. Click Databases in the left sidebar.
  3. Click Add database.
  4. Enter a Database name (e.g. analytics).
  5. Set the Retention period and Cache period as needed.
  6. Click Create.

Create a Table

  1. In the ADX cluster, go to Query in the left sidebar.
  2. Select your database and run the following KQL command:
.create table Events (
  event_id: string,
  type: string,
  event: string,
  anonymous_id: string,
  user_id: string,
  timestamp: datetime,
  received_at: datetime,
  context: dynamic,
  properties: dynamic,
  traits: dynamic,
  source_id: string,
  integration_id: string
)
  1. Optionally enable streaming ingestion on the table:
.alter table Events policy streamingingestion enable

Register an Azure AD Application

  1. In the Azure portal, go to Azure Active Directory > App registrations > New registration.
  2. Enter a name (e.g. datafly-signal-adx).
  3. Click Register.
  4. Note the Application (client) ID and Directory (tenant) ID from the overview page.

Create a Client Secret

  1. On the app registration page, go to Certificates & secrets > Client secrets > New client secret.
  2. Enter a description and expiry period.
  3. Click Add.
  4. Copy the secret value immediately — it is only shown once.
⚠️

Store the client secret securely. Set a calendar reminder to rotate it before expiry to avoid service interruptions.

Grant Database Permissions

  1. In the ADX cluster, go to Databases > your database > Permissions.
  2. Click Add > Ingestor.
  3. Search for your Azure AD application name and select it.
  4. Click Select.

Configuration

FieldTypeRequiredDescription
cluster_urlstringYesThe Azure Data Explorer cluster URL (e.g. https://mycluster.westeurope.kusto.windows.net).
databasestringYesThe target database name.
table_namestringYesThe target table name to ingest data into.
client_idstringYesThe Azure AD application (client) ID.
client_secretsecretYesThe Azure AD application client secret.
tenant_idstringYesThe Azure AD tenant (directory) ID.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Azure Data Explorer or filter by Cloud Storage.
  4. Click Install, select a variant if available, and fill in the required fields.
  5. Click Install Integration to create the integration with a ready-to-use default blueprint.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/azure_data_explorer/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Azure Data Explorer",
    "variant": "default",
    "config": {
      "cluster_url": "https://datafly-adx.westeurope.kusto.windows.net",
      "database": "analytics",
      "table_name": "Events",
      "client_id": "00000000-0000-0000-0000-000000000000",
      "client_secret": "YOUR_CLIENT_SECRET",
      "tenant_id": "00000000-0000-0000-0000-000000000000"
    },
    "delivery_mode": "server_side"
  }'

Testing

  1. Enable the integration in Signal and trigger a test event on your website.
  2. In the ADX cluster, go to Query and select your database.
  3. Run a query to check for events:
Events
| order by timestamp desc
| take 10
  1. Verify that event rows are appearing with correct data.
  2. In Signal, check the Live Events view to confirm delivery status shows as successful.

Troubleshooting

ProblemSolution
Events not appearing in the tableVerify the cluster URL, database name, and table name are correct. Check that the table exists.
UnauthorizedThe client ID, client secret, or tenant ID is incorrect. Verify the Azure AD app registration details.
ForbiddenThe Azure AD app lacks Ingestor permission on the database. Add the permission in ADX Permissions.
Client secret expiredGenerate a new client secret in Azure AD > App registrations > Certificates & secrets and update the Signal config.
Ingestion latencyBy default, ADX batches ingestion. Enable streaming ingestion on the table for lower latency.
Schema mismatchThe event fields must match the table column names and types. Verify with .show table Events schema.

Visit Azure Data Explorer documentation for full KQL reference and ingestion management guides.