Skip to main content

Multi-Index Management

Overview

ProjectAchilles writes test results into dated write indices and reads them back through a wildcard pattern (achilles-results-* by default). Indices are created automatically — there is no manual index creation step.

Write-Index Rollover

Ingestion routes through a write index resolved from a configurable prefix and rollover mode (Write Index Prefix and Write index rollover in Analytics → Settings):

Rollover modeWrite index
Dailyachilles-results-YYYY.MM.DD
Monthlyachilles-results-YYYY.MM
Static (none)The prefix as-is

New dated indices are created automatically on first ingest with the correct field mappings. Because the read pattern (achilles-results-*) spans all dated indices, analytics always see the full result history — rollover only affects where new documents land.

Rollover keeps individual indices small, which makes retention simple: old dated indices can be snapshotted and deleted without touching the current write index.

Environment variable equivalents: ELASTICSEARCH_WRITE_INDEX_PREFIX and ELASTICSEARCH_WRITE_INDEX_ROLLOVER (none / daily / monthly).

Viewing Indices

The read-only index list in Analytics settings shows all indices matching the configured pattern, with document count, size, and creation date.

Per-Task Index Targeting

When creating a task or schedule, you can specify a target Elasticsearch index under Advanced (the default is the global write index). Results from that task are ingested into the specified index instead.

This is useful for:

  • Engagement isolation — Keep results from different engagements separate
  • Environment separation — Separate production vs. staging test results
  • Team separation — Different teams work with their own result sets