Generated banner for Render Monitor
Generated logo for Render Monitor

Render Monitor

RenderOfficialCreated by Render

  • Skill
  • Tool integration
  • Cloud and DevOps
  • MIT
  • No issues found

From the author

Monitor Render services in real-time. Check health, performance metrics, logs, and resource usage. Use when users want to check service status, view metrics, monitor performance, or verify deployments are healthy.
— the description by Render

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The render-monitor skill provides a structured approach to observing the health and performance of services hosted on Render. It enables users to perform real-time checks on service status, resource utilization, HTTP latency, and database health. By leveraging MCP tools or CLI commands, the skill facilitates log analysis, error tracking, and deployment verification, ensuring that users can maintain stable and performant applications.

What it does

  • Checks the health status of active Render services.
  • Retrieves performance metrics including CPU, memory, and HTTP latency.
  • Monitors and filters logs to identify errors or specific events.
  • Verifies the status of recent deployments.
  • Provides database monitoring for PostgreSQL instances and key-value stores.
  • Offers fallback CLI commands for environments where MCP tools are unavailable.

When to use it

  • When investigating slow application performance or high latency.
  • To verify if a recent deployment is healthy and live.
  • When troubleshooting errors by inspecting service logs.
  • To monitor resource usage trends for capacity planning.
  • When checking the status of database connections or query performance.

Advantages

  • Provides a unified interface for both MCP and CLI-based monitoring.
  • Includes clear health thresholds for CPU, memory, and latency metrics.
  • Supports granular log filtering by level, text, and time range.
  • Enables direct database inspection through query execution.
  • Integrates with standard Render documentation workflows for up-to-date information.

Usage examples

“Is my web service healthy right now?”
The agent will list the service status, check the latest deployment, and review recent error logs to provide a health summary.
“Why is my API responding slowly?”
The agent will retrieve p95 HTTP latency metrics and check CPU/memory usage to identify potential bottlenecks.
“Show me the last 20 error logs for my service.”
The agent will execute a log retrieval command filtered by the 'error' level for the specified service ID.
“Are there any slow queries in my database?”
The agent will query the database's pg_stat_statements to identify and list the queries with the highest mean execution time.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/render-oss/render-monitor/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip render-monitor.zip -d .agents/skills

Documentation by Render

Monitor Render Services

Real-time monitoring of Render services including health checks, performance metrics, and logs.

When to Use This Skill

Activate this skill when users want to:

  • Check if services are healthy

  • View performance metrics

  • Monitor logs

  • Verify a deployment is working

  • Investigate slow performance

  • Check database health

Render Access

Before reading service state, logs, metrics, or database health, follow references/render-access.md to establish access and verify the intended workspace. Prefer MCP when available; the CLI can provide service status and logs, while metrics and database queries require MCP.

Before interpreting deploy or health-check state, read references/deployments.md.


Quick Health Check

Run these 5 checks to assess service health:

# 1. Check service status
list_services()

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

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

# 4. Check resource usage
get_metrics(resourceId: "<service-id>", metricTypes: ["cpu_usage", "memory_usage"])

# 5. Check latency
get_metrics(resourceId: "<service-id>", metricTypes: ["http_latency"], httpLatencyQuantile: 0.95)

Service Health

Check Status
list_services()
get_service(serviceId: "<id>")
Check Deployments
list_deploys(serviceId: "<service-id>", limit: 5)

Follow references/deployments.md to interpret asynchronous and terminal states, identify the specific deploy, and verify the workload after it becomes live.

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

Performance Metrics

CPU & Memory
get_metrics(
  resourceId: "<service-id>",
  metricTypes: ["cpu_usage", "memory_usage", "cpu_limit", "memory_limit"]
)
MetricHealthyWarningCritical
CPU<70%70-85%>85%
Memory<80%80-90%>90%
HTTP Latency
get_metrics(
  resourceId: "<service-id>",
  metricTypes: ["http_latency"],
  httpLatencyQuantile: 0.95
)
p95 LatencyStatus
<200msExcellent
200-500msGood
500ms-1sConcerning
>1sProblem
Request Count
get_metrics(
  resourceId: "<service-id>",
  metricTypes: ["http_request_count"]
)
Filter by Endpoint
get_metrics(
  resourceId: "<service-id>",
  metricTypes: ["http_latency"],
  httpPath: "/api/users"
)

