← Back to docs
Structured Logging
Ship JSON logs from your loader, payload, and dashboard so every event is queryable by session, machine fingerprint, and license key.
Why structured?
Plain-text logs break at scale. Structured logs let you filter bysession_idorfingerprint_hashin seconds. Every Meridian component emits the same envelope so support can trace a license check from loader through payload to dashboard without grep.
Envelope shape
{
"ts": "2026-05-26T14:02:11.423Z",
"level": "info",
"component": "loader",
"session_id": "c7a1...",
"fingerprint_hash": "sha256:ab12...",
"license_key_hash": "sha256:9f3e...",
"message": "integrity_check_passed",
"fields": {
"iat_hash": "sha256:7b11...",
"elapsed_us": 142
}
}Ingestion pipeline
- Loader → Payload — named pipe or shared memory ring buffer; payload flushes every 30 s or 64 KB.
- Payload → Edge — HTTPS POST to
/api/logs/ingestwith HMAC signature. - Edge → Upstash KV — rate-limited write; TTL 7 days per session bucket.
Query examples
From the dashboard, filter by license key hash to see every integrity check, injection event, and heartbeat for a single customer. Combine withlevel:errorto surface tamper attempts in real time.