trigger-cost-savings

Analiza tareas, programaciones y ejecuciones de Trigger.dev para encontrar oportunidades de optimización de costos. Úsalo cuando se te pida reducir gastos, optimizar costos, auditar uso, ajustar recursos…

npx skills add https://github.com/triggerdotdev/skills --skill trigger-cost-savings

Trigger.dev Cost Savings Analysis

Analyze task runs and configurations to find cost reduction opportunities. This skill pairs static source analysis with live run analysis via the Trigger.dev MCP server.

Before you start: read the canonical guidance

The authoritative, version-pinned cost guidance ships beside this skill. Read it first so your recommendations match the installed SDK version:

  • @trigger.dev/sdk/docs/how-to-reduce-your-spend.mdx — the canonical "reduce your spend" guide (machine sizing, idempotency de-dup, parallelism, retries, maxDuration, checkpointed waits, debounce).
  • Supporting references: @trigger.dev/sdk/docs/machines.mdx, runs/max-duration.mdx, queue-concurrency.mdx, idempotency.mdx, triggering.mdx (debounce + batch), errors-retrying.mdx (AbortTaskRunError).

Prerequisites: MCP tools

Live run analysis needs the Trigger.dev MCP server. Verify these tools are available:

  • list_runs — list runs with filters (status, task, time period, machine size)
  • get_run_details — get run logs, duration, and status
  • get_current_worker — get registered tasks and their configurations

If they're not available, tell the user to install the MCP server:

npx trigger.dev@latest install-mcp

Without the MCP tools you can still do the static source analysis below; do not fabricate run data.

Analysis workflow

Step 1: Static analysis (source code)

Scan task files for:

  1. Oversized machines — tasks on large-1x/large-2x without clear need.
  2. Missing maxDuration — no execution-time limit (runaway-cost risk).
  3. Excessive retriesmaxAttempts > 5 without AbortTaskRunError for known-permanent failures.
  4. Missing debounce — high-frequency triggers without debounce.
  5. Missing idempotency — payment/critical tasks without idempotency keys.
  6. Polling instead of waitssetTimeout/setInterval/sleep loops instead of wait.for().
  7. Short waitswait.for() under 5 seconds (not checkpointed, wastes compute).
  8. Sequential instead of batch — multiple triggerAndWait() calls that could be batchTriggerAndWait().
  9. Over-scheduled crons — schedules firing more often than needed.

Step 2: Run analysis (requires MCP tools)

  • 2a. Expensive taskslist_runs over period: "30d"/"7d"; find high total compute (duration × count), high failure rates, and large machines with short durations (over-provisioned).
  • 2b. Failure patternslist_runs with status: "FAILED"/"CRASHED"; separate transient (retryable) from permanent; suggest AbortTaskRunError for the latter; estimate wasted retry compute.
  • 2c. Machine utilizationget_run_details on sample runs; if a large-2x task consistently runs in under a second, or is I/O-bound (API/DB), it's over-provisioned.
  • 2d. Schedule frequencyget_current_worker to list cron patterns; flag schedules that are too frequent for their purpose.

Step 3: Generate recommendations

Present a prioritized report with estimated impact:

## Cost Optimization Report

### High impact
1. **Right-size `process-images`** — currently `large-2x`, average run 2s. `small-2x` could cut this task's cost by ~16x.
   `machine: { preset: "small-2x" }`  // was "large-2x"

### Medium impact
2. **Debounce `sync-user-data`** — 847 runs/day, often bursty.
   `debounce: { key: \`user-${userId}\`, delay: "5s" }`

### Low impact / best practice
3. **Add `maxDuration` to `generate-report`** — no timeout configured.
   `maxDuration: 300`  // 5 minutes

Machine preset costs (relative)

Larger machines cost proportionally more per second of compute:

PresetvCPURAMRelative cost
micro0.250.25 GB0.25x
small-1x0.50.5 GB1x (baseline)
small-2x11 GB2x
medium-1x12 GB2x
medium-2x24 GB4x
large-1x48 GB8x
large-2x816 GB16x

Key principles

  • Waits > 5 seconds are free — checkpointed, no compute charge.
  • Start small, scale up — the default small-1x is right for most tasks.
  • I/O-bound tasks don't need big machines — API calls and DB queries wait on the network.
  • Debounce saves the most on high-frequency tasks — it consolidates bursts into single runs.
  • Idempotency prevents duplicate billed work — especially for expensive operations.
  • AbortTaskRunError stops wasteful retries — don't pay to retry permanent failures.

Version

This skill is bundled inside @trigger.dev/sdk and read directly from node_modules, so it always matches your installed SDK version (see the adjacent package.json). The full cost documentation ships alongside it under @trigger.dev/sdk/docs/.

Más skills de triggerdotdev

trigger-dev-tasks
triggerdotdev
Usa esta habilidad al escribir, diseñar u optimizar tareas y flujos de trabajo en segundo plano de Trigger.dev. Esto incluye crear tareas asíncronas confiables, implementar IA…
official
trigger-authoring-chat-agent
triggerdotdev
Crea y ejecuta un agente de chat de IA duradero con chat.agent de @trigger.dev/sdk/ai: el bucle de ejecución por turno, por qué DEBES propagar ...chat.toStreamTextOptions()…
official
trigger-agents
triggerdotdev
Patrones de agente de IA con Trigger.dev: orquestación, paralelización, enrutamiento, evaluador-optimizador y humano en el bucle. Úselo al construir tareas impulsadas por LLM…
official
trigger-config
triggerdotdev
Configura proyectos de Trigger.dev con trigger.config.ts. Úsalo al configurar extensiones de compilación para Prisma, Playwright, FFmpeg, Python o al personalizar el despliegue…
official
trigger-cost-savings
triggerdotdev
Analizar tareas, horarios y ejecuciones de Trigger.dev para identificar oportunidades de optimización de costos. Úsalo cuando te pidan reducir gastos, optimizar costos, auditar el uso, ajustar recursos…
official
trigger-realtime
triggerdotdev
Suscríbete a las ejecuciones de tareas de Trigger.dev en tiempo real desde el frontend y el backend. Úsalo al construir indicadores de progreso, paneles en vivo, respuestas de transmisión de IA/LLM,…
official
trigger-setup
triggerdotdev
Configura Trigger.dev en tu proyecto. Úsalo al agregar Trigger.dev por primera vez, crear trigger.config.ts o inicializar el directorio trigger.
official
trigger-tasks
triggerdotdev
Construye agentes de IA, flujos de trabajo y tareas de fondo duraderas con Trigger.dev. Úsalo al crear tareas, activar trabajos, manejar reintentos, programar trabajos cron, o…
official