Detailed metrics guide: references/metrics-guide.md


Database Monitoring

PostgreSQL Status
list_postgres_instances()
get_postgres(postgresId: "<postgres-id>")
Connection Count
get_metrics(resourceId: "<postgres-id>", metricTypes: ["active_connections"])
Query Database
query_render_postgres(
  postgresId: "<postgres-id>",
  sql: "SELECT state, count(*) FROM pg_stat_activity GROUP BY state"
)
Find Slow Queries
query_render_postgres(
  postgresId: "<postgres-id>",
  sql: "SELECT query, mean_exec_time FROM pg_stat_statements ORDER BY mean_exec_time DESC LIMIT 10"
)
Key-Value Store
list_key_value()
get_key_value(keyValueId: "<kv-id>")

Log Monitoring

Recent Logs
list_logs(resource: ["<service-id>"], limit: 100)
Error Logs
list_logs(resource: ["<service-id>"], level: ["error"], limit: 50)
Search Logs
list_logs(resource: ["<service-id>"], text: ["timeout", "error"], limit: 50)
Filter by Time
list_logs(
  resource: ["<service-id>"],
  startTime: "2024-01-15T10:00:00Z",
  endTime: "2024-01-15T11:00:00Z"
)
Stream Logs (CLI)
render logs -r <service-id> --tail -o text

Quick Reference

MCP Tools
# Services
list_services()
get_service(serviceId: "<id>")
list_deploys(serviceId: "<id>", limit: 5)

# Logs
list_logs(resource: ["<id>"], level: ["error"], limit: 100)
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)
get_metrics(resourceId: "<id>", metricTypes: ["http_request_count"])

# Database
list_postgres_instances()
get_postgres(postgresId: "<id>")
query_render_postgres(postgresId: "<id>", sql: "SELECT ...")
get_metrics(resourceId: "<postgres-id>", metricTypes: ["active_connections"])

# Key-Value
list_key_value()
get_key_value(keyValueId: "<id>")
CLI Commands (Fallback)

Use these if MCP tools are unavailable:

# Service status
render services -o json
render services instances <service-id>

# Deployments
render deploys list <service-id> -o json

# Logs
render logs -r <service-id> --tail -o text          # Stream logs
render logs -r <service-id> --level error -o json   # Error logs
render logs -r <service-id> --type deploy -o json   # Build logs

# Database
render psql <database-id>                           # Connect to PostgreSQL

# SSH for live debugging
render ssh <service-id>
Healthy Service Indicators
IndicatorHealthyWarningCritical
Error Rate<0.1%0.1-1%>1%
p95 Latency<500ms500ms-2s>2s
CPU Usage<70%70-90%>90%
Memory Usage<80%80-95%>95%

References

  • render-deploy — Deploy new applications to Render

  • render-debug — Diagnose and fix deployment failures

  • render-mcp — MCP server setup and capability discovery

<!-- shared:documentation-retrieval -->

Current documentation retrieval

Whenever this skill directs you to consult current Render documentation:

  1. Retrieve the linked Markdown document directly with an available URL-fetching tool or HTTP client, such as curl. Do not substitute web-search summaries for the document.

  2. Confirm that retrieval succeeded and returned the expected document, then read its contents. Saving a file or printing its path is not sufficient.

  3. If the request fails or your tool cannot read the Markdown response, open and read the linked HTML version instead.

  4. If neither version can be retrieved, disclose that the current reference is unavailable and follow any topic-specific fallback in the skill. Use bundled guidance only for stable constraints, and do not guess at changeable platform details.

