Skip to content

Commit

Permalink
Include parent span in Jaeger gRPC export (open-telemetry#1809)
Browse files Browse the repository at this point in the history
This extracts the parent span and adds it as a CHILD_OF reference in the
gRPC export, so that we get the expected hierarchy of spans.

Test case is updated to cover this case.
  • Loading branch information
plajjan authored and owais committed May 11, 2021
1 parent a557c28 commit f302a62
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v1.1.0...HEAD)

### Changed
- Include span parent in Jaeger gRPC export as `CHILD_OF` reference
([#1809])(https://github.com/open-telemetry/opentelemetry-python/pull/1809)

### Added
- Added example for running Django with auto instrumentation.
([#1803](https://github.com/open-telemetry/opentelemetry-python/pull/1803))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -318,10 +318,18 @@ def _extract_tags(
def _extract_refs(
self, span: ReadableSpan
) -> Optional[Sequence[model_pb2.SpanRef]]:
if not span.links:
return None

refs = []
if span.parent:
ctx = span.get_span_context()
parent_id = span.parent.span_id
parent_ref = model_pb2.SpanRef(
ref_type=model_pb2.SpanRefType.CHILD_OF,
trace_id=_trace_id_to_bytes(ctx.trace_id),
span_id=_span_id_to_bytes(parent_id),
)
refs.append(parent_ref)

for link in span.links:
trace_id = link.context.trace_id
span_id = link.context.span_id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -287,11 +287,16 @@ def test_translate_to_jaeger(self):
),
],
references=[
model_pb2.SpanRef(
ref_type=model_pb2.SpanRefType.CHILD_OF,
trace_id=pb_translator._trace_id_to_bytes(trace_id),
span_id=pb_translator._span_id_to_bytes(parent_id),
),
model_pb2.SpanRef(
ref_type=model_pb2.SpanRefType.FOLLOWS_FROM,
trace_id=pb_translator._trace_id_to_bytes(trace_id),
span_id=pb_translator._span_id_to_bytes(other_id),
)
),
],
logs=[
model_pb2.Log(
Expand Down

0 comments on commit f302a62

Please sign in to comment.