Skip to content

Probe

Fires a synthetic query at the deployed Retriever and asserts every stage of the chain: freshness of the customer-owned offload bucket, indexer pipeline running, SQS queues drained, pod ready, query submission, CloudWatch scan match, CloudWatch stream fetch, S3 qr/*.jsonl write, and MCP-side events returned. Each stage is a named assert with a one-line observed summary and a stored remedy keyed on the assert name. Use as a deep doctor diagnostic or as the post-install verify step.

The probe reads from the offload (overflow) bucket the Receiver writes to and the result bucket the Retriever writes back to. Both are customer-owned S3.

Example

You

run the retriever probe

Log10x

Retriever end-to-end health check passed.

Picked the highest-volume pattern, ran query qr-7c12, all 8 checks succeeded (4.2s).

More to ask

  • "post-install verify for the retriever"
  • "is the retriever chain healthy end-to-end?"
  • "probe the retriever against hash 3f8a..."

Prerequisites

Retriever installed in the cluster, with kubectl and aws CLI reachable from the MCP host. The probe needs S3 read on the offload + result buckets, SQS list/describe, CloudWatch Logs filter, and the metric backend reachable for the top-hash pick (or pass target_hash explicitly).

Schema and samples

Input example

Representative call (synthetic, not captured from the live demo env).

{
  "namespace": "log10x",
  "window_minutes": 5
}
Input schema

Agent-facing JSON Schema (the canonical shape the MCP server publishes via tools/list):

{
  "type": "object",
  "properties": {
    "namespace": {
      "type": "string",
      "default": "log10x",
      "description": "Kubernetes namespace where the retriever pod runs. Default: \"log10x\"."
    },
    "offload_bucket": {
      "type": "string",
      "description": "S3 bucket the receiver offloads data to (the bucket the retriever indexer reads from). Default: read from LOG10X_STREAMER_BUCKET env."
    },
    "input_bucket": {
      "type": "string",
      "description": "S3 bucket where the retriever WRITES qr/<id>/*.jsonl result objects. Default: read from retriever state (helm probe)."
    },
    "query_log_group": {
      "type": "string",
      "default": "log10x-retriever-query-events",
      "description": "CloudWatch log group the retriever writes per-query execution events to."
    },
    "target_hash": {
      "type": "string",
      "description": "Pre-picked tenx_hash to query for. When omitted, the probe queries the metric backend for the top-volume hash over the last 5 min."
    },
    "window_minutes": {
      "type": "number",
      "default": 5,
      "description": "Query window size in minutes. Default: 5."
    }
  },
  "additionalProperties": false
}

Source: src/tools/retriever-probe.ts.

Output example

Representative envelope (synthetic, not captured from the live demo env). view: "summary" returns the full StructuredOutput with typed data.

Headline (the 1-line agent-facing answer):

Retriever end-to-end health check passed. Picked the highest-volume pattern, ran query qr-7c12, all 8 checks succeeded (4214ms).

{
  "schema_version": "1.0",
  "schema_epoch": "2026-05-25",
  "tool": "log10x_retriever_probe",
  "generated_at": "2026-06-05T12:00:00.000Z",
  "view": "summary",
  "summary": {
    "headline": "Retriever end-to-end health check passed. Picked the highest-volume pattern, ran query qr-7c12, all 8 checks succeeded (4214ms)."
  },
  "data": {
    "verdict": "green",
    "picked_hash": "3f8a1b2c4d5e6f70",
    "query_id": "qr-7c12",
    "asserts": [
      {
        "name": "offload_bucket_has_recent_data",
        "pass": true,
        "observed": "12 object(s) modified in last 5 min in s3://log10x-offload/"
      },
      {
        "name": "indexer_pipeline_running",
        "pass": true,
        "observed": "indexer-pipeline start line observed 3 time(s) in last 60s"
      },
      {
        "name": "sqs_queues_drained",
        "pass": true,
        "observed": "2 queue(s) checked, max depth 0"
      },
      {
        "name": "retriever_pod_ready",
        "pass": true,
        "observed": "pod retriever-10x-abc: 2/2 containers ready"
      },
      {
        "name": "cw_scan_match",
        "pass": true,
        "observed": "cw scan complete events for qr-7c12: 1 line(s), total matched=42"
      },
      {
        "name": "cw_stream_fetch",
        "pass": true,
        "observed": "cw stream worker completion lines for qr-7c12: 1"
      },
      {
        "name": "s3_qr_jsonl_written",
        "pass": true,
        "observed": "1 jsonl file(s) under s3://log10x-results/indexing-results/tenx/app/qr/qr-7c12/"
      },
      {
        "name": "mcp_events_returned",
        "pass": true,
        "observed": "mcp eventsMatched=42, eventsReturned=1"
      }
    ],
    "total_runtime_ms": 4214
  },
  "actions": [],
  "truncated": false,
  "warnings": []
}
Output schema

The data block inside the StructuredOutput envelope:

interface ToolData {
  verdict: 'green' | 'broken' | 'unknown';
  picked_hash?: string;
  query_id?: string;
  asserts: Array<{
    name: string;
    pass: boolean;
    observed: string;
    remedy?: string;
  }>;
  first_failed_assert?: string;
  surfaced_remedy?: string;
  total_runtime_ms: number;
  reason?: string;
}

Envelope-level fields the agent should also read: summary.headline (1-line answer), actions[] (next-call chain hints as {tool, args, reason}), truncated: boolean, images[] (PNG attachments where applicable), schema_epoch (engine-ID stability boundary).