Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Sergey Kanzhelev
    @SergeyKanzhelev
    opaque means that for tracing system that doesn’t know about this key - it is just a blob of bytes
    good question though. Would yoi mind filing an issue so this can be clarified somewhere in a spec or supportive documents
    Diego Hurtado
    @ocelotl
    Thank you @SergeyKanzhelev , I opened an issue here: w3c/trace-context#348
    Yuri Shkuro
    @yurishkuro

    opaque means exactly what the dictionary says it means:
    adjective
    not able to be seen through; not transparent

    in other words, non-interpretable sequence of bytes

    Tristan Sloughter
    @tsloughter
    there isn't a "debug" flag is there? thinking of a use case of wanting something separate from having a valid trace context that can be easily set when running a curl command and forcing a trace and not to be sampled, without having to send a trace and span id in the curl headers
    Daniel Dyla
    @dyladan
    Your sampling decision could theoretically take anything into account, but even the sampled flag is only a suggestion according to the spec. Anything beyond that is a potential attack vector
    Tristan Sloughter
    @tsloughter
    true, only a suggestion. but a suggestion outside of a valid trace context might be nice. I guess it could be or should be separate from the trace-context spec though if its about being for not wanting to include a valid trace context, hehe
    so I can move the question to opentelemetry
    Tristan Sloughter
    @tsloughter
    so running the test suite against the erlang opentelemetry implementation. it expects a traceparent to be sent in the request even if there is no trace. Is that just the test, and I simply do a more manual test service not using opentelemetey propagation? Because in the propagator I was not adding a traceparent header if there was no span
    Tristan Sloughter
    @tsloughter
    err, nevermind, it doesn't accept all zero trace/span id, so it isn't just that the test service should include a traceparent of zero'ed ids but has to create a new valid span first
    Tristan Sloughter
    @tsloughter
    hm, the TraceContext tests relies on headers being a certain order. is that guaranteed by the HTTP spec?
    just going to reverse the headers given by the test server for now
    Tristan Sloughter
    @tsloughter
    caring about order also means slower parsing of tracestate...
    guess I could keep both a set of keys and the list of key/value pairs while parsing for easier check for duplicates
    Sergey Kanzhelev
    @SergeyKanzhelev
    By headers you mean tracestate values? Yes, order is significant
    Tristan Sloughter
    @tsloughter
    yea
    so order has to be kept? or is order important for dealing with duplicates, but when building a single set of values you can then send them in any order as a single header?
    Sergey Kanzhelev
    @SergeyKanzhelev
    order needs to be preserved. One of the reason is that tracestate will be cut to the limit from the end. And you want to preserve the most recent values
    Tristan Sloughter
    @tsloughter
    ah, ok
    Justin Foote
    @justinfoote
    I don't believe there is a requirement that you remove duplicate entries from tracestate.
    Tristan Sloughter
    @tsloughter
    pretty sure you fail if there re any duplicates is how I read the spec
    err wait
    now I see that it keeps the last value
    congo=congosFirstPosition,rojo=rojosFirstPosition,congo=congosSecondPosition becomes congo=congosSecondPosition,rojo=rojosFirstPosition
    Sergey Kanzhelev
    @SergeyKanzhelev
    This sounds wrong
    Tristan Sloughter
    @tsloughter
    I don't think theinterop tests are right then
    ah
    definitely not what my impl does and it passes the interop tests, so yea, one of them is wrong :)
    to be clear, where I got that example that doesn't match the interop tests is https://w3c.github.io/trace-context/#combined-header-value
    Sergey Kanzhelev
    @SergeyKanzhelev
    File a bug?
    Assumption was always that newest (first) is the most important
    Justin Foote
    @justinfoote
    That section of the spec dictates how your tracer should handle its own entry
    I don't think it's intended to require you to deduplicate other vendor's entries
    And, in my opinion, it should be up to the vendor to decide which entry to accept if there are multiple entries in tracestate.
    Tristan Sloughter
    @tsloughter
    it calls it the newest, but that the newest is at the end
    I'll have to check, it is on my other machine but pretty sure the interop tests verify that you throw out the tracestate if it has duplicates
    Tristan Sloughter
    @tsloughter
    but yea, I'll file an issue today
    Abdelilah Zaoui
    @AbdelilahZaoui_twitter
    Salamandres
    wdengw
    @wdengw
    Hi, https://w3c.github.io/trace-context/ has tracestate header and https://w3c.github.io/trace-context/ has tracestate header.
    What is the relationship between the two? Both can add key-value pairs. How to decide, given a key-value, where to add it, tracestate, or Correlation-Context?
    Sergey Kanzhelev
    @SergeyKanzhelev
    @wdengw tracestate is for short values, typically identifiers, that enables correlation. Longer value likely will be kicked out of it. Typically used by telemetry vendors. Correlation-Context is a baggage of user-defined values with longer values.
    wdengw
    @wdengw
    @SergeyKanzhelev What do we mean by "kicked out of it", are there guidelines or enforcement rules to govern that? tracestate is typically used by telemetry vendors. What is a telemetry vendor? does the platform organization inside a company, who provide tracing libraries implementing the Open telemetry API, for other internal teams to use, a vendor?
    Daniel Dyla
    @dyladan
    @wdengw tracestate is used to propagate proprietary tracing data used in conjunction with traceparent by whatever vendor provides your tracing and your application will likely not need to access it. correlation context is a more general data store which can be used by the application to propagate values for e.g. A/B testing, fault injection, or other use cases
    What Sergey meant by “kicked out” is that values in the tracestate header may be dropped if the header becomes too large. The limits and mechanics of this are described in 3.3.1.5 here https://w3c.github.io/trace-context/#tracestate-limits
    Daniel Dyla
    @dyladan
    in this case the “vendor” is whatever library handles the traceparent header and is used to forward vendor-specific tracing data. For instance a vendor may have their own sampling info that they want to forward and ignore the trace flags
    Evgeny Yakimov
    @eyjohn
    cross posting from OpenTracing: Are there any implementations of Tracers with w3c trace context compliance, either for c++ or python?
    Yuri Shkuro
    @yurishkuro
    OpenTelemetry SDKs default to W3C Trace Context
    Tyler Yahn
    @MrAlias
    There is an open issue in the Open Telemetry Go implementation to refactor the trace-context (traceparent, tracestate, and propagators) implementation into its own repository (https://github.com/open-telemetry/opentelemetry-go/issues/391).
    The open question is where that repository should live.
    It is posed in the issue that it could live in the W3C org or possibly remain in the Open Telemetry Org.
    Is there any preference here about where implementations like this should live?
    Kai Hudalla
    @sophokles73
    Hi there, I am involved in the Eclipse Hono project where we are making use of Open Tracing to trace processing of messages across multiple service components. The messages usually originate from IoT devices using arbitrary communication protocols. We are currently supporting HTTP, AMQP 1.0, MQTT and CoAP. I have seen the Trace Context Protocols Registry and now I am wondering, what I would need to do to get a CoAP binding being added to the registry?
    Yuri Shkuro
    @yurishkuro
    @sophokles73 I would start with creating a ticket in https://github.com/w3c/trace-context to see if there is interest from other parties. It would be also helpful to provide the initial proposal of what it would look like in CoAP.
    Kai Hudalla
    @sophokles73
    @yurishkuro ok, will do ...