PROPOSED Distributed Tracing Working Group Charter

The mission of the Distributed Tracing Working Group is to define standards for interoperability between tracing tools. A tracing tool refers to a tool which is implemented as either a library or an agent to provide at least one of the following capabilities:

Interoperability for tracing therefore refers to:

Join the Distributed Tracing Working Group.

This proposed charter is available on GitHub. Feel free to raise issues.

Charter Status See the group status page and detailed change history.
Start date [dd monthname yyyy] (date of the "Call for Participation", when the charter is approved)
End date [dd monthname yyyy] (Start date + 2 years)
Chairs Sergey Kanzhelev (Google, Inc.), Kalyana J. Sundaram (Microsoft)
Team Contacts Philippe Le Hegaret (0.05 FTE)
Meeting Schedule Teleconferences: 1-hour team calls will be held bi-weekly.
Face-to-face: One yearly face-to-face meeting may be scheduled by consent of the participants.

Motivation and Background

Modern cloud-native applications are highly distributed and often span multiple technology and vendor boundaries. The complexity of these applications requires a detailed understanding of how individual requests are executed. This is referred to as "tracing".

Scope

Tracing tools for collecting the individual requests information have been available for quite some time. However, these tools have not been built with interoperability in mind. This leaves the developer with a number of challenges in getting an end-to-end trace of complex transactions:

The scope of this working group is the definition of data formats and headers enabling the propagation and correlation of tracing data across different implementations.

Out of Scope

The following features are out of scope, and will not be addressed by this Working group.

  • definition of (programming) language specific APIs for performance data collection;
  • browsers' built-in implementation of trace headers propagation;
  • performance data analysis techniques or algorithms.

Deliverables

Updated document status is available on the group publication status page.

Draft state indicates the state of the deliverable at the time of the charter approval. Expected completion indicates when the deliverable is projected to become a Recommendation, or otherwise reach a stable state.

Normative Specifications

The Working Group will deliver the following W3C normative specifications:

Trace Context

This specification is the update of Trace Context 1 which defines headers and a value format to propagate context information that enables distributed tracing scenarios. The new revisions will include an improved semantic of the header to use for scenarios requiring the randomness of identifiers alongside their uniqueness. Future versions of the specification will also include mechanism to carry context information in protocol responses, including HTTP, thus context information to be accessed within Web applications and carried over between cloud services. The revision must define mechanisms that mitigate both fingerprinting and other privacy risks exposed by Trace Context. If the mitigations include explicit or implicit user consent, as anticipated, the WG will define any necessary protocol elements for seeking that consent and formulate mechanisms for constraining the requests and resultant consent to the least-invasive possible form (e.g. listing specific domains or even hosts, as well as temporally limiting the permission consistent with the use case). This update is intended to include a mechanism to carry context information in protocol responses, thus allowing context information to be accessed in Web browsers.

Draft state: Working Draft

Expected completion: Q4 2023

Adopted Draft: 2023-04-18

Exclusion Draft: https://www.w3.org/TR/2023/CR-trace-context-2-20230418/, associated Call for Exclusion on 2023-04-18, ending on 2023-06-17

Exclusion Draft Charter: https://www.w3.org/2020/08/distributed-tracing-wg-charter.html

Propagation format for distributed context: Baggage

This specification defines a standard for representing and propagating a set of application-defined properties associated with a distributed request or workflow execution.

Draft state: Working Draft

Expected completion: Q4 2023

Adopted Draft: 2022-09-28

Exclusion Draft: https://www.w3.org/TR/2020/WD-baggage-20201020/, associated Call for Exclusion on 2020-10-20, ended on 2021-03-19.

Exclusion Draft Charter: https://www.w3.org/2020/08/distributed-tracing-wg-charter.html

Trace Context: AMQP protocol

This is an extension document for the Trace Context specification. It defines the mapping of Trace Context fields to the AMQP protocol and specifics of AMQP implementation.

Draft state: Editor Draft

Trace Context: binary protocol

This is an extension document for the Trace Context specification. It defines the mapping of Trace Context fields to the binary formats.

Draft state: Editor Draft

Trace Context: MQTT protocol

This is an extension document for the Trace Context specification. It defines the mapping of Trace Context fields to the MQTT protocol.

Draft state: Editor Draft

Other Deliverables

Other non-normative documents may be created such as:

  • A registry of identified formats of trace context Trace Context serialization and deserialization for protocols.
  • Use case and requirement documents;
  • List of recommended vendor identifiers for header values;
  • Test suite and implementation report for the specification;
  • Primer or Best Practice documents to support web developers when designing applications.

Success Criteria

In order to advance to Proposed Recommendation, each normative specification is expected to have at least two independent interoperable implementations of every feature defined in the specification, where interoperability can be verified by passing open test suites, and two or more implementations interoperating with each other. In order to advance to Proposed Recommendation, each normative specification must have an open test suite of every feature defined in the specification.

