plugins/src/rails/skills/ops-check-logs/SKILL.md
Check application logs from local Docker Compose or remote AWS CloudWatch for Rails applications. Supports log tailing, filtering, and error searching.
npx skillsauth add codyswanngt/lisa ops-check-logsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
View and search logs across local and remote environments.
Argument: $ARGUMENTS — target and optional filter (e.g., local, local worker, staging errors, production 500, staging slow-queries)
config/deploy.yml to discover the service name (used in CloudWatch log group naming)docker-compose.yml to identify local service names for targeted log viewingdocker compose logs --tail=100
docker compose logs -f --tail=50
# Rails web server
docker compose logs --tail=100 web
# Solid Queue worker
docker compose logs --tail=100 worker
# PostgreSQL
docker compose logs --tail=100 postgres
docker compose logs --tail=500 web 2>&1 | grep -iE "(error|exception|fatal|500)"
tail -n 100 log/development.log
grep -E "SLOW|ms\)" log/development.log | tail -20
kamal app logs -d {environment}
kamal app logs -d {environment} -f
# Web role
kamal app logs --roles=web -d {environment}
# Worker role (Solid Queue)
kamal app logs --roles=worker -d {environment}
For advanced filtering and historical log access, use the AWS CLI directly.
aws logs describe-log-groups \
--region {aws-region} \
--query 'logGroups[].logGroupName' \
--output text | tr '\t' '\n' | grep -i "{app_name}"
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(( ($(date +%s) - 1800) * 1000 )) \
--filter-pattern "ERROR" \
--query 'events[].message' \
--output text
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(( ($(date +%s) - 1800) * 1000 )) \
--filter-pattern '"status=500"' \
--query 'events[].message' \
--output text
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(( ($(date +%s) - 3600) * 1000 )) \
--filter-pattern '"duration" "1000"' \
--query 'events[].message' \
--output text
aws logs tail "{log-group}" \
--region {aws-region} \
--follow \
--since 10m
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(date -d "{start-time}" +%s000) \
--end-time $(date -d "{end-time}" +%s000) \
--query 'events[].message' \
--output text
For container-level logs (useful when the application fails to start):
# List recent tasks
aws ecs list-tasks \
--cluster {cluster-name} \
--service-name {service-name} \
--region {aws-region} \
--query 'taskArns[]' --output text
# Describe a task to find the log stream
aws ecs describe-tasks \
--cluster {cluster-name} \
--tasks {task-arn} \
--region {aws-region} \
--query 'tasks[0].containers[].{Name:name,Status:lastStatus,ExitCode:exitCode}' \
--output table
Report log findings as:
| Source | Timestamp | Level | Context | Message | |--------|-----------|-------|---------|---------| | CloudWatch | 2026-03-18T10:30:00Z | ERROR | web | ActiveRecord::ConnectionTimeoutError | | Docker | — | ERROR | worker | SolidQueue::ProcessMissingError | | Rails log | — | WARN | N/A | DEPRECATION WARNING: ... |
Include a summary of findings: total errors, warnings, and any patterns observed.
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and