Skip to content

Distributed Tracing

As a microservice, IDLive Doc Server supports providing correlation ID and tracing ID fields in request header which can be use for distributed tracing.

Here's an example of a liveness check request done using curl utility providing the session-id and correlation-id headers:

$ (echo -n '{
            "image": "'; base64 image.png; echo '",
            "pipelines": [
                {"pipeline_name": "default-sr"}
            ]
        }') | \
    curl -H "x-api-key: <API-key>" \
        -H "Content-Type: application/json" \
        -H "session-id: 123456" \
        -H "correlation-id:98765" \
        -X POST -d @- https://idlivedoc-rest-api.idrnd.net/check_liveness

Here's how it will look in the container's logs:

2024-04-23T11:04:47.108Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-1] [][]o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
2024-04-23T11:04:48.006Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-3] '[123456][98765] 'net.idrnd.idlivedoc.web.LivenessApi      : Liveness check composition performed for 29495219-3fb4-44df-893d-ccc5b13f10c2 file, ibis-sr pipeline, LivenessCheckOptions{calibration=SOFT, errorsToIgnore=[]} options with LivenessResponse{score=5.171455, probability=0.9999796, quality_warnings=[]} in 551 ms
2024-04-23T11:04:48.012Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-3] '[123456][98765] 'net.idrnd.idlivedoc.web.LivenessApi      : Liveness check composition performed for 29495219-3fb4-44df-893d-ccc5b13f10c2 file, digital-manipulation_2022-11 pipeline, LivenessCheckOptions{calibration=REGULAR, errorsToIgnore=[]} options with LivenessResponse{score=5.4988723, probability=0.99893844, quality_warnings=[]} in 551 ms
2024-04-23T11:04:48.012Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-3] '[123456][98765] 'net.idrnd.idlivedoc.web.LivenessApi      : Liveness check composition performed for 29495219-3fb4-44df-893d-ccc5b13f10c2 file, ibis-sr-soft pipeline, LivenessCheckOptions{calibration=REGULAR, errorsToIgnore=[]} options with LivenessResponse{score=3.08952, probability=0.999998, quality_warnings=[]} in 551 ms

The output format of IDs can be changed by setting the LOGGING_PATTERN_CORRELATION environment variable, e.g --env LOGGING_PATTERN_CORRELATION='[session-id=%X{session-id:-}, correlation-id=%X{correlation-id:-}] ':

2024-04-23T10:53:50.353Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-1] [session-id=, correlation-id=] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
2024-04-23T10:53:51.264Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-3] '[session-id=123456, correlation-id=98765] 'net.idrnd.idlivedoc.web.LivenessApi      : Liveness check composition performed for 3e816551-244c-490e-811f-4adb3fac7d3d file, ibis-sr pipeline, LivenessCheckOptions{calibration=SOFT, errorsToIgnore=[]} options with LivenessResponse{score=5.171455, probability=0.9999796, quality_warnings=[]} in 570 ms
2024-04-23T10:53:51.274Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-3] '[session-id=123456, correlation-id=98765] 'net.idrnd.idlivedoc.web.LivenessApi      : Liveness check composition performed for 3e816551-244c-490e-811f-4adb3fac7d3d file, digital-manipulation_2022-11 pipeline, LivenessCheckOptions{calibration=REGULAR, errorsToIgnore=[]} options with LivenessResponse{score=5.4988723, probability=0.99893844, quality_warnings=[]} in 570 ms
2024-04-23T10:53:51.275Z  INFO 1 --- [IDLive Doc Server] [nio-8080-exec-3] '[session-id=123456, correlation-id=98765] 'net.idrnd.idlivedoc.web.LivenessApi      : Liveness check composition performed for 3e816551-244c-490e-811f-4adb3fac7d3d file, ibis-sr-soft pipeline, LivenessCheckOptions{calibration=REGULAR, errorsToIgnore=[]} options with LivenessResponse{score=3.08952, probability=0.999998, quality_warnings=[]} in 570 ms