Skip to main content

rfd--dashboard

Overview​

  • Namespace: rfd--dashboard
  • Purpose: Referring Doctor Dashboard Backend - PRODUCTION
  • Age: ~2 years 174 days (since April 2023)
  • Status: x Partially Active - Dashboard API active, consumer and cron scaled to 0
  • Workloads: 3 deployments (1 active, 2 scaled to 0)
  • Environment: PRODUCTION - Doctor dashboard and analytics

Architecture​

Referring doctor dashboard system with minimal active components:

  • Main Application: REST API backend (1 replica) - Active
  • Event Consumer: Recent order processing - x Scaled to 0
  • Scheduler: Cron jobs - x Scaled to 0

Auto-Scaling Configuration​

No Auto-Scaling Configured:

  • No HorizontalPodAutoscalers (HPAs)
  • No KEDA scaled objects
  • Fixed replica counts

Workload Categories​

Main Application (1 deployment - Active)​

NameReplicasStatusPurpose
rfd--dashboard--be--app--prod1/1RunningMain RFD dashboard API

Event Consumer (1 deployment - Scaled to 0)​

NameReplicasStatusPurpose
consumer-recent-order0/0x Scaled to 0Recent order processing (inactive)

Scheduler (1 deployment - Scaled to 0)​

NameReplicasStatusPurpose
cronjob0/0x Scaled to 0Scheduled cron jobs (inactive)

Services​

NameTypeCluster IPPortsNodePortPurpose
rfd--dashboard--be--app--prodNodePort10.8.31.628030591Main RFD dashboard API

Access & Management​

View all resources:​

kubectl get all -n rfd--dashboard

Check main application:​

kubectl get pods -n rfd--dashboard | grep "app--prod"
kubectl logs -f deployment/rfd--dashboard--be--app--prod -n rfd--dashboard

Check scaled-to-0 deployments:​

# View scaled deployments
kubectl get deployments -n rfd--dashboard | grep "0/0"

# Scale up if needed
kubectl scale deployment rfd--dashboard--be--consumer-recent-order--prod -n rfd--dashboard --replicas=1
kubectl scale deployment rfd--dashboard--be--cronjob--prod -n rfd--dashboard --replicas=1

Restart main app:​

kubectl rollout restart deployment/rfd--dashboard--be--app--prod -n rfd--dashboard

Monitoring​

Resource usage:​

kubectl top pods -n rfd--dashboard --sort-by=memory
kubectl top pods -n rfd--dashboard --sort-by=cpu

Deployment status:​

# All deployments
kubectl get deployments -n rfd--dashboard

# Active only
kubectl get deployments -n rfd--dashboard | grep -v "0/0"

Events:​

kubectl get events -n rfd--dashboard --sort-by='.lastTimestamp' | head -20

Data Flow​

Doctor Dashboard Request
↓
rfd--dashboard--be--app--prod (NodePort 30591)
↓
Main RFD Dashboard API (1 replica)
↓
Database (external)
↓
Dashboard analytics, reports, order views

Note: Consumer and cron jobs scaled to 0 (inactive)

Dashboard Workflow​

1. Dashboard API (Active)​

  • Doctor dashboard views
  • Analytics and reports
  • Order history display
  • Performance metrics
  • API serving dashboard frontend

2. Recent Order Consumer (Scaled to 0)​

  • Inactive - scaled to 0
  • Previously processed recent order events
  • Review if still needed or permanently deprecated

3. Cron Jobs (Scaled to 0)​

  • Inactive - scaled to 0
  • Previously handled scheduled tasks
  • Review if still needed or permanently deprecated

Production Considerations​

High Availability​

x Single Points of Failure:

  • Main API: 1 replica (no HA)
  • Only 1 active deployment in entire namespace

x Scaled to 0 (67% of deployments):

  • consumer-recent-order: Scaled to 0
  • cronjob: Scaled to 0
  • Cleanup Opportunity: Review and remove if permanently unused

Recommendations​

  1. Main API Resilience:

    • Currently 1 replica (single point of failure)
    • Increase to 2+ replicas or add HPA
    • Critical for doctor dashboard access
  2. Review Scaled-to-0 Deployments:

    • consumer-recent-order: Scaled to 0 (~2 years)
    • cronjob: Scaled to 0 (~2 years)
    • If permanently unused, remove deployments
    • If needed, scale up and add monitoring
  3. Add Auto-Scaling:

    • Consider HPA for main API
    • Scale during peak dashboard usage times
  4. Cleanup Checklist:

    • Confirm with RFD team if consumer/cron still needed
    • Verify no plans to re-activate
    • Check if functionality moved elsewhere
    • Remove deployments if confirmed unused
    • Update architecture documentation
  5. Monitoring Priorities:

    • API response times
    • Dashboard load performance
    • Database query performance

Troubleshooting​

Main API issues:​

# Check API pod
kubectl get pods -n rfd--dashboard | grep "app--prod"

# Check logs
kubectl logs -f deployment/rfd--dashboard--be--app--prod -n rfd--dashboard --tail=100

# Test API endpoint
kubectl port-forward -n rfd--dashboard service/rfd--dashboard--be--app--prod 8080:80
# Access http://localhost:8080

Scaled-to-0 investigation:​

# Check deployment history
kubectl rollout history deployment/rfd--dashboard--be--consumer-recent-order--prod -n rfd--dashboard
kubectl rollout history deployment/rfd--dashboard--be--cronjob--prod -n rfd--dashboard

# View deployment details
kubectl get deployment rfd--dashboard--be--consumer-recent-order--prod -n rfd--dashboard -o yaml
kubectl get deployment rfd--dashboard--be--cronjob--prod -n rfd--dashboard -o yaml

# Scale up for testing (if needed)
kubectl scale deployment rfd--dashboard--be--consumer-recent-order--prod -n rfd--dashboard --replicas=1
kubectl scale deployment rfd--dashboard--be--cronjob--prod -n rfd--dashboard --replicas=1

# Watch startup
kubectl get pods -n rfd--dashboard -w

Performance issues:​

# Check API resource usage
kubectl top pods -n rfd--dashboard

# Check API logs for slow queries
kubectl logs deployment/rfd--dashboard--be--app--prod -n rfd--dashboard --tail=200 | grep -i "slow\|timeout\|query"

# Restart API
kubectl rollout restart deployment/rfd--dashboard--be--app--prod -n rfd--dashboard

Performance Metrics​

Current Scale​

  • Main API: 1 replica (no HA)
  • Consumer: 0 replicas (scaled to 0)
  • Cron: 0 replicas (scaled to 0)
  • Total Active Pods: ~1 pod
  • Scaled to 0: 67% of deployments (2 of 3)

Stability​

  • Namespace Age: ~2 years (mature)
  • Recent Updates: 382 days ago for app (very stable)
  • Scaled-to-0 Components: ~2 years (likely deprecated)

Cleanup Opportunity​

x 67% of deployments scaled to 0 - Large cleanup opportunity:

  • consumer-recent-order: Scaled to 0 since creation
  • cronjob: Scaled to 0 since creation

Action Required: Review with RFD team to confirm if these deployments can be permanently removed.