Details

      Description

      MP OT spec [1] defines:
      1. tracing for JAX-RS endpoints and outbound requests made by JAX-RS client.
      2. tracer configuration outside of the app
      3. tracer injection to app via CDI

      Currently, there is OT fraction but it's not compatible with MP and would not pass TCK (it uses only server filter to trace inbound requests). For this task I propose to implement new microprofile-opentracing fraction. This fraction can reuse OT jax-rs instrumentation form [2] after the changes defined in [3] are in place. This solves only 1. from the list above.

      Proposed solution to 1:

      • register server filters (no problem here)
      • register client filters (problem not automatically registered)
      • [4] requires OpenTracing-aware ExecutorService to correctly propagate parent span to tracing filter. This custom executor just wraps the supplied one. (problem not automatically registered)

      Because client filter (features/providers) aren't automatically discovered we have to change ResteasyClientBuilder (also for executor service). This builders is returned by javax.ws.rs.client.ClientBuilder.newBuilder(). Maybe there is a better solution via resteasy SPI.

      [1]: https://github.com/eclipse/microprofile-opentracing
      [2]: https://github.com/opentracing-contrib/java-jaxrs
      [3]: https://github.com/opentracing-contrib/java-jaxrs/issues/53
      [4]: https://github.com/opentracing-contrib/java-jaxrs#resteasy

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  pavol_loffay Pavol Loffay
                  Reporter:
                  pavol_loffay Pavol Loffay
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: