#!/usr/bin/env python3
import json, subprocess
ids = ['ICLlAFODXRTVk7uL','dvl-gubc7S3z6pCX','uUwfdiD9bKwt1J2a','B-L1DrAn4dkjG3qt']
raw = subprocess.check_output(
    ['docker','logs','grok2api','--since','2026-08-20T21:49:00','--until','2026-08-20T22:05:00'],
    stderr=subprocess.STDOUT, text=True, errors='replace')
for line in raw.splitlines():
    if not any(i in line for i in ids):
        continue
    if not line.strip().startswith('{'):
        continue
    try:
        o = json.loads(line)
    except Exception:
        continue
    msg = o.get('msg')
    if msg in ('performance_metric','account_bulk_completed','model_etag_refresh_completed'):
        continue
    keys = ('time','level','msg','request_id','path','status','duration_ms','account_id','provider','upstream_code','error','model','reason','bytes')
    keep = {k: o.get(k) for k in keys if o.get(k) not in (None, '')}
    print(json.dumps(keep, ensure_ascii=False))
