Skip to content

v0.2.0 — Metrics, Config, Network, Web UI & Interactive Wizard

Choose a tag to compare

@PraveenLuke PraveenLuke released this 23 Jun 19:23
c4275f0

What's New

New Diagnosers

  • Metrics — detects sustained CPU/memory utilisation above 85% via CloudWatch
  • Config — extracts task definition and service config; validates Fargate CPU/memory combos; masks sensitive env vars
  • Network — checks security group egress and NAT Gateway presence; surfaces blocked-outbound findings

New CLI Features

  • --stream-logs — streams live ECS task logs to the terminal; Ctrl+C exits cleanly
  • browse — interactive wizard to select cluster/service (Profile / Access Keys / Default Chain / OIDC)
  • serve — starts a FastAPI + HTMX web UI at http://localhost:8080

Web UI

  • Form-based diagnosis at GET /POST /diagnose
  • JSON API at GET /api/diagnose
  • Live log streaming via SSE at GET /api/stream-logs
  • Health check at GET /healthz

Infrastructure

  • deploy/Dockerfile — Python 3.12-slim, non-root user, port 8080
  • deploy/task-definition.json — Fargate task definition with health check
  • deploy/iam-policy.json — minimum IAM policy for all diagnosers

Architecture

  • Shared engine.py — zero logic duplication between CLI and web
  • ServiceDataCache — eliminates 3× duplicate ecs:DescribeServices calls per run

Extended Detection

  • 3 new stop codes: SpotInterrupted, TaskFailedToStart, EssentialContainerExited
  • 11 new log crash patterns: Rust panics, .NET exceptions, PHP fatal errors, disk full, EFS mount failures
  • Deployment config deadlock detection (min=100% / max=100% / running=0)

Quality

  • All SonarQube issues resolved
  • Test coverage raised from ~50% → 90%+ (180 tests)

Install

pip install ecs-doctor==0.2.0
pip install 'ecs-doctor[web]==0.2.0'   # includes web server

What's Changed

  • Add --profile option for named AWS credentials by @PraveenLuke in #1
  • chore: bump version to 0.1.1 by @PraveenLuke in #2
  • v0.2.0 — metrics, config, network diagnosers, web UI, interactive wizard by @PraveenLuke in #3
  • fix: correct template response parameters in diagnose routes by @PraveenLuke in #4
  • chore: bump version to 0.2.0 by @PraveenLuke in #5

New Contributors

Full Changelog: v0.1.0...v0.2.0