Set up Jaeger Tracing
OpenTracing enables distributed tracing which makes it possible to monitor RPCs or transactions across process boundaries. You can leverage this functionality to help track and diagnose communication problems that may arise in distributed deployments of Horizon components; for example, Core instance, Minion, and Sentinel. OpenTracing is supported on RPC calls between Horizon Core instance for Sink API calls (including flows) between Minion and Sentinel. By default the tracing instrumentation Horizon is disabled (a no-op tracer is used.)
The project Jaeger is an open source, end-to-end distributed tracing software. It lets you monitor and troubleshoot transactions in distributed software components when Horizon is deployed with Minion and Sentinel. Horizon components support Jaeger which implements the OpenTracing API.
Enable tracing with Jaeger on Core instance by installing the opennms-core-tracing-jaeger
feature and creating a configuration file with the Jaeger specific settings.
Configurations has to be made in the etc directory relative to the Horizon Core home directory.
Depending on your operating system the home directory is in /usr/share/opennms for Debian/Ubuntu or /opt/opennms for CentOS/RHEL.
|
sudo vi etc/featuresBoot.d/jaeger.boot
opennms-core-tracing-jaeger
Uninstalling the opennms-core-tracing-jaeger feature at runtime is not yet supported.
To disable tracing with Jaeger, remove the reference from the features boot file and restart the Core.
|
sudo vi etc/opennms.properties.d/jaeger.properties
org.opennms.core.tracer=jaeger(1)
JAEGER_AGENT_HOST=my-jaeger-host(2)
1 | Set Jaeger as the tracing implementation |
2 | Replace the my-jaeger-host with your Jaeger instance where you collect the tracing information |
Available configuration options are listed in the Jaeger Core Readme. |
The Jaeger service name is the Instance-ID of the Core instance.
|
sudo systemctl restart opennms
Enable tracing with Jaeger on Minion by installing the opennms-core-tracing-jaeger
feature.
Configurations has to be made in the etc directory relative to the Minion home directory.
Depending on your operating system the home directory is in /usr/share/minion for Debian/Ubuntu or /opt/minion for CentOS/RHEL.
|
sudo vi etc/featuresBoot.d/jaeger.boot
opennms-core-tracing-jaeger
Uninstalling the opennms-core-tracing-jaeger feature at runtime is not yet supported.
To disable tracing with Jaeger, remove the reference from the features boot file and restart Minion.
|
sudo vi etc/custom.system.properties
JAEGER_AGENT_HOST=my-jaeger-host(1)
1 | Replace the my-jaeger-host with your Jaeger instance where you collect the tracing information |
Available configuration options are listed in the Jaeger Core Readme. |
The Jaeger service name is the Location-Name@Instance-ID from the Minion.
|
sudo systemctl restart minion
Enable tracing with Jaeger on Sentinel by installing the opennms-core-tracing-jaeger
feature.
Configurations has to be made in the etc directory relative to the Sentinel home directory.
Depending on your operating system the home directory is in /usr/share/sentinel for Debian/Ubuntu or /opt/sentinel for CentOS/RHEL.
|
sudo vi etc/featuresBoot.d/jaeger.boot
opennms-core-tracing-jaeger
Uninstalling the opennms-core-tracing-jaeger feature at runtime is not yet supported.
To disable tracing with Jaeger, remove the reference from the features boot file and restart Sentinel.
|
sudo vi etc/custom.system.properties
JAEGER_AGENT_HOST=my-jaeger-host(1)
1 | Replace the my-jaeger-host with your Jaeger instance where you collect the tracing information |
Available configuration options are listed in the Jaeger Core Readme. |
The Jaeger service name is the Instance-ID from Sentinel.
|
sudo systemctl restart sentinel