.claude/skills/observability-control/SKILL.md
Manage observability stack lifecycle (start, stop, backup, restore, upgrade). Use when controlling the LGTM stack for Claude Code monitoring.
npx skillsauth add adaptationio/skrillz observability-controlInstall 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.
Manage the lifecycle of the observability stack for Claude Code telemetry.
| Environment | Docker Compose Path |
|-------------|---------------------|
| Primary Stack | /mnt/c/data/github/botaniqal-medtech/botaniqal-medtech/observability/docker-compose.yml |
| Skill-based Stack | /mnt/c/data/github/.observability/docker-compose.yml |
| Service | Port | Purpose | |---------|------|---------| | Grafana | 3000 | Dashboards and visualization | | Prometheus | 9090 | Metrics storage | | Loki | 3100 | Log aggregation | | Tempo | 3200 | Distributed tracing | | OTEL Collector | 4317/4318 | Telemetry receiver | | Promtail | - | Log shipping |
startStart observability stack.
docker compose -f /mnt/c/data/github/botaniqal-medtech/botaniqal-medtech/observability/docker-compose.yml up -d
stopStop stack gracefully (preserves data).
docker compose -f /mnt/c/data/github/botaniqal-medtech/botaniqal-medtech/observability/docker-compose.yml down
restart [service]Restart specific service or all services.
# Restart all
docker compose -f /path/docker-compose.yml restart
# Restart specific
docker restart loki
statusHealth check all components.
docker ps --format "table {{.Names}}\t{{.Status}}" | grep -E "(otel|loki|grafana|prometheus|tempo)"
Output: Running services, health status.
healthVerify service endpoints.
curl -s http://localhost:3000/api/health # Grafana
curl -s http://localhost:9090/-/healthy # Prometheus
curl -s http://localhost:3100/ready # Loki
curl -s http://localhost:3200/ready # Tempo
backupExport dashboards and configurations.
# Backup dashboards
curl -s http://localhost:3000/api/search -u admin:admin | \
jq -r '.[].uid' | \
xargs -I {} curl -s http://localhost:3000/api/dashboards/uid/{} -u admin:admin > backup/dashboards.json
Output: .observability/backups/YYYYMMDD_HHMMSS/
restore <backup-path>Restore from backup.
curl -X POST http://localhost:3000/api/dashboards/db \
-H "Content-Type: application/json" \
-u admin:admin \
-d @backup/dashboards.json
logs [service]View logs from stack components.
docker logs loki --tail 100
docker logs otel-collector --tail 100
docker logs grafana --tail 100
fix-permissionsFix volume permission issues (common with Tempo).
docker volume rm observability_tempo-data
docker volume create observability_tempo-data
docker run --rm -v observability_tempo-data:/tempo alpine chown -R 10001:10001 /tempo
docker restart tempo
# Check all services status
docker ps | grep -E "(otel|loki|grafana|prometheus|tempo|promtail)"
# View recent logs for issues
docker logs otel-collector --tail 50 2>&1 | grep -i error
# Test OTLP endpoint
curl -v http://localhost:4317
# Query Loki for recent data
curl -s "http://localhost:3100/loki/api/v1/labels"
# List Grafana dashboards
curl -s http://localhost:3000/api/search -u admin:admin | python3 -c "import sys,json; [print(d['title']) for d in json.load(sys.stdin)]"
docker logs otel-collector --tail 30
# Common fix: Ensure Prometheus has --web.enable-remote-write-receiver
docker logs loki --tail 30
# Common fix: Disable frontend_worker for single-node mode
# Fix volume permissions
docker volume rm observability_tempo-data
docker volume create observability_tempo-data
docker run --rm -v observability_tempo-data:/tempo alpine chown -R 10001:10001 /tempo
docker restart tempo
env | grep OTELcat .claude/settings.jsoncurl "http://localhost:3100/loki/api/v1/labels"| Service | URL | Credentials | |---------|-----|-------------| | Grafana | http://localhost:3000 | admin/admin | | Prometheus | http://localhost:9090 | - | | Loki | http://localhost:3100 | - | | OTLP gRPC | localhost:4317 | - | | OTLP HTTP | localhost:4318 | - |
scripts/start-stack.sh - Start observability stackscripts/stop-stack.sh - Stop stack gracefullyscripts/health-check.sh - Check all service healthscripts/backup-dashboards.sh - Export Grafana dashboardsscripts/restore-dashboards.sh - Import dashboards from backupdevelopment
Setup secure web-based terminal access to WSL2 from mobile/tablet via ttyd + ngrok/Cloudflare/Tailscale. One-command install, start, stop, status. Use when you need remote terminal access, web terminal, browser-based shell, or mobile access to WSL2 environment.
development
Complete development workflows where Claude writes the code while Gemini and Codex provide research, planning, reviews, and different perspectives. Claude remains the main developer. Use for complex projects requiring expert planning and multi-perspective reviews.
development
Systematic progress tracking for skill development. Manages task states (pending/in_progress/completed), updates in real-time, reports progress, identifies blockers, and maintains momentum. Use when tracking skill development, coordinating work, or reporting progress.
testing
Comprehensive testing workflow orchestrating functional testing, example validation, integration testing, and usability assessment. Sequential workflow for complete skill testing from examples through scenarios to integration validation. Use when conducting thorough testing, pre-deployment validation, ensuring skill functionality, or comprehensive quality checks.