lnd.xprv/docs/debugging_lnd.md
2018-06-25 16:27:58 -04:00

1.3 KiB

Table of Contents

  1. Overview
  2. Debug Logging
  3. Capturing pprof data with lnd

Overview

lnd ships with a few useful features for debugging, such as a built-in profiler and tunable logging levels. If you need to submit a bug report for lnd, it may be helpful to capture debug logging and performance data ahead of time.

Debug Logging

You can enable debug logging in lnd by passing the --debuglevel flag. For example, to increase the log level from info to debug:

$ lnd --debuglevel=debug

You may also specify logging per-subsystem, like this:

$ lnd --debuglevel=<subsystem>=<level>,<subsystem2>=<level>,...

Capturing pprof data with lnd

lnd has a built-in feature which allows you to capture profiling data at runtime using pprof, a profiler for Go. The profiler has negligible performance overhead during normal operations (unless you have explictly enabled CPU profiling).

To enable this ability, start lnd with the --profile option using a free port.

$ lnd --profile=9736

Now, with lnd running, you can use the pprof endpoint on port 9736 to collect runtime profiling data. You can fetch this data using curl like so:

$ curl http://localhost:9736/debug/pprof/goroutine?debug=1
...