Render Monitor
RenderOfficialCreated by Render
- Skill
- Tool integration
- Cloud and DevOps
- MIT
- No issues found
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
Download the skill as a ZIP:
https://autogineer.com/agent-skills/render-oss/render-monitor/downloadUnzip 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"]
)| Metric | Healthy | Warning | Critical |
|---|---|---|---|
| CPU | <70% | 70-85% | >85% |
| Memory | <80% | 80-90% | >90% |
HTTP Latency
get_metrics(
resourceId: "<service-id>",
metricTypes: ["http_latency"],
httpLatencyQuantile: 0.95
)| p95 Latency | Status |
|---|---|
| <200ms | Excellent |
| 200-500ms | Good |
| 500ms-1s | Concerning |
| >1s | Problem |
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 textQuick 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
| Indicator | Healthy | Warning | Critical |
|---|---|---|---|
| Error Rate | <0.1% | 0.1-1% | >1% |
| p95 Latency | <500ms | 500ms-2s | >2s |
| CPU Usage | <70% | 70-90% | >90% |
| Memory Usage | <80% | 80-95% | >95% |
References
Render access: references/render-access.md
Compute plans: references/compute-plans.md
Deployments: references/deployments.md
Metrics guide: references/metrics-guide.md
Related Skills
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:
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.Confirm that retrieval succeeded and returned the expected document, then read its contents. Saving a file or printing its path is not sufficient.
If the request fails or your tool cannot read the Markdown response, open and read the linked HTML version instead.
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
- ATTRIBUTION.mdAdded by AutoGineer884 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md7.3 KiB
- references/compute-plans.md2.3 KiB
- references/deployments.md7.9 KiB
- references/metrics-guide.md7.8 KiB
- references/render-access.md4.7 KiB
references/metrics-guide.md
Render Metrics Interpretation Guide
Comprehensive guide to understanding and acting on Render service metrics.
Available Metrics
| Metric | Description | Applicable Resources |
|---|---|---|
cpu_usage | CPU utilization percentage | Services, Postgres, KV |
cpu_limit | CPU limit/allocation | Services |
cpu_target | Autoscaling CPU target | Services |
memory_usage | Memory utilization | Services, Postgres, KV |
memory_limit | Memory limit/allocation | Services |
memory_target | Autoscaling memory target | Services |
http_request_count | Number of HTTP requests | Services |
http_latency | Response time (quantile-based) | Services |
bandwidth_usage | Network bandwidth used | Services |
instance_count | Number of running instances | Services |
active_connections | Database connections | Postgres, 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:
Profile code for inefficient operations
Add caching for repeated computations
Optimize database queries
Upgrade to a larger compute plan
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:
Profile for memory leaks
Reduce in-memory caching
Process data in streams/chunks
Optimize data structures
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 experience0.95(p95) - Most users' worst experience0.99(p99) - Tail latency, outliers
Healthy latency targets:
| Endpoint Type | p50 | p95 | p99 |
|---|---|---|---|
| Static content | <50ms | <100ms | <200ms |
| API (simple) | <100ms | <300ms | <500ms |
| API (complex) | <200ms | <500ms | <1s |
| Database-heavy | <300ms | <1s | <2s |
Actions for high latency:
Add database indexes
Implement caching with Key Value
Optimize N+1 queries
Use connection pooling
Add CDN for static assets
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 domainBy
statusCode- Success vs error rates
Calculating error rate:
error_rate = (5xx_requests / total_requests) * 100Target: <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:
Implement connection pooling (PgBouncer)
Close idle connections
Reduce connection timeouts
Fix connection leaks in code
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 Type | Start Time | Resolution |
|---|---|---|
| Real-time | 5 minutes ago | 30 seconds |
| Recent issue | 1 hour ago | 1 minute |
| Trend analysis | 24 hours ago | 5 minutes |
| Weekly pattern | 7 days ago | 1 hour |
Correlating Events
When investigating issues, align metrics with:
Deploy times (
list_deploys)Error log timestamps (
list_logs)Traffic patterns (
http_request_count)External events (marketing campaigns, etc.)
Alert Thresholds Recommendations
Critical Alerts (Immediate Action)
| Metric | Threshold | Action |
|---|---|---|
| Error rate | >5% | Page on-call |
| p99 latency | >5s | Investigate immediately |
| Memory usage | >95% | Scale or restart |
| CPU usage | >95% sustained | Scale up |
| DB connections | >95% max | Add pooling |
Warning Alerts (Investigate Soon)
| Metric | Threshold | Action |
|---|---|---|
| Error rate | >1% | Investigate within 1 hour |
| p95 latency | >2s | Review slow endpoints |
| Memory usage | >85% | Plan capacity increase |
| CPU usage | >80% sustained | Consider optimization |
| DB connections | >80% max | Review 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 or Render.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download render-monitor.zip