AgentStack
SKILL verified Apache-2.0 Self-run

Estuary Task Stats

skill-estuary-agent-skills-estuary-task-stats · by estuary

Check task processing statistics to see how much data and how many docs are moving. Use when checking throughput, diagnosing a stalled task, verifying data movement, or reporting on task activity. Use when user says "is data flowing", "how much data", "check throughput", "how many documents", "task not processing", "data not arriving", "stats", "bytes processed", "stalled capture", "no data in de…

No reviews yet
0 installs
13 views
0.0% view→install

Install

$ agentstack add skill-estuary-agent-skills-estuary-task-stats

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Estuary Task Stats? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

flowctl raw stats - Task Processing Statistics

Concepts: Stats show document and byte counts per transaction for a task. They answer "is data actually moving, and how much?" — separate from flowctl catalog status, which only shows control-plane state. A task can show OK status while having zero recent stats (stalled, no new source data, or sync schedule delay).

IMPORTANT: The command is flowctl raw stats, not flowctl stats.

Prerequisites

flowctl must already be authenticated — see the estuary-flowctl-setup skill.

Total Data Over a Period

Materialization — bytes read from source collections ("Data Read" in UI):

flowctl raw stats --task  --since 24h | \
  jq -s '{
    total_gb:     ([.[] | select(.materialize != null) | .materialize | to_entries[] | .value.right.bytesTotal // 0] | add // 0 | . / 1073741824 * 10 | round / 10),
    total_docs:   ([.[] | select(.materialize != null) | .materialize | to_entries[] | .value.right.docsTotal  // 0] | add),
    transactions: ([.[] | select(.materialize != null)] | length)
  }'

Capture — bytes written to Estuary collections ("Data Written" in UI):

flowctl raw stats --task  --since 24h | \
  jq -s '{
    total_gb:     ([.[] | select(.capture != null) | .capture | to_entries[] | .value.out.bytesTotal // 0] | add // 0 | . / 1073741824 * 10 | round / 10),
    total_docs:   ([.[] | select(.capture != null) | .capture | to_entries[] | .value.out.docsTotal  // 0] | add),
    transactions: ([.[] | select(.capture != null)] | length)
  }'

Hourly Breakdown

Useful for spotting gaps, spikes, or batch patterns. Matches the hourly bar chart in the Estuary UI.

Materialization:

flowctl raw stats --task  --since 48h | \
  jq -s '[.[] | select(.materialize != null) | {
    hour:  .ts[0:13],
    bytes: ([.materialize | to_entries[] | .value.right.bytesTotal // 0] | add),
    docs:  ([.materialize | to_entries[] | .value.right.docsTotal  // 0] | add)
  }] | group_by(.hour) | map({
    hour: .[0].hour,
    gb:   (([.[].bytes] | add) / 1073741824 * 10 | round / 10),
    docs: ([.[].docs]  | add)
  })'

Capture:

flowctl raw stats --task  --since 48h | \
  jq -s '[.[] | select(.capture != null) | {
    hour:  .ts[0:13],
    bytes: ([.capture | to_entries[] | .value.out.bytesTotal // 0] | add),
    docs:  ([.capture | to_entries[] | .value.out.docsTotal  // 0] | add)
  }] | group_by(.hour) | map({
    hour: .[0].hour,
    gb:   (([.[].bytes] | add) / 1073741824 * 10 | round / 10),
    docs: ([.[].docs]  | add)
  })'

Hours with no entry = no transactions that hour (expected for gaps, quiet sources, or batch sync schedules).

Stats Structure

Raw entries are nested by task type, then by collection/binding:

{
  "ts": "2026-04-10T00:01:00Z",
  "capture":     { "": { "out":   { "docsTotal": N, "bytesTotal": N } } },
  "materialize": { "": { "right": { "docsTotal": N, "bytesTotal": N },
                                     "left":  { "docsTotal": N, "bytesTotal": N },
                                     "out":   { "docsTotal": N, "bytesTotal": N } } },
  "derivation":  { "":  { "input": { "docsTotal": N }, "out": { "docsTotal": N } } }
}

For materializations:

  • right — docs/bytes read from source Estuary collections ("Data Read" in UI)
  • left — docs/bytes read from the destination (for merging)
  • out — docs/bytes written to the destination

The raw output also contains interval heartbeat entries and ack entries — the select(.materialize != null) / select(.capture != null) filters exclude these.

Diagnosing a Stalled Task

If flowctl catalog status shows OK but data isn't arriving:

# Check for any recent activity
flowctl raw stats --task  --since 6h | jq -s '[.[] | select(.materialize != null)] | length'
# → 0 = no transactions in 6h despite OK status

# Run hourly breakdown to find where the gap starts (substitute .capture for capture tasks)
flowctl raw stats --task  --since 48h | \
  jq -s '[.[] | select(.materialize != null) | {hour: .ts[0:13], gb: ([.materialize | to_entries[] | .value.right.bytesTotal // 0] | add // 0 | . / 1073741824 * 10 | round / 10)}] | group_by(.hour) | map({hour: .[0].hour, gb: ([.[].gb] | add)})'

Common causes of stats silence with OK status:

  • Source has no new data (expected for quiet sources)
  • Sync schedule delay — materializations batch on a schedule (default: 30 min)
  • Connector in retry backoff — check with flowctl logs --task --since 2h

Related Skills

  • estuary-task-health — Single-task health check combining status, stats, logs, and history
  • estuary-catalog-status — Check control-plane state (running/failed/disabled)
  • estuary-logs — Investigate errors if stats show zero activity

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.