Page MenuHomePhabricator

Open Telemetry Tracing Library
Open, LowPublic8 Estimated Story Points

Description

We need to build a library for setting up tracing within our services.

Please refer to Open Telemetry RFC for more details.

Trace.go must define a Tracer interface with helper functions for starting trace and ending trace:

  • Decorator (TraceSubscriber) that wraps the subscriber.handler function, TraceSubscriber.
  • EndTrace method
  • NewTracer constructor
  • Trace struct with SamplingRate, Provider
  • Modify schema.helper Produce to inject headers into kafka messages (also consider using correlation IDs in the event object instead of linking spans with context).
  • To trace the s3 calls, define a Tracer struct that implements the S3API interface in the OTEL submodule.
  • Override s3API in library
  • Add S3 API call methods in the Main API to the S3PI struct in the otel submodule.

Acceptance Criteria:

  • Tracing library created and accepted by the team

Things to consider
This will require review (3 engs) time because it will touch many of our services

Event Timeline

JArguello-WMF updated the task description. (Show Details)
JArguello-WMF set the point value for this task to 8.
JArguello-WMF lowered the priority of this task from Medium to Low.

Additions:

  • Tracing Library created. Integration into WMF API using inversion of control, currently testing in Structured-Data. Still need to integrate to Parser and Schema submodule. Unit tests also need to be updated.
Reedy renamed this task from Open Telemetry Tracing Library to Open Telemetry Tracing Library.Mon, Apr 29, 1:34 PM