Envoy: tracing: Make request id format and tracing behavior configurable

Created on 18 Jul 2019  路  14Comments  路  Source: envoyproxy/envoy

Description:
Envoy currently enforces specific format of x-request-id header, and piggybacks tracing decisions into it.
However this approach does not play well with existing setups, which already heavily use both request ids and tracing, and rely on transmission of this data in different form (e.g. using explicit distinct headers for tracing-related metadata).

In short we would like to have an ability to use Envoy's tracing configuration (sample ratio, x-force-tracing header, skipping health checks, statistics, etc) with different data format.

Is it reasonable to make this behavior configurable, e.g. by ability to create native extensions which would override behavior of Envoy::UuidUtils?

Relevant Links:
https://github.com/envoyproxy/envoy/blob/3a596a4b0f8a8c3e60ff6240508a1d7395a9bacd/source/common/runtime/uuid_util.cc#L24-L39
https://github.com/envoyproxy/envoy/blob/3a596a4b0f8a8c3e60ff6240508a1d7395a9bacd/source/common/runtime/uuid_util.cc#L41-L59

design proposal enhancement help wanted

Most helpful comment

I've mostly completed the implementation in a branch. I've still got a few places that need to be updated to work with my changes, and then add tests. I expect to have a preliminary PR ready in the next day or two.

All 14 comments

I think it makes sense to make this configurable and/or pluggable. @euroelessar can you put together a more complete proposal before coding? Thank you!

Sounds good, I'll work with a team to come up with something. Do you prefer a proposal here or in some external location?

A public gdoc linked here would be best. Thank you!

Hi, I'm working with @euroelessar on this. I've written up a quick design doc here: https://docs.google.com/document/d/1uPusIEL-xaensoZHGQCLPmf9f86NNtK8_88yo8rF2Pk/edit?usp=sharing

@mattklein123 Hi, can you have a look or help us to assign somebody who can, please?

@euroelessar @rossdylan thanks at a high level this makes sense to me.

wondering whats the status of this? There hasn't been any activity for more than a month here.

I've started work on it and should have a PR in the next couple weeks. I've been a bit backlogged so its going slower than I expected.

@rossdylan , what is the status of this PR?

@rossdylan Sorry to ping here again but wondering if any updates on this? Internally we are holding up on the adoption of envoy due to this issue.

@mattklein123 sorry to ping again, what's the status of this issue?

Hey all so sorry about this, I got pulled into a bunch of other internal work so this has fallen to the side. If others are better placed to implement I'm happy to advise/review from the perspective of our use case. Other wise I'm aiming to get this done some time in December at the latest.

Any updates here @rossdylan

I've mostly completed the implementation in a branch. I've still got a few places that need to be updated to work with my changes, and then add tests. I expect to have a preliminary PR ready in the next day or two.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jmillikin-stripe picture jmillikin-stripe  路  3Comments

justConfused picture justConfused  路  3Comments

hawran picture hawran  路  3Comments

hzxuzhonghu picture hzxuzhonghu  路  3Comments

weixiao-huang picture weixiao-huang  路  3Comments