Axiom Processing Language (APL)

VerifiedSafe

Comprehensive guide for writing, debugging, and optimizing APL queries for analyzing observability data in Axiom. Includes syntax, operators, functions, and patterns.

Sby Skills Guide Bot
Data & AIIntermediate
406/2/2026
Claude Code
#apl#axiom#observability#query-language

Recommended for

Our review

Comprehensive reference for Axiom's APL query language, covering syntax, operators, functions, and usage patterns.

Strengths

  • Covers basic and advanced APL syntax
  • Includes schema discovery and concrete examples
  • Provides query patterns for various use cases
  • Explains time handling and efficient filtering

Limitations

  • Requires authenticated Axiom CLI to work
  • Not directly user-invocable
  • Limited to Axiom platform
When to use it

When you need to write, debug, or optimize an APL query to analyze observability data in Axiom.

When not to use it

For simple field lookups, use `getschema` directly; for real-time alerts, use Axiom Monitors instead.

Security analysis

Safe
Quality score90/100

The skill only allows read-only and query operations on Axiom datasets via restricted Bash commands, and uses safe utilities like Read, Grep, Glob. No destructive, exfiltrating, or obfuscated actions are instructed.

No concerns found

Examples

Count errors per service in last hour
Write an APL query to count the number of errors (status >= 500) per service from the 'logs' dataset in the last hour, sorted by count descending.
Use bin_auto for time bucketing
Show me an APL query that uses bin_auto to bucket requests by time over the last 24 hours and count them.
Debug a slow APL query
I'm writing an APL query that times out. Can you help me optimize it? Here's my query: ['logs'] | where _time >= ago(7d) | summarize count() by service, status ; it's too slow.

name: axiom-apl description: APL query language reference for Axiom. Provides operators, functions, patterns, and CLI usage. Auto-invoked by specialized Axiom skills when writing or debugging APL queries. compatibility: Requires authenticated Axiom CLI (axiom) user-invocable: false context: fork allowed-tools: Bash(axiom query:), Bash(axiom dataset list:), Bash(axiom stream:*), Read, Grep, Glob

Axiom Processing Language (APL)

APL is Axiom's query language for analyzing observability data. This skill provides comprehensive guidance for writing, debugging, and optimizing APL queries.

Quick Reference

Documentation: https://axiom.co/docs/apl/introduction

CLI usage: See references/cli.md

Core Workflow

1. List Available Datasets

axiom dataset list -f json

2. Discover Schema (CRITICAL - Always Do First)

['<dataset>'] | getschema

Never guess field names. The schema shows all fields with their types.

3. Sample Data

['<dataset>'] | limit 10

4. Write Query

See references for operators, functions, and patterns.

APL Syntax Essentials

Dataset Reference

['dataset-name']           // Bracket notation (required for names with dots/dashes)
dataset_name               // Plain identifier (only for simple names)

Field Reference

field_name                 // Plain field
['field.with.dots']        // Bracket notation for dotted fields
['service.name']           // OTel data (see references/otel.md for field mappings)

Basic Query Structure

['dataset']
| where <condition>
| extend <new_field> = <expression>
| summarize <aggregation> by <grouping>
| project <fields>
| sort by <field> desc
| limit 100

Time Handling

Always filter by time first - it's the most selective filter.

// Relative time
| where _time >= ago(1h)
| where _time >= ago(24h) and _time < ago(1h)

// Absolute time
| where _time >= datetime(2024-01-15T10:00:00Z)
| where _time between (datetime(2024-01-15) .. datetime(2024-01-16))

Time functions:

  • ago(timespan) - Relative past time
  • now() - Current time
  • datetime(string) - Parse datetime
  • bin(_time, 5m) - Time bucketing
  • bin_auto(_time) - Automatic bucketing

When NOT to Use

  • Simple field lookup: Use getschema directly instead of invoking the full skill
  • Known query patterns: If you already have a working query, don't re-invoke for syntax help
  • Real-time alerting: Use Axiom Monitors for continuous alerting, not ad-hoc queries

References

Related skills