envoyproxy / envoyproxy/envoy

Send custom key-value pairs in ot-span-context to Zipkin

Open
#2,031 3 comments 1 reaction 0 assignees View on GitHub
area/tracing enhancement help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

Thanks for maintaining the great project 👍

Envoy does seem to propagate ot-span-context but drops most of the key-values included in it before sending it to Zipkin.

Would it be possible to send those key-values as binary annotations of Zipkin spans?
Could I contribute it?

Context:

- [After looking into code](https://github.com/envoyproxy/envoy/blob/f48e0f91524776f4984d896f5b9cfe146591f1a1/source/common/tracing/zipkin/tracer.cc#L53-L114), it turns out that Envoy as of today drops all the keys in ot-span-context other than a few, well-known keys like traceid and spanid, before sending these to Zipkin.
- AFAIK, ot-span-context could be populated with "custom" keys and values other than these, e.g. by our apps, to provide additional context throughout multiple spans in single trace.
- If Envoy could translate those to corresponding binary annotations in Zipkin spans, we could view those custom key-value pairs from ot-span-context in Zipkin.
- FYI, an app like [dd-zipkin-proxy](https://github.com/flachnetz/dd-zipkin-proxy) allows Datadog to consume Zipkin spans containing arbitrary binary annotations so that it would also help Datadog users.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.