Axiom Processing Language (APL)

VérifiéSûr

Guide complet pour écrire, déboguer et optimiser les requêtes APL pour l'analyse de données d'observabilité dans Axiom. Inclut syntaxe, opérateurs, fonctions et patterns.

Spar Skills Guide Bot
Data & IAIntermédiaire
5002/06/2026
Claude Code
#apl#axiom#observability#query-language

Recommandé pour

Notre avis

Fournit une référence complète pour le langage de requête APL d'Axiom, incluant syntaxe, opérateurs, fonctions et modèles d'utilisation.

Points forts

  • Couvre la syntaxe de base et avancée d'APL
  • Inclut la découverte de schéma et des exemples concrets
  • Fournit des modèles de requêtes pour divers cas d'usage
  • Explique la gestion du temps et les filtres efficaces

Limites

  • Nécessite l'authentification CLI Axiom pour fonctionner
  • N'est pas invocable directement par l'utilisateur
  • Limitée à la plateforme Axiom
Quand l'utiliser

Lorsque vous devez écrire, déboguer ou optimiser une requête APL pour analyser des données d'observabilité dans Axiom.

Quand l'éviter

Pour une simple recherche de champ, utilisez directement `getschema` ; pour des alertes en temps réel, préférez les monitors Axiom.

Analyse de sécurité

Sûr
Score qualité90/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.

Aucun point d'attention détecté

Exemples

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

Skills similaires