원클릭으로
nightly-report
Generate weekly nightly E2E trend report with failure patterns and success rates
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Generate weekly nightly E2E trend report with failure patterns and success rates
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Analyze nightly E2E job failures across llm-d repos. Smart router to sub-skills based on failure type.
Diagnose deployment failures in nightly E2E runs (helmfile, helm, install.sh)
Diagnose GPU contention failures in nightly E2E runs
Diagnose infrastructure and authentication failures in nightly E2E runs (GCP, AWS, runner issues)
Diagnose pod readiness timeout failures in nightly E2E runs
Full root cause analysis for nightly E2E failures that don't fit simple categories
| name | nightly:report |
| description | Generate weekly nightly E2E trend report with failure patterns and success rates |
Generate a comprehensive weekly report of nightly E2E job health across all platforms and guides.
export LOG_DIR=/tmp/llm-d/nightly-report
mkdir -p $LOG_DIR
# Get last 7 days of runs from all repos
SINCE=$(date -u -v-7d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -d "7 days ago" +%Y-%m-%dT%H:%M:%SZ)
for repo in llm-d/llm-d llm-d/llm-d-workload-variant-autoscaler; do
unset GITHUB_TOKEN && gh run list --repo "$repo" --limit 500 \
--json workflowName,status,conclusion,startedAt,databaseId,url,updatedAt \
| jq "[.[] | select(
(.workflowName | test(\"[Nn]ightly|[Ee]2[Ee]\")) and
(.startedAt > \"$SINCE\")
)]" > "$LOG_DIR/${repo##*/}-runs.json"
done
# Calculate success rate per workflow
for f in $LOG_DIR/*-runs.json; do
jq -r 'group_by(.workflowName) | .[] | {
workflow: .[0].workflowName,
total: length,
success: [.[] | select(.conclusion == "success")] | length,
failure: [.[] | select(.conclusion == "failure")] | length,
other: [.[] | select(.conclusion != "success" and .conclusion != "failure")] | length
} | "\(.workflow) | \(.success)/\(.total) (\(.success * 100 / .total)%) | \(.failure) failures"' "$f"
done > $LOG_DIR/success-rates.txt
# List all failures with dates
for f in $LOG_DIR/*-runs.json; do
jq -r '.[] | select(.conclusion == "failure") |
"\(.startedAt | split("T")[0]) | \(.workflowName) | \(.databaseId)"' "$f"
done | sort > $LOG_DIR/failure-timeline.txt
For each failure, get the failed step:
while IFS='|' read -r date workflow run_id; do
run_id=$(echo "$run_id" | tr -d ' ')
workflow=$(echo "$workflow" | tr -d ' ')
REPO="llm-d/llm-d"
FAILED_STEP=$(unset GITHUB_TOKEN && gh run view "$run_id" --repo "$REPO" --json jobs \
| jq -r '.jobs[0].steps[] | select(.conclusion == "failure") | .name' 2>/dev/null | head -1)
echo "$date | $workflow | $FAILED_STEP | $run_id"
done < $LOG_DIR/failure-timeline.txt > $LOG_DIR/categorized-failures.txt
## Nightly E2E Report — Week of YYYY-MM-DD
### Summary
- **Total runs**: N
- **Pass rate**: X% (Y/N)
- **Unique failures**: Z
### Success Rate by Workflow
| Workflow | Pass Rate | Failures | Trend |
|----------|-----------|----------|-------|
| Inference Scheduling (OCP) | 7/7 (100%) | 0 | stable |
| Wide EP LWS (OCP) | 3/7 (43%) | 4 | degraded |
| PD Disaggregation (GKE) | 5/7 (71%) | 2 | flaky |
### Failure Breakdown by Category
| Category | Count | % of Failures |
|----------|-------|---------------|
| Infra/Auth | N | X% |
| GPU Contention | N | X% |
| Deploy | N | X% |
| Pod Readiness | N | X% |
| Test | N | X% |
### Notable Patterns
- <pattern 1: e.g., "All GKE failures are gcloud auth — likely secret rotation needed">
- <pattern 2: e.g., "Wide EP consistently fails pod readiness — LWS scaling issue">
### Action Items
- [ ] <action 1>
- [ ] <action 2>
### Daily Heatmap
| Day | OCP | GKE | CKS | EC2 |
|-----|-----|-----|-----|-----|
| Mon | 6/6 | 2/3 | — | 1/1 |
| Tue | 5/6 | 3/3 | — | 0/1 |
| ... | ... | ... | ... | ... |
Compare this week vs previous:
# Get previous week's data
PREV_SINCE=$(date -u -v-14d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -d "14 days ago" +%Y-%m-%dT%H:%M:%SZ)
PREV_UNTIL=$SINCE
for repo in llm-d/llm-d llm-d/llm-d-workload-variant-autoscaler; do
unset GITHUB_TOKEN && gh run list --repo "$repo" --limit 500 \
--json workflowName,conclusion,startedAt \
| jq "[.[] | select(
(.workflowName | test(\"[Nn]ightly|[Ee]2[Ee]\")) and
(.startedAt > \"$PREV_SINCE\") and
(.startedAt < \"$PREV_UNTIL\")
)]" > "$LOG_DIR/${repo##*/}-prev-week.json"
done
Trends: improving, stable, degraded, new failure
nightly — Parent router (for individual failure triage)nightly:rca — Deep dive on specific failures flagged in report