When a task requires multiple references, apply this workflow to each one and distinguish the documents you verified from those that remain unavailable.

<!-- /shared:documentation-retrieval -->

Files

references/metrics-guide.md

Render Metrics Interpretation Guide

Comprehensive guide to understanding and acting on Render service metrics.

Available Metrics

MetricDescriptionApplicable Resources
cpu_usageCPU utilization percentageServices, Postgres, KV
cpu_limitCPU limit/allocationServices
cpu_targetAutoscaling CPU targetServices
memory_usageMemory utilizationServices, Postgres, KV
memory_limitMemory limit/allocationServices
memory_targetAutoscaling memory targetServices
http_request_countNumber of HTTP requestsServices
http_latencyResponse time (quantile-based)Services
bandwidth_usageNetwork bandwidth usedServices
instance_countNumber of running instancesServices
active_connectionsDatabase connectionsPostgres, KV

CPU Metrics

cpu_usage

What it measures: Percentage of allocated CPU being used.

Interpret CPU utilization relative to the service's selected compute plan and workload. Use compute-plans.md when current CPU specifications matter instead of inferring them from legacy plan names.

Actions for high CPU:

  1. Profile code for inefficient operations

  2. Add caching for repeated computations

  3. Optimize database queries

  4. Upgrade to a larger compute plan

  5. Enable autoscaling

cpu_limit

What it measures: Maximum CPU allocated to the service.

Use case: Compare cpu_usage to cpu_limit to determine if throttling is occurring.

Formula: throttle_risk = cpu_usage / cpu_limit

  • >0.9 = High throttling risk

  • >0.8 = Moderate risk

  • <0.7 = Safe


Memory Metrics

memory_usage

What it measures: Memory being used by the service in bytes.

Interpret memory relative to the resource's reported limit rather than mapping legacy plan names to memorized byte values. Use compute-plans.md when current memory specifications matter.

Actions for high memory:

  1. Profile for memory leaks

  2. Reduce in-memory caching

  3. Process data in streams/chunks

  4. Optimize data structures

  5. Upgrade plan

memory_limit

What it measures: Maximum memory allocated.

OOM Risk Formula: oom_risk = memory_usage / memory_limit

  • >0.95 = Imminent OOM

  • >0.90 = High risk

  • >0.80 = Moderate risk

  • <0.70 = Safe


HTTP Metrics

http_latency

What it measures: Response time at a given percentile.

Common quantiles:

  • 0.5 (p50/median) - Typical user experience

  • 0.95 (p95) - Most users' worst experience

  • 0.99 (p99) - Tail latency, outliers

Healthy latency targets:

Endpoint Typep50p95p99
Static content<50ms<100ms<200ms
API (simple)<100ms<300ms<500ms
API (complex)<200ms<500ms<1s
Database-heavy<300ms<1s<2s

Actions for high latency:

  1. Add database indexes

  2. Implement caching with Key Value

  3. Optimize N+1 queries

  4. Use connection pooling

  5. Add CDN for static assets

  6. Scale horizontally

http_request_count

What it measures: Number of HTTP requests received.

Use cases:

  • Detect traffic spikes

  • Correlate with error rates

  • Capacity planning

  • Usage billing estimation

Aggregation options:

  • By host - Traffic per domain

  • By statusCode - Success vs error rates

Calculating error rate:

error_rate = (5xx_requests / total_requests) * 100

Target: <0.1% error rate


Instance Metrics

instance_count

What it measures: Number of running service instances.

Interpreting changes:

  • Increasing: Autoscaling up (good if traffic increasing)

  • Decreasing: Autoscaling down (cost optimization)

  • Fluctuating: Possible instability or aggressive scaling

  • Stuck at 1: May not have autoscaling enabled

Autoscaling health check: Compare instance_count trends with cpu_usage and http_request_count:

  • CPU high + instances not scaling = Check autoscaling config

  • Instances scaling + latency still high = Hit max instances or DB bottleneck


Database Metrics

active_connections

What it measures: Number of active database connections.

