Query Axiom Logs

Query logs from Axiom for debugging (read-only, no ingestion allowed)

$ Instalar

git clone https://github.com/vm0-ai/vm0 /tmp/vm0 && cp -r /tmp/vm0/.claude/skills/query-axiom-logs ~/.claude/skills/vm0

// tip: Run this command in your terminal to install the skill


name: Query Axiom Logs description: Query logs from Axiom for debugging (read-only, no ingestion allowed)

Query Axiom Logs

Query logs and telemetry data from Axiom for debugging purposes.

IMPORTANT: This skill is READ-ONLY. Never ingest or write data to Axiom.

Environment Setup

AXIOM_TOKEN Location

The token is stored in turbo/apps/web/.env.local:

AXIOM_TOKEN=xaat-xxxxx

If Token is Missing

Ask the user to sync environment variables from 1Password:

./scripts/sync-env.sh

This syncs AXIOM_TOKEN from op://Development/vm0-env-local/axiom_token.

Available Datasets

DatasetDev NamePurpose
Web Logsvm0-web-logs-devServer logs (errors, warnings, API calls)
Agent Run Eventsvm0-agent-run-events-devAgent execution events and activity
Sandbox Systemvm0-sandbox-telemetry-system-devSandbox console/system logs
Sandbox Metricsvm0-sandbox-telemetry-metrics-devCPU, memory, disk usage
Sandbox Networkvm0-sandbox-telemetry-network-devHTTP requests from sandbox

For production, replace -dev with -prod.

Query Command

source turbo/apps/web/.env.local && axiom query "APL_QUERY" -T "$AXIOM_TOKEN" -f table

Options:

  • -f table - Human-readable table (default)
  • -f json - JSON output for processing
  • --start-time "-1h" - Filter by time range

APL Query Syntax

['dataset-name']
| where condition
| project field1, field2
| limit 100

Common Operators

OperatorExample
Filterwhere level == "error"
Searchsearch "connection refused"
Timewhere _time > now(-1h)
Selectproject _time, message
Sortsort by _time desc
Limitlimit 100
Countsummarize count() by field

Common Queries

Web Logs - Find Errors

source turbo/apps/web/.env.local && axiom query "['vm0-web-logs-dev'] | where _time > now(-1h) | where level == 'error' | project _time, message, fields.context | sort by _time desc | limit 50" -T "$AXIOM_TOKEN"

Web Logs - Search Text

source turbo/apps/web/.env.local && axiom query "['vm0-web-logs-dev'] | search 'connection refused' | project _time, message | limit 20" -T "$AXIOM_TOKEN" --start-time "-24h"

Agent Events - By Run ID

source turbo/apps/web/.env.local && axiom query "['vm0-agent-run-events-dev'] | where runId == 'UUID_HERE' | sort by sequenceNumber asc" -T "$AXIOM_TOKEN"

Agent Events - Failed Runs

source turbo/apps/web/.env.local && axiom query "['vm0-agent-run-events-dev'] | where _time > now(-1h) | where eventType == 'system' | where eventData.subtype == 'error' | project _time, runId, eventData.message | limit 20" -T "$AXIOM_TOKEN"

Sandbox Logs - By Run ID

source turbo/apps/web/.env.local && axiom query "['vm0-sandbox-telemetry-system-dev'] | where runId == 'UUID_HERE' | sort by _time asc" -T "$AXIOM_TOKEN"

Sandbox Metrics - Resource Usage

source turbo/apps/web/.env.local && axiom query "['vm0-sandbox-telemetry-metrics-dev'] | where runId == 'UUID_HERE' | project _time, cpu, mem_used, disk_used | sort by _time asc" -T "$AXIOM_TOKEN"

Sandbox Network - HTTP Errors

source turbo/apps/web/.env.local && axiom query "['vm0-sandbox-telemetry-network-dev'] | where _time > now(-1h) | where status >= 400 | project _time, method, url, status, latency_ms | limit 50" -T "$AXIOM_TOKEN"

Dataset Fields Reference

vm0-web-logs-dev

FieldDescription
_timeEvent timestamp
levelLog level (error, warn, info, debug)
messageLog message
fields.contextContext (webhook:complete, api:runs, etc.)
vercel.environmentVercel env (preview, production)
vercel.regionVercel region (iad1, etc.)

vm0-agent-run-events-dev

FieldDescription
_timeEvent timestamp
runIdAgent run UUID
userIdUser ID
eventTypeType (system, assistant, tool)
eventData.typeSubtype details
eventData.messageEvent message content
sequenceNumberEvent sequence in run

vm0-sandbox-telemetry-system-dev

FieldDescription
_timeEvent timestamp
runIdAgent run UUID
userIdUser ID
logRaw log text

vm0-sandbox-telemetry-metrics-dev

FieldDescription
_timeTimestamp
runIdAgent run UUID
cpuCPU usage (0-1)
mem_total, mem_usedMemory in bytes
disk_total, disk_usedDisk in bytes

vm0-sandbox-telemetry-network-dev

FieldDescription
_timeTimestamp
runIdAgent run UUID
methodHTTP method
urlRequest URL
statusHTTP status code
latency_msLatency in milliseconds
request_size, response_sizeBytes

Constraints

  • Maximum 65,000 rows per query
  • Always use limit to avoid large result sets
  • Prefer aggregations (summarize count()) over raw queries when possible