render-debug

作成者: openai

Renderのデプロイ失敗をデバッグするために、ログ、メトリクス、データベースの状態を分析します。エラー(環境変数の欠落、ポートバインディング、OOMなど)を特定し、提案を行います…

npx skills add https://github.com/openai/plugins --skill render-debug

Debug Render Deployments

Analyze deployment failures using logs, metrics, and database queries. Identify root causes and apply fixes.

When to Use This Skill

Activate this skill when:

  • Deployment fails on Render
  • Service won't start or keeps crashing
  • User mentions errors, logs, or debugging
  • Health checks are timing out
  • Application errors in production
  • Performance issues (slow responses)
  • Database connection problems

Prerequisites

MCP tools (preferred): Test with list_services() - provides structured data

CLI (fallback): render --version - use if MCP tools unavailable

Authentication: For MCP, use an API key (set in the MCP config or via the RENDER_API_KEY env var, depending on tool). For CLI, verify with render whoami -o json.

Workspace: get_selected_workspace() or render workspace current -o json

Note: MCP tools require the Render MCP server. If unavailable, use the CLI for logs and deploy status; metrics and structured database queries require MCP.

MCP Setup

If list_services() fails, set up the Render MCP server. For detailed per-tool walkthroughs, see render-mcp.

Quick setup: Add the Render MCP server to your AI tool's MCP config:

  • URL: https://mcp.render.com/mcp
  • Auth header: Authorization: Bearer <YOUR_API_KEY>
  • API key: https://dashboard.render.com/u/*/settings#api-keys

After configuring, restart your tool and retry list_services(). Then set your workspace with list_workspaces() / get_selected_workspace().


Debugging Workflow

Step 1: Identify Failed Service

list_services()

If MCP isn't configured, ask whether to set it up (preferred) or continue with CLI. Then proceed.

Look for services with failed status. Get details:

get_service(serviceId: "<id>")

Step 2: Retrieve Logs

Build/Deploy Logs (most failures):

list_logs(resource: ["<service-id>"], type: ["build"], limit: 200)

Runtime Error Logs:

list_logs(resource: ["<service-id>"], level: ["error"], limit: 100)

Search for Specific Errors:

list_logs(resource: ["<service-id>"], text: ["KeyError", "ECONNREFUSED"], limit: 50)

HTTP Error Logs:

list_logs(resource: ["<service-id>"], statusCode: ["500", "502", "503"], limit: 50)

Step 3: Analyze Error Patterns

Match log errors against known patterns:

ErrorLog PatternCommon Fix
MISSING_ENV_VARKeyError, not definedAdd to render.yaml or update_environment_variables
PORT_BINDINGEADDRINUSEUse 0.0.0.0:$PORT
MISSING_DEPENDENCYCannot find moduleAdd to package.json/requirements.txt
DATABASE_CONNECTIONECONNREFUSED :5432Check DATABASE_URL, DB status
HEALTH_CHECKHealth check timeoutAdd /health endpoint, check port binding
OUT_OF_MEMORYheap out of memory, exit 137Optimize memory or upgrade plan
BUILD_FAILURECommand failedFix build command or dependencies

Full error catalog: references/error-patterns.md

If errors repeat across deploys: Switch from incremental fixes to a broader sweep. Scan the codebase/config for all likely causes in that error class (related env vars, build config, dependencies, or type errors) and address them together before the next redeploy.

Step 4: Check Metrics (Performance Issues)

For crashes, slow responses, or resource issues:

get_metrics(
  resourceId: "<service-id>",
  metricTypes: ["cpu_usage", "memory_usage", "memory_limit"]
)
get_metrics(
  resourceId: "<service-id>",
  metricTypes: ["http_latency"],
  httpLatencyQuantile: 0.95
)

Detailed metrics guide: references/metrics-debugging.md

Step 5: Debug Database Issues

For database-related errors:

# Check database status
list_postgres_instances()

# Check connections
get_metrics(resourceId: "<postgres-id>", metricTypes: ["active_connections"])

# Query directly
query_render_postgres(
  postgresId: "<postgres-id>",
  sql: "SELECT state, count(*) FROM pg_stat_activity GROUP BY state"
)

Detailed database guide: references/database-debugging.md

Step 6: Apply Fix

For environment variables:

update_environment_variables(
  serviceId: "<service-id>",
  envVars: [{"key": "MISSING_VAR", "value": "value"}]
)

For code changes:

  1. Edit the source file
  2. Commit and push
  3. Deploy triggers automatically (if auto-deploy enabled)

Step 7: Verify Fix

# Check deploy status
list_deploys(serviceId: "<service-id>", limit: 1)

# Check for new errors
list_logs(resource: ["<service-id>"], level: ["error"], limit: 20)

