ditto/docs/debugging.md

1.3 KiB

Debugging Ditto

Running the command deno task debug will start the Ditto server in debug mode, making it possible to inspect with Chromium-based browsers by visiting chrome://inspect.

From there, go to the "Performance" tab and click "Start profiling". Perform the actions you want to profile, then click "Stop profiling". You can then inspect the call stack and see where the time is being spent.

Remote debugging

If the Ditto server is on a separate machine, you will first need to put it into debug mode. Edit its systemd file (usually located at /etc/systemd/system/ditto.service) and change deno task start to deno task debug in the ExecStart line. Then run systemctl daemon-reload and systemctl restart ditto.

To access the debugger remotely, you can use SSH port forwarding. Run this command on your local machine, replacing <user>@<host> with the SSH login for the remote machine:

ssh -L 9229:localhost:9229 <user>@<host>

Then, in Chromium, go to chrome://inspect and the Ditto server should be available.

SQLite performance

To track slow queries, first set DEBUG=ditto:sqlite.worker in the environment so only SQLite logs are shown.

Then, grep for any logs above 0.001s:

journalctl -fu ditto | grep -v '(0.00s)'