Uploaded image for project: 'HPCC'
  1. HPCC
  2. HPCC-29330

Support open telemetry traceids and spans

    XMLWordPrintable

Details

    • Improvement
    • Status: Accepted
    • Major
    • Resolution: Unresolved
    • None
    • None
    • ESP, hthor, JLib, JTrace, Roxie, Thor
    • None
    • Future
    • Hide
      9.4.0 Initial Otel integration
      9.4.0 Initial Roxie, ESP instrumentation
      9.4.x Trace output to jlog
      9.4.12 OTLP exporter support
      9.4.16 ECL Trace API
      9.4.38 Roxie spans annotated with query stats
      - Associate all relevant log entries with active trace/span ID
      o HPCC-29334
      o 2.5 weeks
      - ECL gateway call instrumentation (SOAPCALL spans)
      o HPCC-30370
      o 1 week
      - Provide exemplar support (Prometheus)
      o HPCC-31223
      o Blocked by HPCC-29334 (Use traceids in logging)
      o 1 week
      - Provide managed end-to-end trace processing solution
      o HPCC-29338
      o (HPCC -> Otel Connector -> Trace processor (Prometheus?))
      o 2 weeks
      o Can be broken up into a smaller deliverables
       Provide managed OTLP collector (3 days)
       Provide Prometheus trace collection processor (5 days)
       Provide HPCC configuration and documentation (2 days)
      - Further ECLAgent instrumentation
      o HPCC-29336
      o This will be iterative, but this jira can track first wave
      o 1 week
      - Further Roxie trace/span annotations (complete line)
      o HPCC-30465
      o 2 days
      - Address Cleaner instrumentation
      o HPCC-30808
      o Discussed with Mark, should be a day or two


      Show
      9.4.0 Initial Otel integration 9.4.0 Initial Roxie, ESP instrumentation 9.4.x Trace output to jlog 9.4.12 OTLP exporter support 9.4.16 ECL Trace API 9.4.38 Roxie spans annotated with query stats - Associate all relevant log entries with active trace/span ID o HPCC-29334 o 2.5 weeks - ECL gateway call instrumentation (SOAPCALL spans) o HPCC-30370 o 1 week - Provide exemplar support (Prometheus) o HPCC-31223 o Blocked by HPCC-29334 (Use traceids in logging) o 1 week - Provide managed end-to-end trace processing solution o HPCC-29338 o (HPCC -> Otel Connector -> Trace processor (Prometheus?)) o 2 weeks o Can be broken up into a smaller deliverables  Provide managed OTLP collector (3 days)  Provide Prometheus trace collection processor (5 days)  Provide HPCC configuration and documentation (2 days) - Further ECLAgent instrumentation o HPCC-29336 o This will be iterative, but this jira can track first wave o 1 week - Further Roxie trace/span annotations (complete line) o HPCC-30465 o 2 days - Address Cleaner instrumentation o HPCC-30808 o Discussed with Mark, should be a day or two

    Description

      The goal is to add support for all elements in the platform to support then open telemetry standard for managing traces.  Ideally the implementation would be as invisible to the user as possible, but provide control where needed.

      Various subtasks (not necessarily in order) correspond to different milestones in the project.

      Attachments

        Issue Links

          1.
          Refactor existing global/caller/local id code Sub-task Resolved Rodrigo Pastrana
          2.
          Add https://github.com/open-telemetry/opentelemetry-cpp to vcpkg Sub-task Resolved Rodrigo Pastrana
          3.
          Preserve the open telemetry ids throughout the system Sub-task New Unassigned
          4.
          Use traceids in logging Sub-task Merge Pending Rodrigo Pastrana
          5.
          Provide options on SOAPCALL to create new spanids, and add information to the context Sub-task Resolved Unassigned
          6.
          Review all places where span ids should be created Sub-task New Unassigned
          7.
          Review all places where global id is not serialized Sub-task New Unassigned
          8.
          Integrate a trace processor into the system Sub-task New Unassigned
          9.
          Review whether GloablHeader id name is ever overridden Sub-task Resolved Gavin Halliday
          10.
          Instrument esp with open telemetry Sub-task Resolved Gavin Halliday
          11.
          Instrument roxie with open telemetry Sub-task Resolved Gavin Halliday
          12.
          Create client spans for soapcalls Sub-task Accepted Rodrigo Pastrana
          13.
          Allow start time to be passed to a server span Sub-task Resolved Rodrigo Pastrana
          14.
          Fix issues with tracing configuration Sub-task Resolved Gavin Halliday
          15.
          Split ISpan::getSpanContext function Sub-task Resolved Rodrigo Pastrana
          16.
          Investigate other places (other than soapcall activity) where client spans should be created Sub-task New Unassigned
          17.
          Review naming convention for spans Sub-task Resolved Gavin Halliday
          18.
          Where else should telemetry headers be passed? Sub-task New Unassigned
          19.
          Avoid creating server spans if isUnrestrictedSSType() Sub-task Resolved Rodrigo Pastrana
          20.
          Add options to all components for whether they create traceids by default Sub-task Resolved Rodrigo Pastrana
          21.
          Provide ECL functions for accessing trace-id and trace-state Sub-task Resolved Rodrigo Pastrana
          22.
          Review logging output for span start/span end Sub-task Resolved Unassigned
          23.
          Create a lightweight CNullSpan Sub-task Resolved Rodrigo Pastrana
          24.
          Implement server spans for xml (testsocket) requests Sub-task New Unassigned
          25.
          Options to avoid tracing start and stop spans Sub-task Resolved Gavin Halliday
          26.
          Replace jtrace inmemory exporter with noop exporter Sub-task Resolved Rodrigo Pastrana
          27.
          Allow trace-ids to be used in all logging statements Sub-task Resolved Unassigned
          28.
          Allow complete line statistics to be injected into the span close line Sub-task Resolved Gavin Halliday
          29.
          Option to introduce extra information to the current span Sub-task New Unassigned
          30.
          Switch StartSpan/SpanFinish to use EVT/MON audience Sub-task Resolved Unassigned
          31.
          Provide JLog exporter for JTrace use Sub-task Resolved Rodrigo Pastrana
          32.
          Categorize JTrace log output as MSGAUD_monitor MSGCLS_event Sub-task Resolved Rodrigo Pastrana
          33.
          JTrace ensure passthrough attributes tracked by exported Otel spans Sub-task Resolved Rodrigo Pastrana
          34.
          Add a unittest to catch HPCC-30687 Sub-task Resolved Rodrigo Pastrana
          35.
          Refactor the CSpan objects Sub-task Resolved Gavin Halliday
          36.
          ADD OTLP exporter support Sub-task Resolved Rodrigo Pastrana
          37.
          Add trace/pan id support to the address cleaner Sub-task New Mark Kelly
          38.
          Allow the open telemetry options to be configured in bare-metal Sub-task Merge Pending Anthony Fishbeck
          39.
          Add Jtrace OTLP-GRCP secure configuration options Sub-task New Rodrigo Pastrana
          40.
          Consider refactoring code for IContextLogger::setActiveSpan() Sub-task New Unassigned
          41.
          Review server spans in esp Sub-task New Anthony Fishbeck
          42.
          Jtrace should support OTel tracestate Sub-task New Unassigned
          43.
          Helm/examples/tracing README outline incorrectly indented Sub-task Resolved Unassigned
          44.
          Split getSpanContext into two functions Sub-task Resolved Unassigned
          45.
          Document Tracing related ECL API Sub-task Accepted Jim DeFabia
          46.
          Add the concept of a producer span. Sub-task New Unassigned
          47.
          Refactor CHttpRequest to extract the method name earlier Sub-task New Unassigned
          48.
          JTrace Jlog exporter should re-introduce cppunit tests Sub-task New Rodrigo Pastrana
          49.
          Add support for multiple exporters Sub-task Resolved Gavin Halliday
          50.
          JTrace samples include typo otlp-grcp should be GRPC Sub-task Resolved Rodrigo Pastrana
          51.
          Consider labeling metrics with associated Trace/SpanID Sub-task Resolved Rodrigo Pastrana
          52.
          Refactor the thread context tracking code Sub-task Merge Pending Gavin Halliday
          53.
          Add support for non-string attributes Sub-task Resolved Gavin Halliday
          54.
          embedded language span Sub-task New Unassigned
          55.
          Traces/spans should populate resource attributes Sub-task Resolved Rodrigo Pastrana
          56.
          Add aggregated index usage attribute to the span Sub-task New Unassigned
          57.
          Improve the accuracy of the roxie elapsed time Sub-task Resolved Gavin Halliday
          58.
          Add Jtrace status recording support Sub-task Merge Pending Rodrigo Pastrana
          59.
          Coverity issue 1583800 Jtrace uncaught exception Sub-task Merge Pending Rodrigo Pastrana
          60.
          Enable mysql client call tracing Sub-task New Unassigned
          61.
          Record the slowest 5 activity ids in the complete line Sub-task Merge Pending Gavin Halliday
          62.
          Add a link in eclwatch from a workunit to a trace in graphana/elastic Sub-task New Unassigned
          63.
          Add an option to create a traceid for each workunit when it is executed Sub-task New Unassigned
          64.
          Provide a link to the trace when executing queries from esp Sub-task New Unassigned
          65.
          Add txSummary information to the server span in esp Sub-task New Unassigned

          Activity

            People

              rpastrana Rodrigo Pastrana
              ghalliday Gavin Halliday
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: