Debugging and Troubleshooting

Overview

When tsuru API is running slow or hanging, we may want troubleshoot it to discover what is the source of the problem.

One of the ways to debug/troubleshoot the tsuru API is by analyzing the running goroutines.

We may do it by cURL or by sending a USR1 signal.

Using cURL

Tsuru has a path that can be used by cURL to return all the goroutines in execution. This path is : /debug/goroutines

$ curl -X GET -H "Authorization: bearer <API key>" <tsuru-host>:<port>/debug/goroutines

Using SIGUSR1

If for some reason the process is no longer accepting connections, the solution using cURL will not work.

Alternatively, tsuru API is able to handle the USR1 signal to dump goroutines in the tsurud execution screen:

$ kill -s USR1 <tsurud-PID>