File size: 994 Bytes
4554748
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import time

def measure_latency(adapter, query="test"):
    """
    Non-invasive latency probe.
    One request max, no retries.
    """
    start = time.time()
    try:
        adapter.search(query)
        elapsed = time.time() - start
        return round(elapsed, 2)
    except Exception:
        return None


def latency_badges(adapters):
    rows = []

    for a in adapters:
        if not a.is_live:
            rows.append({
                "Agency": a.name,
                "Latency (s)": "—",
                "Badge": "🔒 Stub"
            })
            continue

        latency = measure_latency(a)

        if latency is None:
            badge = "⚠️ Error"
        elif latency < 1.5:
            badge = "🟢 Fast"
        elif latency < 4:
            badge = "🟡 Moderate"
        else:
            badge = "🔴 Slow"

        rows.append({
            "Agency": a.name,
            "Latency (s)": latency,
            "Badge": badge
        })

    return rows