Axiom
Query Axiom datasets directly from Sazabi without moving data.
Overview
Axiom is a log management platform built for high-volume data. With Sazabi's Axiom backend, you can query your Axiom datasets directly from Chat without duplicating data.
What you can query
When Axiom is configured as a backend, Chat can access:
- Datasets: Query logs from any dataset in your Axiom organization
- APL queries: Run Axiom Processing Language (APL) queries including filters, aggregations, and time-series analysis
- Log search: Full-text search across log messages
- Time-series data: Aggregated counts over time with optional grouping by severity or service
Supported fields
Chat can filter and aggregate on these fields:
| Field | Description |
|---|---|
severity | Log severity level (ERROR, WARN, INFO, DEBUG) |
body / message | Log message content |
service | Service name |
host | Host identifier |
timestamp | Log timestamp |
traceId | Distributed trace ID |
spanId | Span ID within a trace |
Prerequisites
Before configuring Axiom as a backend, you need:
- An Axiom account with at least one dataset containing logs
- An API token with read permissions for your dataset
- The dataset ID you want to query
Setup
Step 1: Create an API token in Axiom
- Log in to your Axiom account
- Navigate to Settings > API Tokens
- Click New API Token
- Give your token a descriptive name (e.g., "Sazabi Backend")
- Under Permissions, grant read access to the dataset(s) you want Sazabi to query:
- Select Read permission
- Choose the specific dataset(s) or select All datasets for organization-wide access
- Click Create
- Copy the API token immediately. You will not be able to see it again.
Store your API token securely. If you lose it, you will need to create a new one.
Step 2: Find your dataset ID
- In Axiom, navigate to Datasets
- Click on the dataset you want to query
- The dataset ID appears in the URL:
https://app.axiom.co/your-org/datasets/your-dataset-id - You can also find it in the dataset settings
Dataset IDs contain only letters, numbers, hyphens, and underscores.
Step 3: Configure the backend in Sazabi
- In Sazabi, go to Settings > Backends
- Click Add Backend and select Axiom
- Enter your configuration:
- API Token: Paste your Axiom API token
- Dataset ID: Enter the dataset ID from Step 2
- API Endpoint: Select your Axiom region:
- US (cloud.axiom.co): For US-based Axiom accounts
- EU (eu.axiom.co): For EU-based Axiom accounts
- Click Test Connection to verify your credentials
- Click Save
Required permissions
Your Axiom API token needs the following permissions:
| Permission | Purpose |
|---|---|
| Read on target dataset | Query logs and retrieve results |
For organization-wide access, grant read permission to All datasets. For more granular control, grant access only to the specific dataset(s) you want Sazabi to query.
Query capabilities
Supported operations
| Operation | Supported | Notes |
|---|---|---|
| Log search | Yes | Full-text search on message body |
| Filter by field | Yes | Exact match, contains, comparison operators |
| Time range queries | Yes | Default lookback is 7 days |
| Aggregations | Yes | Count by time bucket, group by severity or service |
| Sorting | Yes | By timestamp ascending or descending |
| Pagination | Yes | Cursor-based pagination for large result sets |
APL query examples
Chat translates your questions into APL queries. Here are examples of what it can do:
Find recent errors:
['my-dataset'] | where severity == 'ERROR' | order by _time desc | limit 100Search log messages:
['my-dataset'] | where body contains 'timeout' | limit 50Filter by service:
['my-dataset'] | where service == 'api-gateway' | order by _time desc | limit 100Time-series aggregation:
['my-dataset'] | summarize count() by bin(_time, 5m), severity | order by _time ascLimitations
- Single dataset per connection: Each Axiom backend configuration queries one dataset. To query multiple datasets, add multiple Axiom backend configurations.
- No environment dimension: Axiom does not support filtering by environment in log volume queries. Use service or severity grouping instead.
- Time range: Default query lookback is 7 days. For older data, specify explicit time ranges in your questions.
- Query timeout: Queries timeout after 30 seconds.
Troubleshooting
Connection test fails with "Invalid API token"
- Verify you copied the complete API token without extra spaces
- Check that the token has not been revoked in Axiom
- Ensure the token has read permissions for your dataset
Connection test fails with "Dataset not found"
- Verify the dataset ID matches exactly (case-sensitive)
- Check that the API token has permission to access this dataset
- Confirm you selected the correct region (US vs EU)
Connection test fails with "Permission denied"
- Your API token does not have read access to the specified dataset
- In Axiom, edit the token and grant read permission for the dataset
Queries return no results
- Verify the dataset contains logs in the time range being queried
- Check that field names in your questions match the actual schema in Axiom
- Try broadening your time range or removing filters
Queries are slow
- Narrow your time range to reduce the data scanned
- Add filters to reduce result set size
- Check Axiom's status page for service issues
Use cases
Configure Axiom as a backend when:
- You have an existing Axiom deployment with significant historical data
- You want to query Axiom alongside other observability platforms in Sazabi
- Compliance requirements prevent data duplication
- You prefer Axiom's pricing model for data storage