#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT_DIR" extract_window_metric() { local name="$1" local payload="$2" printf '%s\n' "$payload" | awk -v key="$name" ' $0 ~ key"=" { for (i = 1; i <= NF; i++) { split($i, parts, "=") if (parts[1] == key) { print parts[2] exit } } } ' } classify_window_failure() { local payload="$1" local precondition_missing external_provider_failure collector_runtime_failure unknown_failure precondition_missing="$(extract_window_metric precondition_missing "$payload")" external_provider_failure="$(extract_window_metric external_provider_failure "$payload")" collector_runtime_failure="$(extract_window_metric collector_runtime_failure "$payload")" unknown_failure="$(extract_window_metric unknown_failure "$payload")" precondition_missing="${precondition_missing:-0}" external_provider_failure="${external_provider_failure:-0}" collector_runtime_failure="${collector_runtime_failure:-0}" unknown_failure="${unknown_failure:-0}" if [[ "$precondition_missing" -gt 0 && "$external_provider_failure" -eq 0 && "$collector_runtime_failure" -eq 0 && "$unknown_failure" -eq 0 ]]; then printf '%s\n' "precondition_missing_only" elif [[ "$external_provider_failure" -gt 0 && "$precondition_missing" -eq 0 && "$collector_runtime_failure" -eq 0 && "$unknown_failure" -eq 0 ]]; then printf '%s\n' "external_provider_failure_only" else printf '%s\n' "mixed" fi } PRECONDITION_PAYLOAD='window_size=7 success_count=5 failure_count=2 success_rate=71.43 threshold=95 precondition_missing=2 external_provider_failure=0 collector_runtime_failure=0 unknown_failure=0' EXTERNAL_PAYLOAD='window_size=7 success_count=5 failure_count=2 success_rate=71.43 threshold=95 precondition_missing=0 external_provider_failure=2 collector_runtime_failure=0 unknown_failure=0' MIXED_PAYLOAD='window_size=7 success_count=4 failure_count=3 success_rate=57.14 threshold=95 precondition_missing=1 external_provider_failure=1 collector_runtime_failure=1 unknown_failure=0' [[ "$(classify_window_failure "$PRECONDITION_PAYLOAD")" == "precondition_missing_only" ]] [[ "$(classify_window_failure "$EXTERNAL_PAYLOAD")" == "external_provider_failure_only" ]] [[ "$(classify_window_failure "$MIXED_PAYLOAD")" == "mixed" ]]