Overview
Starting with Etlworks 10.0.8, administrators can capture an HPROF heap dump from a running engine and analyze it in an isolated worker process, entirely through the application CLI — useful when the Resource Usage dashboard points at memory pressure and you need object-level evidence. Simba can run the same commands when its task has the required saved grants.
All three commands require Super Admin. They target app-hosted engines, not Integration Agents.
Workflow
core-dump
analyze-heap-dump <engine-hprof-path> --top=20
heap-analysis-status <job-id> --wait=20
- core-dump captures an HPROF dump and returns its server-side path (for example /opt/integrator/data/errors/dumpfile_<timestamp>.hprof). Capturing can pause the JVM and consumes disk space; it does not capture every cluster node. Requires confirmation (or --force).
- analyze-heap-dump starts an isolated analysis of a dump (by path) or polls an existing job (by job ID). Options: --top (1–100, default 20 largest items), --histogram-only (skips retained-size and root-path analysis), --wait (0–20 seconds, applies when polling a job ID). Requires confirmation. Only regular .hprof files inside the engine errors folder are accepted.
- heap-analysis-status polls the asynchronous job (read-only, no confirmation). It does not start an analysis.
Behavior and limits
- One analysis runs per engine JVM, in a separate worker JVM with a 512 MB heap and a 30-minute deadline by default (JVM options etl.heap.analysis.maxHeapMb, 128–8192, and etl.heap.analysis.timeoutSeconds, 1–3600, followed by a restart). The isolated worker still consumes host CPU, memory, and disk.
- Analysis artifacts are kept under heap-analysis/<job-id>/ and are not deleted automatically.
- Multi-node routing: the app routes commands to the engine node that owns the dump or job and remembers the owner for 7 days. For NAT or proxy setups, set etl.heap.analysis.nodeUrl on the engine. There is no automatic retry on another node.
- Simba: unattended Simba tasks need the saved Allow changes and Allow destructive and operational actions grants to run core-dump and analyze-heap-dump. Note Simba's default 15-minute task timeout is shorter than the 30-minute analyzer deadline — poll with heap-analysis-status afterward.
- Interpretation: a heap snapshot shows JVM heap objects at one moment. It does not prove a leak by itself, and it does not measure native memory or CPU.