Connection limits vary by Postgres compute plan. Fetch the current limit through compute-plans.md, then compare active connections with that limit.

Actions for high connections:

  1. Implement connection pooling (PgBouncer)

  2. Close idle connections

  3. Reduce connection timeouts

  4. Fix connection leaks in code

  5. Upgrade the database compute plan

Database CPU/Memory

Same interpretation as service metrics, but:

  • High CPU often indicates slow queries

  • High memory often indicates large result sets or missing indexes


Bandwidth Metrics

bandwidth_usage

What it measures: Network data transfer (egress).

Considerations:

  • Spikes correlate with large responses or file downloads

  • Sustained high bandwidth may indicate inefficient API design

  • Consider compression (gzip/brotli) to reduce bandwidth

Cost implications:

  • Render includes bandwidth in plans

  • Usage beyond the included allowance can incur additional cost; confirm current details at Render pricing


Time-Based Analysis

Choosing Time Ranges
Analysis TypeStart TimeResolution
Real-time5 minutes ago30 seconds
Recent issue1 hour ago1 minute
Trend analysis24 hours ago5 minutes
Weekly pattern7 days ago1 hour
Correlating Events

When investigating issues, align metrics with:

  1. Deploy times (list_deploys)

  2. Error log timestamps (list_logs)

  3. Traffic patterns (http_request_count)

  4. External events (marketing campaigns, etc.)


Alert Thresholds Recommendations

Critical Alerts (Immediate Action)
MetricThresholdAction
Error rate>5%Page on-call
p99 latency>5sInvestigate immediately
Memory usage>95%Scale or restart
CPU usage>95% sustainedScale up
DB connections>95% maxAdd pooling
Warning Alerts (Investigate Soon)
MetricThresholdAction
Error rate>1%Investigate within 1 hour
p95 latency>2sReview slow endpoints
Memory usage>85%Plan capacity increase
CPU usage>80% sustainedConsider optimization
DB connections>80% maxReview connection usage

Metric Query Examples

Service Health Dashboard
# CPU trend
get_metrics(resourceId: "<id>", metricTypes: ["cpu_usage"], resolution: 300)

# Memory trend
get_metrics(resourceId: "<id>", metricTypes: ["memory_usage"], resolution: 300)

# Request rate
get_metrics(resourceId: "<id>", metricTypes: ["http_request_count"], resolution: 60)

# Latency percentiles
get_metrics(resourceId: "<id>", metricTypes: ["http_latency"], httpLatencyQuantile: 0.5)
get_metrics(resourceId: "<id>", metricTypes: ["http_latency"], httpLatencyQuantile: 0.95)
get_metrics(resourceId: "<id>", metricTypes: ["http_latency"], httpLatencyQuantile: 0.99)
Capacity Planning
# Peak CPU over last 24h
get_metrics(
  resourceId: "<id>",
  metricTypes: ["cpu_usage"],
  cpuUsageAggregationMethod: "MAX",
  startTime: "<24-hours-ago>",
  resolution: 3600
)

# Peak memory over last 24h
get_metrics(
  resourceId: "<id>",
  metricTypes: ["memory_usage"],
  startTime: "<24-hours-ago>",
  resolution: 3600
)

# Traffic patterns
get_metrics(
  resourceId: "<id>",
  metricTypes: ["http_request_count"],
  startTime: "<7-days-ago>",
  resolution: 3600
)
Database Performance
# Connection usage
get_metrics(
  resourceId: "<postgres-id>",
  metricTypes: ["active_connections"],
  startTime: "<1-hour-ago>"
)

# Database CPU (indicates query load)
get_metrics(
  resourceId: "<postgres-id>",
  metricTypes: ["cpu_usage"],
  startTime: "<1-hour-ago>"
)

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs an MCP server

The author says: Requires Render MCP tools or CLI

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Render
Publisher
Render (Official)
Source
render-oss/skills · skills/render-monitor · commit b985a63
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Render.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download render-monitor.zip