Skip to main content
Version: 0.2.0 (Private Preview)

Index Advisor

Status: Unavailable: NexoIndexAdvisor is schema-only in the pinned Operator.

:::caution No supported deployment contract

This capability is documented for catalog completeness, but the selected release does not publish a supported end-to-end deployment contract.

:::

This page belongs to the immutable 0.2.0 Private Preview documentation.

At a glance

PropertyValue
Pipeline phaseRequest + response
CategoryPerformance
Canonical minimum tierFree
Legacy dashboard tier labelBusiness
Legacy rendered nameIndex Advisor
Legacy rendered summaryLive query-shape analysis with cost estimation, duplicate detection, auto explain, and index usage reporting.
Canonical entitlementYes
Supported deployment contractNo
Release statusUnavailable: NexoIndexAdvisor is schema-only in the pinned Operator.

Release accuracy

  • 0.2.0 Private Preview: Unavailable: NexoIndexAdvisor is schema-only in the pinned Operator.

The detailed material below preserves every section rendered by the legacy dashboard. Where it conflicts with the release status above, the release status is authoritative. Legacy field names and examples are not a substitute for the selected bundle's CRD and runtime contract. Unsafe legacy wording is retained in metadata for traceability but is corrected in the rendered guidance.

Index Advisor 0.2.0 Private Preview feature flow. Unavailable: NexoIndexAdvisor is schema-only in the pinned Operator.

Release-aware feature flow. The diagram is explanatory; the release status on this page is authoritative.

Diagram resources: Open the SVG full screen · Download the editable Excalidraw source

Performance impact

:::warning Legacy, unverified performance claims

These numbers are preserved for documentation parity with the legacy dashboard. They are not current benchmarks or service guarantees and have not been verified by the current test suite.

:::

PercentileLegacy claim
P50<0.2ms
P95<0.5ms
P99<1ms

Legacy note: Query-shape extraction is in-process; explain runs happen asynchronously on the scheduler.

Overview

Index Advisor samples MongoDB queries, extracts their filter/sort/projection shape, tracks latency and frequency, persists the resulting patterns, and turns that data into index recommendations. Higher tiers add estimated scan cost ratios, duplicate-index detection, scheduled explain analysis, and index usage visibility.

When to use

  • Find missing indexes from production traffic without enabling the database profiler
  • Prioritize high-impact query patterns using frequency, latency, and estimated scan cost
  • Continuously explain the hottest patterns in the background
  • Detect redundant prefix indexes and see which suggested/observed indexes are unused

How it works

  1. ProcessRequest samples supported OP_MSG query commands and extracts filter, sort, and projection keys into a normalized query shape.
  2. ProcessResponse correlates the shape with elapsed time, increments the matching QueryPattern, and optionally computes estimated_cost_ratio.
  3. A flush loop periodically persists patterns to MongoDB storage; auto_explain can run a separate scheduler that explains the top-N patterns on a configurable interval.
  4. Explain results annotate each pattern with explain_result, winning_plan, index_used, and last_explain.
  5. Recommendations are built from the observed key order, DetectDuplicates finds prefix-redundant indexes, and IndexUsage summarizes used versus unused observed/suggested indexes.

Configuration

The table preserves the legacy dashboard field reference. “Not specified” means the legacy source did not declare required semantics.

FieldLegacy UI typeLegacy defaultRequiredDescription
sample_ratepercentage100Not specifiedPercentage of supported queries to observe
min_query_time_msnumber0Not specifiedIgnore patterns faster than this threshold
flush_interval_secnumber30Not specifiedHow often patterns are flushed to storage
storage_dbstringnexo_internalNot specifiedMongoDB database used for pattern storage
storage_collectionstringindex_patternsNot specifiedMongoDB collection used for pattern storage
ttl_daysnumber30Not specifiedOptional TTL for stored patterns
exclude_collectionsjsonNoCollections to skip
exclude_databasesjsonNoAdditional databases to skip
cost_estimationjsonNoPro: {enabled}
detect_duplicatesjsonNoPro: {enabled}
auto_explainjsonNoBusiness: {enabled, interval_sec, top_n}
usage_trackingjsonNoBusiness: {enabled}

Settings reference

The legacy page did not render an additional anchored settings reference.

Examples

Pro tier advisor with cost estimation and duplicate detection

steps:
- name: builtin:index-advisor
config:
sample_rate: 100
min_query_time_ms: 50
flush_interval_sec: 30
storage_db: nexo_internal
storage_collection: index_patterns
ttl_days: 14
exclude_collections:
- system.profile
cost_estimation:
enabled: true
detect_duplicates:
enabled: true

Business tier advisor with scheduled explain and usage tracking

steps:
- name: builtin:index-advisor
config:
sample_rate: 25
min_query_time_ms: 100
flush_interval_sec: 60
storage_db: nexo_internal
storage_collection: index_patterns
auto_explain:
enabled: true
interval_sec: 900
top_n: 20
usage_tracking:
enabled: true
webhook_url: https://hooks.slack.com/services/xxx
report_interval: 4h

Best practices

  • Start with a lower sample_rate on very high-QPS clusters, then increase once storage volume is understood
  • Use auto_explain on a cadence that your cluster can tolerate and keep top_n focused on the hottest patterns
  • Review DetectDuplicates output before dropping an index; confirm workload coverage first
  • Use usage_tracking alongside recommendations to distinguish truly used indexes from unused candidates

Limitations

  • The advisor derives recommended indexes from observed key order; it does not model every MongoDB planner nuance
  • IndexUsage reports observed used indexes plus unused suggested shapes, not a full catalog dump from the cluster
  • Explain scheduling requires the step to have storage/cluster connectivity so background explain commands can run

Security and operational guidance

  • Recommendations require operator review before any index change
  • Review storage, write amplification, and index build load
  • The 0.2.0 component contract does not expose automatic index creation

Release availability

  • 0.2.0 Private Preview: Unavailable: NexoIndexAdvisor is schema-only in the pinned Operator.

See the component catalog for the complete comparison matrix.

Search Nexo documentation

Type to search titles, headings, and page content.