# Check metrics
get_metrics(resourceId: "<service-id>", metricTypes: ["http_request_count"])

Quick Workflows

Pre-built debugging sequences for common scenarios:

ScenarioWorkflow
Deploy failedlist_deployslist_logs(type: build) → fix → redeploy
App crashinglist_logs(level: error)get_metrics(memory) → fix
App slowget_metrics(http_latency)get_metrics(cpu)query_postgres
DB connectionlist_postgresget_metrics(connections)query_postgres
Post-deploy checklist_deployslist_logs(error)get_metrics

Detailed workflows: references/quick-workflows.md


Quick Reference

MCP Tools

# Service Discovery
list_services()
get_service(serviceId: "<id>")
list_postgres_instances()

# Logs
list_logs(resource: ["<id>"], level: ["error"], limit: 100)
list_logs(resource: ["<id>"], type: ["build"], limit: 200)
list_logs(resource: ["<id>"], text: ["search"], limit: 50)

# Metrics
get_metrics(resourceId: "<id>", metricTypes: ["cpu_usage", "memory_usage"])
get_metrics(resourceId: "<id>", metricTypes: ["http_latency"], httpLatencyQuantile: 0.95)

# Database
query_render_postgres(postgresId: "<id>", sql: "SELECT ...")

# Deployments
list_deploys(serviceId: "<id>", limit: 5)

# Environment Variables
update_environment_variables(serviceId: "<id>", envVars: [{key, value}])

CLI Commands (Fallback)

render services -o json
render logs -r <service-id> --level error -o json
render logs -r <service-id> --tail -o text
render deploys create <service-id> --wait

References

Related Skills

  • render-deploy — Deploy new applications to Render
  • render-monitor — Ongoing service health monitoring
  • render-mcp — MCP server setup and tool catalog

openaiのその他のスキル

user-context
openai
Data Analyticsプラグインの永続的なソースルーティング設定、オンボーディングロジック、セットアップ進捗、およびセマンティックレイヤーレジストリを読み込むか管理します。
official
notion-research-documentation
openai
Notionのコンテンツを調査し、構造化されたブリーフ、レポート、または引用付きの比較にまとめます。対象クエリを使用してNotionページを検索・取得し、テーマごとに調査結果を整理し、インラインのソース引用と参考文献セクションを追加します。範囲とユーザーの目的に応じて、4つの出力形式(クイックブリーフ、調査サマリー、比較、包括的レポート)から選択します。組み込みテンプレートを使用してNotionページを作成・更新し、新しい情報が到着するたびにソースを直接リンクし、変更を追跡します...
official
rcsb-pdb-skill
openai
コアメタデータ、Search APIクエリ、FASTAダウンロードのためのコンパクトなRCSB PDBリクエストを送信します。ユーザーが簡潔なRCSBサマリーを希望する場合に使用し、生のJSONや…を保存します。
official
pdf
openai
PDFの読み取り、作成、検証(視覚的レンダリングおよびプログラムによる生成を含む)。Poppler(pdftoppm)を使用して、納品前にレイアウト、スペーシング、タイポグラフィを視覚的に検査するためにPDFページをPNGにレンダリング。reportlabを使用してプログラム的にPDFを生成し、信頼性の高いフォーマットを実現。pdfplumberまたはpypdfを使用してテキストとメタデータを抽出。品質基準を遵守:テキストのクリッピングなし、要素の重なりなし、テーブルの破損なし、レンダリングアーティファクトなし。ASCIIハイフンのみ、人間が読める引用を使用。
official
test-coverage-improver
openai
Improve test coverage in the OpenAI Agents JS monorepo: run `pnpm test:coverage`, inspect coverage artifacts, identify low-coverage files and branches, propose…
official
playwright
openai
ターミナル駆動のブラウザ自動化で、要素スナップショットとインタラクティブなUIワークフローを備えています。playwright-cliラッパースクリプト(npxが必要)を介して動作し、ヘッドレスモードとヘッドモードの両方をサポートし、ビジュアルデバッグが可能です。コアワークフローは、ページを開き、安定した要素参照のためにスナップショットを取得し、参照を使用して操作し、ナビゲーションやDOM変更後に再スナップショットを取得します。フォーム入力、クリック、タイピング、マルチタブ管理、スクリーンショット/PDFキャプチャ、フローデバッグ用のトレース記録を含みます。要素参照(例:e3、e15)...
official
ukb-topmed-phewas-skill
openai
単一バリアントのコンパクトなUKB-TOPMed PheWASサマリーを取得します。rsID、GRCh37、またはGRCh38の入力を受け付け、必要なGRCh38クエリに解決します。以下の場合に使用します…
official
code-review-context
openai
モデル可視コンテキスト
official