Agent skill
monitoring
Monitor Vercel deployments, debug production issues, check logs, and understand logging patterns. Use when investigating errors, checking deployment logs, debugging failures, or improving observability.
Install this agent skill to your Project
npx add-skill https://github.com/sgcarstrends/sgcarstrends/tree/main/.claude/skills/monitoring
SKILL.md
Monitoring Skill
Monitor Vercel deployments, check logs, and track errors.
Viewing Logs
Vercel Dashboard
- Go to Vercel Dashboard → Project → Logs
- Filter by:
- Function logs
- Build logs
- Edge function logs
- Time range
Vercel CLI
# View recent logs
vercel logs <deployment-url>
# Stream logs in real-time
vercel logs <deployment-url> --follow
# Filter by status
vercel logs <deployment-url> --status error
Vercel Analytics
Web Vitals
Monitor in Vercel Dashboard → Analytics:
- LCP (Largest Contentful Paint)
- FID (First Input Delay)
- CLS (Cumulative Layout Shift)
- TTFB (Time to First Byte)
Speed Insights
Already integrated in the app:
// apps/web/src/app/layout.tsx
import { Analytics } from "@vercel/analytics/next";
import { SpeedInsights } from "@vercel/speed-insights/next";
const RootLayout = ({ children }) => (
<html>
<body>
{children}
<Analytics />
<SpeedInsights />
</body>
</html>
);
Logging Patterns
The codebase uses standard console.log/error/warn for logging:
// Workflow logging pattern
console.log("[WORKFLOW] Posts cache invalidated");
console.log("[COE]", coeResult);
// Error logging pattern
console.error("Error getting post view count:", error);
console.error("Download failed:", { url, status });
Log Prefixes Used:
[WORKFLOW]- Workflow execution events[COE]- COE data processing[CARS]- Car data processing
Health Checks
The app has a health check endpoint at /api/health:
// apps/web/src/app/api/health/route.ts
export const GET = () => {
return NextResponse.json(
{ status: "ok", timestamp: new Date().toISOString() },
{
status: 200,
headers: {
"Cache-Control": "public, s-maxage=60, stale-while-revalidate=300",
},
},
);
};
Test health endpoint:
curl -f https://sgcarstrends.com/api/health || echo "Web unhealthy"
Workflow Error Handling
Workflows use Vercel WDK's built-in error handling:
// apps/web/src/workflows/cars/index.ts
import { FatalError, RetryableError } from "workflow";
// Retryable errors (will be retried automatically)
if (message.includes("429")) {
throw new RetryableError("AI rate limited", { retryAfter: "1m" });
}
// Fatal errors (will not be retried)
if (message.includes("401") || message.includes("403")) {
throw new FatalError("AI authentication failed");
}
Error Types:
RetryableError- Temporary failures (rate limits, network issues)FatalError- Permanent failures (auth errors, invalid config)
Debugging Production Issues
1. Check Vercel Logs
# Get deployment URL
vercel ls
# Check logs
vercel logs <url> --follow
2. Check Build Output
- Vercel Dashboard → Deployments
- Click on deployment
- View "Build Logs"
3. Test Endpoint
curl -v https://sgcarstrends.com/api/health
4. Check Function Runtime
Vercel Dashboard → Project → Settings → Functions
- View runtime version
- Check memory allocation
- Review timeout settings
Common Issues
| Issue | Investigation | Solution |
|---|---|---|
| High latency | Check Vercel Analytics, slow queries | Optimize queries, add caching |
| Build failures | Check build logs | Fix build errors, update dependencies |
| Function timeout | Check function logs | Optimize code, increase timeout |
| Cold starts | Check function invocations | Consider edge functions |
| Workflow failures | Check Vercel logs for workflow ID | Review error type, check retries |
Vercel Function Configuration
// API route config
export const config = {
maxDuration: 60, // seconds (Pro plan allows up to 60s)
};
Cron Job Monitoring
Workflows are triggered by Vercel Cron:
// apps/web/vercel.json
{
"crons": [
{ "path": "/api/workflows/cars", "schedule": "0 10 * * *" },
{ "path": "/api/workflows/coe", "schedule": "0 10 * * *" },
{ "path": "/api/workflows/deregistrations", "schedule": "0 10 * * *" }
]
}
Monitor cron executions:
- Vercel Dashboard → Project → Cron Jobs
- View execution history and status
- Check logs for each execution
Best Practices
- Use Log Prefixes: Add
[CONTEXT]prefix for easy filtering - Log Meaningful Data: Include relevant context (month, record counts)
- Don't Log Secrets: Never log passwords, tokens, API keys
- Use Vercel Analytics: Monitor performance metrics
- Check Cron Jobs: Monitor scheduled workflow executions
References
- Vercel Logs: https://vercel.com/docs/observability/runtime-logs
- Vercel Analytics: https://vercel.com/docs/analytics
- Speed Insights: https://vercel.com/docs/speed-insights
- Vercel Cron Jobs: https://vercel.com/docs/cron-jobs
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
component-tester
Run Vitest tests for a specific component with coverage. Use when making changes to React components to ensure tests pass and coverage is maintained.
cache-components
Ensure 'use cache' is used strategically to minimize CPU usage and ISR writes. Use when creating/modifying queries to verify caching decisions align with data update patterns and cost optimization.
ui-design-system
Enforce modern dashboard UI patterns with pill-shaped design, professional colour scheme, and typography standards. Use when building or reviewing UI components for the web application.
typography-spacing-enforcer
Enforce Typography system and modern spacing conventions. Use when implementing new UI components to ensure design consistency with project standards.
conventional-commits
Format commit messages following project conventions with commitlint validation. Use when committing changes, writing PR descriptions, or preparing releases.
dependency-upgrade
Upgrade dependencies safely using pnpm catalog, checking for breaking changes, and testing upgrades. Use when updating packages, applying security patches, upgrading major versions, resolving dependency conflicts, or modernizing tech stack.
Didn't find tool you were looking for?