Hi,
Situation: When sending a trace containing 2 spans (a root-span and a child span) that have the same span name, the two spans are merged together and only one span is displayed. In addition, some of the fields are overwritten and information is lost.
See example in the attachment (print screen from developer console in google cloud platform), where two spans both having the name "get_test" are sent in a trace to Stackdriver Trace: one client root-span and one server child span. The different annotations of both the spans are merged, but some shared annotations are overwritten by the client root-span (e.g.
zipkin.io/span.kind is "client"). I expected to have 2 spans: one with the tag-value "client" and one "server".
This issue is because, I am guessing, the backend considers the span's uniqueness based on the span's name. I don't think that's correct, instead the unique span id should be used to track spans.
There are many cases when one wants to use the same name for multiple spans in a trace (e.g. span_name="get_users" to be the same for client and server; standard annotations in libraries like span_name="mysql-client" when you have multiple sequential MySQL request). In those cases, only one span with that specified name will exist, and annotations will be lost.
Thanks,
Adrian