Uploaded image for project: 'Couchbase Python Client Library'
  1. Couchbase Python Client Library
  2. PYCBC-482

add tracing context to timeout response

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.4.0-beta, 2.4.0-beta2
    • 2.4.0
    • library
    • None

    Description

      Per the sdk-rfc for response time observability, any timeout value must return context on the operation like the timeout value specified, type of operation, correlation identifier, etc. We didn't get this in to beta.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          Ellis.Breen Ellis Breen added a comment -

          I've added code to 'snapshot' span info including ID into a result object, and to trigger this whenever an error is raised in a callback, via the 'maybe_push_operr' function, here:

          https://github.com/couchbase/couchbase-python-client/blob/c6e25f42ecb5d280988e103389275e6ab2487e6e/src/callbacks.c#L76

          This sets the mres->errop value which is read when decoding an exception, here:

          https://github.com/couchbase/couchbase-python-client/blob/c6e25f42ecb5d280988e103389275e6ab2487e6e/src/multiresult.c#L309

          I've also set it to always snapshot span info to a result within get_common_objects, for good measure.

          The info is provided as a 'tracing_output' attribute on the Result object, which is a list of spans. In the 'tags' field of each of these are listed an id and a child_of id.

          These should correlate with the span IDs provided by the Threshold Logging Tracer.

          Ellis.Breen Ellis Breen added a comment - I've added code to 'snapshot' span info including ID into a result object, and to trigger this whenever an error is raised in a callback, via the 'maybe_push_operr' function, here: https://github.com/couchbase/couchbase-python-client/blob/c6e25f42ecb5d280988e103389275e6ab2487e6e/src/callbacks.c#L76 This sets the mres->errop value which is read when decoding an exception, here: https://github.com/couchbase/couchbase-python-client/blob/c6e25f42ecb5d280988e103389275e6ab2487e6e/src/multiresult.c#L309 I've also set it to always snapshot span info to a result within get_common_objects, for good measure. The info is provided as a 'tracing_output' attribute on the Result object, which is a list of spans. In the 'tags' field of each of these are listed an id and a child_of id. These should correlate with the span IDs provided by the Threshold Logging Tracer.

          People

            Ellis.Breen Ellis Breen
            ingenthr Matt Ingenthron
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty