Distributed tracing
Distributed tracing provides visibility into the full path a request takes in a distributed system, helping to instrument, collect, and export telemetry data. PingFederate supports the OpenTelemetry framework (OTEL) for collecting distributed tracing data. Distributed traces are sent using OpenTelemetry Protocol (OTLP) from PingFederate to a backend service like Jaeger for collection, storage, and visualization.
| Distributed tracing is an evolving feature in PingFederate. It’s subject to change without notice, even in a minor or maintenance release. |
Supported request types
PingFederate supports distributed tracing for the following request types:
-
Incoming HTTP requests
-
Outgoing HTTP requests
-
Outgoing Java database connectivity (JDBC) requests
-
Outgoing Lightweight Directory Access Protocol (LDAP) requests to PingDirectory 11.0 and PingDS 8.1 or later
Configuring distributed tracing
About this task
You can configure distributed tracing by editing the run.properties and opentelemetry.properties files. You can also define the properties as environment variables. Learn more in Overriding configuration settings using environment variables.
|
To convert an OpenTelemetry property to an environment variable:
For example, the If a property is defined as both a system property and environment variable, the system property takes priority. |
Steps
-
Enable distributed tracing:
-
Open the
<pf_install>/pingfederate/bin/run.propertiesfile in a text editor. -
Set
pf.enable.distributed.tracingtotrue. -
Repeat these steps for each node in the cluster.
-
Start or restart PingFederate.
-
-
To configure OpenTelemetry properties, open the
<pf_install>/pingfederate/bin/opentelemetry.propertiesfile in a text editor. You can also set the properties using environment variables.You can find the full list of configurable OpenTelemetry properties in the OpenTelemetry SDK documentation. The following table lists the default properties in
opentelemetry.properties:Property Description otel.service.nameThe customizable name of your application/service.
The default is
PingFederate.otel.exporter.otlp.endpointThe endpoint for your OpenTelemetry Collector or backend.
The default value is
http://localhost:4318.otel.exporter.otlp.protocolSpecifies the OTLP transport protocol to be used for all telemetry data.
The default value is
http/protobufto use OTLP/HTTP + protobuf.Other valid values are:
-
grpcto use OTLP/gRPC -
http/jsonto use OTLP/HTTP + JSON
otel.resource.attributesOptionally define static environment metadata for all telemetry data in the format of
key1=val,key2=val. -
-
Start or restart PingFederate.