Practical tools and runbooks for production systems
Less guessing. Faster recovery.
Ovalk puts high-frequency utilities and structured troubleshooting flows in one place. Scope the incident, verify the cause, recover safely, and keep a prevention action.
Toolbench
Finish the task in front of you.
Calculations and formatting stay in your browser. This page does not save or upload your input.
JSON: what formatting changes
Format adds two-space indentation; Minify removes unnecessary whitespace. Invalid JSON is left unchanged. Keys must be double-quoted; comments and trailing commas are not valid JSON. For example, {"ok":true} is valid; {ok:true,} is not.
This uses JavaScript’s JSON parser, not a lossless editor: large integers can lose precision, duplicate keys keep the final value, and formatting can change key order or number notation. Keep identifiers larger than 9,007,199,254,740,991 as strings. Preserve the original when exact representation matters. Processing is limited to 5 million characters.
Web, API & cryptography
Convert UTF-8 text for URLs, form values, Base64, Base64URL, HTML, hex and JSON strings.
JWT inspectorRead token headers, payloads and UTC timestamps without mistaking decoding for verification.
SHA & HMACCalculate SHA-256, SHA-384 and SHA-512 hashes or keyed HMACs for API test messages.
RSA playgroundGenerate test key pairs, encrypt and decrypt short messages, or sign and verify with RSA.
AES encryptionEncrypt and decrypt text with a shared secret key or password using authenticated AES-256-GCM.
JSON formatter
Format, minify, and validate JSON with clear error feedback.
CIDR calculator
Break an IPv4/CIDR into network, mask, broadcast, and usable address range.
Cron builder
Create a standard five-field Cron expression from plain choices.
Troubleshooting guides
Start with the symptom. Verify every step.
Nginx 502 Bad Gateway: trace the upstream before changing timeouts
A 502 is an upstream connectivity or response problem. Establish whether the backend is reachable, alive, and responding within its budget before changing proxy settings.
Open runbookMySQL connection pool exhaustion: find the leak or the wait
Too many connections is an outcome of saturation, leaks, or slow transactions. Identify which clients hold connections before increasing capacity.
Open runbookExpired or failed TLS certificate replacement: restore HTTPS safely
Inspect the certificate actually served on the user path, then validate renewal, deployment, and CDN propagation instead of only checking a PEM file on disk.
Open runbookKubernetes CrashLoopBackOff: use the exit reason to find the startup failure
CrashLoopBackOff is a restart state, not the root cause. Previous logs, termination reasons, events, and dependency health reveal what is breaking startup.
Open runbookDocker disk full: measure before you prune
When a Docker node runs out of space, identify images, containers, volumes, and logs first. A blind prune can remove data you still need.
Open runbookRedis memory pressure and eviction: distinguish policy, hot keys, and TTL debt
Increasing maxmemory is not a root-cause fix. Inspect eviction policy, key lifetimes, large values, and workload growth before changing capacity.
Open runbookEvery runbook includes verification and prevention—not only a command list.
Use each guide’s operating assumptions, evidence table and illustrative diagnosis to choose your next check. Recovery criteria and rollback boundaries help you decide when a change is safe to attempt.