# Terminal 1: Pod 스케일링 관찰
watch -n 5 "kubectl --context service get pods -n msa -l 'app in (order-service,notification-service)' -o wide"
# Terminal 2: HPA/ScaledObject 상태
watch -n 5 "kubectl --context service get scaledobject,hpa -n msa"
# Terminal 3: Karpenter 노드 스케일링
watch -n 10 "kubectl --context service get nodes -l karpenter.sh/provisioner-name=default"
# Terminal 4: SQS 메트릭
watch -n 10 "aws sqs get-queue-attributes \
--queue-url ${SQS_QUEUE_URL} \
--attribute-names ApproximateNumberOfMessages ApproximateNumberOfMessagesNotVisible"
# Request Rate (per service)
sum(rate(http_requests_total{namespace="msa"}[1m])) by (service)
# Error Rate
sum(rate(http_requests_total{namespace="msa", status=~"5.."}[1m])) /
sum(rate(http_requests_total{namespace="msa"}[1m]))
# Latency P99
histogram_quantile(0.99,
sum(rate(http_request_duration_seconds_bucket{namespace="msa"}[5m])) by (le, service)
)
# Pod Count
count(kube_pod_status_phase{namespace="msa", phase="Running"}) by (pod)
# CPU Usage per Pod
sum(rate(container_cpu_usage_seconds_total{namespace="msa"}[5m])) by (pod)
# Memory Usage per Pod
sum(container_memory_working_set_bytes{namespace="msa"}) by (pod)
# KEDA ScaledObject 이벤트
kubectl --context service describe scaledobject -n msa
# Karpenter consolidation 로그
kubectl --context service logs -n karpenter -l app.kubernetes.io/name=karpenter --tail=100 | grep -i consolidat
# Node 종료 이벤트
kubectl --context service get events -n default --field-selector reason=TerminatingNode