In lit-node, tracing with Jaeger can be enabled via the LIT_LOGGING_JAEGER environment variable.

cd lit-assets/rust/lit-node
LIT_LOGGING_JAEGER=1 cargo run

Once enabled, tracing data (spans) will be collected via OpenTelemetry and sent to a local Jaeger instance, which you can start this way (may need to prefix with sudo on linux):

docker run -d -p16686:16686 -p4317:4317 -e COLLECTOR_OTLP_ENABLED=true jaegertracing/all-in-one:latest

Visit http://localhost:16686/search?service=lit_node to see any lit-node traces in the Jaeger UI. Here are two example traces for the /web/execute endpoint:

199709850-6c6f590f-eaad-413c-a2b8-cca273fa475d.png

199709922-05c734a9-48a8-44c5-86e1-b02ab8bf3fab.png

Tunneling the UI back from a remote machine using SSH

Use this command to tunnel the port back to your local machine and you should be able to access it Jaeger UI on localhost. Change the target IP (in this example 167.114.17.204 ) to be the host of the machine you are running jaeger on.

ssh -L 16686:127.0.0.1:16686 167.114.17.204

Instrumentation

lit-node is currently instrumented using these macros:

(We could add even more context by logging via tracing::info, tracing::error, etc.)

Resources