Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Yuri Shkuro

If you have a need to remove items from baggage, most likely you're misusing it in the first place since the whole point is to make those items transparently available an any lower level in the call graph.

But you can always set items to null/empty.

hi guys
anybody from dynatrace?
I'm going to add some tracing into some of our apps. Currently I'm using micrometer to prometheus for metrics but we are already using Dynatrace
Ideally I would like to use open telemetry api and dynatrace to pick it up, should I code some backend myself with sdk or there's already something out there?
Yuri Shkuro
if you're interested in using OpenTelemetry, better to ask this question in https://gitter.im/open-telemetry/community
Ah ok thanks Yuri
So I read that OpenTracing+OpenCensus =OpenTelemetry
which API should I go for, strategically?
Yuri Shkuro
Alexander Tumin
documentation is not very clear on this: how long span is expected to last? Is there any inherit limitations on span lifetime?
to clarify: I have long lasting connections, spanning over days, with many events sent both ways, each possibly starting own context of work. Logically, whole connection seems like a root span, with a number of child spans. But I'm not sure if spec takes this into account. At least with jaeger go client it seems to be limited to reporting only finished root spans.
Alexander Tumin
i wonder if it was designed to accommodate only request-response communication pattern, with short lifetime of individual request.
Juraci Paixão Kröhling
there's no limit -- it can also be used to represent a batch process, where steps are executed apart from each other and taking quite a long time to execute
Hi, I'm new to opentracing, and I'm trying to incorporate it into a django project. I am instantiating a global tracer (one per process). When a request comes in, the thread generates a 'master_span', and makes it available in the thread's local storage. Later in the code, I do with master_span.tracer.start_span("foo"). This results in the spans appearing to be unrelated... I'm clearly missing something, but I'm not sure what it is. Could somebody point me in the right direction?
Is there an easy way to check the size of headers/metadata the client is sending out?
1 reply
Asking because I'm hitting the default header limit of 8Kb but it's not obvious to me how this is possible, when the baggage total bytes is around 5Kb
Marimuthu Ponnambalam
I have a need to reference Retry of span, while visualizing as graph to differentiate previous and retry paths, very common in batch workflow scenarios. By adding parentId=<Failed Span Id >and refType="RetryOf" as new reference, I shall achieve this. Does specification allow such extension of causal/non-causal relationship other than "ChildOf" and "FollowsFrom" and would this break OpenTracing API implementation in any way?
η (eta)
hi, if I wanted to split a span across a network boundary, is that something OpenTracing would support? basically, incoming requests get pushed onto a message queue and then picked up by a worker on the other end of a queue -- so can I start a span at one end of the queue, serialize it in some way, and then continue that span on the other side?
Nick Caballero
@eeeeeta i think you just need to include the b3 headers in the message when sending and then resume on your consumer - most message queues support headers as part of the message
Federico Bevione
Hi there, this is my first time here!
I'm wondering if there's way to trace a request flow like this: grpc-client -> grpc-server -> google pub/sub (or rabbitmq) -> golang-client
First of all: is it right to think of tracing a message through a queuing mechanism?
Right now I can successfully trace from the grpc-client to the publish request to google pub-sub but i don't know how to "restore" the trace after the message goes through the pub/sub topic and subscription
All the stack is written with golang
Murtaza Icecreamwala
Hey Anyone could direct how could apply to trace all java methods called in an existing project without editing any source code.
Yuri Shkuro
I am not aware of any auto-instrumentation that would do that. Distributed tracing is not particularly well suited for tracing individual function calls.
Hi, anybody here using Swagger annotated REST APIs with opentracing? Spring integration, which Swagger is based on, merely logs in request, but I wonder if that's possible to log also parameters .. without writing from scratch by hand.. ?
Anthony Voutas
@Murtaza-arif if you use an autoinstrumentation framework you only need to add annotations to the methods you want to trace for example: https://docs.datadoghq.com/tracing/setup/java/
If you really don't want to add the annotations then I suppose you could script that too
Aditya Mukhopadhyay

Hi, I've created an OpenTracing instrumentation library, a span collector agent and a couple of reporter plugins.

These are designed for the synchronous JS runtime used for running embedded microservices in the ArangoDB graph database. Here's the introduction -


Ankit Nayan

@Murtaza-arif if you use an autoinstrumentation framework you only need to add annotations to the methods you want to trace for example: https://docs.datadoghq.com/tracing/setup/java/

any docs on how to use datadog instrumentation libraries with otel collector?

randy clinton
hi, I'm having a trouble shooting traces to zipkin with python, would this be a good forum to troubleshoot it?
Bas van Beek
Best chance is at the openzipkin/zipkin room on gitter
Martijn Pieters
Hi! I'm trying to determine how to best use tracing in an Airflow DAG setting. An Airflow DAG is a longer-running process, where a directed acyclic graph (DAG), consisting of tasks, is being executed.
I'm thinking I need a span for the whole DAG, then each task is a childOf, and the next task in each Airflow DAG is a followsFrom relationship to the preceding task (so the Airflow DAG relationships are 'horizontal', each one typically following from the preceding).
This is all in Python, there is a Flask-based server that kicks off a DAG (but you can also use a command-line client).
I'm thinking that a DAG being triggered is a good starting point for a span, I can then inject the span data into the DAG metadata, to then be extracted for each task so I can created child spans.
Martijn Pieters
But.. how does this fit in with the parent span that triggers the DAG run? Say, it's a Flask server request, we trigger a DAG, then that Flask request ends. The DAG continues on, that span is going to cover minutes, up to an hour of work. Am I extending the OpenTracing model too far here by applying it to a longer async process perhaps?
Martijn Pieters
Never mind, I see that someone asked a similar question here before; :point_up: July 6, 2020 12:06 PM
Martijn Pieters
I will use custom span.kind values; "airflow.dag" and "airflow.task".
Martijn Pieters
In the Python opentracing library, I notice that the span implementation has a _on_error() static function that I really want to treat as public, as I have a need to log exceptions already handled further down and reported via a callback as just the Python exception object.
Is there any reason this isn't public already?
I'll just reuse the tags..
Hi all,
Any plans for supporting Tornado 6?
Manish Jindal

Hi all,
As the doc https://www.jaegertracing.io/docs/1.19/troubleshooting/ says "The logging reporter follows the sampling decision made by the sampler, meaning that if the span is logged, it should also reach the agent or collector."

But thats not happening, my gRPC server is logging the span - "{"level":"info","msg":"Reporting span 1559209397c51d88:3217766e13b74f76:1559209397c51d88:1","time":"2020-11-11T17:31:47Z"}" , but I am not able to see the same span jaeger-all-in-one UI.

The REST client span is projected onto the UI and is the parent of the trace.

Please help me to be able to project the grpc spans onto UI.

Hi All, I have used inject/extract API to have tracing support across application using http headers. Ineed to trace a RMI call. How do we trace a RMI call ? Do we have a document/example for same. Thanks.
1 reply
Martin Kügler
Hi, https://opentracing.io/specification has a couple of links to https://opentracing.io/specification/semantic_conventions.md, which show 404, is that a permanent error? Is that information available somewhere else now?
1 reply