Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clarifies parent and links #283

Merged

Conversation

SergeyKanzhelev
Copy link
Member

Fixes #207

@rghetia
Copy link
Contributor

rghetia commented Oct 3, 2019

tracing page should be updated as well. It has

Each span has zero or one parent span and zero or more child spans, which represent causally related operations. A tree of related spans comprises a trace. A span is said to be a root span if it does not have a parent. Each trace 

A span could have zero or one or more than one parents. Single parent is represented using parent and multiple parents are represented using Links.

@SergeyKanzhelev
Copy link
Member Author

@rghetia removed the word parent from this sentence. SHould work better now

Copy link
Contributor

@tedsuo tedsuo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the clarification.

@bogdandrutu bogdandrutu merged commit d18fc36 into open-telemetry:master Oct 5, 2019
Trace instead of trusting incoming Trace context.
**Links** can be used to represent batched operations where a **Span** was
initiated by multiple initiating **Span**s, each representing a single incoming
item being processed in the batch. Another example of using a **Link** is to
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Newline before new sentence?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed. See #289

item being processed in the batch. Another example of using a **Link** is to
declare relationship between originating and followed trace. This can be used
when **Trace** enters trusted boundaries of a service and service policy
requires to generate a new Trace instead of trusting incoming Trace context. Or
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...requires the generation of a new Trace rather than trusting the incoming Trace context...?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks! fixed. See #289

declare relationship between originating and followed trace. This can be used
when **Trace** enters trusted boundaries of a service and service policy
requires to generate a new Trace instead of trusting incoming Trace context. Or
when long running Trace representing asynchronous data processing operation was
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't start sentences with "or"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rephrased. See #289

when **Trace** enters trusted boundaries of a service and service policy
requires to generate a new Trace instead of trusting incoming Trace context. Or
when long running Trace representing asynchronous data processing operation was
initiated by one of many fast incoming request.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence doesn't make semantic sense IMO

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rephrased. See #289

when long running Trace representing asynchronous data processing operation was
initiated by one of many fast incoming request.

In case of scatter/gather pattern, when the root operation starts multiple
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the case of usage of the scatter/gather

or

When using the scatter/gather (also called fork/join) pattern, ....

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

**Links** can be used to represent batched operations where a **Span** was
initiated by multiple initiating **Span**s, each representing a single incoming
item being processed in the batch. Another example of using a **Link** is to
declare relationship between originating and followed trace. This can be used
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we use Links for asynchronous operations extending past the topmost parent span as well? What are the recommendtations on tracing evented systems?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we use Links for asynchronous operations extending past the topmost parent span as well?

You could. There is no limitations in specs as of

What are the recommendtations on tracing evented systems?

We don't have recommendations written. Do you want to start on this? I'd personally prioritize it for after v0.3

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we still have an issue to agree on link types. Where this can come up. But I think full blown event based systems support will likely be in scope later

Copy link

@haf haf Oct 7, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't mind coming with input as to how to solve it;

  • initially, "FollowsFrom" like in opentracing would probably be just fine. This is classically called "correlation id"; and could be the TraceId or SpanId the async span follows from
  • if you were to make a recommendation on when relations are considered completely mapped, perhaps event-time like in the steaming systems would be a good frame of reference. However; In most servers/collectors I suppose late relationships would be linked in a best-effort manner as they become known

In all likelyhood someone else has solved this problem for written extensively about it though ;)

Link: #65

Copy link

@haf haf Oct 7, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...and if I were to throw stuff at a wall to see what sticks, then perhaps dotted version vector sets can be adapted to use the span id as the "server id" (after all, Spans are not long running generally), creating a partial order of happened-before, happened-after and happened-concurrently between spans and allowing visualisation thereof.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@haf I think the best way to throw things at a wall is to create an issue =)

@SergeyKanzhelev SergeyKanzhelev deleted the linksFromTheSameTrace branch October 7, 2019 18:51
SergeyKanzhelev added a commit to SergeyKanzhelev/opentelemetry-specification that referenced this pull request Feb 18, 2020
* clarifies parent and links

* Update specification/overview.md
TuckTuckFloof pushed a commit to TuckTuckFloof/opentelemetry-specification that referenced this pull request Oct 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

should not allow Linking spans belonging to same trace
6 participants