Re: [Ietf-message-headers] Permanent message header field registration for traceparent and tracestate

Philippe Le Hégaret <plh@w3.org> Sun, 24 November 2019 20:46 UTC

Return-Path: <plh@w3.org>
X-Original-To: ietf-message-headers@ietfa.amsl.com
Delivered-To: ietf-message-headers@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E897E120058 for <ietf-message-headers@ietfa.amsl.com>; Sun, 24 Nov 2019 12:46:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id grKbCb_XoRgk for <ietf-message-headers@ietfa.amsl.com>; Sun, 24 Nov 2019 12:46:46 -0800 (PST)
Received: from raoul.w3.org (raoul.w3.org [128.30.52.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BBD7812004C for <ietf-message-headers@lists.ietf.org>; Sun, 24 Nov 2019 12:46:46 -0800 (PST)
Received: from 146-115-101-8.s7174.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com ([146.115.101.8] helo=[192.168.1.11]) by raoul.w3.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <plh@w3.org>) id 1iYymJ-000091-W0; Sun, 24 Nov 2019 20:46:44 +0000
To: Julian Reschke <julian.reschke@gmx.de>, "ietf-message-headers@lists.ietf.org" <ietf-message-headers@lists.ietf.org>
References: <ee1742ec-61d2-bffa-ad7e-eecd506ba70d@w3.org> <78d32933-2d67-5757-99a3-5195ef6c4315@gmx.de>
From: Philippe Le Hégaret <plh@w3.org>
Message-ID: <fa7c9775-aff3-21c6-55dd-0d019e96c382@w3.org>
Date: Sun, 24 Nov 2019 15:46:42 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <78d32933-2d67-5757-99a3-5195ef6c4315@gmx.de>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf-message-headers/4YmDspn2OfIJULhD70DtRBvLCKA>
Subject: Re: [Ietf-message-headers] Permanent message header field registration for traceparent and tracestate
X-BeenThere: ietf-message-headers@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussion list for header fields used in Internet messaging applications." <ietf-message-headers.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf-message-headers>, <mailto:ietf-message-headers-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf-message-headers/>
List-Post: <mailto:ietf-message-headers@ietf.org>
List-Help: <mailto:ietf-message-headers-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf-message-headers>, <mailto:ietf-message-headers-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Nov 2019 20:46:48 -0000


On 11/24/2019 3:39 PM, Julian Reschke wrote:
> The spec link's anchor doesn't work for me.
> <https://www.w3.org/TR/trace-context/#traceparent-header> does, though.

Didn't check and realize the links had changed. Here is an updated template:

[[
Header field name: traceparent
Applicable protocol: http
Status: permanent
Change Controller:
   Distributed Tracing Working Group
   https://www.w3.org/2018/distributed-tracing/
   public-trace-context@w3.org
Specification:
   https://www.w3.org/TR/trace-context/#traceparent-header

Header field name: tracestate
Applicable protocol: http
Status: permanent
Change Controller:
   Distributed Tracing Working Group
   https://www.w3.org/2018/distributed-tracing/
   public-trace-context@w3.org
Specification:
   https://www.w3.org/TR/trace-context/#tracestate-header
]]

> Quoting:
> 
>> 3.2 Traceparent Header
>>
>> The traceparent HTTP header field identifies the incoming request in a 
>> tracing system. It has four fields:
>>
>>     version
>>     trace-id
>>     parent-id
>>     trace-flags
> 
> So what is the actual syntax of the header field?

It's mentioned in the section
[[
[...]
   The tracestate field value is a list of [list-members] separated by 
[commas].

[...]

list  = list-member 0*31( OWS "," OWS list-member )
list-member = key "=" value
list-member = OWS

[...]

key = lcalpha 0*255( lcalpha / DIGIT / "_" / "-"/ "*" / "/" )
key = ( lcalpha / DIGIT ) 0*240( lcalpha / DIGIT / "_" / "-"/ "*" / "/" 
) "@" lcalpha 0*13( lcalpha / DIGIT / "_" / "-"/ "*" / "/" )
lcalpha    = %x61-7A ; a-z

[...]

value    = 0*255(chr) nblk-chr
nblk-chr = %x21-2B / %x2D-3C / %x3E-7E
chr      = %x20 / nblk-chr
]]
https://www.w3.org/TR/trace-context/#tracestate-header-field-values

Philippe