summaryrefslogtreecommitdiffstats
path: root/doc/developer/tracing.rst
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@nvidia.com>2021-02-13 00:14:53 +0100
committerQuentin Young <qlyoung@nvidia.com>2021-02-13 00:14:53 +0100
commit902946118884a4a7cddd3142e854ce8ed3e1e9f3 (patch)
tree760f8700994c4da4f6d705adadbb7470cd56b1ec /doc/developer/tracing.rst
parentMerge pull request #7764 from pguibert6WIND/nhrp_shortcut_routes (diff)
downloadfrr-902946118884a4a7cddd3142e854ce8ed3e1e9f3.tar.xz
frr-902946118884a4a7cddd3142e854ce8ed3e1e9f3.zip
doc: document LD_PRELOAD workaround for lttng
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
Diffstat (limited to '')
-rw-r--r--doc/developer/tracing.rst25
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/developer/tracing.rst b/doc/developer/tracing.rst
index d54f6c7aa..c194ae127 100644
--- a/doc/developer/tracing.rst
+++ b/doc/developer/tracing.rst
@@ -308,6 +308,31 @@ Limitations
Tracers do not like ``fork()`` or ``dlopen()``. LTTng has some workarounds for
this involving interceptor libraries using ``LD_PRELOAD``.
+If you're running FRR in a typical daemonizing way (``-d`` to the daemons)
+you'll need to run the daemons like so:
+
+.. code-block:: shell
+
+ LD_PRELOAD=liblttng-ust-fork.so <daemon>
+
+
+If you're using systemd this you can accomplish this for all daemons by
+modifying ``frr.service`` like so:
+
+.. code-block:: diff
+
+ --- a/frr.service
+ +++ b/frr.service
+ @@ -7,6 +7,7 @@ Before=network.target
+ OnFailure=heartbeat-failed@%n.service
+
+ [Service]
+ +Environment="LD_PRELOAD=liblttng-ust-fork.so"
+ Nice=-5
+ Type=forking
+ NotifyAccess=all
+
+
USDT tracepoints are relatively high overhead and probably shouldn't be used
for "flight recorder" functionality, i.e. enabling and passively recording all
events for monitoring purposes. It's generally okay to use LTTng like this,