trigger-cost-savings

作成者: triggerdotdev

Trigger.devのタスク、スケジュール、実行を分析し、コスト最適化の機会を見つけます。支出削減、コスト最適化、使用量監査、規模の適正化を求められた場合に使用します。

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/.

triggerdotdevのその他のスキル

trigger-dev-tasks
triggerdotdev
このスキルは、Trigger.devのバックグラウンドタスクやワークフローの作成、設計、最適化に使用します。信頼性の高い非同期タスクの作成やAIの実装などが含まれます。
official
trigger-authoring-chat-agent
triggerdotdev
@trigger.dev/sdk/ai の chat.agent を使用して、永続的なAIチャットエージェントを作成・実行します:ターンごとの実行ループ、...chat.toStreamTextOptions() を必ずスプレッドする理由…
official
trigger-agents
triggerdotdev
Trigger.devを使用したAIエージェントパターン - オーケストレーション、並列化、ルーティング、評価者最適化、ヒューマンインザループ。LLMを活用したタスクを構築する際に使用します…
official
trigger-config
triggerdotdev
trigger.config.tsを使用してTrigger.devプロジェクトを設定します。Prisma、Playwright、FFmpeg、Pythonのビルド拡張を設定する場合や、デプロイをカスタマイズする場合に使用します…
official
trigger-cost-savings
triggerdotdev
Trigger.devのタスク、スケジュール、実行を分析し、コスト最適化の機会を見つけます。支出削減、コスト最適化、使用状況監査、適正化などを求められた際に使用します。
official
trigger-realtime
triggerdotdev
Trigger.devのタスク実行をフロントエンドとバックエンドからリアルタイムで購読します。進捗インジケーター、ライブダッシュボード、ストリーミングAI/LLM応答などを構築する際に使用します。
official
trigger-setup
triggerdotdev
プロジェクトにTrigger.devをセットアップします。初めてTrigger.devを追加するとき、trigger.config.tsを作成するとき、またはtriggerディレクトリを初期化するときに使用します。
official
trigger-tasks
triggerdotdev
Trigger.devを使用してAIエージェント、ワークフロー、耐久性のあるバックグラウンドタスクを構築します。タスクの作成、ジョブのトリガー、リトライ処理、cronジョブのスケジュール設定などに使用します。
official