Each specification should contain sections detailing all known security and privacy implications for implementers, Web authors, and end users.

There should be testing plans for each specification, starting from the earliest drafts.

To promote interoperability, all changes made to specifications should have tests.

Coordination

For all specifications, this Working Group will seek horizontal review for accessibility, internationalization, performance, privacy, and security with the relevant Working and Interest Groups, and with the TAG. Invitation for review must be issued during each major standards-track document transition, including FPWD. The Working Group is encouraged to engage collaboratively with the horizontal review groups throughout development of each specification. The Working Group is advised to seek a review at least 3 months before first entering CR and is encouraged to proactively notify the horizontal review groups when major changes occur in a specification following a review.

Additional technical coordination with the following Groups will be made, per the W3C Process Document:

W3C Groups

Web Performance Working Group
The trace context standard relates to work around Server Timing done within the Web Performance group. Going forward it will make sense to define how trace context headers - specifically response headers - are related to the server timing header. The Working Group should coordinate with the Web Performance Working Group to ensure that the two specifications are aligned. Server timing headers may be used by applications to carry the trace context information as well as the baggage data.

External Organizations

Internet Engineering Task Force
The IETF is responsible for defining robust and secure protocols for Internet functionality, in particular HTTP. The Working Group should coordinate protocol-related work (e.g. profiles of hybi or HTTP) with the appropriate IETF WGs.

Participation

To be successful, this Working Group is expected to have 6 or more active participants for its duration, including representatives from the key implementors of this specification, and active Editors and Test Leads for each specification. The Chairs, specification Editors, and Test Leads are expected to contribute half of a working day per week towards the Working Group. There is no minimum requirement for other Participants.

The group encourages questions, comments and issues on its public mailing lists and document repositories, as described in Communication.

The group also welcomes non-Members to contribute technical submissions for consideration upon their agreement to the terms of the W3C Patent Policy.

Participants in the group are required (by the W3C Process) to follow the W3C Code of Ethics and Professional Conduct.

Communication

Technical discussions for this Working Group are conducted in public: the meeting minutes from teleconference and face-to-face meetings will be archived for public review, and technical discussions and issue tracking will be conducted in a manner that can be both read and written to by the general public. Working Drafts and Editor's Drafts of specifications will be developed in public repositories and may permit direct public contribution requests. The meetings themselves are not open to public participation, however.

Information about the group (including details about deliverables, issues, actions, status, participants, and meetings) will be available from the Distributed Tracing Working Group home page.

Most Distributed Tracing Working Group teleconferences will focus on discussion of particular specifications, and will be conducted on an as-needed basis.

This group primarily conducts its technical work on GitHub issues. The public is invited to review, discuss and contribute to this work.

The group may use a Member-confidential mailing list for administrative purposes and, at the discretion of the Chairs and members of the group, for member-only discussions in special cases when a participant requests such a discussion.

Decision Policy

This group will seek to make decisions through consensus and due process, per the W3C Process Document (section 5.2.1, Consensus). Typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required.

However, if a decision is necessary for timely progress and consensus is not achieved after careful consideration of the range of views presented, the Chairs may call for a group vote and record a decision along with any objections.

To afford asynchronous decisions and organizational deliberation, any resolution (including publication decisions) taken in a face-to-face meeting or teleconference will be considered provisional. A call for consensus (CfC) will be issued for all resolutions (for example, via email, GitHub issue or web-based survey), with a response period from 10 working days, depending on the chair's evaluation of the group consensus on the issue. If no objections are raised by the end of the response period, the resolution will be considered to have consensus as a resolution of the Working Group.

All decisions made by the group should be considered resolved unless and until new information becomes available or unless reopened at the discretion of the Chairs or the Director.

This charter is written in accordance with the W3C Process Document (Section 5.2.3, Deciding by Vote) and includes no voting procedures beyond what the Process Document requires.

Patent Policy

This Working Group operates under the W3C Patent Policy (Version of 15 September 2020). To promote the widest adoption of Web standards, W3C seeks to issue Web specifications that can be implemented, according to this policy, on a Royalty-Free basis. For more information about disclosure obligations for this group, please see the licensing information.

Licensing

This Working Group will use the W3C Software and Document license for all its deliverables.

About this Charter

This charter has been created according to section 3.4 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence.

Charter History

The following table lists details of all changes from the initial charter, per the W3C Process Document (section 4.3, Advisory Committee Review of a Charter):

Charter Period Start Date End Date Changes
Initial Charter 2018-07-25 2020-04-30 none
Rechartered 2020-08-25 2022-09-30

List additional protocol bindings as deliverables.

Proposed TBD TBD + 2 years

New Patent Policy.

Change log

Changes to this document are documented in this section.